[gnome-db] GObject Introspection backported to 4.0 stable series
- From: Daniel Espinosa <esodan gmail com>
- To: gnome-db-list gnome org
- Subject: [gnome-db] GObject Introspection backported to 4.0 stable series
- Date: Thu, 25 Feb 2010 18:11:05 -0600
Due to this could be useful for upcoming Ubuntu 10.04 LTS, please find
attached patches for backport GObject Introspection to GDA 4.0 series.
--
Trabajar, la mejor arma para tu superación
"de grano en grano, se hace la arena" (R) (en trámite, pero para los
cuates: LIBRE)
From 2ebcd830b071b6cc2ce51b328d27a04c12d390df Mon Sep 17 00:00:00 2001
From: Daniel Espinosa Ortiz <esodan esodan-laptop (none)>
Date: Thu, 25 Feb 2010 17:40:36 -0600
Subject: [PATCH 141/142] First Step for GDA GObjectIntrospection - Makefile
Signed-off-by: Daniel Espinosa Ortiz <esodan esodan-laptop (none)>
---
INSTALL | 157 +++++++++++++++++++++++++++++++++++++---------------
libgda/Makefile.am | 102 ++++++++++++++++++++++++++++++++++
2 files changed, 214 insertions(+), 45 deletions(-)
diff --git a/INSTALL b/INSTALL
index c95e20e..2550dab 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,16 +1,19 @@
Installation Instructions
*************************
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
-Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-This file is free documentation; the Free Software Foundation gives
+ This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
-These are generic installation instructions.
+ Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package. The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
@@ -23,9 +26,9 @@ debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. (Caching is
+the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
-cache files.)
+cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
@@ -35,20 +38,17 @@ some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
+ `./configure' to configure the package for your system.
- Running `configure' takes awhile. While running, it prints some
- messages telling which features it is checking for.
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
2. Type `make' to compile the package.
@@ -67,42 +67,57 @@ The simplest way to compile this package is:
all sorts of other programs in order to regenerate files that came
with the distribution.
+ 6. Often, you can also type `make uninstall' to remove the installed
+ files again.
+
Compilers and Options
=====================
-Some systems require unusual options for compilation or linking that the
-`configure' script does not know about. Run `./configure --help' for
-details on some of the pertinent environment variables.
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
- ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
-You can compile the package for more than one kind of computer at the
+ You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
+own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
- If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory. After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
+ With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
Installation Names
==================
-By default, `make install' installs the package's commands under
+ By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
@@ -125,7 +140,7 @@ option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
-Some packages pay attention to `--enable-FEATURE' options to
+ Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
@@ -137,14 +152,46 @@ find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
Specifying the System Type
==========================
-There may be some features `configure' cannot figure out automatically,
-but needs to determine by the type of machine the package will run on.
-Usually, assuming the package is built to be run on the _same_
-architectures, `configure' can figure that out, but if it prints a
-message saying it cannot guess the machine type, give it the
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
@@ -152,7 +199,8 @@ type, such as `sun4', or a canonical name which has the form:
where SYSTEM can have one of these forms:
- OS KERNEL-OS
+ OS
+ KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
@@ -170,9 +218,9 @@ eventually be run) with `--host=TYPE'.
Sharing Defaults
================
-If you want to set default values for `configure' scripts to share, you
-can create a site shell script called `config.site' that gives default
-values for variables like `CC', `cache_file', and `prefix'.
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
@@ -181,7 +229,7 @@ A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
-Variables not defined in a site shell script can be set in the
+ Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
@@ -190,21 +238,29 @@ them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script). Here is a another example:
+overridden in the site shell script).
- /bin/bash ./configure CONFIG_SHELL=/bin/bash
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug. Until the bug is fixed you can use this workaround:
-Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
-configuration-related scripts to be executed by `/bin/bash'.
+ CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
-`configure' recognizes the following options to control how it operates.
+ `configure' recognizes the following options to control how it
+operates.
`--help'
`-h'
- Print a summary of the options to `configure', and exit.
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
`--version'
`-V'
@@ -231,5 +287,16 @@ configuration-related scripts to be executed by `/bin/bash'.
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
+`--prefix=DIR'
+ Use DIR as the installation prefix. *Note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
+
diff --git a/libgda/Makefile.am b/libgda/Makefile.am
index 5207e34..4ef44d5 100644
--- a/libgda/Makefile.am
+++ b/libgda/Makefile.am
@@ -1,3 +1,5 @@
+QUIET_GEN = $(Q:@= echo ' GEN '$@;)
+
lib_LTLIBRARIES = libgda-4.0.la
SUBDIRS = sqlite handlers binreloc sql-parser providers-support
@@ -252,3 +254,103 @@ EXTRA_DIST = \
keywords.list
DISTCLEANFILES = .deps/*.P
+
+if HAVE_INTROSPECTION
+BUILT_GIRSOURCES =
+psupport = \
+ providers-support/gda-pstmt.h \
+ providers-support/gda-pstmt.c
+
+threadwrapper = \
+ thread-wrapper/gda-thread-wrapper.h \
+ thread-wrapper/gda-thread-wrapper.c
+
+sqlparser = \
+ sql-parser/gda-sql-parser.h \
+ sql-parser/gda-sql-statement.h \
+ sql-parser/gda-statement-struct-decl.h \
+ sql-parser/gda-statement-struct.h \
+ sql-parser/gda-statement-struct-compound.h \
+ sql-parser/gda-statement-struct-delete.h \
+ sql-parser/gda-statement-struct-update.h \
+ sql-parser/gda-statement-struct-insert.h \
+ sql-parser/gda-statement-struct-parts.h \
+ sql-parser/gda-statement-struct-pspec.h \
+ sql-parser/gda-statement-struct-select.h \
+ sql-parser/gda-statement-struct-trans.h \
+ sql-parser/gda-statement-struct-unknown.h \
+ sql-parser/gda-statement-struct-util.h \
+ sql-parser/gda-sql-parser.c \
+ sql-parser/gda-statement-struct.c \
+ sql-parser/gda-statement-struct-compound.c \
+ sql-parser/gda-statement-struct-delete.c \
+ sql-parser/gda-statement-struct-update.c \
+ sql-parser/gda-statement-struct-insert.c \
+ sql-parser/gda-statement-struct-parts.c \
+ sql-parser/gda-statement-struct-pspec.c \
+ sql-parser/gda-statement-struct-select.c \
+ sql-parser/gda-statement-struct-trans.c \
+ sql-parser/gda-statement-struct-unknown.c \
+ sql-parser/gda-statement-struct-util.c
+
+handlers = \
+ handlers/gda-handler-bin.h \
+ handlers/gda-handler-boolean.h \
+ handlers/gda-handler-numerical.h \
+ handlers/gda-handler-string.h \
+ handlers/gda-handler-time.h \
+ handlers/gda-handler-type.h \
+ handlers/gda-handler-bin.c \
+ handlers/gda-handler-boolean.c \
+ handlers/gda-handler-numerical.c \
+ handlers/gda-handler-string.c \
+ handlers/gda-handler-time.c \
+ handlers/gda-handler-type.c
+
+Gda- GDA_ABI_VERSION@.gir: $(INTROSPECTION_SCANNER) libgda- GDA_ABI_VERSION@.la
+ $(INTROSPECTION_SCANNER) -v \
+ --namespace Gda --nsversion= GDA_ABI_VERSION@ \
+ -I$(top_srcdir) -I$(top_srcdir)/libgda \
+ $(LIBGDA_CFLAGS) \
+ --add-include-path=providers-support \
+ --add-include-path=sql-parser \
+ --add-include-path=thread-wrapper \
+ --add-include-path=handlers \
+ --c-include='libgda/libgda.h' \
+ --include=GL-1.0 \
+ --include=GObject-2.0 \
+ --include=libxml2-2.0 \
+ --library=gda- GDA_ABI_VERSION@ \
+ $(INCLUDE_CFLAGS) \
+ --output $@ \
+ $(addprefix $(srcdir)/, $(gda_headers)) \
+ $(srcdir)/gda-types.h \
+ libgda.h \
+ $(addprefix $(srcdir)/, $(gda_sources)) \
+ $(addprefix $(srcdir)/, $(psupport)) \
+ $(addprefix $(srcdir)/, $(sqlparser)) \
+ sql-parser/gda-sql-parser-enum-types.c \
+ $(addprefix $(srcdir)/, $(threadwraper)) \
+ $(addprefix $(srcdir)/, $(handlers))
+
+BUILT_GIRSOURCES += Gda- GDA_ABI_VERSION@.gir
+
+endif
+
+girdir = $(datadir)/gir-1.0
+gir_DATA = $(BUILT_GIRSOURCES)
+
+typelibsdir = $(libdir)/girepository-1.0/
+
+typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+
+Gda- GDA_ABI_VERSION@.typelib: Gda- GDA_ABI_VERSION@.gir $(INTROSPECTION_COMPILER)
+ $(QUIET_GEN)$(DEBUG) $(INTROSPECTION_COMPILER) \
+ --includedir=$(srcdir) --includedir=. \
+ --includedir=$(srcdir)/providers-support \
+ --includedir=$(srcdir)/sql-parser \
+ --includedir=$(srcdir)/thread-wrapper \
+ --includedir=$(srcdir)/handlers \
+ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+
+CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
--
1.6.3.3
From d799f0e20cd49ad26aae7f80b84ba3b03fd76f99 Mon Sep 17 00:00:00 2001
From: Daniel Espinosa Ortiz <esodan esodan-laptop (none)>
Date: Thu, 25 Feb 2010 18:02:05 -0600
Subject: [PATCH 142/142] Initial GObject Introspection to GDA - Backported
Signed-off-by: Daniel Espinosa Ortiz <esodan esodan-laptop (none)>
---
configure.in | 5 +++++
libgda/gda-types.h | 2 ++
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/configure.in b/configure.in
index 21528a4..91e5aaa 100644
--- a/configure.in
+++ b/configure.in
@@ -278,6 +278,11 @@ fi
AC_SUBST(JSON_GLIB_CFLAGS)
AC_SUBST(JSON_GLIB_LIBS)
+dnl *********************************
+dnl Check for GObject Introspection
+dnl *********************************
+GOBJECT_INTROSPECTION_CHECK([0.6.5])
+
dnl ******************************
dnl gtk-doc
dnl ******************************
diff --git a/libgda/gda-types.h b/libgda/gda-types.h
index 7c7863f..1580212 100644
--- a/libgda/gda-types.h
+++ b/libgda/gda-types.h
@@ -26,10 +26,12 @@ G_BEGIN_DECLS
/* Boxed type for GError will not be done in GLib see bug #300610 */
#define GDA_TYPE_ERROR (_gda_error_get_type())
+typedef GError GdaError;
GType _gda_error_get_type (void) G_GNUC_CONST;
/* Pointer type for GSList (not a boxed type!) */
#define GDA_TYPE_SLIST (_gda_slist_get_type())
+typedef GSList GdaSList;
GType _gda_slist_get_type (void) G_GNUC_CONST;
/* Pointer type for GdaMetaContext (not a boxed type!) */
--
1.6.3.3
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]