diff options
author | Dan Nicholson <dbn.lists@gmail.com> | 2012-03-22 14:51:30 -0700 |
---|---|---|
committer | Dan Nicholson <dbn.lists@gmail.com> | 2012-04-21 12:46:32 -0700 |
commit | c74da521af566bc208ff9a2da3e43634817f73d5 (patch) | |
tree | 1a0007aa2533b1c7b51cdff5647bbe3e29711342 | |
parent | 75755ba614e2b7f014fe33c619867b58a9c55598 (diff) |
Use a bundled glib2 to avoid circular dependency
It's nice to say that glib is a base library and you should have it
installed to build pkg-config, but it makes bootstrapping pkg-config
really annoying since it introduces a circular dependency.
Let's be nice to our users and bundle a copy to avoid this situation.
The default is still to use the system's glib, but the internal copy
can be used by passing --with-internal-glib to configure. The latest
stable copy of glib is included and will be updated periodically with
their stable releases.
The top level autogen.sh is running recursively through glib. If this
becomes an issue, we can switch autoreconf to --no-recursive and then
descend to glib and run its autogen.sh script.
Since this is default off, its integration will probably not be tested
often. Therefore, it's forcefully turned on during distcheck to make
sure to test it out before distributing a tarball.
-rw-r--r-- | Makefile.am | 6 | ||||
-rw-r--r-- | configure.ac | 27 |
2 files changed, 26 insertions, 7 deletions
diff --git a/Makefile.am b/Makefile.am index 49c047b..082b03d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,9 @@ pkg_config_LDADD=@GLIB_LIBS@ +if INTERNAL_GLIB +GLIB_SUBDIR = glib +endif + if USE_INSTALLED_POPT pkg_config_LDADD += $(POPT_LIBS) else @@ -43,4 +47,4 @@ pkg_config_SOURCES= \ parse.h \ parse.c \ main.c -DISTCHECK_CONFIGURE_FLAGS = --with-installed-popt
\ No newline at end of file +DISTCHECK_CONFIGURE_FLAGS = --with-installed-popt --with-internal-glib diff --git a/configure.ac b/configure.ac index b0faf63..b730834 100644 --- a/configure.ac +++ b/configure.ac @@ -117,14 +117,29 @@ esac AC_MSG_RESULT([$native_win32]) AM_CONDITIONAL(NATIVE_WIN32, [test "x$native_win32" = xyes]) -if test "x$GLIB_CFLAGS" = "x" && test "x$GLIB_LIBS" = "x"; then - AC_CHECK_PROGS([PKG_CONFIG], [pkg-config], []) - if test -n $PKG_CONFIG && $PKG_CONFIG --exists glib-2.0; then +AC_ARG_WITH([internal-glib], + [AS_HELP_STRING([--with-internal-glib], [use internal glib])], + [with_internal_glib="$withval"], + [with_internal_glib=no]) +AM_CONDITIONAL([INTERNAL_GLIB], [test "x$with_internal_glib" = xyes]) +if test "x$with_internal_glib" = xyes; then + GLIB_CFLAGS='-I$(top_srcdir)/glib -I$(top_srcdir)/glib/glib \ + -I$(top_builddir)/glib/glib' + GLIB_LIBS='$(top_builddir)/glib/glib/libglib-2.0.la' + AC_CONFIG_SUBDIRS([glib]) +else + if test "x$GLIB_CFLAGS" = "x" && test "x$GLIB_LIBS" = "x"; then + AC_CHECK_PROGS([PKG_CONFIG], [pkg-config], []) + if test -n $PKG_CONFIG && $PKG_CONFIG --exists glib-2.0; then GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0` GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0` - else - AC_MSG_ERROR([pkg-config and glib-2.0 not found, please set GLIB_CFLAGS and GLIB_LIBS to the correct values]) - fi + else + AC_MSG_ERROR(m4_normalize([pkg-config and glib-2.0 not found, please set + GLIB_CFLAGS and GLIB_LIBS to the correct + values or pass --with-internal-glib to + configure])) + fi + fi fi AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_CFLAGS) |