- build psycopg2, pycurl generically
authorMark Huang <mlhuang@cs.princeton.edu>
Fri, 15 Dec 2006 16:19:49 +0000 (16:19 +0000)
committerMark Huang <mlhuang@cs.princeton.edu>
Fri, 15 Dec 2006 16:19:49 +0000 (16:19 +0000)
- build subdirs after metafiles

Makefile

index b019480..b218b35 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,14 +4,19 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2005 The Trustees of Princeton University
 #
-# $Id: Makefile,v 1.7 2006/11/08 23:27:52 mlhuang Exp $
+# $Id: Makefile,v 1.8 2006/11/10 06:34:19 mlhuang Exp $
 #
 
 # Metafiles
-INIT := PLC/__init__.py PLC/Methods/__init__.py
+init := PLC/__init__.py PLC/Methods/__init__.py
+
+# Python modules
+modules := psycopg2 pycurl
+modules-install := $(foreach module, $(modules), $(module)-install)
+modules-clean := $(foreach module, $(modules), $(module)-clean)
 
 # Other stuff
-SUBDIRS := doc php php/xmlrpc
+subdirs := doc php php/xmlrpc
 
 # autoconf compatible variables
 DESTDIR := /plc/root
@@ -20,38 +25,45 @@ bindir := /usr/bin
 
 PWD := $(shell pwd)
 
-all: $(INIT) $(SUBDIRS)
+all: $(init) $(subdirs) $(modules)
        python setup.py build
-        # Install in the current directory so that we can import it
-       cd psycopg2 && \
-       python setup.py build && \
-       python setup.py install --install-lib=$(PWD)
 
-install:
+install: $(modules-install)
        python setup.py install \
            --install-purelib=$(DESTDIR)/$(datadir)/plc_api \
            --install-scripts=$(DESTDIR)/$(datadir)/plc_api \
            --install-data=$(DESTDIR)/$(datadir)/plc_api
-       (cd psycopg2 && \
-        python setup.py install --install-lib=$(DESTDIR)/$(datadir)/plc_api)
        install -D -m 755 php/xmlrpc/xmlrpc.so $(DESTDIR)/$(shell php-config --extension-dir)/xmlrpc.so
 
-$(SUBDIRS): %:
+$(subdirs): $(init)
+
+$(subdirs): %:
        $(MAKE) -C $@
 
-clean:
+$(modules):
+        # Install in the current directory so that we can import it while developing
+       cd $@ && \
+           python setup.py build && \
+           python setup.py install_lib --install-dir=$(PWD)
+
+$(modules-install): %-install:
+       cd $* && \
+           python setup.py install_lib --install-dir=$(DESTDIR)/$(datadir)/plc_api
+
+$(modules-clean): %-clean:
+       cd $* && python setup.py clean && rm -rf build
+
+clean: $(modules-clean)
        find . -name '*.pyc' | xargs rm -f
        rm -f $(INIT)
        for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir clean ; done
        python setup.py clean && rm -rf build
-       cd psycopg2 && python setup.py clean && rm -rf build
 
-index: $(INIT)
+index: $(init)
 
 tags:
        find . '(' -name '*.py' -o -name '*.sql' -o -name '*.php' -o -name Makefile ')' | xargs etags
 
-
 # All .py files in PLC/
 PLC := $(filter-out %/__init__.py, $(wildcard PLC/*.py))
 PLC_init := all = '$(notdir $(PLC:.py=))'.split()
@@ -76,4 +88,4 @@ endif
 
 force:
 
-.PHONY: all install force clean index tags $(SUBDIRS)
+.PHONY: all install force clean index tags $(subdirs) $(modules)