]> git.saurik.com Git - apt.git/commitdiff
Configuration fragment
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:51:19 +0000 (16:51 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:51:19 +0000 (16:51 +0000)
Author: jgg
Date: 1998-11-05 00:32:06 GMT
Configuration fragment

Makefile
buildlib/configure.mak [new file with mode: 0644]
buildlib/defaults.mak

index 33f40750545f7ccd61ae14d129b3cff03f7d7b43..55d7ade6c61ccc57f8f89a4dd350a43423a42701 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -16,27 +16,13 @@ all headers library clean veryclean binary program doc:
        $(MAKE) -C gui $@
        $(MAKE) -C doc $@
 
+# Some very common aliases
 .PHONY: maintainer-clean dist-clean distclean pristine sanity 
 maintainer-clean dist-clean distclean pristine sanity: veryclean
 
-
 # The startup target builds the necessary configure scripts. It should
 # be used after a CVS checkout.
-.PHONY: startup
-BUILD=build
-CONVERTED=$(BUILD)/environment.mak $(BUILD)/include/config.h $(BUILD)/makefile
-startup: configure $(CONVERTED)
-
-configure: aclocal.m4 configure.in
-       autoconf        
-
-aclocal.m4:
-       aclocal -I buildlib
-
-$(BUILD)/config.status: configure
-       test -e $(BUILD) || mkdir $(BUILD)      
-       (HERE=`pwd`; cd $(BUILD) && $$HERE/configure)
+CONVERTED=environment.mak include/config.h makefile
 $(BUILD)/include/config.h: buildlib/config.h.in
 $(BUILD)/environment.mak: buildlib/environment.mak.in
-$(CONVERTED): $(BUILD)/config.status
-       (cd $(BUILD) && ./config.status)
+include buildlib/configure.mak
diff --git a/buildlib/configure.mak b/buildlib/configure.mak
new file mode 100644 (file)
index 0000000..64c3179
--- /dev/null
@@ -0,0 +1,35 @@
+# -*- make -*-
+
+# This make fragment is included by the toplevel make to handle configure
+# and setup. It defines a target called startup that when run will init
+# the build directory, generate configure from configure.in, create aclocal
+# and has rules to run config.status should one of the .in files change.
+
+# Input
+#  BUILD - The build director
+#  CONVERTED - List of files output by configure $(BUILD) is prepended
+#              The caller must provide depends for these files
+# It would be a fairly good idea to run this after a cvs checkout.
+BUILD=build
+
+.PHONY: startup
+startup: configure $(addprefix $(BUILD)/,$(CONVERTED))
+
+configure: aclocal.m4 configure.in
+       autoconf        
+aclocal.m4:
+       aclocal -I buildlib
+$(BUILD)/config.status: configure
+       test -e $(BUILD) || mkdir $(BUILD)      
+       (HERE=`pwd`; cd $(BUILD) && $$HERE/configure)
+$(CONVERTED): $(BUILD)/config.status
+       (cd $(BUILD) && ./config.status)
+
+# We include the environment if it exists and re-export it to configure. This
+# allows someone to edit it and not have their changes blown away.
+Env = $(wildcard $(BUILD)/environment.mak)
+ifneq ($(words $(Env)),0)
+include $(Env)
+export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS PICFLAGS
+endif
+
index 9b011301eb9db597e78e89fc2184cae52ddb8f29..549be5385169ad51a4eaeb668c0661752a3f608d 100644 (file)
@@ -18,7 +18,9 @@
 # and then within the rule $(@F) gets back $(LOCAL)! Other rules will
 # have to use some other mechanism (filter perhaps?) The reason such
 # lengths are used is so that each directory can contain several 'instances'
-# of any given module
+# of any given module. I notice that the very latest gmake has the concept
+# of local variables for rules. It is possible this feature in conjunction
+# with the generated names will provide a very powerfull solution indeed!
 
 # A build directory is used by default, all generated items get put into
 # there. However unlike automake this is not done with a VPATH build