Proper install and uninstall productions.
[vms-empire.git] / Makefile
1 #
2 #    Copyright (C) 1987, 1988 Chuck Simmons
3 #
4 # See the file COPYING, distributed with empire, for restriction
5 # and warranty information.
6
7 VERS=1.12
8
9 # Use -g to compile the program for debugging.
10 #DEBUG = -g -DDEBUG
11 DEBUG = -O2
12
13 # Use -p to profile the program.
14 #PROFILE = -p -DPROFILE
15 PROFILE =
16
17 LIBS = -lncurses
18
19 # You shouldn't have to modify anything below this line.
20
21 # There's a dynamic format in the object-display routines; suppress the warning
22 CFLAGS = $(DEBUG) $(PROFILE) -Wall -Wno-format-security
23
24 FILES = \
25         attack.c \
26         compmove.c \
27         data.c \
28         display.c \
29         edit.c \
30         empire.c \
31         game.c \
32         main.c \
33         map.c \
34         math.c \
35         object.c \
36         term.c \
37         usermove.c \
38         util.c
39
40 HEADERS = empire.h extern.h
41
42 OFILES = \
43         attack.o \
44         compmove.o \
45         data.o \
46         display.o \
47         edit.o \
48         empire.o \
49         game.o \
50         main.o \
51         map.o \
52         math.o \
53         object.o \
54         term.o \
55         usermove.o \
56         util.o
57
58 all: vms-empire
59
60 vms-empire: $(OFILES)
61         $(CC) $(PROFILE) -o vms-empire $(OFILES) $(LIBS)
62
63 attack.o:: extern.h empire.h
64 compmove.o:: extern.h empire.h
65 data.o:: empire.h
66 display.o:: extern.h empire.h
67 edit.o:: extern.h empire.h
68 empire.o:: extern.h empire.h
69 game.o:: extern.h empire.h
70 main.o:: extern.h empire.h
71 map.o:: extern.h empire.h
72 math.o:: extern.h empire.h
73 object.o:: extern.h empire.h
74 term.o:: extern.h empire.h
75 usermove.o:: extern.h empire.h
76 util.o:: extern.h empire.h
77
78 empire.6: vms-empire.xml
79         xmlto man vms-empire.xml
80
81 vms-empire.html: vms-empire.xml
82         xmlto html-nochunks vms-empire.xml
83
84 TAGS: $(HEADERS) $(FILES)
85         etags $(HEADERS) $(FILES)
86
87 lint: $(FILES)
88         lint -u -D$(SYS) $(FILES) -lcurses
89
90 # cppcheck should run clean
91 cppcheck:
92         cppcheck --inline-suppr --suppress=unusedStructMember --suppress=unusedFunction  --template gcc --enable=all --force *.[ch]
93
94 install: empire.6 uninstall
95         install -m 0755 -d $(DESTDIR)/usr/bin
96         install -m 0755 -d $(DESTDIR)/usr/share/man/man6
97         install -m 0755 -d $(DESTDIR)/usr/share/applications/
98         install -m 0755 -d $(DESTDIR)/usr/share/icons/hicolor/48x48/apps/
99         install -m 0755 -d $(DESTDIR)/usr/share/appdata
100         install -m 0755 vms-empire $(DESTDIR)/usr/bin/
101         install -m 0644 empire.6 $(DESTDIR)/usr/share/man/man6/vms-empire.6
102         install -m 0644 vms-empire.desktop $(DESTDIR)/usr/share/applications/
103         install -m 0644 vms-empire.png $(DESTDIR)/usr/share/icons/hicolor/48x48/apps/
104         install -m 0644 vms-empire.xml $(DESTDIR)/usr/share/appdata/
105
106 uninstall:
107         rm -f /usr/bin/vms-empire /usr/share/man/man6/vms-empire.6
108         rm -f /usr/share/applications/vms-empire.desktop
109         rm -f /usr/share/icons/hicolor/48x48/apps/vms-empire.png
110         rm -f /usr/share/appdata/vms-empire.xml
111
112 clean:
113         rm -f *.o TAGS vms-empire
114         rm -f *.6 *.html
115
116 clobber: clean
117         rm -f vms-empire vms-empire-*.tar*
118
119 SOURCES = README HACKING NEWS control empire.6 vms-empire.xml COPYING Makefile BUGS AUTHORS $(FILES) $(HEADERS) vms-empire.png vms-empire.desktop
120
121 vms-empire-$(VERS).tar.gz: $(SOURCES)
122         @ls $(SOURCES) | sed s:^:vms-empire-$(VERS)/: >MANIFEST
123         @(cd ..; ln -s vms-empire vms-empire-$(VERS))
124         (cd ..; tar -czf vms-empire/vms-empire-$(VERS).tar.gz `cat vms-empire/MANIFEST`)
125         @(cd ..; rm vms-empire-$(VERS))
126
127 dist: vms-empire-$(VERS).tar.gz
128
129 release: vms-empire-$(VERS).tar.gz vms-empire.html
130         shipper version=$(VERS) | sh -e -x