chiark / gitweb /
Python IP addresses: Check for and maybe delete stale ipaddr.py
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 14 Sep 2014 23:47:13 +0000 (00:47 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 6 Oct 2014 16:53:12 +0000 (17:53 +0100)
If ipaddr.py (or .pyc) from a previous secnet installation still
exists in /usr/share/secnet or /usr/local/share/secnet, this version
won't work.  Check for this situation in `make install' and bomb out.
Provide a `make install-force' which deletes the spurious files.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Makefile.in

index 5ebc28d59cb451fb21e36269f741b0fc6d3a5cc5..a6ac640cc14c43cea08962a8ad9435f4f291306c 100644 (file)
@@ -69,6 +69,12 @@ OBJECTS:=version.o
 TEST_OBJECTS:=
 endif
 
 TEST_OBJECTS:=
 endif
 
+STALE_PYTHON_FILES=    $(foreach e, py pyc, \
+                       $(foreach p, /usr /usr/local, \
+                       $(foreach l, ipaddr, \
+                       $p/share/secnet/$l.$e \
+                       )))
+
 %.c:   %.y
 
 %.yy.c:        %.fl
 %.c:   %.y
 
 %.yy.c:        %.fl
@@ -161,11 +167,23 @@ installdirs:
        $(INSTALL) -d $(mandir)/man8
 
 install: installdirs
        $(INSTALL) -d $(mandir)/man8
 
 install: installdirs
+       set -e; ok=true; for f in $(STALE_PYTHON_FILES); do \
+               if test -e $$f; then \
+                       echo >&2 "ERROR: $$f still exists "\
+                               "- try \`make install-force'"; \
+                       ok=false; \
+               fi; \
+       done; \
+       $$ok
        $(INSTALL_PROGRAM) secnet $(sbindir)/`echo secnet|sed '$(transform)'`
        $(INSTALL_PROGRAM) ${srcdir}/make-secnet-sites $(sbindir)/`echo make-secnet-sites|sed '$(transform)'`
        $(INSTALL) ${srcdir}/ipaddrset.py $(prefix)/share/secnet/ipaddrset.py
        $(INSTALL) secnet.8 $(mandir)/man8/secnet.8
 
        $(INSTALL_PROGRAM) secnet $(sbindir)/`echo secnet|sed '$(transform)'`
        $(INSTALL_PROGRAM) ${srcdir}/make-secnet-sites $(sbindir)/`echo make-secnet-sites|sed '$(transform)'`
        $(INSTALL) ${srcdir}/ipaddrset.py $(prefix)/share/secnet/ipaddrset.py
        $(INSTALL) secnet.8 $(mandir)/man8/secnet.8
 
+install-force:
+       rm -f $(STALE_PYTHON_FILES)
+       $(MAKE) install
+
 clean:
        $(RM) -f *.o *.yy.c *.tab.[ch] $(TARGETS) core version.c
        $(RM) -f *.d *~ eax-*-test.confirm eax-*-test
 clean:
        $(RM) -f *.o *.yy.c *.tab.[ch] $(TARGETS) core version.c
        $(RM) -f *.d *~ eax-*-test.confirm eax-*-test