From 06de63b184325531c76270205c7392ff8c93466d Mon Sep 17 00:00:00 2001 From: David King Date: Wed, 12 Aug 2009 11:45:30 +0200 Subject: 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. --- .gitignore | 10 ++++++++-- ChangeLog | 16 ++++++++++++++++ Makefile.am | 32 +++++++++++++++++++++++--------- cairomm/Makefile.am | 26 ++++++++------------------ cairomm/filelist.am | 42 ++++++++++++++++++++++++++++++++++++++++++ configure.ac | 7 ++++--- examples/Makefile.am | 25 +++++++++++++++++++++++-- examples/surfaces/Makefile.am | 14 -------------- examples/text/Makefile.am | 10 ---------- 9 files changed, 124 insertions(+), 58 deletions(-) create mode 100644 cairomm/filelist.am delete mode 100644 examples/surfaces/Makefile.am delete mode 100644 examples/text/Makefile.am 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 + + * .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 * 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 ]) +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 -- cgit v1.2.3