aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-04-28 22:01:40 +0200
committerEven Rouault <even.rouault@spatialys.com>2019-04-28 22:09:03 +0200
commit7bf0f597b8b0d7d209d856fa106b521ed65678af (patch)
tree357adfd638ccaa153bfc4f8ba378740c8d270696 /data
parent0fc0c6d8d535fcbf8b7c72d5a6c22c9daa780d49 (diff)
downloadPROJ-7bf0f597b8b0d7d209d856fa106b521ed65678af.tar.gz
PROJ-7bf0f597b8b0d7d209d856fa106b521ed65678af.zip
autoconf build: add a PROJ_DB_CACHE_DIR trick to speed-up builds
If the PROJ_DB_CACHE_DIR environment variable is defined, then a $(PROJ_DB_CACHED_DIR)/proj.db.sql.md5 file is used to determine if the set of .sql files has changed since the last time. If not then $(PROJ_DB_CACHED_DIR)/proj.db is directly used. This can saved a few seconds when doing rebuilds. This is a poor man equivalent of ccache for generating the database :-)
Diffstat (limited to 'data')
-rw-r--r--data/Makefile.am14
1 files changed, 13 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