# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2005 The Trustees of Princeton University
#
-# $Id: Makefile,v 1.2 2006/10/25 21:05:40 mlhuang Exp $
+# $Id: Makefile,v 1.10 2006/12/15 16:20:20 mlhuang Exp $
#
# Metafiles
-INIT := PLC/__init__.py PLC/Methods/__init__.py
+init := PLC/__init__.py PLC/Methods/__init__.py
+
+# Python modules
+modules := psycopg2
+
+# Temporarily until we can kill the Fedora Core 2 build
+curl_vernum := $(shell printf %d 0x$(shell curl-config --vernum))
+pycurl_vernum := $(shell printf %d 0x070d01) # 7.13.1
+ifeq ($(shell test $(curl_vernum) -ge $(pycurl_vernum) && echo 1),1)
+modules += pycurl
+endif
+
+modules-install := $(foreach module, $(modules), $(module)-install)
+modules-clean := $(foreach module, $(modules), $(module)-clean)
# Other stuff
-SUBDIRS := doc php
+subdirs := doc php php/xmlrpc
+
+# autoconf compatible variables
+DESTDIR := /plc/root
+datadir := /usr/share
+bindir := /usr/bin
+
+PWD := $(shell pwd)
-all: $(INIT) $(SUBDIRS)
+all: $(init) $(subdirs) $(modules)
+ python setup.py build
-$(SUBDIRS): %:
+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
+ install -D -m 755 php/xmlrpc/xmlrpc.so $(DESTDIR)/$(shell php-config --extension-dir)/xmlrpc.so
+
+$(subdirs): $(init) $(modules)
+
+$(subdirs): %:
$(MAKE) -C $@
-clean:
- find . -name '*.pyc' -execdir rm -f {} \;
+$(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
+
+index: $(init)
-index: PLC/__init__.py PLC/Methods/__init__.py
+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))
force:
-.PHONY: force clean $(SUBDIRS)
+.PHONY: all install force clean index tags $(subdirs) $(modules)