X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=python-lttngust%2FMakefile.am;h=f95482d3e15822dcffe2698a21d3ce40391855d2;hb=6ba6fd60507f8e045bdc4f1be14e9d99c6a15f7f;hp=6c0d20d5150b1104976a3d17488d859fb9aec719;hpb=a49a7e686059ce795ce678b42cc109b7a2b1d91e;p=lttng-ust.git diff --git a/python-lttngust/Makefile.am b/python-lttngust/Makefile.am index 6c0d20d5..f95482d3 100644 --- a/python-lttngust/Makefile.am +++ b/python-lttngust/Makefile.am @@ -1,47 +1,60 @@ +# SPDX-License-Identifier: LGPL-2.1-only + +INSTALLED_FILES=$(builddir)/installed_files.txt + +STATIC_BINDINGS_DEPS = \ + lttngust/__init__.py \ + lttngust/agent.py \ + lttngust/cmd.py \ + lttngust/compat.py \ + lttngust/debug.py \ + lttngust/loghandler.py + +all-local: build-python-bindings.stamp + +copy-static-deps.stamp: $(addprefix $(srcdir)/, $(STATIC_BINDINGS_DEPS)) + @if [ x"$(srcdir)" != x"$(builddir)" ]; then \ + for file in $(STATIC_BINDINGS_DEPS); do \ + cp -f $(srcdir)/$$file $(builddir)/$$file; \ + done; \ + fi + touch $@ + # Use setup.py for the installation instead of Autoconf. # This ease the installation process and assure a *pythonic* # installation. -all-local: - $(PYTHON) setup.py build --verbose +build-python-bindings.stamp: copy-static-deps.stamp + $(PYTHON) $(builddir)/setup.py build --force + touch $@ -install-exec-local: - @opts="--prefix=$(prefix) --verbose --no-compile $(DISTSETUPOPTS)"; \ +install-exec-local: build-python-bindings.stamp + @opts="--prefix=$(prefix) --record $(INSTALLED_FILES) --verbose --no-compile $(DISTSETUPOPTS)"; \ if [ "$(DESTDIR)" != "" ]; then \ opts="$$opts --root=$(DESTDIR)"; \ fi; \ - $(PYTHON) setup.py install $$opts; + $(PYTHON) $(builddir)/setup.py install $$opts; clean-local: rm -rf $(builddir)/build + @if [ x"$(srcdir)" != x"$(builddir)" ]; then \ + for file in $(STATIC_BINDINGS_DEPS); do \ + rm -f $(builddir)/$$file; \ + done; \ + fi # Distutils' setup.py does not include an uninstall target, we thus need to do -# it manually. We fake an install in a temporary folder and use the generated -# tree structure to infere the actual location within the install prefix. -# 1. Create temporary file and folder -# 2. Set the root install folder for a temporary folder -# 3. Install in that temporary folder and record all the files installed -# 4. If DESTDIR is set, prepend it to the paths of the install files -# 5. Remove the installed files and the Python package folder -# 6. Remove the files created by this target - +# it manually. We save the path of the files that were installed during the install target +# and delete them during the uninstallation. uninstall-local: - $(eval TMP_INSTALLED_FILES:=$(shell mktemp $(builddir)/tmp-installed-files-XXXXXX)) - $(eval TMP_INSTALL_DIR:=$(shell mktemp -d $(builddir)/tmp-install-dir-XXXXXX)) - $(eval TMP_BUILD_DIR:=$(shell mktemp -d $(builddir)/tmp-build-dir-XXXXXX)) - @opts="--root=$(TMP_INSTALL_DIR) --prefix=$(prefix) --record $(TMP_INSTALLED_FILES) --no-compile $(DISTSETUPOPTS)"; \ - if [ "$(DESTDIR)" != "" ]; then \ - opts="$$opts --root=$(DESTDIR)"; \ - else \ - opts="$$opts --root=$(TMP_INSTALL_DIR)"; \ - fi; \ - $(PYTHON) setup.py build --build-base $(TMP_BUILD_DIR) install $$opts > /dev/null || true - if [ "$(DESTDIR)" != "" ]; then \ - $(SED) -i "s|^|$(DESTDIR)/|g" $(TMP_INSTALLED_FILES); \ + $(SED) -i "s|^|$(DESTDIR)/|g" $(INSTALLED_FILES); \ fi - - cat $(TMP_INSTALLED_FILES) | xargs rm -rf || true - $(GREP) "__init__.py" $(TMP_INSTALLED_FILES) | xargs dirname | xargs rm -rf || true - rm -f $(TMP_INSTALLED_FILES) - rm -rf $(TMP_INSTALL_DIR) - rm -rf $(TMP_BUILD_DIR) + cat $(INSTALLED_FILES) | xargs rm -rf || true + $(GREP) "__init__.py" $(INSTALLED_FILES) | xargs dirname | xargs rm -rf || true + rm -f $(INSTALLED_FILES) + +EXTRA_DIST = $(STATIC_BINDINGS_DEPS) + +CLEANFILES = \ + build-python-bindings.stamp \ + copy-static-deps.stamp