[go: up one dir, main page]

File: Makefile

package info (click to toggle)
lincity 1.11-3
  • links: PTS
  • area: main
  • in suites: potato
  • size: 3,488 kB
  • ctags: 2,641
  • sloc: cpp: 24,598; makefile: 245; sh: 32; perl: 10
file content (263 lines) | stat: -rwxr-xr-x 7,967 bytes parent folder | download
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
#  Makefile for LinCity   (c)  I J Peters 1995,1996.

#       This is where the binaries for LinCity will be placed.
LC_BINDIR = $(DESTDIR)/usr/games
#          for solaris you might choose...
#          LC_BINDIR = /opt/lcity/bin

#       This is where the library/data files will be placed.
LC_LIBDIR = $(DESTDIR)/usr/lib/games/lincity
#          for solaris you might choose...
#          LC_LIBDIR = /opt/lcity/lib

# export LC_LIBDIR

#       This is where the manpage will be placed.
LC_MANDIR = $(DESTDIR)/usr/man/man6
LC_MANSUF = 6
#          for solaris you might choose...
#          LC_LIBDIR = /opt/lcity/man/man6


# CC = egcs
CC = g++

# EXTRA_OPTS = -fomit-frame-pointer -fstrength-reduce -ffast-math
# EXTRA_OPTS = -fstrength-reduce -ffast-math
WARN_OPTS  = -Wall -Wpointer-arith -Wcast-align -Winline
# DEBUG_OPTS =-g
CFLAGS = -O3 $(DEBUG_OPTS) $(EXTRA_OPTS) $(WARN_OPTS) -DLIBDIR=\"$(LC_LIBDIR)\"
# -fno-strength-reduce
# PROFF = -pg
# PROFL = -lc
# PROFD = -DCS_PROFILE

LC_XFLAGS = $(CFLAGS) -DLC_X11 
LC_XLIBS = -lXExExt -lXext -lX11

XOBJS = xmain.o xmouse.o xscreen.o xmps.o xtypeinit.o xengine.o\
 xtransport.o xmarket.o xhelp.o lcx11.o

#SOLARIS_XHOME = /usr/openwin

#  /usr/X11R6/lib/X11/config/ is where Imake.tmpl lives, change the following
# line if yours is somewhere else.
LC_IMAKE_ARGS = -DUseInstalled -I/usr/X11R6/lib/X11/config

dummy:
	@echo
	@echo '            LinCity  ----------------------  LinCity'
	@echo
	@echo '      'Please use one of the following commands:
#	@echo
	@echo make install '    ' installs the binaries and lib/data files
	@echo '     ' If you do not have the binaries, you will have
	@echo '     ' to use one of the following commands first.
	@echo make lincity '    ' compiles the svga version for Linux
	@echo make xlincity '   ' compiles the X version for Linux
#	@echo make hpux '       ' compiles the X version for HP-UX 9.05
#	@echo make solaris '    ' compiles the X version for Solaris
	@echo make '[hpux|solaris|freebsd|irix|sco]' for those platforms.
	@echo '    ' picedit is used to draw the icons, it is not part of the game.
	@echo make picedit '    ' compiles and installs SVGA picedit
	@echo make xpicedit '   ' compiles and installs xpicedit
	@echo
	@echo make clean '      ' deletes the \'*.o\' files and binaries
	@echo make uninstall '  ' uninstalls everything
	@echo
	@echo The current install paths are:
#	@echo
	@echo '          ' Binaries  '    ' $(LC_BINDIR)
	@echo '         ' Libs/Data  '    ' $(LC_LIBDIR)
	@echo
	@echo To change them edit the Makefile and change LC_BINDIR and LC_LIBDIR.
#	@echo LC_BINDIR and LC_LIBDIR.
	@echo

all : lincity xlincity
	@echo All done.

lc : lincity install
	@echo Installed

lincity : main.o mouse.o screen.o mps.o typeinit.o engine.o transport.o\
		market.o help.o
	g++ $(PROFL) main.o mouse.o screen.o mps.o typeinit.o engine.o\
                transport.o market.o help.o -lm -lvgagl -lvga\
                -o lincity $(PROFF)
	chmod +s lincity

# I only call the Makefile generated by imake for linking
# all the objects and libraries. 
xlincity : $(XOBJS)
	imake -s XMakefile $(LC_IMAKE_ARGS) LC_LIBDIR=$(LC_LIBDIR)
	make -f XMakefile

solaris :
	make -f sunosMakefile LC_LIBDIR=$(LC_LIBDIR)
	@echo
	@echo xlincity compiled, now make install.

hpux : 
	make -f hpuxMakefile LC_LIBDIR=$(LC_LIBDIR)
	@echo
	@echo xlincity compiled, now make install.

freebsd : xlincity
	@echo
	@echo xlincity compiled, now make install.

irix :
	make -f irixMakefile LC_LIBDIR=$(LC_LIBDIR)
	@echo
	@echo xlincity compiled, now make install.

sco :
	make -f scoMakefile LC_LIBDIR=$(LC_LIBDIR)
	@echo
	@echo xlincity compiled, now make install.

install :
# a version(?) of mkdir for SCO OpenServer fails if the dir already
# exists, even with the -p flag, hence the '-'. We should still
# catch a failure with the chmod hopefully.
	-mkdir -p $(LC_BINDIR)
	chmod 755 $(LC_BINDIR)
	-cp lincity $(LC_BINDIR)
	-chmod +s $(LC_BINDIR)/lincity
	-cp xlincity $(LC_BINDIR)
	-chmod 755 $(LC_BINDIR)/xlincity
	-mkdir -p $(LC_LIBDIR)
	chmod 755 $(LC_LIBDIR)
	cp -r icons $(LC_LIBDIR)
	chmod 755 $(LC_LIBDIR)/icons
	cp -r help $(LC_LIBDIR)
	chmod 755 $(LC_LIBDIR)/help
	cp -r messages $(LC_LIBDIR)
	chmod 755 $(LC_LIBDIR)/messages
	cp -r opening $(LC_LIBDIR)
	chmod 755 $(LC_LIBDIR)/opening
	cp colour.pal $(LC_LIBDIR)
	chmod -R o+r $(LC_LIBDIR)
	-mkdir -p $(LC_MANDIR)
	cp lincity.man $(LC_MANDIR)/lincity.$(LC_MANSUF)
	chmod o+r $(LC_MANDIR)/lincity.$(LC_MANSUF)
	chmod o+rx `dirname $(LC_BINDIR)`
	chmod o+rx `dirname $(LC_MANDIR)`

uninstall:
	-rm $(LC_BINDIR)/lincity
	-rm $(LC_BINDIR)/xlincity
	-rm $(LC_BINDIR)/picedit
	-rm $(LC_BINDIR)/xpicedit
	-rm -r $(LC_LIBDIR)
	-rm $(LC_MANDIR)/lincity.$(LC_MANSUF)

main.o : main.cxx main.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c main.cxx -o main.o $(CFLAGS)

xmain.o : main.cxx main.h lin-city.h lctypes.h lcx11.h
	$(CC) $(PROFF) $(PROFD) -c main.cxx -o xmain.o $(LC_XFLAGS)

mouse.o : mouse.cxx mouse.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c mouse.cxx -o mouse.o $(CFLAGS)

xmouse.o : mouse.cxx mouse.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c mouse.cxx -o xmouse.o $(LC_XFLAGS)

screen.o : screen.cxx screen.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c screen.cxx -o screen.o $(CFLAGS)

xscreen.o : screen.cxx screen.h lin-city.h lctypes.h lcx11.h
	$(CC) $(PROFF) $(PROFD) -c screen.cxx -o xscreen.o $(LC_XFLAGS)

mps.o : mps.cxx mps.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c mps.cxx -o mps.o $(CFLAGS)

xmps.o : mps.cxx mps.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c mps.cxx -o xmps.o $(LC_XFLAGS)

typeinit.o : typeinit.cxx typeinit.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c typeinit.cxx -o typeinit.o $(CFLAGS)

xtypeinit.o : typeinit.cxx typeinit.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c typeinit.cxx -o xtypeinit.o $(LC_XFLAGS)

engine.o : engine.cxx engine.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c engine.cxx -o engine.o $(CFLAGS)

xengine.o : engine.cxx engine.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c engine.cxx -o xengine.o $(LC_XFLAGS)

transport.o : transport.cxx transport.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c transport.cxx -o transport.o $(CFLAGS)
 
xtransport.o : transport.cxx transport.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c transport.cxx -o xtransport.o $(LC_XFLAGS)

market.o    : market.cxx market.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c market.cxx -o market.o $(CFLAGS)

xmarket.o    : market.cxx market.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c market.cxx -o xmarket.o $(LC_XFLAGS)

help.o      : help.cxx help.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c help.cxx -o help.o $(CFLAGS)

xhelp.o      : help.cxx help.h lin-city.h lctypes.h
	$(CC) $(PROFF) $(PROFD) -c help.cxx -o xhelp.o $(LC_XFLAGS)

lcx11.o    : lcx11.cxx lcx11.h lin-city.h lctypes.h
	$(CC) -c lcx11.cxx -o lcx11.o $(LC_XFLAGS)


clean :
	-rm lincity
	-rm xlincity
	-rm picedit
	-rm xpicedit
	-rm *.o
	-rm *.s
	-rm XMakefile
	-rm XPMakefile

distclean: clean
	-rm help/*~
	-rm help/*.bak
	-rm opening/*~
	-rm notes/*~
	-rm messages/*~
	-rm messages/*.bak
	-rm picedit
	-rm *.bak
	-rm *~
	-rm \#*\#
	-rm XMakefile
	-rm XPMakefile
	-rm -rf Debug
	-rm -rf SAVED_GAMES

picedit : picedit.cxx 
	$(CC) picedit.cxx -o picedit -lvgagl -lvga $(CFLAGS)
	cp picedit $(LC_BINDIR)
	chmod +s $(LC_BINDIR)/picedit
	-mkdir -p $(LC_LIBDIR)/opening
	cp opening/alt-8x8 $(LC_LIBDIR)/opening
	cp colour.pal $(LC_LIBDIR)

# I only call the Makefile generated by imake for linking.
xpicedit : picedit.cxx picedit.h
	$(CC) -c picedit.cxx -o xpicedit.o $(CFLAGS) -DP_X
	imake -f XPImakefile -s XPMakefile $(LC_IMAKE_ARGS)
	make -f XPMakefile
	cp xpicedit /usr/local/bin
	-mkdir -p $(LC_LIBDIR)/opening
	cp opening/alt-8x8 $(LC_LIBDIR)/opening
	cp colour.pal $(LC_LIBDIR)

# Some extra useful ones for me.

transport-asm :
	$(CC) -S transport.cxx $(CFLAGS)

#    --------  End of Makefile for LinCity  -----------