[egg-list-box/wip/libgd-like] Convert the build system to be similar to libgd
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [egg-list-box/wip/libgd-like] Convert the build system to be similar to libgd
- Date: Sat, 8 Jun 2013 17:18:34 +0000 (UTC)
commit 5d6d8bff3416bb531f6bdd3a5c85be4cc2dc2fb4
Author: Giovanni Campagna <gcampagna src gnome org>
Date: Wed Mar 20 18:19:51 2013 +0100
Convert the build system to be similar to libgd
Provide a EGG_LIST_BOX_INIT() macro similar to LIBGD_INIT, and stop
using recursive configure, relying instead on the parent project
to run automake and configure in the subdirectory.
This way we can pass options down to the submodule, and the pkgdatadir /
pkglibdir directories are picked correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=681224
Makefile.am | 51 ++++++++++++++++++++++++++++++------------------
configure.ac | 30 ----------------------------
egg-list-box.m4 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 90 insertions(+), 49 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 282ff54..c2d4142 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,31 +1,35 @@
NULL =
+MAINTAINERCLEANFILES =
+noinst_DATA =
AM_CPPFLAGS = \
-include config.h \
- $(LISTBOX_CFLAGS) \
+ -DG_LOG_DOMAIN=\"EggListBox\" \
+ $(EGG_LIST_BOX_CFLAGS) \
$(NULL)
AM_VALAFLAGS = \
- @LISTBOX_PACKAGES@ \
+ --pkg gtk+-3.0 \
--vapidir=. \
$(NULL)
-noinst_LTLIBRARIES = \
- libegglistbox.la \
- libeggflowbox.la \
- $(NULL)
+if EGG_LIST_BOX_STATIC
+noinst_LTLIBRARIES = libegglistbox.la libeggfloxbox.la
+else
+pkglib_LTLIBRARIES = libegglistbox.la libeggflowbox.la
+endif
libegglistbox_la_SOURCES = \
egg-list-box.c egg-list-box.h \
egg-list-box-accessible.c egg-list-box-accessible.h
-libegglistbox_la_LIBADD = $(LISTBOX_LIBS)
+libegglistbox_la_LIBADD = $(EGG_LIST_BOX_LIBS)
libeggflowbox_la_SOURCES = \
egg-flow-box.c egg-flow-box.h \
egg-flow-box-accessible.c egg-flow-box-accessible.h
-libeggflowbox_la_LIBADD = $(LISTBOX_LIBS)
+libeggflowbox_la_LIBADD = $(EGG_LIST_BOX_LIBS)
noinst_PROGRAMS = test-list test-scrolled test-focus test-sel test-flow-box
@@ -34,7 +38,7 @@ test_sel_SOURCES = \
$(NULL)
test_sel_LDADD = \
- $(LISTBOX_LIBS) \
+ $(EGG_LIST_BOX_LIBS) \
libegglistbox.la \
$(NULL)
@@ -43,7 +47,7 @@ test_list_SOURCES = \
$(NULL)
test_list_LDADD = \
- $(LISTBOX_LIBS) \
+ $(EGG_LIST_BOX_LIBS) \
libegglistbox.la \
$(NULL)
@@ -71,7 +75,7 @@ test_focus_SOURCES = \
$(NULL)
test_focus_LDADD = \
- $(LISTBOX_LIBS) \
+ $(EGG_LIST_BOX_LIBS) \
libegglistbox.la \
$(NULL)
@@ -80,7 +84,7 @@ test_flow_box_SOURCES = \
$(NULL)
test_flow_box_LDADD = \
- $(LISTBOX_LIBS) \
+ $(EGG_LIST_BOX_LIBS) \
libeggflowbox.la \
$(NULL)
@@ -92,30 +96,39 @@ CLEANFILES = \
EXTRA_DIST = \
$(NULL)
+if EGG_LIST_BOX_GIR
include $(INTROSPECTION_MAKEFILE)
INTROSPECTION_GIRS =
INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --warn-all
INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
-if HAVE_INTROSPECTION
-
Egg-1.0.gir: libegglistbox.la Makefile
Egg_1_0_gir_NAMESPACE = Egg
Egg_1_0_gir_VERSION = 1.0
Egg_1_0_gir_LIBS = libegglistbox.la libeggflowbox.la
-Egg_1_0_gir_CFLAGS = $(LISTBOX_CFLAGS)
+Egg_1_0_gir_CFLAGS = $(EGG_LIST_BOX_CFLAGS)
Egg_1_0_gir_SCANNERFLAGS = \
--warn-all \
--symbol-prefix=egg \
--identifier-prefix=Egg \
$(NULL)
-Egg_1_0_gir_INCLUDES = GObject-2.0 Gtk-3.0
+Egg_1_0_gir_INCLUDES = $(EGG_LIST_BOX_GIR_INCLUDES)
Egg_1_0_gir_FILES = $(libegglistbox_la_SOURCES) $(libeggflowbox_la_SOURCES)
INTROSPECTION_GIRS += Egg-1.0.gir
-noinst_DATA = $(INTROSPECTION_GIRS)
+if EGG_LIST_BOX_STATIC
+noinst_DATA += $(srcdir)/Egg-1.0.gir
+EXTRA_DIST += $(srcdir)/Egg-1.0.gir
+MAINTAINERCLEANFILES += $(srcdir)/Egg-1.0.gir
+else
+girdir= $(pkgdatadir)/gir-1.0
+typelibdir= $(pkglibdir)/girepository-1.0
-CLEANFILES += $(gir_DATA) $(typelib_DATA)
-DISTCLEANFILES = $(builddir)/Egg-1.0.gir
+gir_DATA = $(INTROSPECTION_GIRS)
+typelib_DATA = $(gir_DATA:.gir=.typelib)
+CLEANFILES += $(gir_DATA) $(typelib_DATA)
endif
+endif
+
+
diff --git a/egg-list-box.m4 b/egg-list-box.m4
new file mode 100644
index 0000000..ba45b49
--- /dev/null
+++ b/egg-list-box.m4
@@ -0,0 +1,58 @@
+dnl The option stuff below is based on the similar code from libgd
+
+# _EGG_LIST_BOX_MANGLE_OPTION(NAME)
+# -------------------------
+# Convert NAME to a valid m4 identifier, by replacing invalid characters
+# with underscores, and prepend the _EGG_LIST_BOX_OPTION_ suffix to it.
+AC_DEFUN([_EGG_LIST_BOX_MANGLE_OPTION],
+[[_EGG_LIST_BOX_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _EGG_LIST_BOX_SET_OPTION(NAME)
+# ----------------------
+# Set option NAME. If NAME begins with a digit, treat it as a requested
+# Guile version number, and define _EGG_LIST_BOX_GUILE_VERSION to that number.
+# Otherwise, define the option using _EGG_LIST_BOX_MANGLE_OPTION.
+AC_DEFUN([_EGG_LIST_BOX_SET_OPTION],
+[m4_define(_EGG_LIST_BOX_MANGLE_OPTION([$1]), 1)])
+
+# _EGG_LIST_BOX_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of libgd options.
+AC_DEFUN([_EGG_LIST_BOX_SET_OPTIONS],
+[m4_foreach_w([_EGG_LIST_BOX_Option], [$1], [_EGG_LIST_BOX_SET_OPTION(_EGG_LIST_BOX_Option)])])
+
+# _EGG_LIST_BOX_IF_OPTION_SET(NAME,IF-SET,IF-NOT-SET)
+# -------------------------------------------
+# Check if option NAME is set.
+AC_DEFUN([_EGG_LIST_BOX_IF_OPTION_SET],
+[m4_ifset(_EGG_LIST_BOX_MANGLE_OPTION([$1]),[$2],[$3])])
+
+dnl EGG_LIST_BOX_INIT([OPTIONS], [DIR])
+dnl ----------------------------
+dnl OPTIONS A whitespace-seperated list of options.
+dnl DIR egg-list-box submodule directory (defaults to 'egg-list-box')
+AC_DEFUN([EGG_LIST_BOX_INIT], [
+ _EGG_LIST_BOX_SET_OPTIONS([$1])
+ AC_SUBST([EGG_LIST_BOX_MODULE_DIR],[m4_if([$2],,[egg-list-box],[$2])])
+
+ AC_REQUIRE([LT_INIT])
+ AC_REQUIRE([AC_CHECK_LIBM])
+ AC_REQUIRE([AM_PROG_VALAC])
+ AC_SUBST(LIBM)
+ EGG_LIST_BOX_MODULES="gtk+-3.0 >= 3.7.6
+ glib-2.0 >= 2.31.10"
+ EGG_LIST_BOX_GIR_INCLUDES="Gtk-3.0"
+ EGG_LIST_BOX_SOURCES=""
+
+ AM_CONDITIONAL([EGG_LIST_BOX_STATIC],[_EGG_LIST_BOX_IF_OPTION_SET([static],[true],[false])])
+
+ # gir: gobject introspection support
+ AM_CONDITIONAL([EGG_LIST_BOX_GIR],[ _EGG_LIST_BOX_IF_OPTION_SET([gir],[true],[false])])
+ _EGG_LIST_BOX_IF_OPTION_SET([gir],[
+ GOBJECT_INTROSPECTION_REQUIRE([0.9.6])
+ ])
+
+ PKG_CHECK_MODULES(EGG_LIST_BOX, [ $EGG_LIST_BOX_MODULES ])
+ AC_SUBST(EGG_LIST_BOX_GIR_INCLUDES)
+ AC_SUBST(EGG_LIST_BOX_SOURCES)
+])
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]