summaryrefslogtreecommitdiffstats
path: root/conf.d/packaging/deb/debian.rules
blob: 2be0c7e2c23acef204098fea08fbec72b1364adc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)


CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	   CFLAGS += -O0
else
	   CFLAGS += -O2
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	   INSTALL_PROGRAM += -s
endif

configure: configure-stamp
configure-stamp:
	dh_testdir
	#
	touch configure-stamp

build: build-stamp
build-stamp: configure-stamp
	dh_testdir
	touch build-stamp

clean:
	#dh_testdir
	dh_testroot
	rm -f configure-stamp build-stamp
	[ ! -f Makefile ] || $(MAKE) distclean
	#dh_clean

NAME=agl-xds-server
INSTALL_XDS_DIR=/opt/AGL/xds/server
INSTALL_BIN_DIR=/opt/AGL/bin

DEB_BASE_DIR=debian/$(NAME)
DEB_INSTALL_XDS_DIR=$(DEB_BASE_DIR)/$(INSTALL_XDS_DIR)
DEB_INSTALL_BIN_DIR=$(DEB_BASE_DIR)/$(INSTALL_BIN_DIR)

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	# Install xds-server into /opt/AGL/xds/server
	mkdir -p $(DEB_INSTALL_XDS_DIR) $(DEB_INSTALL_BIN_DIR)
	find . -maxdepth 1 ! -name debian -exec cp -r {} $(DEB_INSTALL_XDS_DIR) \;
	rm -fr $(DEB_INSTALL_XDS_DIR)/debian $(DEB_INSTALL_XDS_DIR)/*-stamp
	cd $(DEB_INSTALL_BIN_DIR) && ln -s ../xds/server/xds-server
	cd $(DEB_INSTALL_BIN_DIR) && ln -s ../xds/server/syncthing
	cd $(DEB_INSTALL_BIN_DIR) && ln -s ../xds/server/syncthing-inotify

	# Install service files
	mkdir -p $(DEB_BASE_DIR)/usr/lib/systemd/user
	cp $(DEB_INSTALL_XDS_DIR)/conf.d/usr/lib/systemd/user/xds-server.service $(DEB_BASE_DIR)/usr/lib/systemd/user
	mkdir -p $(DEB_BASE_DIR)/etc/default $(DEB_BASE_DIR)/etc/xds/server
	cp $(DEB_INSTALL_XDS_DIR)/conf.d/etc/default/xds-server $(DEB_BASE_DIR)/etc/default/
	cp $(DEB_INSTALL_XDS_DIR)/conf.d/etc/xds/server/* $(DEB_BASE_DIR)/etc/xds/server/
	mkdir -p $(DEB_BASE_DIR)/etc/systemd/user/multi-user.target.wants
	ln -s /usr/lib/systemd/user/xds-server.service $(DEB_BASE_DIR)/etc/systemd/user/multi-user.target.wants/
	mkdir -p $(DEB_BASE_DIR)/etc/profile.d
	sed -e "s;@XDS_INSTALL_BIN_DIR@;$(INSTALL_BIN_DIR);g" $(DEB_INSTALL_XDS_DIR)/conf.d/etc/profile.d/xds-server.sh > $(DEB_BASE_DIR)/etc/profile.d/$(NAME).sh

	# Auto-enable xds-server systemd service
	mkdir -p $(DEB_BASE_DIR)/usr/lib/systemd/user/default.target.wants && ln -s ../xds-server.service $(DEB_BASE_DIR)/usr/lib/systemd/user/default.target.wants/

	# Cleanup
	rm -rf $(DEB_INSTALL_XDS_DIR)/conf.d

	# Move all files in their corresponding package
	dh_install --list-missing -s --sourcedir=debian/tmp

postinst: install
	if [ -f "/etc/xds-server/config.json" ]; then
		install -b -S .rpmsave /etc/xds-server/config.json /etc/xds/server/server-config.json
	fi
	echo "[XDS Server] To enable the service with your user session: systemctl --user enable xds-server"

prerm:
	rm -f /etc/xds-server/*.rpm*

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs
	dh_installdocs
	dh_installexamples
	dh_installman
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_makeshlibs -V
	dh_installdeb
	#dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install