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>
Sat, 27 Sep 2014 17:48:13 +0000 (18:48 +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 ab4d6fb..e2121d5 100644 (file)
@@ -68,6 +68,12 @@ OBJECTS:=version.o
 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
@@ -165,11 +171,23 @@ 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-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