summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid King <davidk@openismus.com>2009-08-12 11:45:30 +0200
committerJonathon Jongsma <jjongsma@gnome.org>2009-08-13 11:08:51 -0500
commit06de63b184325531c76270205c7392ff8c93466d (patch)
tree12faf88d59870ae575905a74d2cbceeda55a2276
parentbec0074252bb26a4d493ab7558fde1126c9d4f8d (diff)
Simplify build system of examples and cairomm subdirectores
* .gitignore: Add INSTALL, mm-common *.am files and .dirstamp. * Makefile.am: Change VERSION to PACKAGE_VERSION. Begin transition to use of new build infrastructure. * cairomm/Makefile.am: Simplify by moving significant portions to toplevel Makefile.am. * cairomm/filelist.am: List of files for libcairomm. Move private source files to files_extra_cc. * configure.ac: Use MM_INIT_MODULE and remove example subdirectory Makefile.am. * examples/surfaces/Makefile.am: * examples/text/Makefile.am: Remove. * examples/Makefile.am: Convert examples tree to non-recursive build, with single, slimmer Makefile.am.
-rw-r--r--.gitignore10
-rw-r--r--ChangeLog16
-rw-r--r--Makefile.am32
-rw-r--r--cairomm/Makefile.am26
-rw-r--r--cairomm/filelist.am42
-rw-r--r--configure.ac7
-rw-r--r--examples/Makefile.am25
-rw-r--r--examples/surfaces/Makefile.am14
-rw-r--r--examples/text/Makefile.am10
9 files changed, 124 insertions, 58 deletions
diff --git a/.gitignore b/.gitignore
index bf32af4..3414122 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
*.swp
+INSTALL
Makefile
Makefile.in
aclocal.m4
@@ -17,6 +18,7 @@ data/cairomm-quartz-1.0.pc
data/cairomm-quartz-font-1.0.pc
data/cairomm-quartz-image-1.0.pc
.deps
+.dirstamp
.libs
config.guess
config.log
@@ -62,8 +64,12 @@ tests/test-user-font
cairomm/cairommconfig.h*
cairomm/stamp-*
-m4/libtool.m4
-m4/lt*.m4
+build/compile-binding.am
+build/dist-changelog.am
+build/doc-reference.am
+build/generate-binding.am
+build/libtool.m4
+build/lt*.m4
releases/
tags
diff --git a/ChangeLog b/ChangeLog
index 1a6eaa2..da269c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2009-08-12 David King <davidk@openismus.com>
+
+ * .gitignore: Add INSTALL, mm-common *.am files and .dirstamp.
+ * Makefile.am: Change VERSION to PACKAGE_VERSION. Begin transition
+ to use of new build infrastructure.
+ * cairomm/Makefile.am: Simplify by moving significant portions to
+ toplevel Makefile.am.
+ * cairomm/filelist.am: List of files for libcairomm. Move private
+ source files to files_extra_cc.
+ * configure.ac: Use MM_INIT_MODULE and remove example subdirectory
+ Makefile.am.
+ * examples/surfaces/Makefile.am:
+ * examples/text/Makefile.am: Remove.
+ * examples/Makefile.am: Convert examples tree to non-recursive
+ build, with single, slimmer Makefile.am.
+
2009-08-11 David King <davidk@openismus.com>
* autogen.sh: Replace with a simple wrapper around mm-common-prepare
diff --git a/Makefile.am b/Makefile.am
index 18bf4cc..c944872 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,9 +1,23 @@
-## Process this file with automake to produce Makefile.in
-
-SUBDIRS = cairomm data examples MSVC_Net2005 MSVC_Net2008 $(DOCS_SUBDIR) tests
-#docs examples
+if ENABLE_DOCUMENTATION
+doc_subdirs = docs
+else
+doc_subdirs =
+endif
+SUBDIRS = cairomm $(doc_subdirs) data examples MSVC_Net2005 MSVC_Net2008 tests
ACLOCAL_AMFLAGS = -I build ${ACLOCAL_FLAGS}
+DISTCHECK_CONFIGURE_FLAGS = --enable-warnings=fatal
+
+cairomm_includedir = $(includedir)/$(CAIROMM_MODULE_NAME)/cairomm
+cairomm_include_HEADERS = cairomm/cairomm.h
+cairomm_libincludedir = $(libdir)/$(CAIROMM_MODULE_NAME)/include
+nodist_cairomm_libinclude_HEADERS = cairomm/cairommconfig.h
+
+pkgconfigdir = $(libdir)/pkgconfig
+nodist_pkgconfig_DATA = data/$(CAIROMM_MODULE_NAME).pc
+
+dist_noinst_SCRIPTS = autogen.sh
+###
EXTRA_DIST = MAINTAINERS autogen.sh
DIST_SUBDIRS = $(SUBDIRS)
@@ -38,7 +52,7 @@ $(gpg_file): $(sha1_file)
gpg --armor --sign $^
release-verify-even-micro:
- @echo -n "Checking that $(VERSION) has an even micro component..."
+ @echo -n "Checking that $(PACKAGE_VERSION) has an even micro component..."
@test "$(GENERIC_MICRO_VERSION)" = "`echo $(GENERIC_MICRO_VERSION)/2*2 | bc`" \
|| (echo "Ouch." && echo "The version micro component '$(GENERIC_MICRO_VERSION)' is not an even number." \
&& echo "The version in configure.in must be incremented before a new release." \
@@ -46,7 +60,7 @@ release-verify-even-micro:
@echo "Good."
release-verify-newer:
- @echo -n "Checking that no $(VERSION) release already exists..."
+ @echo -n "Checking that no $(PACKAGE_VERSION) release already exists..."
@ssh $(RELEASE_UPLOAD_HOST) test ! -e $(RELEASE_UPLOAD_DIR)/$(tar_file) \
|| (echo "Ouch." && echo "Found: $(RELEASE_UPLOAD_HOST):$(RELEASE_UPLOAD_DIR)/$(tar_file)" \
&& echo "Are you sure you have an updated git checkout?" \
@@ -71,7 +85,7 @@ release-upload: release-check $(tar_file) $(sha1_file) $(gpg_file)
scp $(tar_file) $(sha1_file) $(gpg_file) $(RELEASE_UPLOAD_HOST):$(RELEASE_UPLOAD_DIR)
mv $(tar_file) $(sha1_file) $(gpg_file) releases
ssh $(RELEASE_UPLOAD_HOST) "rm -f $(RELEASE_UPLOAD_DIR)/LATEST-$(PACKAGE)-[0-9]* && ln -s $(tar_file) $(RELEASE_UPLOAD_DIR)/LATEST-$(PACKAGE)-$(VERSION)"
- $(GIT) tag -s -m "$(PACKAGE) release $(VERSION)" v$(VERSION)
+ $(GIT) tag -s -m "$(PACKAGE) release $(PACKAGE_VERSION)" v$(PACKAGE_VERSION)
doc-publish:
(cd docs/reference && $(MAKE) $(AM_MAKEFLAGS) publish)
@@ -81,13 +95,13 @@ release-publish: release-upload doc-publish releases/$(sha1_file)
@echo "Please send an announcement to $(RELEASE_ANNOUNCE_LIST)"
@echo "including the following:"
@echo ""
- @echo "Subject: $(PACKAGE) release $(VERSION) now available"
+ @echo "Subject: $(PACKAGE) release $(PACKAGE_VERSION) now available"
@echo ""
@echo "============================== CUT HERE =============================="
@echo "cairomm is a C++ API for the cairo graphics library. For more "
@echo "information, see http://cairographics.org/cairomm"
@echo ""
- @echo "A new $(PACKAGE) release $(VERSION) is now available from:"
+ @echo "A new $(PACKAGE) release $(PACKAGE_VERSION) is now available from:"
@echo ""
@echo " $(RELEASE_URL_BASE)/$(tar_file)"
@echo ""
diff --git a/cairomm/Makefile.am b/cairomm/Makefile.am
index 25c9ca2..21d2383 100644
--- a/cairomm/Makefile.am
+++ b/cairomm/Makefile.am
@@ -1,21 +1,11 @@
-SUBDIRS =
-
-INCLUDES = -I$(top_srcdir) @CAIROMM_CFLAGS@
-
-h_sources_public = cairomm.h context.h enums.h fontface.h fontoptions.h matrix.h path.h pattern.h quartz_font.h quartz_surface.h surface.h xlib_surface.h win32_font.h win32_surface.h exception.h refptr.h scaledfont.h types.h cairommconfig.h
-h_sources_private = private.h context_private.h
-cc_sources = context.cc fontface.cc fontoptions.cc matrix.cc path.cc pattern.cc quartz_font.cc quartz_surface.cc surface.cc xlib_surface.cc win32_font.cc win32_surface.cc exception.cc scaledfont.cc
-cc_sources_private = private.cc context_surface_quartz.cc context_surface_win32.cc context_surface_xlib.cc
-
-win32_dlls_ldflags = -no-undefined
-
lib_LTLIBRARIES = libcairomm-1.0.la
-libcairomm_1_0_la_LDFLAGS = -version-info $(CAIROMM_SO_VERSION) $(win32_dlls_ldflags)
-libcairomm_1_0_la_LIBADD = @CAIROMM_LIBS@
-libcairomm_1_0_la_SOURCES = $(cc_sources) $(h_sources_public) $(h_sources_private) $(cc_sources_private)
-# Install the headers:
-library_includedir=$(includedir)/cairomm-1.0/cairomm
-library_include_HEADERS = $(h_sources_public)
+include $(srcdir)/filelist.am
+include $(top_srcdir)/build/compile-binding.am
+
+AM_CPPFLAGS = $(binding_includes) $(binding_cppflags) -I. $(CAIROMM_CFLAGS)
+AM_CXXFLAGS = $(CAIROMM_WXXFLAGS)
-EXTRA_DIST = cairommconfig.h.in
+libcairomm_1_0_la_SOURCES = $(binding_sources)
+libcairomm_1_0_la_LDFLAGS = -no-undefined -version-info $(CAIROMM_SO_VERSION)
+libcairomm_1_0_la_LIBADD = $(CAIROMM_LIBS)
diff --git a/cairomm/filelist.am b/cairomm/filelist.am
new file mode 100644
index 0000000..77e5af7
--- /dev/null
+++ b/cairomm/filelist.am
@@ -0,0 +1,42 @@
+## This file is part of cairomm.
+
+files_extra_cc = context.cc \
+ fontface.cc \
+ fontoptions.cc \
+ matrix.cc \
+ path.cc \
+ pattern.cc \
+ quartz_font.cc \
+ quartz_surface.cc \
+ surface.cc \
+ xlib_surface.cc \
+ win32_font.cc \
+ win32_surface.cc \
+ exception.cc \
+ scaledfont.cc \
+ private.cc \
+ context_surface_quartz.cc \
+ context_surface_win32.cc \
+ context_surface_xlib.cc
+
+files_extra_h = cairomm.h \
+ context.h \
+ enums.h \
+ fontface.h \
+ fontoptions.h \
+ matrix.h path.h \
+ pattern.h \
+ quartz_font.h \
+ quartz_surface.h \
+ surface.h \
+ xlib_surface.h \
+ win32_font.h \
+ win32_surface.h \
+ exception.h \
+ refptr.h \
+ scaledfont.h \
+ types.h \
+ cairommconfig.h
+
+files_extra_ph = private.h \
+ context_private.h
diff --git a/configure.ac b/configure.ac
index 8631564..b291869 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6,10 +6,12 @@ AC_CONFIG_AUX_DIR([build])
AC_CONFIG_MACRO_DIR([build])
AC_CONFIG_HEADERS([cairomm/cairommconfig.h])
-AM_INIT_AUTOMAKE([1.10 -Wno-portability no-define tar-ustar])
+AM_INIT_AUTOMAKE([1.10 -Wno-portability no-define nostdinc tar-pax])
AM_MAINTAINER_MODE
AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I <macro dir>])
+MM_INIT_MODULE([cairomm-1.0], m4_expand([AC_PACKAGE_VERSION]))
+
# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
AC_SUBST([CAIROMM_SO_VERSION], [5:0:4])
@@ -36,9 +38,8 @@ AC_CONFIG_FILES([Makefile
data/cairomm-1.0.pc
docs/Makefile
docs/reference/Doxyfile
+ docs/reference/Makefile
examples/Makefile
- examples/surfaces/Makefile
- examples/text/Makefile
tests/Makefile])
AC_PROG_CXX
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 8bcb6ca..e0d3fbc 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -1,3 +1,24 @@
-SUBDIRS = surfaces text
+AUTOMAKE_OPTIONS = subdir-objects
-EXTRA_DIST = README Makefile.am_fragment
+check_PROGRAMS = surfaces/pdf-surface \
+ surfaces/ps-surface \
+ surfaces/svg-surface \
+ surfaces/image-surface \
+ text/text-rotate \
+ text/toy-text \
+ text/user-font
+
+AM_CPPFLAGS = -I$(top_builddir) $(if $(srcdir:.=),-I$(top_srcdir)) $(CAIROMM_CFLAGS)
+AM_CXXFLAGS = $(CAIROMM_WXXFLAGS)
+
+LDADD = $(top_builddir)/cairomm/libcairomm-$(CAIROMM_API_VERSION).la
+
+surfaces_pdf_surface_SOURCES = surfaces/pdf-surface.cc
+surfaces_ps_surface_SOURCES = surfaces/ps-surface.cc
+surfaces_svg_surface_SOURCES = surfaces/svg-surface.cc
+surfaces_image_surface_SOURCES = surfaces/image-surface.cc
+text_text_rotate_SOURCES = text/text-rotate.cc
+text_toy_text_SOURCES = text/toy-text.cc
+text_user_font_SOURCES = text/user-font.cc
+
+EXTRA_DIST = README
diff --git a/examples/surfaces/Makefile.am b/examples/surfaces/Makefile.am
deleted file mode 100644
index ea7c50c..0000000
--- a/examples/surfaces/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-include $(top_srcdir)/examples/Makefile.am_fragment
-
-# build the executable but don't install it
-noinst_PROGRAMS = pdf-surface \
- ps-surface \
- svg-surface \
- image-surface
-
-pdf_surface_SOURCES = pdf-surface.cc
-ps_surface_SOURCES = ps-surface.cc
-svg_surface_SOURCES = svg-surface.cc
-image_surface_SOURCES = image-surface.cc
-
-CLEANFILES = image.pdf image.ps image.svg example_png_file.png
diff --git a/examples/text/Makefile.am b/examples/text/Makefile.am
deleted file mode 100644
index 9369eec..0000000
--- a/examples/text/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-include $(top_srcdir)/examples/Makefile.am_fragment
-
-# build the executable but don't install it
-noinst_PROGRAMS = text-rotate toy-text user-font
-
-text_rotate_SOURCES = text-rotate.cc
-toy_text_SOURCES=toy-text.cc
-user_font_SOURCES=user-font.cc
-
-CLEANFILES = text-rotate.png toy-text.png user-font.png