| 1 | # Created: 2005/03/12 |
| 2 | # Author: David Elliott |
| 3 | |
| 4 | # Usage Example: |
| 5 | # make -f build/autogen.mk ACLOCAL=aclocal-1.9 |
| 6 | |
| 7 | # This is a simple Makefile to update the UNIX build system in such a |
| 8 | # way that doing a cvs diff on its output files should reveal only the |
| 9 | # true changes, not meaningless differences due to slightly different |
| 10 | # autoconf or aclocal m4 files. |
| 11 | |
| 12 | # For aclocal: All necessary m4 files are located in the build/aclocal |
| 13 | # directory. Running aclocal -I build/aclocal when using aclocal 1.9 |
| 14 | # will result in an aclocal.m4 which uses m4_include for these files. |
| 15 | |
| 16 | ACLOCAL=aclocal |
| 17 | AUTOCONF=autoconf |
| 18 | BAKEFILE_GEN=bakefile_gen |
| 19 | AUTOHACKS_PREPEND_INCLUDE_DIR=build/autoconf_prepend-include |
| 20 | |
| 21 | # configure depends on everything else so this will build everything. |
| 22 | .PHONY: all |
| 23 | all: configure |
| 24 | |
| 25 | .PHONY: autoconf_m4f |
| 26 | |
| 27 | # Invoke make on wxAutohacks dir, but don't fail if it's not present |
| 28 | autoconf_m4f: |
| 29 | -make -C $(AUTOHACKS_PREPEND_INCLUDE_DIR) |
| 30 | |
| 31 | BAKEFILES=\ |
| 32 | build/bakefiles/wx.bkl \ |
| 33 | build/bakefiles/common.bkl \ |
| 34 | build/bakefiles/files.bkl \ |
| 35 | build/bakefiles/monolithic.bkl \ |
| 36 | build/bakefiles/multilib.bkl \ |
| 37 | build/bakefiles/opengl.bkl \ |
| 38 | build/bakefiles/plugins.bkl \ |
| 39 | build/bakefiles/build_cfg.bkl |
| 40 | |
| 41 | # Run bakefile-gen (which generates everything) whenever a bakefile is newer |
| 42 | # than Makefile.in or autoconf_inc.m4. |
| 43 | # This dep is obviously wrong but probably close enough |
| 44 | autoconf_inc.m4 Makefile.in: $(BAKEFILES) |
| 45 | cd build/bakefiles && \ |
| 46 | $(BAKEFILE_GEN) -f autoconf |
| 47 | |
| 48 | # Run configure whenever configure.in, aclocal.m4 or autoconf_inc.m4 is updated |
| 49 | # Depend on our custom autoconf.m4f |
| 50 | configure: configure.in aclocal.m4 autoconf_inc.m4 autoconf_m4f |
| 51 | $(AUTOCONF) -B $(AUTOHACKS_PREPEND_INCLUDE_DIR) |
| 52 | |
| 53 | ACLOCAL_SOURCES = \ |
| 54 | build/aclocal/bakefile.m4 \ |
| 55 | build/aclocal/bakefile-lang.m4 \ |
| 56 | build/aclocal/cppunit.m4 \ |
| 57 | build/aclocal/gst-element-check.m4 \ |
| 58 | build/aclocal/gtk-2.0.m4 \ |
| 59 | build/aclocal/gtk.m4 \ |
| 60 | build/aclocal/pkg.m4 \ |
| 61 | build/aclocal/sdl.m4 \ |
| 62 | build/aclocal/visibility.m4 |
| 63 | |
| 64 | # Run aclocal whenever acinclude or one of our local m4s is updated. |
| 65 | aclocal.m4: configure.in acinclude.m4 $(ACLOCAL_SOURCES) |
| 66 | $(ACLOCAL) -I build/aclocal |
| 67 | |