From 54aa6fe7df7c13beeee3a8ebacc073bcb1fd6d26 Mon Sep 17 00:00:00 2001 From: Al Date: Sat, 8 Aug 2015 17:15:57 -0400 Subject: [PATCH] [build] Fixing runtime check/save of last updated file for package data tarball --- configure | 8 ++++++++ configure.ac | 3 +++ src/Makefile.LastModified | 5 ----- src/Makefile.am | 36 +++++++++++++++++------------------- 4 files changed, 28 insertions(+), 24 deletions(-) delete mode 100644 src/Makefile.LastModified diff --git a/configure b/configure index f9fde338..96e2a44a 100755 --- a/configure +++ b/configure @@ -592,6 +592,7 @@ PACKAGE_STRING='libpostal 0.1' PACKAGE_BUGREPORT='' PACKAGE_URL='' +ac_unique_file="src" # Factoring default headers for most tests. ac_includes_default="\ #include @@ -632,6 +633,7 @@ ac_header_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS +LIBPOSTAL_DATA_UPDATED_PATH HAVE_STAT_FALSE HAVE_STAT_TRUE HAVE_DATE_STAT_FALSE @@ -2993,6 +2995,7 @@ END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi + case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 @@ -11609,6 +11612,7 @@ CC="$lt_save_CC" # Only expand once: + ac_config_headers="$ac_config_headers config.h" @@ -12621,6 +12625,10 @@ else fi +LAST_UPDATED_PATH=$srcdir/libpostal_data_last_updated +LIBPOSTAL_DATA_UPDATED_PATH=$LAST_UPDATED_PATH + + cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure diff --git a/configure.ac b/configure.ac index b4e37b9d..da3e71f2 100644 --- a/configure.ac +++ b/configure.ac @@ -50,4 +50,7 @@ AC_CONFIG_FILES([Makefile AM_CONDITIONAL([HAVE_DATE_STAT], [date -r . >/dev/null 2>&1]) AM_CONDITIONAL([HAVE_STAT], [stat -f %Sm . >/dev/null 2>&1]) +LAST_UPDATED_PATH=$srcdir/libpostal_data_last_updated +AC_SUBST([LIBPOSTAL_DATA_UPDATED_PATH], $LAST_UPDATED_PATH) + AC_OUTPUT diff --git a/src/Makefile.LastModified b/src/Makefile.LastModified deleted file mode 100644 index 7868e5d2..00000000 --- a/src/Makefile.LastModified +++ /dev/null @@ -1,5 +0,0 @@ -ifeq ("$(wildcard $(LIBPOSTAL_DATA_LAST_UPDATED))", "") - LAST_MODIFIED_DATE = $(EPOCH_DATE) -else - LAST_MODIFIED_DATE = $(call get_last_modified,$(LIBPOSTAL_DATA_LAST_UPDATED)) -endif \ No newline at end of file diff --git a/src/Makefile.am b/src/Makefile.am index 5dd93e5f..aa2c54a4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -26,45 +26,43 @@ LIBPOSTAL_S3_BUCKET_NAME = libpostal LIBPOSTAL_S3_BUCKET_URL = http://$(LIBPOSTAL_S3_BUCKET_NAME).s3.amazonaws.com LIBPOSTAL_DATA_FILE = libpostal_data.tar.gz +LIBPOSTAL_DATA_DIR = $(datadir)/libpostal/ + EPOCH_DATE = Jan 1 00:00:00 1970 -LIBPOSTAL_DATA_DIR = $(datadir)/libpostal/ -LIBPOSTAL_DATA_LAST_UPDATED = $(LIBPOSTAL_DATA_DIR)libpostal_data_last_updated +LAST_MODIFIED_DATE = $(EPOCH_DATE) + if HAVE_DATE_STAT USE_DATE_STAT = 1 -define get_last_modified -$(shell date -d "@$$(shell cat $1)") -endef - else if HAVE_STAT USE_STAT = 1 -define get_last_modified -$(shell date -r "$(shell cat $1)") -endef - else $(error Cannot get file modification date on this platform); endif endif -$(eval include $(srcdir)/Makefile.LastModified) libpostal_data_mkdir: mkdir -p $(LIBPOSTAL_DATA_DIR) -libpostal_data.tar.gz: libpostal_data_mkdir - if [ `curl $(LIBPOSTAL_S3_BUCKET_URL)/$(LIBPOSTAL_DATA_FILE) -z "$(LAST_MODIFIED_DATE)" --silent --remote-time -o $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE) -w %{http_code}` = "200" ]; then \ - if [ "x$(USE_DATE_STAT)" != "x" ]; then \ - echo $$(date -d"$$(date -d "@$$(date -r $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE)) +%s") + 1 second" +%s) > $(LIBPOSTAL_DATA_LAST_UPDATED); \ - elif [ "x$(USE_STAT)" != "x" ]; then \ - echo $$(date -r $$(stat -f %m $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE)) -v+1S +%s) > $(LIBPOSTAL_DATA_LAST_UPDATED); \ - fi; \ - tar -xvzf $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE) -C $(LIBPOSTAL_DATA_DIR); \ +libpostal_data_updated: + if [ ! -e @LIBPOSTAL_DATA_UPDATED_PATH@ ]; then \ + echo "$(EPOCH_DATE)" > @LIBPOSTAL_DATA_UPDATED_PATH@; \ + fi; + +libpostal_data.tar.gz: libpostal_data_mkdir libpostal_data_updated + if [ $$(curl $(LIBPOSTAL_S3_BUCKET_URL)/$(LIBPOSTAL_DATA_FILE) -z "$$(cat @LIBPOSTAL_DATA_UPDATED_PATH@)" --silent --remote-time -o $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE) -w %{http_code}) = "200" ]; then \ + if [ "x$(USE_DATE_STAT)" != "x" ]; then \ + echo $$(date -d "$$(date -d "@$$(date -r $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE) +%s)") + 1 second") > @LIBPOSTAL_DATA_UPDATED_PATH@; \ + elif [ "x$(USE_STAT)" != "x" ]; then \ + echo $$(date -r $$(stat -f %m $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE)) -v+1S) > @LIBPOSTAL_DATA_UPDATED_PATH@; \ + fi; \ + tar -xvzf $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE) -C $(LIBPOSTAL_DATA_DIR); \ fi; address_dictionary_builder: address_dictionary_builder.c