]> git.tuebingen.mpg.de Git - dss.git/commitdiff
build: Add target install and install-strip.
authorAndre Noll <maan@tuebingen.mpg.de>
Sun, 16 Apr 2017 11:56:09 +0000 (13:56 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Thu, 13 Jul 2017 20:54:03 +0000 (22:54 +0200)
It has always been a bit clumsy to copy the executable and the
manual page to their proper locations by hand, so this commit adds
the two standard targets "install" and "install-strip" which install
both files.

The installation prefix defaults to /usr/local and can be set with
PREFIX. Moreover, there is DESTDIR which may be given to prepend
another directory (useful for for "staged installs", where the
installed files are not placed directly into their expected location
but are instead copied into a temporary location).

INSTALL
Makefile

diff --git a/INSTALL b/INSTALL
index f48784b5ea74f2d26b94e6e7618f80c52aeb6cd9..113ed14cfeffcd3e47650486891e72be91edea38 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -8,9 +8,16 @@ Type
 
                make
 
-in the dss source directory to build the dss executable and copy it
-to some directory that is included in your PATH, e.g. to `$HOME/bin`
-or to `/usr/local/bin`.
+in the dss source directory to build the dss executable and the
+man page. Then type
+
+               sudo make install
+
+to install in /usr/local, or
+
+               make install PREFIX=/somewhere/else
+
+to install in /somewhere/else.
 
 Also make sure that [rsync](http://rsync.samba.org/) is installed on
 your system. Version 2.6.1 or newer is required.
index 42adf47daadf1c0b1d64c1ecd1578b6ac5cbb29c..c6780ef026ff86197073c007cf5100a78188cb68 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,13 @@
+PREFIX ?= /usr/local
+INSTALL ?= install
+INSTALL_PROGRAM ?= $(INSTALL)
+INSTALL_DATA ?= $(INSTALL) -m 644
+MKDIR_P := mkdir -p
+
 VERSION_STRING = 0.1.7
 
 dss_objects := dss.o str.o file.o exec.o sig.o daemon.o df.o tv.o snap.o ipc.o dss.lsg.o
-all: dss
+all: dss dss.1
 man: dss.1
 
 DEBUG_CFLAGS ?=
@@ -47,6 +53,15 @@ dss: $(dss_objects)
 clean:
        rm -f *.o dss dss.1 dss.1.html Makefile.deps *.png *~ index.html dss.lsg.h dss.lsg.c
 
+ifneq ($(findstring strip, $(MAKECMDGOALS)),)
+       strip_option := -s
+endif
+bindir := $(DESTDIR)$(PREFIX)/bin
+mandir := $(DESTDIR)$(PREFIX)/share/man/man1
+install install-strip: all
+       $(MKDIR_P) $(bindir) $(mandir)
+       $(INSTALL_PROGRAM) $(strip_option) dss $(bindir)
+       $(INSTALL_DATA) dss.1 $(mandir)
 
 index.html: dss.1.html index.html.in INSTALL README NEWS
        sed -e '/@README@/,$$d' index.html.in > $@