From 8f91125236a20844015e6357b6cb211f10e5473c Mon Sep 17 00:00:00 2001 From: Albert Graef <aggraef@gmail.com> Date: Sat, 10 Mar 2018 21:29:09 +0100 Subject: [PATCH] Add install and uninstall targets to the toplevel Makefile. --- Makefile | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c4bb45e28..adf0ef8a6 100644 --- a/Makefile +++ b/Makefile @@ -52,7 +52,9 @@ # Installation prefix under which Pd-l2ork is installed (Linux only). If this # isn't set, a default location will be used (usually /usr/local). NOTE: The # default prefs file assumes /usr, if you choose anything else then you'll -# have to edit $prefix/lib/pd-l2ork/default.settings accordingly. +# have to edit $prefix/lib/pd-l2ork/default.settings accordingly. Also note +# that we *always* assume that this variable is set properly in the install +# targets (see below). prefix = /usr ifneq ($(prefix),) @@ -85,6 +87,28 @@ realclean: git checkout . git clean -dffx +# Installation targets. These don't work on Mac and Windows right now, you +# should use the generated installers on these systems instead. Also, +# $(prefix) must be set. $(DESTDIR) is supported as well, so you can do staged +# installs (but then again presumably you already have a staged install +# sitting in packages/*/build, so you might as well use that instead). + +# Note that these targets simply (un)install whatever is in the +# packages/*/build directory at the time they're invoked, so you need to run +# `make` (or `make incremental`, etc.) first. Also note that the extra cruft +# under build/etc (except for the bash auto-completions) isn't installed as it +# isn't needed on modern Linux systems any more. + +builddir = $(firstword $(wildcard packages/*/build)) +manifest = etc/bash_completion.d/pd-l2ork $(prefix:/%=%)/include/pd-l2ork $(prefix:/%=%)/lib/pd-l2ork $(patsubst $(builddir)/%,%, $(wildcard $(builddir)/$(prefix:/%=%)/bin/*) $(shell find $(builddir)/usr/share -type f)) + +install: + test -z "$(DESTDIR)" || (rm -rf "$(DESTDIR)" && mkdir -p "$(DESTDIR)") + tar -c -C $(builddir) $(manifest) | tar -x -C $(DESTDIR)/ + +uninstall: + rm -rf $(addprefix $(DESTDIR)/, $(manifest)) + # Build a self-contained distribution tarball (snapshot). This is pretty much # the same as in debuild/Makefile and must be run in a working copy of the git # repo. -- GitLab