Setting tag plcapi-5.4-2
[plcapi.git] / Makefile
index c6d4985..f05c06f 100644 (file)
--- a/Makefile
+++ b/Makefile
-# Makefile for phpxmlrpc library\r
-\r
-### USER EDITABLE VARS - can be passed as command-line options ###\r
-\r
-# path to PHP executable, preferably CLI version\r
-PHP=php\r
-\r
-# path were xmlrpc lib files will be copied to\r
-PHPINCLUDEDIR=/usr/local/lib/php\r
-\r
-# mkdir is a thorny beast under windows: make sure we can not use the cmd version, running eg. "make MKDIR=mkdir.exe"\r
-MKDIR=mkdir\r
-\r
-#find too\r
-FIND=find\r
-\r
-DOS2UNIX=dos2unix\r
-\r
-#### DO NOT TOUCH FROM HERE ONWARDS ###\r
-\r
-# recover version number from code\r
-# thanks to Firman Pribadi for unix command line help\r
-#   on unix shells lasts char should be \\2/g )\r
-export VERSION=$(shell grep -E "\$GLOBALS *\[ *'xmlrpcVersion' *\] *= *'" lib/xmlrpc.inc | sed -r s/"(.*= *' *)([0-9a-zA-Z.-]+)(.*)"/\2/g )\r
-\r
-LIBFILES=lib/xmlrpc.inc lib/xmlrpcs.inc lib/xmlrpc_wrappers.inc \\r
- src/*.php src/Helper/*.php\r
-\r
-EXTRAFILES=extras/test.pl \\r
- extras/test.py \\r
- extras/rsakey.pem \\r
- extras/workspace.testPhpServer.fttb\r
-\r
-DEMOFILES=demo/vardemo.php \\r
- demo/demo1.xml \\r
- demo/demo2.xml \\r
- demo/demo3.xml\r
-\r
-DEMOSFILES=demo/server/discuss.php \\r
- demo/server/server.php \\r
- demo/server/proxy.php\r
-\r
-DEMOCFILES=demo/client/agesort.php \\r
- demo/client/client.php \\r
- demo/client/comment.php \\r
- demo/client/introspect.php \\r
- demo/client/mail.php \\r
- demo/client/simple_call.php \\r
- demo/client/which.php \\r
- demo/client/wrap.php \\r
- demo/client/zopetest.php\r
-\r
-TESTFILES=test/testsuite.php \\r
- tests/benchmark.php \\r
- tests/parse_args.php \\r
- test/InvalidHostTest.php \\r
- test/LocalHostTest.php \\r
- test/ParsingBugsTest.php \\r
- tests/verify_compat.php\r
-\r
-INFOFILES=Changelog \\r
- Makefile \\r
- NEWS \\r
- README\r
-\r
-DEBUGGERFILES=debugger/index.php \\r
- debugger/action.php \\r
- debugger/common.php \\r
- debugger/controller.php\r
-\r
-\r
-all: install\r
-\r
-install:\r
-       cp ${LIBFILES} ${PHPINCLUDEDIR}\r
-       @echo Lib files have been copied to ${PHPINCLUDEDIR}\r
-       cd doc && $(MAKE) install\r
-\r
-test:\r
-       cd test && ${PHP} -q testsuite.php\r
-\r
-\r
-### the following targets are to be used for library development ###\r
-\r
-# make tag target: tag existing working copy as release in git.\r
-tag:\r
-       git tag v${VERSION}\r
-       git push origin --tags\r
-\r
-dist: xmlrpc-${VERSION}.zip xmlrpc-${VERSION}.tar.gz\r
-\r
-xmlrpc-${VERSION}.zip xmlrpc-${VERSION}.tar.gz: ${LIBFILES} ${DEBUGGERFILES} ${INFOFILES} ${TESTFILES} ${EXTRAFILES} ${DEMOFILES} ${DEMOSFILES} ${DEMOCFILES}\r
-       @echo ---${VERSION}---\r
-       rm -rf xmlrpc-${VERSION}\r
-       ${MKDIR} xmlrpc-${VERSION}\r
-       ${MKDIR} xmlrpc-${VERSION}/demo\r
-       ${MKDIR} xmlrpc-${VERSION}/demo/client\r
-       ${MKDIR} xmlrpc-${VERSION}/demo/server\r
-       ${MKDIR} xmlrpc-${VERSION}/test\r
-       ${MKDIR} xmlrpc-${VERSION}/test/PHPUnit\r
-       ${MKDIR} xmlrpc-${VERSION}/extras\r
-       ${MKDIR} xmlrpc-${VERSION}/lib\r
-       ${MKDIR} xmlrpc-${VERSION}/debugger\r
-       cp --parents ${DEMOFILES} xmlrpc-${VERSION}\r
-       cp --parents ${DEMOCFILES} xmlrpc-${VERSION}\r
-       cp --parents ${DEMOSFILES} xmlrpc-${VERSION}\r
-       cp --parents ${TESTFILES} xmlrpc-${VERSION}\r
-       cp --parents ${EXTRAFILES} xmlrpc-${VERSION}\r
-       cp --parents ${LIBFILES} xmlrpc-${VERSION}\r
-       cp --parents ${DEBUGGERFILES} xmlrpc-${VERSION}\r
-       cp ${INFOFILES} xmlrpc-${VERSION}\r
-       cd doc && $(MAKE) dist\r
-#   on unix shells last char should be \;\r
-       ${FIND} xmlrpc-${VERSION} -type f ! -name "*.fttb" ! -name "*.pdf" ! -name "*.gif" -exec ${DOS2UNIX} ;\r
-       -rm xmlrpc-${VERSION}.zip xmlrpc-${VERSION}.tar.gz\r
-       tar -cvf xmlrpc-${VERSION}.tar xmlrpc-${VERSION}\r
-       gzip xmlrpc-${VERSION}.tar\r
-       zip -r xmlrpc-${VERSION}.zip xmlrpc-${VERSION}\r
-\r
-doc:\r
-       cd doc && $(MAKE) doc\r
-\r
-clean:\r
-       rm -rf xmlrpc-${VERSION} xmlrpc-${VERSION}.zip xmlrpc-${VERSION}.tar.gz\r
-       cd doc && $(MAKE) clean\r
+#
+# (Re)builds Python metafiles (__init__.py) and documentation
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2005 The Trustees of Princeton University
+#
+
+# python-pycurl and python-psycopg2 avail. from fedora 5
+# we used to ship our own version of psycopg2 and pycurl, for fedora4
+# starting with 5.0, support for these two modules is taken out
+
+# Other stuff - doc not implicit, it's redone by myplc-docs
+
+# autoconf compatible variables
+DESTDIR := /
+datadir := /usr/share
+bindir := /usr/bin
+
+PWD := $(shell pwd)
+
+all: 
+       python setup.py build
+
+install: install-python install-phpxmlrpc
+
+install-python:
+       python setup.py install \
+           --install-purelib=$(DESTDIR)/$(datadir)/plc_api \
+           --install-scripts=$(DESTDIR)/$(datadir)/plc_api \
+           --install-data=$(DESTDIR)/$(datadir)/plc_api
+
+# phpxmlrpc is a git subtree; we just ship all its contents
+# under /usr/share/plc_api/php/phpxmlrpc
+install-phpxmlrpc:
+       mkdir -p $(DESTDIR)/$(datadir)/plc_api/php/phpxmlrpc/
+       rsync --exclude .git -ai php/phpxmlrpc/ $(DESTDIR)/$(datadir)/plc_api/php/phpxmlrpc/
+
+clean: 
+       find . -name '*.pyc' | xargs rm -f
+       python setup.py clean && rm -rf build
+
+index:
+       echo "This step is obsolete"
+
+##########
+
+force:
+
+.PHONY: all install force clean index tags
+
+#################### devel tools
+tags:
+       find . '(' -name '*.py' -o -name '*.sql' -o -name '*.php' -o -name Makefile -o -name '[0-9][0-9][0-9]*' ')' | fgrep -v '.git/' | xargs etags
+
+.PHONY: tags
+
+########## sync
+# 2 forms are supported
+# (*) if your plc root context has direct ssh access:
+# make sync PLC=private.one-lab.org
+# (*) otherwise, for test deployments, use on your testmaster
+# $ run export
+# and cut'n paste the export lines before you run make sync
+
+ifdef PLC
+SSHURL:=root@$(PLC):/
+SSHCOMMAND:=ssh root@$(PLC)
+else
+ifdef PLCHOSTLXC
+SSHURL:=root@$(PLCHOSTLXC):/vservers/$(GUESTNAME)
+SSHCOMMAND:=ssh root@$(PLCHOSTLXC) ssh -o StrictHostKeyChecking=no -o LogLevel=quiet $(GUESTHOSTNAME)
+endif
+endif
+
+LOCAL_RSYNC_EXCLUDES   := --exclude '*.pyc' --exclude Accessors_site.py
+RSYNC_EXCLUDES         := --exclude .svn --exclude .git --exclude '*~' --exclude TAGS $(LOCAL_RSYNC_EXCLUDES)
+RSYNC_COND_DRY_RUN     := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,)
+RSYNC                  := rsync -a -v $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES)
+
+sync:
+ifeq (,$(SSHURL))
+       @echo "sync: I need more info from the command line, e.g."
+       @echo "  make sync PLC=boot.planetlab.eu"
+       @echo "  make sync PLCHOSTLXC=.. GUESTHOSTNAME=.. GUESTNAME=.."
+       @exit 1
+else
+       +$(RSYNC) plcsh PLC planetlab5.sql migrations $(SSHURL)/usr/share/plc_api/
+       +$(RSYNC) db-config.d/ $(SSHURL)/etc/planetlab/db-config.d/
+       +$(RSYNC) plc.d/ $(SSHURL)/etc/plc.d/
+       +$(RSYNC) apache/plc.wsgi $(SSHURL)/usr/share/plc_api/apache/
+       $(SSHCOMMAND) /etc/plc.d/httpd stop
+       $(SSHCOMMAND) /etc/plc.d/httpd start
+endif
+
+#################### convenience, for debugging only
+# make +foo : prints the value of $(foo)
+# make ++foo : idem but verbose, i.e. foo=$(foo)
+++%: varname=$(subst +,,$@)
+++%:
+       @echo "$(varname)=$($(varname))"
++%: varname=$(subst +,,$@)
++%:
+       @echo "$($(varname))"
+