aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Configure.mk48
-rw-r--r--Rules.mk3
3 files changed, 52 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 54650bcf2..b62d8982b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@ Documentation/user-manual.pdf
Documentation/user-manual.text
packaging/windows/subsurface.nsi
packaging/macos/Info.plist
+config.cache
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
diff --git a/Rules.mk b/Rules.mk
index 59e73e13d..5374e060b 100644
--- a/Rules.mk
+++ b/Rules.mk
@@ -197,4 +197,7 @@ clean:
$(VERSION_FILE) qt-ui/*.moc qt-ui/ui_*.h
rm -rf share .dep
+confclean: clean
+ rm -f $(CONFIGFILE)
+
-include $(DEPS)