-all: $(subdirs)
- python setup.py build
-
-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): %:
- $(MAKE) -C $@
-
-clean:
+all:
+ python3 setup.py build
+
+# do the install sequentially
+# when defining 2 separate targets, that get run in parallel
+# we observe that the rsync for xmlrpc somehow gets erased and
+# we suspect pip install to do some cleanup at the end...
+install:
+ # we mention --upgrade because otherwise
+ # pip install complains the php/ target already exists
+ # and it refuses to put plc_api.php in there
+ pip install --upgrade --target $(DESTDIR)/$(datadir)/plc_api .
+ # it's important that plcsh sits in /usr/share/plc_api
+ # and not under bin/ so that python can find the PLC/ modules
+ mv $(DESTDIR)/$(datadir)/plc_api/bin/plcsh $(DESTDIR)/$(datadir)/plc_api
+ mv $(DESTDIR)/$(datadir)/plc_api/bin/Server.py $(DESTDIR)/$(datadir)/plc_api
+ # the old recipe used to read
+ # python3 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
+ mkdir -p $(DESTDIR)/$(datadir)/plc_api/php/phpxmlrpc/
+ rsync --exclude .git -ai php/phpxmlrpc/ $(DESTDIR)/$(datadir)/plc_api/php/phpxmlrpc/
+
+clean: