[glibmm/gmmproc-refactor] Temporarily override build system.
- From: Krzesimir Nowak <krnowak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glibmm/gmmproc-refactor] Temporarily override build system.
- Date: Wed, 6 Jun 2012 07:12:47 +0000 (UTC)
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]