aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/Makefile.am14
-rwxr-xr-xtravis/linux_clang/install.sh1
-rwxr-xr-xtravis/linux_gcc/install.sh1
-rwxr-xr-xtravis/linux_gcc7/install.sh1
-rwxr-xr-xtravis/mingw32/install.sh1
-rwxr-xr-xtravis/osx/install.sh1
6 files changed, 18 insertions, 1 deletions
diff --git a/data/Makefile.am b/data/Makefile.am
index 28d57ddb..a4446287 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -64,7 +64,13 @@ proj.db: $(DATAPATH)/sql/*.sql
for x in $(SQL_ORDERED_LIST); do \
export SQL_EXPANDED_LIST="$${SQL_EXPANDED_LIST} $(DATAPATH)/$$x"; \
done; \
- cat $${SQL_EXPANDED_LIST} | sqlite3 proj.db; \
+ if test "x$(PROJ_DB_CACHE_DIR)" != "x" -a -f "$(PROJ_DB_CACHE_DIR)/proj.db" -a -f "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5" ; then \
+ cat $${SQL_EXPANDED_LIST} | md5sum | diff - "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5" > /dev/null \
+ && (echo "Reusing cached proj.db"; cp "$(PROJ_DB_CACHE_DIR)/proj.db" proj.db); \
+ fi; \
+ if test ! -f proj.db ; then \
+ cat $${SQL_EXPANDED_LIST} | sqlite3 proj.db; \
+ fi; \
if [ $$? -ne 0 ] ; then \
echo "Build of proj.db failed"; \
$(RM) proj.db; \
@@ -77,6 +83,12 @@ proj.db: $(DATAPATH)/sql/*.sql
echo "Foreign key check failed"; \
$(RM) proj.db; \
exit 1; \
+ else \
+ if test "x$(PROJ_DB_CACHE_DIR)" != "x" ; then \
+ mkdir -p "$(PROJ_DB_CACHE_DIR)"; \
+ cat $${SQL_EXPANDED_LIST} | md5sum > "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5"; \
+ cp proj.db "$(PROJ_DB_CACHE_DIR)"; \
+ fi \
fi \
fi
diff --git a/travis/linux_clang/install.sh b/travis/linux_clang/install.sh
index f4b1ad12..50c02882 100755
--- a/travis/linux_clang/install.sh
+++ b/travis/linux_clang/install.sh
@@ -3,6 +3,7 @@
set -e
export CCACHE_CPP2=yes
+export PROJ_DB_CACHE_DIR="$HOME/.ccache"
# -fno-use-cxa-atexit is needed to build with -coverage
CC="ccache clang" CXX="ccache clang++" CFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" CXXFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" LDFLAGS="-fsanitize=address" ./travis/install.sh
diff --git a/travis/linux_gcc/install.sh b/travis/linux_gcc/install.sh
index ad5caa9c..17f07c56 100755
--- a/travis/linux_gcc/install.sh
+++ b/travis/linux_gcc/install.sh
@@ -3,5 +3,6 @@
set -e
export CCACHE_CPP2=yes
+export PROJ_DB_CACHE_DIR="$HOME/.ccache"
CC="ccache gcc" CXX="ccache g++" CFLAGS="-std=c89 -Werror" CXXFLAGS="-Werror" ./travis/install.sh
diff --git a/travis/linux_gcc7/install.sh b/travis/linux_gcc7/install.sh
index b957b927..dbd1f076 100755
--- a/travis/linux_gcc7/install.sh
+++ b/travis/linux_gcc7/install.sh
@@ -3,5 +3,6 @@
set -e
export CCACHE_CPP2=yes
+export PROJ_DB_CACHE_DIR="$HOME/.ccache"
CC="ccache $CC" CXX="ccache $CXX" CFLAGS="-std=c89 -Werror $CFLAGS" CXXFLAGS="-Werror $CXXFLAGS" ./travis/install.sh
diff --git a/travis/mingw32/install.sh b/travis/mingw32/install.sh
index d38f289f..80d591f4 100755
--- a/travis/mingw32/install.sh
+++ b/travis/mingw32/install.sh
@@ -3,6 +3,7 @@
set -e
export CCACHE_CPP2=yes
+export PROJ_DB_CACHE_DIR="$HOME/.ccache"
# prepare wine environment
wine64 cmd /c dir
diff --git a/travis/osx/install.sh b/travis/osx/install.sh
index 46bdbb22..4869ee65 100755
--- a/travis/osx/install.sh
+++ b/travis/osx/install.sh
@@ -3,5 +3,6 @@
set -e
export CCACHE_CPP2=yes
+export PROJ_DB_CACHE_DIR="$HOME/.ccache"
CC="ccache clang" CXX="ccache clang++" CFLAGS="-Werror -O2" CXXFLAGS="-Werror -O2" ./travis/install.sh