mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	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 <thiago@macieira.org>
This commit is contained in:
		
							parent
							
								
									d47b904580
								
							
						
					
					
						commit
						c11ce7e157
					
				
					 3 changed files with 52 additions and 0 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -22,3 +22,4 @@ Documentation/user-manual.pdf
 | 
			
		|||
Documentation/user-manual.text
 | 
			
		||||
packaging/windows/subsurface.nsi
 | 
			
		||||
packaging/macos/Info.plist
 | 
			
		||||
config.cache
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										48
									
								
								Configure.mk
									
										
									
									
									
								
							
							
						
						
									
										48
									
								
								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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										3
									
								
								Rules.mk
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue