diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-04-08 17:00:05 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-04-08 17:00:05 -0400 |
commit | 41bfc4bb5e1042ec9eca48ed645393b12978d703 (patch) | |
tree | 094cf68df41f7f5c98a1c844e51bc32fb0e7155d | |
parent | 608f4f254ccf95a01b5480e2dbe7a1b6e54c8609 (diff) |
Actual install process
-rw-r--r-- | .gitignore | 8 | ||||
-rw-r--r-- | Makefile | 41 | ||||
-rw-r--r-- | config.mk | 7 | ||||
-rw-r--r-- | src/.gitignore | 5 | ||||
-rw-r--r-- | src/freenect-server.c (renamed from freenect-server.c) | 0 | ||||
-rw-r--r-- | src/multipart-replace-http-server.c (renamed from multipart-replace-http-server.c) | 0 | ||||
-rw-r--r-- | src/multipart-replace.c (renamed from multipart-replace.c) | 0 | ||||
-rw-r--r-- | src/multipart-replace.h (renamed from multipart-replace.h) | 0 | ||||
-rw-r--r-- | src/util.c (renamed from util.c) | 0 | ||||
-rw-r--r-- | src/util.h (renamed from util.h) | 0 | ||||
-rw-r--r-- | src/wg.c (renamed from wg.c) | 0 | ||||
-rw-r--r-- | src/wg.h (renamed from wg.h) | 0 | ||||
-rw-r--r-- | systemd/.gitignore | 2 | ||||
-rw-r--r-- | systemd/freenect-server-http.service.in (renamed from freenect-server-http.service) | 6 | ||||
-rw-r--r-- | systemd/freenect-server-http.socket.in (renamed from freenect-server-http.socket) | 2 | ||||
-rw-r--r-- | systemd/freenect-server.service.in (renamed from freenect-server.service) | 6 | ||||
-rw-r--r-- | systemd/freenect-server@.socket.in (renamed from freenect-server@.socket) | 4 | ||||
-rwxr-xr-x | write-ifchanged | 11 |
18 files changed, 71 insertions, 21 deletions
@@ -1,6 +1,2 @@ -/freenect-server -/freenect-server--kinect -/multipart-replace-http-server - -*.o -.*.mk +.var.* +.tmp.* @@ -20,18 +20,47 @@ CFLAGS += -fstack-protector CFLAGS += -O2 CPPFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -all: freenect-server multipart-replace-http-server +all: build .PHONY: all -freenect-server: util.o -lfreenect -lusb-1.0 -ljpeg -multipart-replace-http-server: util.o wg.o multipart-replace.o -lpthread +include config.mk + +progs = freenect-server multipart-replace-http-server +units = freenect-server-http.service freenect-server-http.socket freenect-server.service freenect-server@.socket + +build: $(addprefix src/,$(progs)) $(addprefix systemd/,$(units)) +.PHONY: build + +src/freenect-server: src/util.o -lfreenect -lusb-1.0 -ljpeg +src/multipart-replace-http-server: src/util.o src/wg.o src/multipart-replace.o -lpthread +systemd/freenect-server-http.service: .var.user .var.group .var.bindir +systemd/freenect-server-http.socket: .var.httpstream +systemd/freenect-server.service: .var.user .var.group .var.bindir +systemd/freenect-server@.socket: .var.user .var.group + +systemd/%: systemd/%.in + sed $(foreach v,$(patsubst .var.%,%,$(filter .var.%,$^)), -e 's|@$v@|$($v)|' ) < $< > $@ + +.var.%: FORCE + @printf '%s' '$($*)' | ./write-ifchanged $@ + +install: $(addprefix $(DESTDIR)$(bindir)/,$(progs)) $(addprefix $(DESTDIR)$(systemddir)/,$(units)) + +$(DESTDIR)$(bindir)/%: src/% + install -Dm755 $< $@ + +$(DESTDIR)$(systemddir)/%: systemd/% + install -Dm644 $< $@ clean: - rm -f -- *.o .*.mk freenect-server freenect-server--kinect multipart-replace-http-server + rm -f -- src/*.o src/.*.mk + rm -f -- src/freenect-server src/multipart-replace-http-server + rm -f -- systemd/*.socket systemd/*.service .PHONY: clean +.PHONY: FORCE .DELETE_ON_ERROR: .SECONDARY: -CPPFLAGS += -MD -MF ${@:%.o=.%.mk} -MP --include .*.mk +CPPFLAGS += -MD -MF $(@D)/$(@F:%.o=.%.mk) -MP +-include src/.*.mk diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..7f6f673 --- /dev/null +++ b/config.mk @@ -0,0 +1,7 @@ +DESTDIR = +prefix = /usr/local +bindir = $(prefix)/bin +systemddir = $(prefix)/lib/systemd/system +user = alarm +group = alarm +httpstream=5800 diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 0000000..bf84729 --- /dev/null +++ b/src/.gitignore @@ -0,0 +1,5 @@ +/freenect-server +/multipart-replace-http-server + +*.o +.*.mk diff --git a/freenect-server.c b/src/freenect-server.c index c5ed99a..c5ed99a 100644 --- a/freenect-server.c +++ b/src/freenect-server.c diff --git a/multipart-replace-http-server.c b/src/multipart-replace-http-server.c index 726714f..726714f 100644 --- a/multipart-replace-http-server.c +++ b/src/multipart-replace-http-server.c diff --git a/multipart-replace.c b/src/multipart-replace.c index 9a5e268..9a5e268 100644 --- a/multipart-replace.c +++ b/src/multipart-replace.c diff --git a/multipart-replace.h b/src/multipart-replace.h index 2aa5e61..2aa5e61 100644 --- a/multipart-replace.h +++ b/src/multipart-replace.h diff --git a/systemd/.gitignore b/systemd/.gitignore new file mode 100644 index 0000000..b5d3911 --- /dev/null +++ b/systemd/.gitignore @@ -0,0 +1,2 @@ +*.socket +*.service diff --git a/freenect-server-http.service b/systemd/freenect-server-http.service.in index 6b4d91b..219e4f3 100644 --- a/freenect-server-http.service +++ b/systemd/freenect-server-http.service.in @@ -7,9 +7,9 @@ After=freenect-server.service [Service] Type=simple -User=alarm -Group=alarm -ExecStart=/home/alarm/freenect-server/multipart-replace-http-server fd systemd /run/freenect-server/video.mjpg /run/freenect-server/depth.mjpg /run/freenect-server/accel.mjson +User=@user@ +Group=@group@ +ExecStart=@bindir@/multipart-replace-http-server fd systemd /run/freenect-server/video.mjpg /run/freenect-server/depth.mjpg /run/freenect-server/accel.mjson [Install] WantedBy=multi-user.target diff --git a/freenect-server-http.socket b/systemd/freenect-server-http.socket.in index 8c54b10..938a0e8 100644 --- a/freenect-server-http.socket +++ b/systemd/freenect-server-http.socket.in @@ -2,7 +2,7 @@ Description=Kinect HTTP media streamer socket [Socket] -ListenStream=5800 +ListenStream=@httpstream@ [Install] WantedBy=sockets.target diff --git a/freenect-server.service b/systemd/freenect-server.service.in index 4ccf7f6..5473f7d 100644 --- a/freenect-server.service +++ b/systemd/freenect-server.service.in @@ -5,8 +5,8 @@ Requires=freenect-server@accel.mjson.socket freenect-server@depth.mjpg.socket fr [Service] Type=simple -User=alarm -Group=alarm -ExecStart=/home/alarm/freenect-server/freenect-server -V systemd:freenect-server@video.mjpg.socket -D systemd:freenect-server@depth.mjpg.socket -A systemd:freenect-server@accel.mjson.socket +User=@user@ +Group=@group@ +ExecStart=@bindir@/freenect-server -V systemd:freenect-server@video.mjpg.socket -D systemd:freenect-server@depth.mjpg.socket -A systemd:freenect-server@accel.mjson.socket Restart=always diff --git a/freenect-server@.socket b/systemd/freenect-server@.socket.in index 78df40e..bcacd0a 100644 --- a/freenect-server@.socket +++ b/systemd/freenect-server@.socket.in @@ -3,8 +3,8 @@ Description=Kinect media streamer backend %I stream After=network.target [Socket] -SocketUser=alarm -SocketGroup=alarm +SocketUser=@user@ +SocketGroup=@group@ ListenFIFO=/run/freenect-server/%I Service=freenect-server.service RemoveOnStop=true
\ No newline at end of file diff --git a/write-ifchanged b/write-ifchanged new file mode 100755 index 0000000..c65fa16 --- /dev/null +++ b/write-ifchanged @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +outfile=$1 +tmpfile="$(dirname "$outfile")/.tmp${outfile##*/}" + +cat > "$tmpfile" || exit $? +if cmp -s "$tmpfile" "$outfile"; then + rm -f "$tmpfile" || : +else + mv -f "$tmpfile" "$outfile" +fi |