Makefile used to build/install/uninstall geniwrapper
authorTony Mack <tmack@cs.princeton.edu>
Fri, 1 May 2009 19:54:52 +0000 (19:54 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Fri, 1 May 2009 19:54:52 +0000 (19:54 +0000)
Makefile [new file with mode: 0644]

diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..2573dc8
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,67 @@
+#
+## (Re)builds Python metafile (__init__.py) and documentation
+#
+# 
+# Meta
+init := geni/__init__.py geni/util/__init__.py geni/methods/__init__.py 
+
+subdirs := keyconvert #pyOpenSSL-0.7
+all: install $(init) $(subdirs)
+
+install: 
+       python setup.py install
+
+$(subdirs): $(init)
+
+$(subdirs): %:
+       $(MAKE) -C $@
+
+clean:
+       python setup.py uninstall
+       # XX remove keyconvert   
+       
+
+index: $(init)
+
+index-clean:
+       rm $(init)
+
+.phony: all install force clean index $(subdirs)
+
+geni/__init__.py:
+       (echo '## Please use make index to update this file' ; echo 'all = """' ; cd geni; ls -1 *.py | grep -v __init__ | sed -e 's,.py$$,,' ; echo '""".split()') > $@
+
+geni/methods/__init__.py:
+       (echo '## Please use make index to update this file' ; echo 'all = """' ; cd geni/methods; ls -1 *.py | grep -v __init__ | sed -e 's,.py$$,,' ; echo '""".split()') > $@
+
+geni/util/__init__.py:
+       (echo '## Please use make index to update this file' ; echo 'all = """' ; cd geni/util; ls -1 *.py | grep -v __init__ | sed -e 's,.py$$,,' ; echo '""".split()') > $@
+
+geni_now := $(sort $(shell fgrep -v '"' geni/__init__.py 2>/dev/null))
+# what should be declared
+geni_paths := $(filter-out %/__init__.py, $(wildcard geni/*.py))
+geni_files := $(sort $(notdir $(geni_paths:.py=)))
+ifneq ($(geni_now), $(geni_files))
+geni/__init__.py: force
+endif
+
+methods_now := $(sort $(shell fgrep -v '"' geni/methods/__init__.py 2>/dev/null))
+# what should be declared
+method_paths := $(filter-out %/__init__.py, $(wildcard geni/methods/*.py))
+method_files := $(sort $(notdir $(method_paths:.py=)))
+ifneq ($(methods_now), $(methods_files))
+geni/methods/__init__.py: force
+endif
+
+util_now := $(sort $(shell fgrep -v '"' geni/util/__init__.py 2>/dev/null))
+# what should be declared
+util_paths := $(filter-out %/__init__.py, $(wildcard geni/util/*.py))
+util_files := $(sort $(notdir $(util_paths:.py=)))
+ifneq ($(util_now), $(util_files))
+geni/util/__init__.py: force
+endif
+
+force:
+
+.PHONY: all install force clean index tags $(subdirs)