1appname=$(APPNAME)
2appnamefull=$(shell sed -n 's/.define VERSION_NAME *"\([^"]*\)"/\1/p' version.h)
3appsrcname=$(APPNAME)
4cappname=$(shell echo $(appname) | tr '[:lower:]' '[:upper:]')# Captial appname
5appclient=$(APPCLIENT)$(APPMODIFIER)$(BIN_SUFFIX)
6appserver=$(APPSERVER)$(APPMODIFIER)$(BIN_SUFFIX)
7
8prefix=/usr/local
9games=
10gamesbin=/bin
11bindir=$(DESTDIR)$(prefix)/bin
12gamesbindir=$(DESTDIR)$(prefix)$(gamesbin)
13libexecdir=$(DESTDIR)$(prefix)/lib$(games)
14datadir=$(DESTDIR)$(prefix)/share$(games)
15docdir=$(DESTDIR)$(prefix)/share/doc
16mandir=$(DESTDIR)$(prefix)/share/man
17menudir=$(DESTDIR)$(prefix)/share/applications
18icondir=$(DESTDIR)$(prefix)/share/icons/hicolor
19pixmapdir=$(DESTDIR)$(prefix)/share/pixmaps
20appdatadir=$(DESTDIR)$(prefix)/share/appdata
21
22ICONS= \
23	install/nix/$(appsrcname)_x16.png \
24	install/nix/$(appsrcname)_x32.png \
25	install/nix/$(appsrcname)_x48.png \
26	install/nix/$(appsrcname)_x64.png \
27	install/nix/$(appsrcname)_x128.png \
28	install/nix/$(appsrcname)_x32.xpm
29
30install/nix/$(appsrcname)_x16.png: $(ICON)
31	gm convert '$<' -trim -resize 16x16 -background transparent \
32		-gravity center -extent 16x16 '$@'
33
34install/nix/$(appsrcname)_x32.png: $(ICON)
35	gm convert '$<' -trim -resize 32x32 -background transparent \
36		-gravity center -extent 32x32 '$@'
37
38install/nix/$(appsrcname)_x48.png: $(ICON)
39	gm convert '$<' -trim -resize 48x48 -background transparent \
40		-gravity center -extent 48x48 '$@'
41
42install/nix/$(appsrcname)_x64.png: $(ICON)
43	gm convert '$<' -trim -resize 64x64 -background transparent \
44		-gravity center -extent 64x64 '$@'
45
46install/nix/$(appsrcname)_x128.png: $(ICON)
47	gm convert '$<' -trim -resize 128x128 -background transparent \
48		-gravity center -extent 128x128 '$@'
49
50install/nix/$(appsrcname)_x32.xpm: $(ICON)
51	gm convert '$<' -trim -resize 32x32 -background transparent \
52		-gravity center -extent 32x32 '$@'
53
54icons: $(ICONS)
55
56system-install-client: client
57	$(MKDIR) $(libexecdir)/$(appname)
58	$(MKDIR) $(gamesbindir)
59	$(MKDIR) $(datadir)/$(appname)
60	install -m755 $(appclient) $(libexecdir)/$(appname)/$(appname)
61	install -m755 install/nix/$(appsrcname).am \
62		$(gamesbindir)/$(appname)
63	printf "\
64	g,@LIBEXECDIR@,\
65	s,@LIBEXECDIR@,$(patsubst $(DESTDIR)%,%,$(libexecdir)),g\n\
66	g,@DATADIR@,\
67	s,@DATADIR@,$(patsubst $(DESTDIR)%,%,$(datadir)),g\n\
68	g,@DOCDIR@,\
69	s,@DOCDIR@,$(patsubst $(DESTDIR)%,%,$(docdir)),g\n\
70	g,@APPNAME@,\
71	s,@APPNAME@,$(appname),g\n\
72	w\n" | ed -s $(gamesbindir)/$(appname)
73
74system-install-server: server
75	$(MKDIR) $(libexecdir)/$(appname)
76	$(MKDIR) $(gamesbindir)
77	$(MKDIR) $(datadir)/$(appname)
78	install -m755 $(appserver) \
79		$(libexecdir)/$(appname)/$(appname)-server
80	install -m755 install/nix/$(appsrcname)-server.am \
81		$(gamesbindir)/$(appname)-server
82	printf "\
83	g,@LIBEXECDIR@,\
84	s,@LIBEXECDIR@,$(patsubst $(DESTDIR)%,%,$(libexecdir)),g\n\
85	g,@DATADIR@,\
86	s,@DATADIR@,$(patsubst $(DESTDIR)%,%,$(datadir)),g\n\
87	g,@DOCDIR@,\
88	s,@DOCDIR@,$(patsubst $(DESTDIR)%,%,$(docdir)),g\n\
89	g,@APPNAME@,\
90	s,@APPNAME@,$(appname),g\n\
91	w\n" | ed -s $(gamesbindir)/$(appname)-server
92
93system-install-common:
94	$(MKDIR) $(libexecdir)/$(appname)
95	$(MKDIR) $(datadir)/$(appname)
96	$(MKDIR) $(datadir)/$(appname)/doc
97	$(MKDIR) $(docdir)/$(appname)
98	cp -r ../config $(datadir)/$(appname)/config
99	ln -s $(patsubst $(DESTDIR)%,%,$(datadir))/$(appname)/config \
100		$(libexecdir)/$(appname)/config
101	install -m644 ../doc/guidelines.txt $(datadir)/$(appname)/doc
102	ln -s $(patsubst $(DESTDIR)%,%,$(datadir))/$(appname)/doc \
103		$(libexecdir)/$(appname)/doc
104	ln -s $(patsubst $(DESTDIR)%,%,$(datadir))/$(appname)/doc/guidelines.txt \
105		$(docdir)/$(appname)/guidelines.txt
106
107system-install-data:
108	$(MKDIR) $(datadir)/$(appname)
109	$(MKDIR) $(libexecdir)/$(appname)
110	cp -r ../data $(datadir)/$(appname)/data
111	ln -s $(patsubst $(DESTDIR)%,%,$(datadir))/$(appname)/data \
112		$(libexecdir)/$(appname)/data
113
114system-install-docs: $(MANPAGES)
115	$(MKDIR) $(mandir)/man6
116	$(MKDIR) $(docdir)/$(appname)
117	sed -e 's,@LIBEXECDIR@,$(patsubst $(DESTDIR)%,%,$(libexecdir)),g' \
118		-e 's,@DATADIR@,$(patsubst $(DESTDIR)%,%,$(datadir)),g' \
119		-e 's,@DOCDIR@,$(patsubst $(DESTDIR)%,%,$(docdir)),g' \
120		-e 's,@APPNAME@,$(appname),g' \
121		-e 's,@CAPPNAME@,$(cappname),g' \
122		../doc/man/$(appsrcname).6.am | \
123		gzip -9 -n -c > $(mandir)/man6/$(appname).6.gz
124	sed -e 's,@LIBEXECDIR@,$(patsubst $(DESTDIR)%,%,$(libexecdir)),g' \
125		-e 's,@DATADIR@,$(patsubst $(DESTDIR)%,%,$(datadir)),g' \
126		-e 's,@DOCDIR@,$(patsubst $(DESTDIR)%,%,$(docdir)),g' \
127		-e 's,@APPNAME@,$(appname),g' \
128		-e 's,@CAPPNAME@,$(cappname),g' \
129		../doc/man/$(appsrcname)-server.6.am | \
130		gzip -9 -n -c > $(mandir)/man6/$(appname)-server.6.gz
131	cp -r ../doc/examples $(docdir)/$(appname)/examples
132
133system-install-menus: icons
134	$(MKDIR) $(menudir)
135	$(MKDIR) $(appdatadir)
136	$(MKDIR) $(icondir)/16x16/apps
137	$(MKDIR) $(icondir)/32x32/apps
138	$(MKDIR) $(icondir)/48x48/apps
139	$(MKDIR) $(icondir)/64x64/apps
140	$(MKDIR) $(icondir)/128x128/apps
141	$(MKDIR) $(pixmapdir)
142	sed -e 's,@LIBEXECDIR@,$(patsubst $(DESTDIR)%,%,$(libexecdir)),g' \
143		-e 's,@DATADIR@,$(patsubst $(DESTDIR)%,%,$(datadir)),g' \
144		-e 's,@DOCDIR@,$(patsubst $(DESTDIR)%,%,$(docdir)),g' \
145		-e 's,@APPNAME@,$(appname),g' \
146		install/nix/$(appsrcname).desktop.am > \
147		$(menudir)/$(appname).desktop
148	sed -e 's,@LIBEXECDIR@,$(patsubst $(DESTDIR)%,%,$(libexecdir)),g' \
149		-e 's,@DATADIR@,$(patsubst $(DESTDIR)%,%,$(datadir)),g' \
150		-e 's,@DOCDIR@,$(patsubst $(DESTDIR)%,%,$(docdir)),g' \
151		-e 's,@APPNAME@,$(appname),g' \
152		install/nix/$(appsrcname).appdata.xml.am > \
153		$(appdatadir)/$(appname).appdata.xml
154	install -m644 install/nix/$(appsrcname)_x16.png \
155		$(icondir)/16x16/apps/$(appname).png
156	install -m644 install/nix/$(appsrcname)_x32.png \
157		$(icondir)/32x32/apps/$(appname).png
158	install -m644 install/nix/$(appsrcname)_x48.png \
159		$(icondir)/48x48/apps/$(appname).png
160	install -m644 install/nix/$(appsrcname)_x64.png \
161		$(icondir)/64x64/apps/$(appname).png
162	install -m644 install/nix/$(appsrcname)_x128.png \
163		$(icondir)/128x128/apps/$(appname).png
164	install -m644 install/nix/$(appsrcname)_x32.xpm \
165		$(pixmapdir)/$(appname).xpm
166
167system-install-cube2font: cube2font system-install-cube2font-docs
168	$(MKDIR) $(bindir)
169	install -m755 cube2font $(bindir)/cube2font
170
171system-install-cube2font-docs: ../doc/man/cube2font.1
172	$(MKDIR) $(mandir)/man1
173	gzip -9 -n -c < ../doc/man/cube2font.1 \
174		> $(mandir)/man1/cube2font.1.gz
175
176system-install: system-install-client system-install-server system-install-common system-install-data system-install-docs system-install-menus
177
178system-uninstall-common:
179	rm -rf $(datadir)/$(appname)/config
180	@rm -fv $(libexecdir)/$(appname)/config
181	rm -rf $(datadir)/$(appname)/doc
182	@rm -fv $(libexecdir)/$(appname)/doc
183	@rm -fv $(docdir)/$(appname)/guidelines.txt
184
185system-uninstall-client:
186	@rm -fv $(libexecdir)/$(appname)/$(appname)
187	@rm -fv $(libexecdir)/$(appname)/data
188	@rm -fv $(gamesbindir)/$(appname)
189
190system-uninstall-server:
191	@rm -fv $(libexecdir)/$(appname)/$(appname)-server
192	@rm -fv $(gamesbindir)/$(appname)-server
193
194system-uninstall-data:
195	rm -rf $(datadir)/$(appname)/data
196
197system-uninstall-docs:
198	@rm -rfv $(docdir)/$(appname)/examples
199	@rm -fv $(mandir)/man6/$(appname).6.gz
200	@rm -fv $(mandir)/man6/$(appname)-server.6.gz
201
202system-uninstall-menus:
203	@rm -fv $(menudir)/$(appname).desktop
204	@rm -fv $(appdatadir)/$(appname).appdata.xml
205	@rm -fv $(icondir)/16x16/apps/$(appname).png
206	@rm -fv $(icondir)/32x32/apps/$(appname).png
207	@rm -fv $(icondir)/48x48/apps/$(appname).png
208	@rm -fv $(icondir)/64x64/apps/$(appname).png
209	@rm -fv $(icondir)/128x128/apps/$(appname).png
210	@rm -fv $(pixmapdir)/$(appname).xpm
211
212system-uninstall: system-uninstall-client system-uninstall-server system-uninstall-common system-uninstall-data system-uninstall-docs system-uninstall-menus
213	-@rmdir -v $(libexecdir)/$(appname)
214	-@rmdir -v $(datadir)/$(appname)
215	-@rmdir -v $(docdir)/$(appname)
216
217system-uninstall-cube2font-docs:
218	@rm -fv $(mandir)/man1/cube2font.1.gz
219
220system-uninstall-cube2font: system-uninstall-cube2font-docs
221	@rm -fv $(bindir)/bin/cube2font
222