[glibmm/gmmproc-refactor] Temporarily override build system.



commit 6fc194bf4da4c68ad0733dd8644bcdcf111dfaa9
Author: Krzesimir Nowak <qdlacz gmail com>
Date:   Wed Jun 6 04:33:58 2012 +0200

    Temporarily override build system.
    
    For now it will only build a gmmproc test.

 Makefile.am              |   59 +---------------------
 Makefile.am.proper       |   58 +++++++++++++++++++++
 configure.ac             |   49 +++++++++++-------
 tools/Makefile.am        |  124 ++++++++++++++++++++++++++-------------------
 tools/Makefile.am.proper |   66 ++++++++++++++++++++++++
 5 files changed, 228 insertions(+), 128 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 1a058b1..457ca0c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,58 +1,3 @@
-## Copyright (c) 2009  Openismus GmbH  <http://www.openismus.com/>
-##
-## This file is part of glibmm.
-##
-## glibmm is free software: you can redistribute it and/or modify it
-## under the terms of the GNU Lesser General Public License as published
-## by the Free Software Foundation, either version 2.1 of the License,
-## or (at your option) any later version.
-##
-## glibmm is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-## See the GNU Lesser General Public License for more details.
-##
-## You should have received a copy of the GNU Lesser General Public License
-## along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ACLOCAL_AMFLAGS = -I build ${ACLOCAL_FLAGS}
 
-ACLOCAL_AMFLAGS	= -I build ${ACLOCAL_FLAGS}
-DISTCHECK_CONFIGURE_FLAGS = --enable-warnings=fatal
-
-if MAINTAINER_MODE
-src_subdirs = glib/src gio/src
-else
-src_subdirs =
-endif
-if ENABLE_DOCUMENTATION
-doc_subdirs = docs
-else
-doc_subdirs =
-endif
-SUBDIRS = tools $(src_subdirs) glib/glibmm gio/giomm tests examples $(doc_subdirs)
-
-glibmm_includedir = $(includedir)/$(GLIBMM_MODULE_NAME)
-glibmm_include_HEADERS = glib/glibmm.h
-glibmm_libincludedir = $(libdir)/$(GLIBMM_MODULE_NAME)/include
-nodist_glibmm_libinclude_HEADERS = glib/glibmmconfig.h
-
-giomm_includedir = $(includedir)/$(GIOMM_MODULE_NAME)
-giomm_include_HEADERS = gio/giomm.h
-giomm_libincludedir = $(libdir)/$(GIOMM_MODULE_NAME)/include
-nodist_giomm_libinclude_HEADERS = gio/giommconfig.h
-
-pkgconfigdir = $(libdir)/pkgconfig
-nodist_pkgconfig_DATA = glib/$(GLIBMM_MODULE_NAME).pc gio/$(GIOMM_MODULE_NAME).pc
-
-include $(srcdir)/MSVC_Net2005/filelist.am
-include $(srcdir)/MSVC_Net2008/filelist.am
-include $(srcdir)/MSVC_Net2010/filelist.am
-
-text_files = COPYING.tools README.SUN README.win32
-msvc_files = $(addprefix MSVC_Net2005/,$(msvc_net2005_data)) \
-             $(addprefix MSVC_Net2008/,$(msvc_net2008_data)) \
-             $(addprefix MSVC_Net2010/,$(msvc_net2010_data))
-
-dist_noinst_DATA = $(text_files) $(msvc_files)
-dist_noinst_SCRIPTS = autogen.sh
-
-DISTCLEANFILES = $(filter %mmconfig.h,$(msvc_files))
+SUBDIRS = tools
diff --git a/Makefile.am.proper b/Makefile.am.proper
new file mode 100644
index 0000000..1a058b1
--- /dev/null
+++ b/Makefile.am.proper
@@ -0,0 +1,58 @@
+## Copyright (c) 2009  Openismus GmbH  <http://www.openismus.com/>
+##
+## This file is part of glibmm.
+##
+## glibmm is free software: you can redistribute it and/or modify it
+## under the terms of the GNU Lesser General Public License as published
+## by the Free Software Foundation, either version 2.1 of the License,
+## or (at your option) any later version.
+##
+## glibmm is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+## See the GNU Lesser General Public License for more details.
+##
+## You should have received a copy of the GNU Lesser General Public License
+## along with this library.  If not, see <http://www.gnu.org/licenses/>.
+
+ACLOCAL_AMFLAGS	= -I build ${ACLOCAL_FLAGS}
+DISTCHECK_CONFIGURE_FLAGS = --enable-warnings=fatal
+
+if MAINTAINER_MODE
+src_subdirs = glib/src gio/src
+else
+src_subdirs =
+endif
+if ENABLE_DOCUMENTATION
+doc_subdirs = docs
+else
+doc_subdirs =
+endif
+SUBDIRS = tools $(src_subdirs) glib/glibmm gio/giomm tests examples $(doc_subdirs)
+
+glibmm_includedir = $(includedir)/$(GLIBMM_MODULE_NAME)
+glibmm_include_HEADERS = glib/glibmm.h
+glibmm_libincludedir = $(libdir)/$(GLIBMM_MODULE_NAME)/include
+nodist_glibmm_libinclude_HEADERS = glib/glibmmconfig.h
+
+giomm_includedir = $(includedir)/$(GIOMM_MODULE_NAME)
+giomm_include_HEADERS = gio/giomm.h
+giomm_libincludedir = $(libdir)/$(GIOMM_MODULE_NAME)/include
+nodist_giomm_libinclude_HEADERS = gio/giommconfig.h
+
+pkgconfigdir = $(libdir)/pkgconfig
+nodist_pkgconfig_DATA = glib/$(GLIBMM_MODULE_NAME).pc gio/$(GIOMM_MODULE_NAME).pc
+
+include $(srcdir)/MSVC_Net2005/filelist.am
+include $(srcdir)/MSVC_Net2008/filelist.am
+include $(srcdir)/MSVC_Net2010/filelist.am
+
+text_files = COPYING.tools README.SUN README.win32
+msvc_files = $(addprefix MSVC_Net2005/,$(msvc_net2005_data)) \
+             $(addprefix MSVC_Net2008/,$(msvc_net2008_data)) \
+             $(addprefix MSVC_Net2010/,$(msvc_net2010_data))
+
+dist_noinst_DATA = $(text_files) $(msvc_files)
+dist_noinst_SCRIPTS = autogen.sh
+
+DISTCLEANFILES = $(filter %mmconfig.h,$(msvc_files))
diff --git a/configure.ac b/configure.ac
index 99934e7..c4552d9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -42,6 +42,7 @@ MM_CONFIG_DOCTOOL_DIR([docs])
 # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
 AC_SUBST([LIBGLIBMM_SO_VERSION], [4:0:3])
 
+AC_PROG_CC
 AC_PROG_CXX
 AC_DISABLE_STATIC
 LT_INIT([win32-dll])
@@ -62,12 +63,14 @@ AS_IF([test "x$enable_static" = xyes],
 
 glibreq='2.0 >= 2.29.8'
 
+GM_MODULES="glib-$glibreq gobject-$glibreq"
 GLIBMM_MODULES="sigc++-2.0 >= 2.0.10 glib-$glibreq gobject-$glibreq gmodule-$glibreq"
 GIOMM_MODULES="$GLIBMM_MODULES gio-$glibreq"
 test "x$glibmm_host_windows" = xyes || GIOMM_MODULES="$GIOMM_MODULES gio-unix-$glibreq"
 
 PKG_CHECK_MODULES([GLIBMM], [$GLIBMM_MODULES])
 PKG_CHECK_MODULES([GIOMM],  [$GIOMM_MODULES])
+PKG_CHECK_MODULES([GM],     [$GM_MODULES])
 
 MM_PKG_CONFIG_SUBST([GTHREAD_CFLAGS], [--cflags-only-other gthread-2.0])
 MM_PKG_CONFIG_SUBST([GTHREAD_LIBS], [--libs gthread-2.0])
@@ -131,29 +134,37 @@ AC_DEFINE([GLIBMM_PROPERTIES_ENABLED],[1], [This is always set. This is only for
 AC_DEFINE([GLIBMM_VFUNCS_ENABLED],[1], [This is always set. This is only for backwards compatibility.])
 AC_DEFINE([GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED],[1], [This is always set. This is only for backwards compatibility.])
 
+GOBJECT_INTROSPECTION_CHECK([0.10.1])
+
 AC_CONFIG_FILES([Makefile
                  tools/Makefile
                  tools/gmmproc
-                 tools/generate_wrap_init.pl
                  tools/pm/Gir/Config.pm
-                 glib/${GLIBMM_MODULE_NAME}.pc:glib/glibmm.pc.in
-                 glib/${GLIBMM_MODULE_NAME}-uninstalled.pc:glib/glibmm-uninstalled.pc.in
-                 glib/src/Makefile
-                 glib/glibmm/Makefile
-                 gio/${GIOMM_MODULE_NAME}.pc:gio/giomm.pc.in
-                 gio/${GIOMM_MODULE_NAME}-uninstalled.pc:gio/giomm-uninstalled.pc.in
-                 gio/src/Makefile
-                 gio/giomm/Makefile
-                 tests/Makefile
-                 examples/Makefile
-                 docs/Makefile
-                 docs/reference/Doxyfile
-                 MSVC_Net2005/glibmm/glibmm.rc
-                 MSVC_Net2005/giomm/giomm.rc
-                 MSVC_Net2008/glibmm/glibmm.rc
-                 MSVC_Net2008/giomm/giomm.rc
-                 MSVC_Net2010/glibmm/glibmm.rc
-                 MSVC_Net2010/giomm/giomm.rc])
+                 tools/pm/tests/Gir/Config.pm])
+
+#AC_CONFIG_FILES([Makefile
+#                 tools/Makefile
+#                 tools/gmmproc
+#                 tools/generate_wrap_init.pl
+#                 tools/pm/Gir/Config.pm
+#                 glib/${GLIBMM_MODULE_NAME}.pc:glib/glibmm.pc.in
+#                 glib/${GLIBMM_MODULE_NAME}-uninstalled.pc:glib/glibmm-uninstalled.pc.in
+#                 glib/src/Makefile
+#                 glib/glibmm/Makefile
+#                 gio/${GIOMM_MODULE_NAME}.pc:gio/giomm.pc.in
+#                 gio/${GIOMM_MODULE_NAME}-uninstalled.pc:gio/giomm-uninstalled.pc.in
+#                 gio/src/Makefile
+#                 gio/giomm/Makefile
+#                 tests/Makefile
+#                 examples/Makefile
+#                 docs/Makefile
+#                 docs/reference/Doxyfile
+#                 MSVC_Net2005/glibmm/glibmm.rc
+#                 MSVC_Net2005/giomm/giomm.rc
+#                 MSVC_Net2008/glibmm/glibmm.rc
+#                 MSVC_Net2008/giomm/giomm.rc
+#                 MSVC_Net2010/glibmm/glibmm.rc
+#                 MSVC_Net2010/giomm/giomm.rc])
 
 # Copy the generated configuration headers into the MSVC project directories.
 AC_CONFIG_COMMANDS([MSVC_Net2005/glibmm/glibmmconfig.h],
diff --git a/tools/Makefile.am b/tools/Makefile.am
index d5d0dc4..228872e 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -1,66 +1,86 @@
-## Copyright (c) 2009  Openismus GmbH  <http://www.openismus.com/>
-##
-## This file is part of glibmm.
-##
-## glibmm is free software: you can redistribute it and/or modify it
-## under the terms of the GNU Lesser General Public License as published
-## by the Free Software Foundation, either version 2.1 of the License,
-## or (at your option) any later version.
-##
-## glibmm is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-## See the GNU Lesser General Public License for more details.
-##
-## You should have received a copy of the GNU Lesser General Public License
-## along with this library.  If not, see <http://www.gnu.org/licenses/>.
-
 AUTOMAKE_OPTIONS = subdir-objects
 
-include $(srcdir)/m4/filelist.am
-include $(srcdir)/pm/filelist.am
+-include $(INTROSPECTION_MAKEFILE)
+INTROSPECTION_SCANNER_ARGS = \
+  --warn-all
+INTROSPECTION_COMPILER_ARGS = \
+  --includedir=$(srcdir)
+
+c_lib = \
+  pm/tests/libgm/gm/libgm.la
+
+c_files = \
+  pm/tests/libgm/gm/gm-obj.c \
+  pm/tests/libgm/gm/gm-obj.h \
+  pm/tests/libgm/gm/gm-other.c \
+  pm/tests/libgm/gm/gm-other.h
+
+cxx_lib = \
+  pm/tests/libgmmm/gm/gmmm/libgmmm.la
 
-# TODO: All these Perl scripts and M4 files are architecture-independent
-# and should probably go somewhere below $(pkgdatadir) instead.
-gmmproc_bindir = $(libdir)/$(GLIBMM_MODULE_NAME)/proc
-gmmproc_m4dir  = $(gmmproc_bindir)/m4
-gmmproc_pmdir  = $(gmmproc_bindir)/pm
+cxx_files = \
+  pm/tests/libgmmm/gm/gmmm/obj.cc \
+  pm/tests/libgmmm/gm/gmmm/obj.h \
+  pm/tests/libgmmm/gm/gmmm/other.cc \
+  pm/tests/libgmmm/gm/gmmm/other.h
 
-gmmproc_bin_SCRIPTS  = gmmproc generate_wrap_init.pl
-dist_gmmproc_m4_DATA = $(files_codegen_m4:%=m4/%)
-dist_gmmproc_pm_DATA = $(files_codegen_pm:%=pm/%)
+cxx_templates = \
+  pm/tests/libgmmm/gm/src/obj.ccg \
+  pm/tests/libgmmm/gm/src/obj.hg \
+  pm/tests/libgmmm/gm/src/other.ccg \
+  pm/tests/libgmmm/gm/src/other.hg
 
-dist_noinst_DATA    = README TODO
-dist_noinst_SCRIPTS = enum.pl
+cxx_gm_templates = \
+  obj \
+  other
 
-noinst_PROGRAMS = extra_defs_gen/generate_defs_glib extra_defs_gen/generate_defs_gio
-lib_LTLIBRARIES = extra_defs_gen/libglibmm_generate_extra_defs-2.4.la
+gir_file = pm/tests/libgm/gm/Gm-1.0.gir
+proc_stamp_file = pm/tests/libgmmm/proc/.proc-stamp
 
-extradefs_includedir      = $(includedir)/$(GLIBMM_MODULE_NAME)/glibmm_generate_extra_defs
-extradefs_include_HEADERS = extra_defs_gen/generate_extra_defs.h
+noinst_LTLIBRARIES = $(c_lib) $(cxx_lib)
 
-extradefs_ldflags = -no-undefined -version-info $(LIBGLIBMM_SO_VERSION)
+pm_tests_libgm_gm_libgm_la_SOURCES = \
+  $(c_files)
+pm_tests_libgm_gm_libgm_la_LIBADD = \
+  $(GM_LIBS)
+pm_tests_libgm_gm_libgm_la_CPPFLAGS = \
+  $(GM_CFLAGS)
+pm_tests_libgm_gm_libgm_la_CFLAGS = \
+  $(GLIBMM_WXXFLAGS)
 
-extra_defs_gen_libglibmm_generate_extra_defs_2_4_la_SOURCES = extra_defs_gen/generate_extra_defs.cc
-extra_defs_gen_libglibmm_generate_extra_defs_2_4_la_LDFLAGS = $(extradefs_ldflags)
-extra_defs_gen_libglibmm_generate_extra_defs_2_4_la_LIBADD  = $(GLIBMM_LIBS)
+$(gir_file): $(INTROSPECTION_SCANNER) $(c_lib)
+pm_tests_libgm_gm_Gm_1_0_gir_SCANNERFLAGS =
+pm_tests_libgm_gm_Gm_1_0_gir_INCLUDES = \
+  GObject-2.0
+pm_tests_libgm_gm_Gm_1_0_gir_CFLAGS = \
+  -I$(srcdir)
+pm_tests_libgm_gm_Gm_1_0_gir_LIBS = \
+  $(c_lib)
+pm_tests_libgm_gm_Gm_1_0_gir_FILES = \
+  $(c_files)
+pm_tests_libgm_gm_Gm_1_0_gir_EXPORT_PACKAGES = \
+  gm-1.0
+INTROSPECTION_GIRS = $(gir_file)
 
-extra_defs_gen_generate_defs_glib_SOURCES = extra_defs_gen/generate_defs_glib.cc
-extra_defs_gen_generate_defs_glib_LDADD   = $(GLIBMM_LIBS) $(lib_LTLIBRARIES)
+pm_tests_libgmmm_gm_gmmm_libgmmm_la_SOURCES = \
+  $(cxx_files)
+pm_tests_libgmmm_gm_gmmm_libgmmm_la_CPPFLAGS = \
+  -I$(srcdir)/pm/tests/libgm \
+  -I$(builddir)/pm/tests/libgmmm/gm \
+  `pkg-config --cflags glibmm-2.4`
+pm_tests_libgmmm_gm_gmmm_libgmmm_la_CXXFLAGS = \
+  $(GLIBMM_WXXFLAGS)
 
-extra_defs_gen_generate_defs_gio_SOURCES = extra_defs_gen/generate_defs_gio.cc
-extra_defs_gen_generate_defs_gio_LDADD   = $(GIOMM_LIBS) $(lib_LTLIBRARIES)
+$(cxx_files): $(proc_stamp_file)
 
-AM_CPPFLAGS = -I$(top_builddir) $(GTHREAD_CFLAGS) $(GIOMM_CFLAGS)
-AM_CXXFLAGS = $(GLIBMM_WXXFLAGS)
+inc1 = @abs_top_srcdir@/tools/pm/tests
+inc2 = @abs_top_srcdir@/tools/pm
+source = @abs_top_srcdir@/tools/pm/tests/libgmmm/gm/src
+dest = @abs_top_builddir@/tools/pm/tests/libgmmm/gm/gmmm
+gmminc = @abs_top_srcdir@/tools/pm/tests/libgmmm/proc
 
-EXTRA_DIST = defs_gen/definitions.py \
-  defs_gen/defsparser.py \
-  defs_gen/h2def.py \
-  defs_gen/scmexpr.py \
-  defs_gen/docextract.py \
-  defs_gen/docextract_to_xml.py
+$(proc_stamp_file): $(gir_file) $(cxx_templates) gmmproc
+	perl -I$(inc1) -I$(inc2) ./gmmproc --source $(source) --destination $(dest) --gir Gm-1.0.gir --mm-module gmmm --include $(gmminc) $(cxx_gm_templates)
+	touch $(proc_stamp_file)
 
-# Instruct GNU make to delete the targets of a rule after it failed, in
-# order to avoid the complication of handling that situation manually.
-.DELETE_ON_ERROR:
+CLEANFILES = $(cxx_files) $(gir_file) $(proc_stamp_file)
diff --git a/tools/Makefile.am.proper b/tools/Makefile.am.proper
new file mode 100644
index 0000000..d5d0dc4
--- /dev/null
+++ b/tools/Makefile.am.proper
@@ -0,0 +1,66 @@
+## Copyright (c) 2009  Openismus GmbH  <http://www.openismus.com/>
+##
+## This file is part of glibmm.
+##
+## glibmm is free software: you can redistribute it and/or modify it
+## under the terms of the GNU Lesser General Public License as published
+## by the Free Software Foundation, either version 2.1 of the License,
+## or (at your option) any later version.
+##
+## glibmm is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+## See the GNU Lesser General Public License for more details.
+##
+## You should have received a copy of the GNU Lesser General Public License
+## along with this library.  If not, see <http://www.gnu.org/licenses/>.
+
+AUTOMAKE_OPTIONS = subdir-objects
+
+include $(srcdir)/m4/filelist.am
+include $(srcdir)/pm/filelist.am
+
+# TODO: All these Perl scripts and M4 files are architecture-independent
+# and should probably go somewhere below $(pkgdatadir) instead.
+gmmproc_bindir = $(libdir)/$(GLIBMM_MODULE_NAME)/proc
+gmmproc_m4dir  = $(gmmproc_bindir)/m4
+gmmproc_pmdir  = $(gmmproc_bindir)/pm
+
+gmmproc_bin_SCRIPTS  = gmmproc generate_wrap_init.pl
+dist_gmmproc_m4_DATA = $(files_codegen_m4:%=m4/%)
+dist_gmmproc_pm_DATA = $(files_codegen_pm:%=pm/%)
+
+dist_noinst_DATA    = README TODO
+dist_noinst_SCRIPTS = enum.pl
+
+noinst_PROGRAMS = extra_defs_gen/generate_defs_glib extra_defs_gen/generate_defs_gio
+lib_LTLIBRARIES = extra_defs_gen/libglibmm_generate_extra_defs-2.4.la
+
+extradefs_includedir      = $(includedir)/$(GLIBMM_MODULE_NAME)/glibmm_generate_extra_defs
+extradefs_include_HEADERS = extra_defs_gen/generate_extra_defs.h
+
+extradefs_ldflags = -no-undefined -version-info $(LIBGLIBMM_SO_VERSION)
+
+extra_defs_gen_libglibmm_generate_extra_defs_2_4_la_SOURCES = extra_defs_gen/generate_extra_defs.cc
+extra_defs_gen_libglibmm_generate_extra_defs_2_4_la_LDFLAGS = $(extradefs_ldflags)
+extra_defs_gen_libglibmm_generate_extra_defs_2_4_la_LIBADD  = $(GLIBMM_LIBS)
+
+extra_defs_gen_generate_defs_glib_SOURCES = extra_defs_gen/generate_defs_glib.cc
+extra_defs_gen_generate_defs_glib_LDADD   = $(GLIBMM_LIBS) $(lib_LTLIBRARIES)
+
+extra_defs_gen_generate_defs_gio_SOURCES = extra_defs_gen/generate_defs_gio.cc
+extra_defs_gen_generate_defs_gio_LDADD   = $(GIOMM_LIBS) $(lib_LTLIBRARIES)
+
+AM_CPPFLAGS = -I$(top_builddir) $(GTHREAD_CFLAGS) $(GIOMM_CFLAGS)
+AM_CXXFLAGS = $(GLIBMM_WXXFLAGS)
+
+EXTRA_DIST = defs_gen/definitions.py \
+  defs_gen/defsparser.py \
+  defs_gen/h2def.py \
+  defs_gen/scmexpr.py \
+  defs_gen/docextract.py \
+  defs_gen/docextract_to_xml.py
+
+# Instruct GNU make to delete the targets of a rule after it failed, in
+# order to avoid the complication of handling that situation manually.
+.DELETE_ON_ERROR:



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]