From 0c7ca81c4f212e0e1cd59c3257164e50932e77aa Mon Sep 17 00:00:00 2001 From: David Elliott Date: Tue, 20 Sep 2005 17:34:28 +0000 Subject: [PATCH] Added simple instructions and autogen.mk to rebuild configure script. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- build/README.txt | 27 ++++++++++++++++++++ build/autogen.mk | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 build/README.txt create mode 100644 build/autogen.mk diff --git a/build/README.txt b/build/README.txt new file mode 100644 index 0000000000..820b921357 --- /dev/null +++ b/build/README.txt @@ -0,0 +1,27 @@ +autogen.mk + +autogen.mk is a makefile provided to automatically update the GNU autotools +build system. It will run Bakefile, aclocal, and autoconf as appropriate. + +The .m4 files required for running aclocal are located in build/aclocal. +When upgrading software that wxWidgets depends on (for example, Bakefile, +cppunit, GTK, SDL, or others) it is advisable to upgrade the .m4 files +located in the build/aclocal directory. + +It is particularly important that if you use a newer version of Bakefile +to generate the Makefile.in files that you use the newer bakefile*.m4. +Because build/autogen.mk is a Makefile it will automatically rerun +aclocal and autoconf as necessary whenever any m4 in build/aclocal is +newer than the generated aclocal.m4. + +You can achieve this simply by copying the new bakefile*.m4 files from +PREFIX/share/aclocal/ into the build/aclocal/ directory and +rerunning make -f build/autogen.mk. Note that you should _not_ preserve +source file times (don't use cp -p) or else it's possible your .m4 files +will be older than the generated aclocal.m4). +Example: +cp /usr/share/aclocal/bakefile*.m4 build/aclocal/ +make -f build/autogen.mk + +Please don't forget to commit updated .m4 files as well as updated aclocal.m4, +configure, and Makefile.in files to wxWidgets. diff --git a/build/autogen.mk b/build/autogen.mk new file mode 100644 index 0000000000..2da3f2fa74 --- /dev/null +++ b/build/autogen.mk @@ -0,0 +1,66 @@ +# Created: 2005/03/12 +# Author: David Elliott + +# Usage Example: +# make -f build/autogen.mk ACLOCAL=aclocal-1.9 + +# This is a simple Makefile to update the UNIX build system in such a +# way that doing a cvs diff on its output files should reveal only the +# true changes, not meaningless differences due to slightly different +# autoconf or aclocal m4 files. + +# For aclocal: All necessary m4 files are located in the build/aclocal +# directory. Running aclocal -I build/aclocal when using aclocal 1.9 +# will result in an aclocal.m4 which uses m4_include for these files. + +ACLOCAL=aclocal +AUTOCONF=autoconf +BAKEFILE_GEN=bakefile_gen +AUTOHACKS_PREPEND_INCLUDE_DIR=build/autoconf_prepend-include + +# configure depends on everything else so this will build everything. +.PHONY: all +all: configure + +.PHONY: autoconf_m4f + +# Invoke make on wxAutohacks dir, but don't fail if it's not present +autoconf_m4f: + -make -C $(AUTOHACKS_PREPEND_INCLUDE_DIR) + +BAKEFILES=\ + build/bakefiles/wx.bkl \ + build/bakefiles/common.bkl \ + build/bakefiles/files.bkl \ + build/bakefiles/monolithic.bkl \ + build/bakefiles/multilib.bkl \ + build/bakefiles/opengl.bkl \ + build/bakefiles/plugins.bkl \ + build/bakefiles/build_cfg.bkl + +# Run bakefile-gen (which generates everything) whenever a bakefile is newer +# than Makefile.in or autoconf_inc.m4. +# This dep is obviously wrong but probably close enough +autoconf_inc.m4 Makefile.in: $(BAKEFILES) + cd build/bakefiles && \ + $(BAKEFILE_GEN) -f autoconf + +# Run configure whenever configure.in, aclocal.m4 or autoconf_inc.m4 is updated +# Depend on our custom autoconf.m4f +configure: configure.in aclocal.m4 autoconf_inc.m4 autoconf_m4f + $(AUTOCONF) -B $(AUTOHACKS_PREPEND_INCLUDE_DIR) + +ACLOCAL_SOURCES = \ + build/aclocal/bakefile.m4 \ + build/aclocal/bakefile-lang.m4 \ + build/aclocal/cppunit.m4 \ + build/aclocal/gst-element-check.m4 \ + build/aclocal/gtk-2.0.m4 \ + build/aclocal/gtk.m4 \ + build/aclocal/pkg.m4 \ + build/aclocal/sdl.m4 + +# Run aclocal whenever acinclude or one of our local m4s is updated. +aclocal.m4: configure.in acinclude.m4 $(ACLOCAL_SOURCES) + $(ACLOCAL) -I build/aclocal +