[gtkmm] Convert main source directories to mm-common



commit 45cce2f2a60ad0495c7cf4bdcd089ef9fe63b981
Author: Daniel Elstner <danielk openismus com>
Date:   Wed Aug 12 19:07:10 2009 +0200

    Convert main source directories to mm-common
    
    * configure.ac: Get rid of some more cruft we no longer need.
    (DISABLE_DEPRECATED_API): Add Automake conditional.
    (AC_CONFIG_FILES): Remove tools/{m4,extra_defs_gen}/Makefile and
    {atk,gdk,gtk}/{atk,gdk,gtk}mm/private/Makefile.
    * tools/Makefile.am: Non-recursively build the contents of all
    subdirectories.
    * tools/m4/filelist.am: Overhaul for new build system and rename
    file from Makefile_list_of_sources.am_fragment to filelist.am.
    * tools/Makefile_list_of_sources.am_fragment: Delete file.
    * tools/extra_defs_gen/Makefile.am: Delete recursive Makefile.
    * tools/m4/Makefile.am: ditto.
    * tools/README, tools/TODO: Delete unhelpful and obsolete files.
    * {atk,gdk,gtk}/src/filelist.am: Adapt file lists to new mm-common
    build organization and rename from Makefile_list_of_hg.am_fragment
    to filelist.am.
    * {atk,gdk,gtk}/{atk,gdk,gtk}mm/filelist.am: New files defining the
    lists of source files to compile and include in the libraries.
    * {atk,gdk,gtk}/src/Makefile.am: Rewrite based upon the new build
    support files from mm-common.
    * {atk,gdk,gtk}/{atk,gdk,gtk}mm/Makefile.am: ditto.
    * {atk,gdk,gtk}/{atk,gdk,gtk}mm/private/Makefile.am: Delete files.
    * build_shared/*.am_fragment: Delete obsolete build support files.

 .gitignore                                     |    1 +
 ChangeLog                                      |   27 ++++
 atk/atkmm/Makefile.am                          |   56 ++++---
 atk/atkmm/filelist.am                          |    9 +
 atk/atkmm/private/.gitignore                   |    1 +
 atk/atkmm/private/Makefile.am                  |   14 --
 atk/src/Makefile.am                            |   35 +++--
 atk/src/Makefile_list_of_hg.am_fragment        |   12 --
 atk/src/filelist.am                            |   33 ++++
 build_shared/Makefile_build.am_fragment        |   50 ------
 build_shared/Makefile_build_gensrc.am_fragment |   86 ----------
 build_shared/Makefile_gensrc.am_fragment       |   67 --------
 configure.ac                                   |   16 +--
 gdk/gdkmm/Makefile.am                          |   55 ++++---
 gdk/gdkmm/filelist.am                          |    9 +
 gdk/gdkmm/private/.gitignore                   |    1 +
 gdk/gdkmm/private/Makefile.am                  |   14 --
 gdk/src/Makefile.am                            |   34 +++-
 gdk/src/Makefile_list_of_hg.am_fragment        |   13 --
 gdk/src/filelist.am                            |   41 +++++
 gtk/gtkmm/Makefile.am                          |   84 ++++++-----
 gtk/gtkmm/filelist.am                          |   40 +++++
 gtk/gtkmm/private/.gitignore                   |    1 +
 gtk/gtkmm/private/Makefile.am                  |   14 --
 gtk/src/Makefile.am                            |   36 ++++-
 gtk/src/Makefile_list_of_hg.am_fragment        |   43 -----
 gtk/src/filelist.am                            |  199 ++++++++++++++++++++++++
 tools/Makefile.am                              |   34 ++++-
 tools/Makefile_list_of_sources.am_fragment     |    2 -
 tools/README                                   |    4 -
 tools/TODO                                     |   12 --
 tools/extra_defs_gen/Makefile.am               |    8 -
 tools/m4/Makefile.am                           |   10 --
 tools/m4/Makefile_list_of_sources.am_fragment  |    3 -
 tools/m4/filelist.am                           |    9 +
 35 files changed, 591 insertions(+), 482 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 5f9db4f..c514172 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@ Makefile.in
 .deps/
 .libs/
 .stamps/
+.dirstamp
 stamp-h?
 
 # generated private headers
diff --git a/ChangeLog b/ChangeLog
index f4bc688..41b304f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,32 @@
 2009-08-12  Daniel Elstner  <danielk openismus com>
 
+	Convert main source directories to mm-common
+
+	* configure.ac: Get rid of some more cruft we no longer need.
+	(DISABLE_DEPRECATED_API): Add Automake conditional.
+	(AC_CONFIG_FILES): Remove tools/{m4,extra_defs_gen}/Makefile and
+	{atk,gdk,gtk}/{atk,gdk,gtk}mm/private/Makefile.
+	* tools/Makefile.am: Non-recursively build the contents of all
+	subdirectories.
+	* tools/m4/filelist.am: Overhaul for new build system and rename
+	file from Makefile_list_of_sources.am_fragment to filelist.am.
+	* tools/Makefile_list_of_sources.am_fragment: Delete file.
+	* tools/extra_defs_gen/Makefile.am: Delete recursive Makefile.
+	* tools/m4/Makefile.am: ditto.
+	* tools/README, tools/TODO: Delete unhelpful and obsolete files.
+	* {atk,gdk,gtk}/src/filelist.am: Adapt file lists to new mm-common
+	build organization and rename from Makefile_list_of_hg.am_fragment
+	to filelist.am.
+	* {atk,gdk,gtk}/{atk,gdk,gtk}mm/filelist.am: New files defining the
+	lists of source files to compile and include in the libraries.
+	* {atk,gdk,gtk}/src/Makefile.am: Rewrite based upon the new build
+	support files from mm-common.
+	* {atk,gdk,gtk}/{atk,gdk,gtk}mm/Makefile.am: ditto.
+	* {atk,gdk,gtk}/{atk,gdk,gtk}mm/private/Makefile.am: Delete files.
+	* build_shared/*.am_fragment: Delete obsolete build support files.
+
+2009-08-12  Daniel Elstner  <danielk openismus com>
+
 	Do not recurse into MSVC or NSI subdirectories
 
 	* configure.ac (AC_CONFIG_FILES): Remove the output files
diff --git a/atk/atkmm/Makefile.am b/atk/atkmm/Makefile.am
index f48577b..09d66a7 100644
--- a/atk/atkmm/Makefile.am
+++ b/atk/atkmm/Makefile.am
@@ -1,31 +1,37 @@
-## Copyright (c) 2001
-## The gtkmm development team.
+## Copyright (c) 2009  Openismus GmbH  <http://www.openismus.com/>
+##
+## This file is part of gtkmm.
+##
+## gtkmm 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.
+##
+## gtkmm 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/>.
 
-SUBDIRS = private
-
-sublib_name = atkmm
-sublib_libname = atkmm-1.6
-sublib_libversion = $(LIBGTKMM_SO_VERSION)
-sublib_namespace	= Atk
-sublib_cflags = $(ATKMM_CFLAGS)
-sublib_topdir = atk
-sublib_win32_dlls_libs	=
-
-sublib_files_extra_posix_cc =
-sublib_files_extra_win32_cc =
-sublib_files_extra_general_cc = init.cc
-sublib_files_extra_general_deprecated_cc =
+lib_LTLIBRARIES = libatkmm-1.6.la
 
-sublib_files_extra_posix_h =
-sublib_files_extra_win32_h =
-sublib_files_extra_general_h = init.h
-sublib_files_extra_general_deprecated_h = 
+include $(srcdir)/../src/filelist.am
+include $(srcdir)/filelist.am
 
-include $(top_srcdir)/build_shared/Makefile_build.am_fragment
+files_built_cc = $(atkmm_files_built_cc)
+files_built_h  = $(atkmm_files_built_h)
+files_built_ph = $(atkmm_files_built_ph)
+files_extra_cc = $(atkmm_files_extra_cc)
+files_extra_h  = $(atkmm_files_extra_h)
+files_extra_ph = $(atkmm_files_extra_ph)
 
-lib_LTLIBRARIES = libatkmm-1.6.la
+include $(top_srcdir)/scripts/compile-binding.am
 
-libatkmm_1_6_la_SOURCES = $(files_built_cc) $(files_extra_cc)
-libatkmm_1_6_la_LDFLAGS = $(common_ldflags)
-libatkmm_1_6_la_LIBADD = $(win32_dlls_extra_libs) $(ATKMM_LIBS)
+AM_CPPFLAGS = $(binding_includes) $(binding_cppflags) $(GTHREAD_CFLAGS) $(ATKMM_CFLAGS)
+AM_CXXFLAGS = $(GTKMM_WXXFLAGS)
 
+libatkmm_1_6_la_SOURCES = $(binding_sources)
+libatkmm_1_6_la_LDFLAGS = -no-undefined -version-info $(LIBGTKMM_SO_VERSION)
+libatkmm_1_6_la_LIBADD  = $(ATKMM_LIBS)
diff --git a/atk/atkmm/filelist.am b/atk/atkmm/filelist.am
new file mode 100644
index 0000000..7930ceb
--- /dev/null
+++ b/atk/atkmm/filelist.am
@@ -0,0 +1,9 @@
+## This file is part of gtkmm.
+
+atkmm_files_built_cc = $(atkmm_files_hg:.hg=.cc) wrap_init.cc
+atkmm_files_built_h  = $(atkmm_files_hg:.hg=.h)
+atkmm_files_built_ph = $(patsubst %.hg,private/%_p.h,$(atkmm_files_hg))
+
+atkmm_files_extra_cc = init.cc
+atkmm_files_extra_h  = init.h wrap_init.h
+atkmm_files_extra_ph =
diff --git a/atk/atkmm/private/.gitignore b/atk/atkmm/private/.gitignore
new file mode 100644
index 0000000..0cb5a60
--- /dev/null
+++ b/atk/atkmm/private/.gitignore
@@ -0,0 +1 @@
+/*_p.h
diff --git a/atk/src/Makefile.am b/atk/src/Makefile.am
index 13eef17..d9791fd 100644
--- a/atk/src/Makefile.am
+++ b/atk/src/Makefile.am
@@ -1,14 +1,29 @@
-## Copyright (c) 2001
-## The gtkmm development team.
-
-sublib_name = atkmm
-sublib_namespace = Atk
-sublib_parentdir = atkmm
-files_defs = atk.defs atk_enums.defs atk_methods.defs atk_signals.defs atk_vfuncs.defs \
-             atk_docs.xml atk_docs_override.xml
-
-include $(top_srcdir)/build_shared/Makefile_gensrc.am_fragment
+## Copyright (c) 2009  Openismus GmbH  <http://www.openismus.com/>
+##
+## This file is part of gtkmm.
+##
+## gtkmm 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.
+##
+## gtkmm 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/>.
 
+binding_name    = atkmm
+wrap_init_flags = --namespace=Atk --parent_dir=atkmm
+codegen_srcdir  = $(top_srcdir)/tools
 
+include $(srcdir)/filelist.am
+include $(top_srcdir)/tools/m4/filelist.am
 
+files_defs = $(atkmm_files_defs)
+files_ccg  = $(atkmm_files_ccg)
+files_hg   = $(atkmm_files_hg)
 
+include $(top_srcdir)/scripts/generate-binding.am
diff --git a/atk/src/filelist.am b/atk/src/filelist.am
new file mode 100644
index 0000000..cbfddfa
--- /dev/null
+++ b/atk/src/filelist.am
@@ -0,0 +1,33 @@
+## This file is part of gtkmm.
+
+atkmm_files_defs =		\
+	atk.defs		\
+	atk_enums.defs		\
+	atk_methods.defs	\
+	atk_signals.defs	\
+	atk_vfuncs.defs		\
+	atk_docs.xml		\
+	atk_docs_override.xml
+
+atkmm_files_hg =		\
+	action.hg		\
+	component.hg		\
+	document.hg		\
+	editabletext.hg		\
+	hyperlink.hg		\
+	hypertext.hg		\
+	image.hg		\
+	implementor.hg		\
+	noopobject.hg		\
+	object.hg		\
+	objectaccessible.hg	\
+	relation.hg		\
+	relationset.hg		\
+	selection.hg		\
+	stateset.hg		\
+	streamablecontent.hg	\
+	table.hg		\
+	text.hg			\
+	value.hg
+
+atkmm_files_ccg = $(atkmm_files_hg:.hg=.ccg)
diff --git a/configure.ac b/configure.ac
index 2081209..28a0fd7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -44,9 +44,6 @@ AC_MSG_CHECKING([for native Windows host])
 AS_CASE([$host_os], [mingw*], [gtkmm_host_windows=yes], [gtkmm_host_windows=no])
 AC_MSG_RESULT([$gtkmm_host_windows])
 AM_CONDITIONAL([HOST_WINDOWS_NATIVE], [test "x$gtkmm_host_windows" = xyes])
-# TODO: kill dummies
-AM_CONDITIONAL([OS_WIN32], [false])
-AM_CONDITIONAL([PLATFORM_WIN32], [false])
 
 # TODO: What exactly does this do?  If both static and shared libraries
 # are built, both builds will have this macro defined!
@@ -68,10 +65,8 @@ PKG_CHECK_MODULES([GDKMM], [$GDKMM_MODULES])
 PKG_CHECK_MODULES([GTKMM], [$GTKMM_MODULES])
 
 MM_PKG_CONFIG_SUBST([GTHREAD_CFLAGS], [--cflags-only-other gthread-2.0])
-MM_PKG_CONFIG_SUBST([GTHREAD_LIBS], [--libs-only-other --libs-only-l gthread-2.0])
+MM_PKG_CONFIG_SUBST([GTHREAD_LIBS], [--libs gthread-2.0])
 MM_PKG_CONFIG_SUBST([GMMPROC_DIR], [--variable=gmmprocdir glibmm-2.4])
-# TODO: Temporary hack
-AC_SUBST([GMMPROC], ['${GMMPROC_DIR}/gmmproc'])
 
 # Create a list of input directories for Doxygen.
 # TODO: kill
@@ -93,6 +88,7 @@ Do not use this option for distribution packages.]])
   DISABLE_DEPRECATED_API_CFLAGS='-DATKMM_DISABLE_DEPRECATED=1 -DGDKMM_DISABLE_DEPRECATED=1 -DGTKMM_DISABLE_DEPRECATED=1'dnl
 ])
 AC_SUBST([DISABLE_DEPRECATED_API_CFLAGS])
+AM_CONDITIONAL([DISABLE_DEPRECATED_API], [test "x$gtkmm_deprecated_api" = xyes])
 
 # Offer the ability to omit some API from the library, to reduce the code size.
 # Note that there are other options in glibmm, which affect gtkmm.
@@ -102,7 +98,6 @@ AS_IF([test "x$gtkmm_enable_api_atkmm" = xno],
       [GTKMM_PC_ATKMM_DEP=],
       [GTKMM_PC_ATKMM_DEP=atkmm-1.6])
 AC_SUBST([GTKMM_PC_ATKMM_DEP])
-
 AM_CONDITIONAL([GTKMM_ATKMM_ENABLED], [test "x$gtkmm_enable_api_atkmm" != xno])
 
 GTKMM_ARG_ENABLE_API_MAEMO_EXTENSIONS
@@ -111,7 +106,7 @@ AC_LANG([C++])
 AC_CHECK_FUNCS([flockfile funlockfile getc_unlocked mkfifo])
 
 # Evaluate the --enable-warnings=level option.
-DK_ARG_ENABLE_WARNINGS([GTKMM_WXXFLAGS],
+MM_ARG_ENABLE_WARNINGS([GTKMM_WXXFLAGS],
                        [-Wall],
                        [-pedantic -Wall -Wextra]
                        [G PANGO ATK GDK GDK_PIXBUF GTK])
@@ -120,7 +115,6 @@ AC_CONFIG_FILES([
       atk/atkmm-1.6.pc
       atk/src/Makefile
       atk/atkmm/Makefile
-      atk/atkmm/private/Makefile
 ])
 
 AC_CONFIG_FILES([
@@ -138,16 +132,12 @@ AC_CONFIG_FILES([
   gdk/gdkmm-2.4.pc
     gdk/src/Makefile
     gdk/gdkmm/Makefile
-      gdk/gdkmm/private/Makefile
 
   gtk/gtkmm-2.4.pc
     gtk/src/Makefile
     gtk/gtkmm/Makefile
-      gtk/gtkmm/private/Makefile
 
   tools/Makefile
-    tools/m4/Makefile
-    tools/extra_defs_gen/Makefile
 ])
 
 AC_CONFIG_FILES([
diff --git a/gdk/gdkmm/Makefile.am b/gdk/gdkmm/Makefile.am
index b311ca4..2e72c32 100644
--- a/gdk/gdkmm/Makefile.am
+++ b/gdk/gdkmm/Makefile.am
@@ -1,30 +1,37 @@
-## Copyright (c) 2001
-## The gtkmm development team.
+## Copyright (c) 2009  Openismus GmbH  <http://www.openismus.com/>
+##
+## This file is part of gtkmm.
+##
+## gtkmm 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.
+##
+## gtkmm 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/>.
 
-SUBDIRS			= private
+lib_LTLIBRARIES = libgdkmm-2.4.la
 
-sublib_name		= gdkmm
-sublib_libname		= gdkmm-2.4
-sublib_libversion = $(LIBGTKMM_SO_VERSION)
-sublib_namespace	= Gdk
-sublib_cflags		= $(GDKMM_CFLAGS)
-sublib_topdir = gdk
-sublib_win32_dlls_libs	=
+include $(srcdir)/../src/filelist.am
+include $(srcdir)/filelist.am
 
-sublib_files_extra_posix_cc =
-sublib_files_extra_win32_cc =
-sublib_files_extra_general_cc = general.cc rgb.cc
-sublib_files_extra_general_deprecated_cc = 
+files_built_cc = $(gdkmm_files_built_cc)
+files_built_h  = $(gdkmm_files_built_h)
+files_built_ph = $(gdkmm_files_built_ph)
+files_extra_cc = $(gdkmm_files_extra_cc)
+files_extra_h  = $(gdkmm_files_extra_h)
+files_extra_ph = $(gdkmm_files_extra_ph)
 
-sublib_files_extra_posix_h =
-sublib_files_extra_win32_h =
-sublib_files_extra_general_h = list.h general.h rgb.h
-sublib_files_extra_general_deprecated_h = 
+include $(top_srcdir)/scripts/compile-binding.am
 
-include $(top_srcdir)/build_shared/Makefile_build.am_fragment
-
-lib_LTLIBRARIES		= libgdkmm-2.4.la
-libgdkmm_2_4_la_SOURCES	= $(files_built_cc) $(files_extra_cc)
-libgdkmm_2_4_la_LDFLAGS	= $(common_ldflags)
-libgdkmm_2_4_la_LIBADD	= $(GDKMM_LIBS)
+AM_CPPFLAGS = $(binding_includes) $(binding_cppflags) $(GTHREAD_CFLAGS) $(GDKMM_CFLAGS)
+AM_CXXFLAGS = $(GTKMM_WXXFLAGS)
 
+libgdkmm_2_4_la_SOURCES = $(binding_sources)
+libgdkmm_2_4_la_LDFLAGS = -no-undefined -version-info $(LIBGTKMM_SO_VERSION)
+libgdkmm_2_4_la_LIBADD  = $(GDKMM_LIBS)
diff --git a/gdk/gdkmm/filelist.am b/gdk/gdkmm/filelist.am
new file mode 100644
index 0000000..e92264d
--- /dev/null
+++ b/gdk/gdkmm/filelist.am
@@ -0,0 +1,9 @@
+## This file is part of gtkmm.
+
+gdkmm_files_built_cc = $(gdkmm_files_hg:.hg=.cc) wrap_init.cc
+gdkmm_files_built_h  = $(gdkmm_files_hg:.hg=.h)
+gdkmm_files_built_ph = $(patsubst %.hg,private/%_p.h,$(gdkmm_files_hg))
+
+gdkmm_files_extra_cc = general.cc rgb.cc
+gdkmm_files_extra_h  = general.h list.h rgb.h wrap_init.h
+gdkmm_files_extra_ph =
diff --git a/gdk/gdkmm/private/.gitignore b/gdk/gdkmm/private/.gitignore
new file mode 100644
index 0000000..0cb5a60
--- /dev/null
+++ b/gdk/gdkmm/private/.gitignore
@@ -0,0 +1 @@
+/*_p.h
diff --git a/gdk/src/Makefile.am b/gdk/src/Makefile.am
index 6baa07c..468ebac 100644
--- a/gdk/src/Makefile.am
+++ b/gdk/src/Makefile.am
@@ -1,11 +1,29 @@
-## Copyright (c) 2001
-## The gtkmm development team.
+## Copyright (c) 2009  Openismus GmbH  <http://www.openismus.com/>
+##
+## This file is part of gtkmm.
+##
+## gtkmm 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.
+##
+## gtkmm 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/>.
 
-sublib_name = gdkmm
-sublib_namespace = Gdk
-sublib_parentdir = gdkmm
-files_defs = gdk.defs gdk_extra.defs gdk_pixbuf.defs gdk_pixbuf_enums.defs gdk_methods.defs gdk_signals.defs gdk_enums.defs \
-             gdk_docs.xml gdk_docs_override.xml
+binding_name    = gdkmm
+wrap_init_flags = --namespace=Gdk --parent_dir=gdkmm
+codegen_srcdir  = $(top_srcdir)/tools
 
-include $(top_srcdir)/build_shared/Makefile_gensrc.am_fragment
+include $(srcdir)/filelist.am
+include $(top_srcdir)/tools/m4/filelist.am
 
+files_defs = $(gdkmm_files_defs)
+files_ccg  = $(gdkmm_files_ccg)
+files_hg   = $(gdkmm_files_hg)
+
+include $(top_srcdir)/scripts/generate-binding.am
diff --git a/gdk/src/filelist.am b/gdk/src/filelist.am
new file mode 100644
index 0000000..28557f5
--- /dev/null
+++ b/gdk/src/filelist.am
@@ -0,0 +1,41 @@
+## This file is part of gtkmm.
+
+gdkmm_files_defs =		\
+	gdk.defs		\
+	gdk_enums.defs		\
+	gdk_extra.defs		\
+	gdk_methods.defs	\
+	gdk_pixbuf.defs		\
+	gdk_pixbuf_enums.defs	\
+	gdk_signals.defs	\
+	gdk_docs.xml		\
+	gdk_docs_override.xml
+
+gdkmm_files_hg =		\
+	bitmap.hg		\
+	color.hg		\
+	colormap.hg		\
+	cursor.hg		\
+	device.hg		\
+	display.hg		\
+	displaymanager.hg	\
+	dragcontext.hg		\
+	drawable.hg		\
+	event.hg		\
+	gc.hg			\
+	image.hg		\
+	pixbuf.hg		\
+	pixbufanimation.hg	\
+	pixbufanimationiter.hg	\
+	pixbufformat.hg		\
+	pixbufloader.hg		\
+	pixmap.hg		\
+	rectangle.hg		\
+	region.hg		\
+	rgbcmap.hg		\
+	screen.hg		\
+	types.hg		\
+	visual.hg		\
+	window.hg
+
+gdkmm_files_ccg = $(gdkmm_files_hg:.hg=.ccg)
diff --git a/gtk/gtkmm/Makefile.am b/gtk/gtkmm/Makefile.am
index 5918cff..7630bf1 100644
--- a/gtk/gtkmm/Makefile.am
+++ b/gtk/gtkmm/Makefile.am
@@ -1,41 +1,49 @@
-## Copyright (c) 2001
-## The gtkmm development team.
-
-SUBDIRS			= private
-
-sublib_name		= gtkmm
-sublib_libname		= gtkmm-2.4
-sublib_libversion = $(LIBGTKMM_SO_VERSION)
-sublib_namespace	= Gtk
-sublib_cflags		= $(GTKMM_CFLAGS)
-sublib_topdir = gtk
-sublib_win32_dlls_libs	=
-
-sublib_files_extra_posix_cc = 
-sublib_files_extra_win32_cc =
-sublib_files_extra_general_cc = accelkey.cc accelmap.cc cellrenderer_generation.cc comboboxtext.cc comboboxentrytext.cc \
-                                listviewtext.cc \
-                                menu_elems.cc radiobuttongroup.cc selectiondata_private.cc stock.cc stockid.cc targetentry.cc \
-                                treemodelcolumn.cc treeview_private.cc
-sublib_files_extra_general_deprecated_cc = 
-
-sublib_files_extra_posix_h = 
-sublib_files_extra_win32_h =
-sublib_files_extra_general_h = accelkey.h accelmap.h base.h cellrenderer_generation.h comboboxtext.h comboboxentrytext.h\
-                               listviewtext.h \
-                               menu_elems.h radiobuttongroup.h selectiondata_private.h stock.h stockid.h targetentry.h \
-                               treemodelcolumn.h treeview_private.h
-sublib_files_extra_general_deprecated_h = 
-
-include $(top_srcdir)/build_shared/Makefile_build.am_fragment
-
-lib_LTLIBRARIES		= libgtkmm-2.4.la
-libgtkmm_2_4_la_SOURCES	= $(files_built_cc) $(files_extra_cc)
-libgtkmm_2_4_la_LDFLAGS	= $(common_ldflags)
-libgtkmm_2_4_la_LIBADD	= $(top_builddir)/gdk/gdkmm/libgdkmm-2.4.la \
-			  $(LIBADD_ATK) \
-			  $(GTKMM_LIBS)
+## Copyright (c) 2009  Openismus GmbH  <http://www.openismus.com/>
+##
+## This file is part of gtkmm.
+##
+## gtkmm 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.
+##
+## gtkmm 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/>.
+
+lib_LTLIBRARIES = libgtkmm-2.4.la
+
+include $(srcdir)/../src/filelist.am
+include $(srcdir)/filelist.am
+
+files_built_cc = $(gtkmm_files_built_cc)
+files_built_h  = $(gtkmm_files_built_h)
+files_built_ph = $(gtkmm_files_built_ph)
+files_extra_cc = $(gtkmm_files_extra_cc)
+files_extra_h  = $(gtkmm_files_extra_h)
+files_extra_ph = $(gtkmm_files_extra_ph)
 
 if GTKMM_ATKMM_ENABLED
-libgtkmm_2_4_la_LIBADD += $(top_builddir)/atk/atkmm/libatkmm-1.6.la
+atkmm_includes = -I$(top_builddir)/atk $(if $(srcdir:.=),-I$(top_srcdir)/atk)
+atkmm_libadd   = $(top_builddir)/atk/atkmm/libatkmm-$(ATKMM_API_VERSION).la
+else
+atkmm_includes =
+atkmm_libadd   =
 endif
+local_includes = -I$(top_builddir)/gdk $(if $(srcdir:.=),-I$(top_srcdir)/gdk) $(atkmm_includes)
+local_libadd   = $(atkmm_libadd) $(top_builddir)/gdk/gdkmm/libgdkmm-$(GDKMM_API_VERSION).la
+
+include $(top_srcdir)/scripts/compile-binding.am
+
+local_cppflags = $(binding_includes) $(local_includes) $(binding_cppflags)
+
+AM_CPPFLAGS = $(local_cppflags) $(GTHREAD_CFLAGS) $(GTKMM_CFLAGS)
+AM_CXXFLAGS = $(GLIBMM_WXXFLAGS)
+
+libgtkmm_2_4_la_SOURCES = $(binding_sources)
+libgtkmm_2_4_la_LDFLAGS = -no-undefined -version-info $(LIBGTKMM_SO_VERSION)
+libgtkmm_2_4_la_LIBADD  = $(local_libadd) $(GTKMM_LIBS)
diff --git a/gtk/gtkmm/filelist.am b/gtk/gtkmm/filelist.am
new file mode 100644
index 0000000..50d80fc
--- /dev/null
+++ b/gtk/gtkmm/filelist.am
@@ -0,0 +1,40 @@
+## This file is part of gtkmm.
+
+gtkmm_files_built_cc = $(gtkmm_files_used_hg:.hg=.cc) wrap_init.cc
+gtkmm_files_built_h  = $(gtkmm_files_used_hg:.hg=.h)
+gtkmm_files_built_ph = $(patsubst %.hg,private/%_p.h,$(gtkmm_files_used_hg))
+
+gtkmm_files_extra_cc =			\
+	accelkey.cc			\
+	accelmap.cc			\
+	cellrenderer_generation.cc	\
+	comboboxentrytext.cc		\
+	comboboxtext.cc			\
+	listviewtext.cc			\
+	menu_elems.cc			\
+	radiobuttongroup.cc		\
+	selectiondata_private.cc	\
+	stock.cc			\
+	stockid.cc			\
+	targetentry.cc			\
+	treemodelcolumn.cc		\
+	treeview_private.cc
+
+gtkmm_files_extra_h =			\
+	accelkey.h			\
+	accelmap.h			\
+	base.h				\
+	cellrenderer_generation.h	\
+	comboboxentrytext.h		\
+	comboboxtext.h			\
+	listviewtext.h			\
+	menu_elems.h			\
+	radiobuttongroup.h		\
+	selectiondata_private.h		\
+	stock.h				\
+	stockid.h			\
+	targetentry.h			\
+	treemodelcolumn.h		\
+	treeview_private.h
+
+gtkmm_files_extra_ph =
diff --git a/gtk/gtkmm/private/.gitignore b/gtk/gtkmm/private/.gitignore
new file mode 100644
index 0000000..0cb5a60
--- /dev/null
+++ b/gtk/gtkmm/private/.gitignore
@@ -0,0 +1 @@
+/*_p.h
diff --git a/gtk/src/Makefile.am b/gtk/src/Makefile.am
index 7500606..62c5cb8 100644
--- a/gtk/src/Makefile.am
+++ b/gtk/src/Makefile.am
@@ -1,11 +1,29 @@
-## Copyright (c) 2001
-## The gtkmm development team.
+## Copyright (c) 2009  Openismus GmbH  <http://www.openismus.com/>
+##
+## This file is part of gtkmm.
+##
+## gtkmm 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.
+##
+## gtkmm 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/>.
 
-sublib_name = gtkmm
-sublib_namespace = Gtk
-sublib_parentdir = gtkmm
-files_defs = gtk.defs gtk_methods.defs gtk_methods_maemo.defs gtk_signals.defs \
-	gtk_vfuncs.defs gtk_other.defs gtk_enums.defs gtk_enums_maemo.defs \
-	gtk_docs.xml gtk_docs_override.xml
+binding_name    = gtkmm
+wrap_init_flags = --namespace=Gtk --parent_dir=gtkmm
+codegen_srcdir  = $(top_srcdir)/tools
 
-include $(top_srcdir)/build_shared/Makefile_gensrc.am_fragment
+include $(srcdir)/filelist.am
+include $(top_srcdir)/tools/m4/filelist.am
+
+files_defs = $(gtkmm_files_defs)
+files_ccg  = $(gtkmm_files_ccg)
+files_hg   = $(gtkmm_files_hg)
+
+include $(top_srcdir)/scripts/generate-binding.am
diff --git a/gtk/src/filelist.am b/gtk/src/filelist.am
new file mode 100644
index 0000000..0349ece
--- /dev/null
+++ b/gtk/src/filelist.am
@@ -0,0 +1,199 @@
+## This file is part of gtkmm.
+
+gtkmm_files_defs =		\
+	gtk.defs		\
+	gtk_enums.defs		\
+	gtk_enums_maemo.defs	\
+	gtk_methods.defs	\
+	gtk_methods_maemo.defs	\
+	gtk_other.defs		\
+	gtk_signals.defs	\
+	gtk_vfuncs.defs		\
+	gtk_docs.xml		\
+	gtk_docs_override.xml
+
+gtkmm_files_any_hg =		\
+	aboutdialog.hg		\
+	accelgroup.hg		\
+	accellabel.hg		\
+	action.hg		\
+	actiongroup.hg		\
+	activatable.hg		\
+	adjustment.hg		\
+	alignment.hg		\
+	arrow.hg		\
+	aspectframe.hg		\
+	assistant.hg		\
+	bin.hg			\
+	box.hg			\
+	builder.hg		\
+	button.hg		\
+	buttonbox.hg		\
+	calendar.hg		\
+	celleditable.hg		\
+	celllayout.hg		\
+	cellrenderer.hg		\
+	cellrendereraccel.hg	\
+	cellrenderercombo.hg	\
+	cellrendererpixbuf.hg	\
+	cellrendererprogress.hg	\
+	cellrendererspin.hg	\
+	cellrenderertext.hg	\
+	cellrenderertoggle.hg	\
+	cellview.hg		\
+	checkbutton.hg		\
+	checkmenuitem.hg	\
+	clipboard.hg		\
+	colorbutton.hg		\
+	colorselection.hg	\
+	combobox.hg		\
+	comboboxentry.hg	\
+	container.hg		\
+	curve.hg		\
+	dialog.hg		\
+	drawingarea.hg		\
+	editable.hg		\
+	entry.hg		\
+	entrycompletion.hg	\
+	enums.hg		\
+	eventbox.hg		\
+	expander.hg		\
+	filechooser.hg		\
+	filechooserbutton.hg	\
+	filechooserdialog.hg	\
+	filechooserwidget.hg	\
+	filefilter.hg		\
+	fileselection.hg	\
+	fixed.hg		\
+	fontbutton.hg		\
+	fontselection.hg	\
+	frame.hg		\
+	handlebox.hg		\
+	iconfactory.hg		\
+	iconinfo.hg		\
+	iconset.hg		\
+	iconsource.hg		\
+	icontheme.hg		\
+	iconview.hg		\
+	image.hg		\
+	imagemenuitem.hg	\
+	infobar.hg		\
+	inputdialog.hg		\
+	invisible.hg		\
+	item.hg			\
+	label.hg		\
+	layout.hg		\
+	linkbutton.hg		\
+	liststore.hg		\
+	main.hg			\
+	menu.hg			\
+	menubar.hg		\
+	menuitem.hg		\
+	menushell.hg		\
+	menutoolbutton.hg	\
+	messagedialog.hg	\
+	misc.hg			\
+	notebook.hg		\
+	object.hg		\
+	optionmenu.hg		\
+	orientable.hg		\
+	pagesetup.hg		\
+	paned.hg		\
+	papersize.hg		\
+	plug.hg			\
+	printcontext.hg		\
+	printoperation.hg	\
+	printoperationpreview.hg\
+	printsettings.hg	\
+	progressbar.hg		\
+	radioaction.hg		\
+	radiobutton.hg		\
+	radiomenuitem.hg	\
+	radiotoolbutton.hg	\
+	range.hg		\
+	rc.hg			\
+	recentaction.hg		\
+	recentchooser.hg	\
+	recentchooserdialog.hg	\
+	recentchoosermenu.hg	\
+	recentchooserwidget.hg	\
+	recentfilter.hg		\
+	recentinfo.hg		\
+	recentmanager.hg	\
+	ruler.hg		\
+	scale.hg		\
+	scalebutton.hg		\
+	scrollbar.hg		\
+	scrolledwindow.hg	\
+	selectiondata.hg	\
+	separator.hg		\
+	separatormenuitem.hg	\
+	separatortoolitem.hg	\
+	settings.hg		\
+	sizegroup.hg		\
+	socket.hg		\
+	spinbutton.hg		\
+	statusbar.hg		\
+	statusicon.hg		\
+	stockitem.hg		\
+	style.hg		\
+	table.hg		\
+	targetlist.hg		\
+	tearoffmenuitem.hg	\
+	textattributes.hg	\
+	textbuffer.hg		\
+	textchildanchor.hg	\
+	textiter.hg		\
+	textmark.hg		\
+	texttag.hg		\
+	texttagtable.hg		\
+	textview.hg		\
+	toggleaction.hg		\
+	togglebutton.hg		\
+	toggletoolbutton.hg	\
+	toolbar.hg		\
+	toolbutton.hg		\
+	toolitem.hg		\
+	toolshell.hg		\
+	tooltip.hg		\
+	tooltips.hg		\
+	treedragdest.hg		\
+	treedragsource.hg	\
+	treeiter.hg		\
+	treemodel.hg		\
+	treemodelfilter.hg	\
+	treemodelsort.hg	\
+	treepath.hg		\
+	treerowreference.hg	\
+	treeselection.hg	\
+	treesortable.hg		\
+	treestore.hg		\
+	treeview.hg		\
+	treeviewcolumn.hg	\
+	uimanager.hg		\
+	viewport.hg		\
+	volumebutton.hg		\
+	widget.hg		\
+	window.hg
+
+gtkmm_files_posix_hg =		\
+	pagesetupunixdialog.hg	\
+	printer.hg		\
+	printjob.hg		\
+	printunixdialog.hg
+
+gtkmm_files_deprecated_hg = combo.hg
+
+if HOST_WINDOWS_NATIVE
+gtkmm_files_arch_hg =
+else
+gtkmm_files_arch_hg = $(gtkmm_files_posix_hg)
+endif
+if DISABLE_DEPRECATED_API
+gtkmm_files_used_hg = $(gtkmm_files_any_hg) $(gtkmm_files_arch_hg)
+else
+gtkmm_files_used_hg = $(gtkmm_files_any_hg) $(gtkmm_files_arch_hg) $(gtkmm_files_deprecated_hg)
+endif
+
+gtkmm_files_hg  = $(gtkmm_files_any_hg) $(gtkmm_files_posix_hg) $(gtkmm_files_deprecated_hg)
+gtkmm_files_ccg = $(gtkmm_files_hg:.hg=.ccg)
diff --git a/tools/Makefile.am b/tools/Makefile.am
index cab6f1a..6a626de 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -1,9 +1,37 @@
+## Copyright (c) 2009  Openismus GmbH  <http://www.openismus.com/>
+##
+## This file is part of gtkmm.
+##
+## gtkmm 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.
+##
+## gtkmm 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/>.
 
-include $(top_srcdir)/tools/Makefile_list_of_sources.am_fragment
+AUTOMAKE_OPTIONS = subdir-objects
 
-SUBDIRS = m4 extra_defs_gen
+include $(srcdir)/m4/filelist.am
 
-EXTRA_DIST = Makefile_list_of_sources.am_fragment README TODO
+# TODO: These should go into $(datadir)/$(PACKAGE_TARNAME)/ instead.
+gmmproc_m4_includedir = $(libdir)/$(GTKMM_MODULE_NAME)/proc/m4
+dist_gmmproc_m4_include_DATA = $(addprefix m4/,$(files_codegen_m4))
 
+noinst_PROGRAMS = extra_defs_gen/generate_extra_defs
 
+extra_defs_gen_generate_extra_defs_SOURCES = extra_defs_gen/generate_defs_gtk.cc
+extra_defs_gen_generate_extra_defs_LDADD   = $(GTKMM_LIBS) -lglibmm_generate_extra_defs-2.4
+extra_defs_gen_generate_extra_defs_LDFLAGS = -no-undefined -avoid-version
 
+AM_CPPFLAGS = -I$(top_builddir) $(GTHREAD_CFLAGS) $(GTKMM_CFLAGS)
+AM_CXXFLAGS = $(GTKMM_WXXFLAGS)
+
+# 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:
diff --git a/tools/m4/filelist.am b/tools/m4/filelist.am
new file mode 100644
index 0000000..bc30567
--- /dev/null
+++ b/tools/m4/filelist.am
@@ -0,0 +1,9 @@
+## This file is part of gtkmm.
+
+files_codegen_m4 =		\
+	convert.m4		\
+	convert_atk.m4		\
+	convert_gdk.m4		\
+	convert_gtk.m4		\
+	convert_gtkmm.m4	\
+	convert_pango.m4



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