From c11ce7e1574889734fa010ad3d8379aa41720fdc Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sat, 13 Apr 2013 09:00:15 -0700 Subject: Introduce a cache of the configuration You may have noticed that running make is a little slow. Every time that it is loaded, it will try to detect everything again. So, instead, save the output and reload it the next time. This is implemented by adding a rule that (re-)creates the config.cache file, which is included by make. If the file doesn't exist yet, make will first run the rule which creates it, then reload itself. You can also cause it to reconfigure by running "make configure". Signed-off-by: Thiago Macieira --- Configure.mk | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'Configure.mk') diff --git a/Configure.mk b/Configure.mk index f9b9e0674..fa04a44ec 100644 --- a/Configure.mk +++ b/Configure.mk @@ -1,5 +1,6 @@ # -*- Makefile -*- # This file contains the detection rules +all: PKGCONFIG=pkg-config XML2CONFIG=xml2-config @@ -8,6 +9,11 @@ QMAKE=qmake MOC=moc UIC=uic +CONFIGFILE = config.cache +ifeq ($(CONFIGURING),1) + +# Detect the target system +# Ask the compiler what OS it's producing files for UNAME := $(shell $(CC) -dumpmachine 2>&1 | grep -E -o "linux|darwin|win|gnu|kfreebsd") # find libdivecomputer @@ -110,3 +116,45 @@ ZIPFLAGS = $(strip $(shell $(PKGCONFIG) --cflags libzip 2> /dev/null)) LIBSQLITE3 = $(shell $(PKGCONFIG) --libs sqlite3 2> /dev/null) SQLITE3FLAGS = $(strip $(shell $(PKGCONFIG) --cflags sqlite3)) + +# Write the configure file +all: configure +configure $(CONFIGURE): Configure.mk + @echo "\ + CONFIGURED = 1 \\\ + UNAME = $(UNAME) \\\ + LIBDIVECOMPUTERDIR = $(LIBDIVECOMPUTERDIR) \\\ + LIBDIVECOMPUTERCFLAGS = $(LIBDIVECOMPUTERCFLAGS) \\\ + LIBDIVECOMPUTER = $(LIBDIVECOMPUTER) \\\ + LIBQT = $(LIBQT) \\\ + QTCXXFLAGS = $(QTCXXFLAGS) \\\ + LIBGTK = $(LIBGTK) \\\ + GTKCFLAGS = $(GTKCFLAGS) \\\ + LIBGCONF2 = $(LIBGCONF2) \\\ + GCONF2CFLAGS = $(GCONF2CFLAGS) \\\ + GTK_MAC_BUNDLER = $(GTK_MAC_BUNDLER) \\\ + LIBXML2 = $(LIBXML2) \\\ + LIBXSLT = $(LIBXSLT) \\\ + XML2CFLAGS = $(XML2CFLAGS) \\\ + GLIB2CFLAGS = $(GLIB2CFLAGS) \\\ + XSLCFLAGS = $(XSLCFLAGS) \\\ + OSMGPSMAPFLAGS = $(OSMGPSMAPFLAGS) \\\ + LIBOSMGPSMAP = $(LIBOSMGPSMAP) \\\ + LIBSOUPCFLAGS = $(LIBSOUPCFLAGS) \\\ + LIBSOUP = $(LIBSOUP) \\\ + LIBZIP = $(LIBZIP) \\\ + ZIPFLAGS = $(ZIPFLAGS) \\\ + LIBSQLITE3 = $(LIBSQLITE3) \\\ + SQLITE3FLAGS = $(SQLITE3FLAGS) \\\ + " | sed 's,\\,\n,g' > $(CONFIGFILE) + +else +configure $(CONFIGFILE): Configure.mk + @test -e $(CONFIGFILE) && echo Reconfiguring.. || echo Configuring... + @$(MAKE) CONFIGURING=1 configure + @echo Done + +-include $(CONFIGFILE) +endif + +.PHONY: configure all -- cgit v1.2.3-70-g09d2