]> git.pond.sub.org Git - empserver/blob - Makefile
Portability fixes: don't declare library functions, include
[empserver] / Makefile
1
2 #   Empire - A multi-player, client/server Internet based war game.
3 #   Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
4 #                            Ken Stevens, Steve McClure
5
6 #   This program is free software; you can redistribute it and/or modify
7 #   it under the terms of the GNU General Public License as published by
8 #   the Free Software Foundation; either version 2 of the License, or
9 #   (at your option) any later version.
10
11 #   This program is distributed in the hope that it will be useful,
12 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 #   GNU General Public License for more details.
15
16 #   You should have received a copy of the GNU General Public License
17 #   along with this program; if not, write to the Free Software
18 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
20 #   ---
21
22 #   See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
23 #   related information and legal notices. It is expected that any future
24 #   projects/authors will amend these files as needed.
25
26 # Makefile - Wolfpack, 1996-2000
27 #            Do a generic build just by typing in "make <arch>"
28 #
29 # Note that the NT builds were done using MSVC 5.0 and using "nmake nt"
30 #  So, to build anything on NT, just put an "nt" in front (for example,
31 #  "ntclean", "ntinstall", etc.
32
33 include build.conf
34 include Make.sysdefs
35
36 TOBUILD = all
37 GENMASTER = $(TOBUILD) GLOBALCFLAGS="$(GLOBALCFLAGS)" GLOBALLFLAGS="$(GLOBALLFLAGS)"
38 CLIENTLIBS = -ltermcap
39
40
41 #
42 # Specific targets - make a new one for each new architecture or
43 #                    build environment.
44 #
45
46 all:
47         @echo 'You must type "make <arch>" to build for a specific system.'
48         @echo 'Currently buildable architectures are:'
49         @echo '   aix'
50         @echo '   alpha'
51         @echo '   alpha-pthreads'
52         @echo '   apollo'
53         @echo '   freebsd'
54         @echo '   hp'
55         @echo '   hpux'
56         @echo '   irix'
57         @echo '   irix5'
58         @echo '   isi'
59         @echo '   linux'
60         @echo '   linux-pthreads'
61         @echo '   mach2.5'
62         @echo '   mipsbsd'
63         @echo '   mipsultrix'
64         @echo '   mipsultrix.gcc'
65         @echo '   next'
66         @echo '   nt'
67         @echo '   osx'
68         @echo '   rtpc'
69         @echo '   sequent'
70         @echo '   sequent.fpa'
71         @echo '   solaris'
72         @echo '   sun3'
73         @echo '   sun4'
74         @echo '   sun4.debug'
75         @echo '   sun4.opt'
76         @echo '   vaxultrix'
77
78 alpha:
79         @echo 'building a $(WORLDX) by $(WORLDY) server...'
80         (cd src/doconfig; $(MAKE) $(ALPHAMASTER))
81         ($(MAKE) genlibs $(ALPHAMASTER))
82         (cd src/lib/lwp; $(MAKE) $(ALPHAMASTER))
83         ($(MAKE) binaries $(ALPHAMASTER))
84         ($(MAKE) install)
85
86 alpha-pthreads:
87         @echo 'building a $(WORLDX) by $(WORLDY) server...'
88         (cd src/doconfig; $(MAKE) $(ALPHAPOSMASTER))
89         ($(MAKE) genlibs $(ALPHAPOSMASTER))
90         (cd src/lib/lwp; $(MAKE) $(ALPHAPOSMASTER))
91         ($(MAKE) binaries $(ALPHAPOSMASTER))
92         ($(MAKE) install)
93
94 apollo:
95         @echo 'building a $(WORLDX) by $(WORLDY) server...'
96         (cd src/doconfig; $(MAKE) $(APOLLOMASTER))
97         ($(MAKE) genlibs $(APOLLOMASTER))
98         (cd src/lib/lwp; $(MAKE) $(APOLLOMASTER))
99         ($(MAKE) binaries $(APOLLOMASTER))
100         ($(MAKE) install)
101
102 freebsd:
103         @echo 'building a $(WORLDX) by $(WORLDY) server...'
104         (cd src/doconfig; $(MAKE) $(FREEBSDMASTER))
105         ($(MAKE) genlibs $(FREEBSDMASTER))
106         (cd src/lib/lwp; $(MAKE) $(FREEBSDMASTER))
107         ($(MAKE) binaries $(FREEBSDMASTER))
108         ($(MAKE) install)
109
110 hp:
111         @echo 'building a $(WORLDX) by $(WORLDY) server...'
112         (cd src/doconfig; $(MAKE) $(HPMASTER))
113         ($(MAKE) genlibs $(HPMASTER))
114         (cd src/lib/lwp; $(MAKE) $(HPMASTER))
115         ($(MAKE) binaries $(HPMASTER))
116         ($(MAKE) install)
117
118 hpux:
119         @echo 'building a $(WORLDX) by $(WORLDY) server...'
120         (cd src/doconfig; $(MAKE) $(HPUXMASTER))
121         ($(MAKE) genlibs $(HPUXMASTER))
122         (cd src/lib/lwp; $(MAKE) $(HPUXMASTER))
123         ($(MAKE) binaries $(HPUXMASTER) CLIENTLIBS="")
124         ($(MAKE) install)
125
126 next:
127         @echo 'building a $(WORLDX) by $(WORLDY) server...'
128         (cd src/doconfig; $(MAKE) $(NEXTMASTER))
129         ($(MAKE) genlibs $(NEXTMASTER))
130         (cd src/lib/lwp; $(MAKE) $(NEXTMASTER))
131         ($(MAKE) binaries $(NEXTMASTER))
132         ($(MAKE) install)
133
134 osx:
135         @echo 'building a $(WORLDX) by $(WORLDY) server...'
136         (cd src/doconfig; $(MAKE) $(OSXMASTER))
137         ($(MAKE) genlibs $(OSXMASTER))
138         ($(MAKE) binaries TOBUILD=osx $(OSXMASTER) CLIENTLIBS="")
139         ($(MAKE) install)
140
141 irix:
142         @echo 'building a $(WORLDX) by $(WORLDY) server...'
143         (cd src/doconfig; $(MAKE) $(IRIXMASTER))
144         ($(MAKE) genlibs $(IRIXMASTER))
145         (cd src/lib/lwp; $(MAKE) $(IRIXMASTER))
146         ($(MAKE) binaries $(IRIXMASTER))
147         ($(MAKE) install)
148
149 irix5:
150         @echo 'building a $(WORLDX) by $(WORLDY) server...'
151         (cd src/doconfig; $(MAKE) $(IRIX5MASTER))
152         ($(MAKE) genlibs $(IRIX5MASTER))
153         (cd src/lib/lwp; $(MAKE) $(IRIX5MASTER))
154         ($(MAKE) binaries $(IRIX5MASTER))
155         ($(MAKE) install)
156
157 isi:
158         @echo 'building a $(WORLDX) by $(WORLDY) server...'
159         (cd src/doconfig; $(MAKE) $(ISIMASTER))
160         ($(MAKE) genlibs $(ISIMASTER))
161         (cd src/lib/lwp; $(MAKE) $(ISIMASTER))
162         ($(MAKE) binaries $(ISIMASTER))
163         ($(MAKE) install)
164
165 linux:
166         @echo 'building a $(WORLDX) by $(WORLDY) server...'
167         @echo 'This build is only tested on x86 machines.  Try using'
168         @echo 'linux-pthreads for other architectures.'
169         (cd src/doconfig; $(MAKE) $(LINUXMASTER))
170         ($(MAKE) genlibs $(LINUXMASTER))
171         (cd src/lib/lwp; $(MAKE) $(LINUXMASTER))
172         ($(MAKE) binaries $(LINUXMASTER))
173         ($(MAKE) install)
174
175 linux-pthreads:
176         @echo 'building a $(WORLDX) by $(WORLDY) server...'
177         (cd src/doconfig; $(MAKE) $(LINUXPTHMASTER))
178         ($(MAKE) genlibs $(LINUXPTHMASTER))
179         (cd src/lib/lwp; $(MAKE) $(LINUXPTHMASTER))
180         ($(MAKE) binaries $(LINUXPTHMASTER))
181         ($(MAKE) install)
182
183 mipsbsd:
184         @echo 'building a $(WORLDX) by $(WORLDY) server...'
185         (cd src/doconfig; $(MAKE) $(MIPSBSDMASTER))
186         ($(MAKE) genlibs $(MIPSBSDMASTER))
187         (cd src/lib/lwp; $(MAKE) mipsultrix $(MIPSBSDMASTER))
188         ($(MAKE) binaries $(MIPSBSDMASTER))
189         ($(MAKE) install)
190
191 mach2.5:
192         @echo 'building a $(WORLDX) by $(WORLDY) server...'
193         (cd src/doconfig; $(MAKE) $(MACH25MASTER))
194         ($(MAKE) genlibs $(MACH25MASTER))
195         (cd src/lib/lwp; $(MAKE) mipsultrix $(MACH25MASTER))
196         ($(MAKE) binaries $(MACH25MASTER))
197         ($(MAKE) install)
198
199 mipsultrix:
200         @echo 'building a $(WORLDX) by $(WORLDY) server...'
201         (cd src/doconfig; $(MAKE) $(MIPSULTMASTER))
202         ($(MAKE) genlibs $(MIPSULTMASTER))
203         (cd src/lib/lwp; $(MAKE) mipsultrix $(MIPSULTMASTER))
204         ($(MAKE) binaries $(MIPSULTMASTER))
205         ($(MAKE) install)
206
207 mipsultrix.gcc:
208         @echo 'building a $(WORLDX) by $(WORLDY) server...'
209         (cd src/doconfig; $(MAKE) $(MIPSULTGMASTER))
210         ($(MAKE) genlibs $(MIPSULTGMASTER))
211         (cd src/lib/lwp; $(MAKE) mipsultrix $(MIPSULTGMASTER))
212         ($(MAKE) binaries $(MIPSULTGMASTER))
213         ($(MAKE) install)
214
215 nt:
216         @echo 'building a $(WORLDX) by $(WORLDY) server...'
217         cd src/doconfig
218         $(MAKE) nt $(NTMASTER)
219         cd ../..
220         $(MAKE) ntgenlibs TOBUILD=nt $(NTMASTER)
221         cd src/lib/lwp
222         $(MAKE) nt $(NTMASTER)
223         cd ../../..
224         $(MAKE) ntbinaries TOBUILD=nt $(NTMASTER)
225         $(MAKE) ntinstall
226
227 vaxultrix:
228         @echo 'building a $(WORLDX) by $(WORLDY) server...'
229         (cd src/doconfig; $(MAKE) $(VAXULTMASTER))
230         ($(MAKE) genlibs $(VAXULTMASTER))
231         (cd src/lib/lwp; $(MAKE) $(VAXULTMASTER))
232         ($(MAKE) binaries $(VAXULTMASTER))
233         ($(MAKE) install)
234
235 aix:
236         @echo 'building a $(WORLDX) by $(WORLDY) server...'
237         (cd src/doconfig; $(MAKE) $(AIXMASTER))
238         ($(MAKE) genlibs $(AIXMASTER))
239         (cd src/lib/lwp; $(MAKE) aix $(AIXMASTER))
240         ($(MAKE) binaries $(AIXMASTER))
241         ($(MAKE) install)
242
243 rtpc:
244         @echo 'building a $(WORLDX) by $(WORLDY) server...'
245         (cd src/doconfig; $(MAKE) $(RTPCMASTER))
246         ($(MAKE) genlibs $(RTPCMASTER))
247         (cd src/lib/lwp; $(MAKE) aix $(RTPCMASTER))
248         ($(MAKE) binaries $(RTPCMASTER))
249         ($(MAKE) install)
250
251 sequent:
252         @echo 'building a $(WORLDX) by $(WORLDY) server...'
253         (cd src/doconfig; $(MAKE) $(SEQMASTER))
254         ($(MAKE) genlibs $(SEQMASTER))
255         (cd src/lib/lwp; $(MAKE) $(SEQMASTER))
256         ($(MAKE) binaries $(SEQMASTER))
257         ($(MAKE) install)
258
259 sequent.fpa:
260         @echo 'building a $(WORLDX) by $(WORLDY) server...'
261         (cd src/doconfig; $(MAKE) $(SEQFPAMASTER))
262         ($(MAKE) genlibs $(SEQFPAMASTER))
263         (cd src/lib/lwp; $(MAKE) $(SEQFPAMASTER))
264         ($(MAKE) binaries $(SEQFPAMASTER))
265         ($(MAKE) install)
266
267 solaris:
268         @echo 'building a $(WORLDX) by $(WORLDY) server...'
269         (cd src/doconfig; $(MAKE) $(SOLMASTER))
270         ($(MAKE) genlibs $(SOLMASTER))
271         (cd src/lib/lwp; $(MAKE) $(SOLMASTER))
272         ($(MAKE) binaries $(SOLMASTER))
273         ($(MAKE) install)
274
275 sun3:
276         @echo 'building a $(WORLDX) by $(WORLDY) server...'
277         (cd src/doconfig; $(MAKE) $(SUN3MASTER))
278         ($(MAKE) genlibs $(SUN3MASTER))
279         (cd src/lib/lwp; $(MAKE) $(SUN3MASTER))
280         ($(MAKE) binaries $(SUN3MASTER))
281         ($(MAKE) install)
282
283 sun4:
284         @echo 'building a $(WORLDX) by $(WORLDY) server...'
285         (cd src/doconfig; $(MAKE) $(SUN4MASTER))
286         ($(MAKE) genlibs $(SUN4MASTER))
287         (cd src/lib/lwp; $(MAKE) $(SUN4MASTER))
288         ($(MAKE) binaries $(SUN4MASTER))
289         ($(MAKE) install)
290
291 sun4.opt:
292         @echo 'building a $(WORLDX) by $(WORLDY) server...'
293         (cd src/doconfig; $(MAKE) $(SUN4OPTMASTER))
294         ($(MAKE) genlibs $(SUN4OPTMASTER))
295         (cd src/lib/lwp; $(MAKE) $(SUN4OPTMASTER))
296         ($(MAKE) binaries $(SUN4OPTMASTER))
297         ($(MAKE) install)
298
299 sun4.debug:
300         @echo 'building a $(WORLDX) by $(WORLDY) server...'
301         (cd src/doconfig; $(MAKE) $(SUN4DBGMASTER))
302         ($(MAKE) genlibs $(SUN4DBGMASTER))
303         (cd src/lib/lwp; $(MAKE) $(SUN4DBGMASTER))
304         ($(MAKE) binaries $(SUN4DBGMASTER))
305         ($(MAKE) install)
306
307 #
308 # Generic stuff that is called from the architecture specific stuff.
309 #
310
311 binaries:
312         @echo 'building the binaries'
313         (cd src/client; $(MAKE) $(GENMASTER) CLIENTLIBS=$(CLIENTLIBS))
314         (cd src/server; $(MAKE) $(GENMASTER))
315         (cd src/util; $(MAKE) $(GENMASTER))
316
317 ntbinaries:
318         @echo 'building the binaries'
319         cd src/client
320         $(MAKE) $(GENMASTER) CLIENTLIBS=$(CLIENTLIBS)
321         cd ../..
322         cd src/server
323         $(MAKE) $(GENMASTER)
324         cd ../..
325         cd src/util
326         $(MAKE) $(GENMASTER)
327         cd ../..
328
329 genlibs:
330         @echo 'building generic libraries'
331         -mkdir lib
332         (cd src/lib/as; $(MAKE)  $(GENMASTER))
333         (cd src/lib/commands; $(MAKE)  $(GENMASTER))
334         (cd src/lib/common; $(MAKE)  $(GENMASTER))
335         (cd src/lib/empthread; $(MAKE)  $(GENMASTER))
336         (cd src/lib/gen; $(MAKE)  $(GENMASTER))
337         (cd src/lib/global; $(MAKE)  $(GENMASTER))
338         (cd src/lib/player; $(MAKE)  $(GENMASTER))
339         (cd src/lib/subs; $(MAKE)  $(GENMASTER))
340         (cd src/lib/update; $(MAKE)  $(GENMASTER))
341         @echo 'done building generic libraries'
342
343 ntgenlibs:
344         @echo 'building generic libraries'
345         -(mkdir lib)
346         cd src/lib/as
347         $(MAKE) $(GENMASTER)
348         cd ../../..
349         cd src/lib/commands
350         $(MAKE) $(GENMASTER)
351         cd ../../..
352         cd src/lib/common
353         $(MAKE) $(GENMASTER)
354         cd ../../..
355         cd src/lib/empthread
356         $(MAKE) $(GENMASTER)
357         cd ../../..
358         cd src/lib/gen
359         $(MAKE) $(GENMASTER)
360         cd ../../..
361         cd src/lib/global
362         $(MAKE) $(GENMASTER)
363         cd ../../..
364         cd src/lib/player
365         $(MAKE) $(GENMASTER)
366         cd ../../..
367         cd src/lib/subs
368         $(MAKE) $(GENMASTER)
369         cd ../../..
370         cd src/lib/update
371         $(MAKE) $(GENMASTER)
372         cd ../../..
373         @echo 'done building generic libraries'
374
375 clean:
376         (cd src/lib/as; $(MAKE) clean)
377         (cd src/lib/commands; $(MAKE) clean)
378         (cd src/lib/common; $(MAKE) clean)
379         (cd src/lib/gen; $(MAKE) clean)
380         (cd src/lib/global; $(MAKE) clean)
381         (cd src/lib/player; $(MAKE) clean)
382         (cd src/lib/subs; $(MAKE) clean)
383         (cd src/lib/update; $(MAKE) clean)
384         (cd src/lib/lwp; $(MAKE) clean)
385         (cd src/lib/empthread; $(MAKE) clean)
386         (cd src/client; $(MAKE) clean)
387         (cd src/server; $(MAKE) clean)
388         (cd src/util; $(MAKE) clean)
389         (cd src/doconfig; $(MAKE) clean)
390         (rm -f lib/*.a)
391
392 ntclean:
393         cd src/lib/as
394         $(MAKE) clean
395         cd ../../../
396         cd src/lib/commands
397         $(MAKE) clean
398         cd ../../../
399         cd src/lib/common
400         $(MAKE) clean
401         cd ../../../
402         cd src/lib/gen
403         $(MAKE) clean
404         cd ../../../
405         cd src/lib/global
406         $(MAKE) clean
407         cd ../../../
408         cd src/lib/player
409         $(MAKE) clean
410         cd ../../../
411         cd src/lib/subs
412         $(MAKE) clean
413         cd ../../../
414         cd src/lib/update
415         $(MAKE) clean
416         cd ../../../
417         cd src/lib/lwp
418         $(MAKE) clean
419         cd ../../../
420         cd src/lib/empthread
421         $(MAKE) clean
422         cd ../../../
423         cd src/client
424         $(MAKE) clean
425         cd ../../
426         cd src/server
427         $(MAKE) clean
428         cd ../../
429         cd src/util
430         $(MAKE) clean
431         cd ../../
432         cd src/doconfig
433         $(MAKE) clean
434         cd ../../
435         cd lib
436         -(del /Q *.lib)
437
438 realclean:
439         ($(MAKE) clean)
440         (rm -f bin/*)
441         (rm -rf data/*)
442         -(rm -rf $(EMPDIR)/data/*)
443         -(rm -rf $(EMPDIR)/bin/*)
444         rm -rf lib info.nr info.html
445         rm -f include/gamesdef.h src/client/ipglob.c src/make.src
446
447 ntrealclean:
448         $(MAKE) ntclean
449         cd bin
450         -(del /Q *.*)
451         cd ..
452         cd data
453         -(del /Q *.*)
454         cd ..
455         cd $(EMPDIR)\data
456         -(del /Q *.*)
457         -(rmdir tel)
458         cd $(EMPDIR)\bin
459         -(del /Q *.*)
460         cd $(EMPDIR)\data\tel
461         -(del /Q *.*)
462
463 depend:
464         (cd src/lib/as; $(MAKE) depend)
465         (cd src/lib/commands; $(MAKE) depend)
466         (cd src/lib/common; $(MAKE) depend)
467         (cd src/lib/gen; $(MAKE) depend)
468         (cd src/lib/global; $(MAKE) depend)
469         (cd src/lib/player; $(MAKE) depend)
470         (cd src/lib/subs; $(MAKE) depend)
471         (cd src/lib/update; $(MAKE) depend)
472         (cd src/lib/lwp; $(MAKE) depend)
473         (cd src/lib/empthread; $(MAKE) depend)
474         (cd src/client; $(MAKE) depend)
475         (cd src/server; $(MAKE) depend)
476         (cd src/util; $(MAKE) depend)
477         (cd src/doconfig; $(MAKE) depend)
478
479 # The last three lines here ensure that we don't overwrite an existing
480 # econfig file, by moving it first then moving it back.  The '-''s
481 # ignore any errors (like if the files don't exist.)
482 # So, after an install, you will have an "econfig" file in the
483 # data directory if you didn't have one before.
484
485 install:
486         (cd src/client; $(MAKE) install)
487         (cd src/server; $(MAKE) install)
488         (cd src/util; $(MAKE) install)
489         -(mv $(EMPDIR)/data/econfig $(EMPDIR)/data/econfig.bak)
490         ($(EMPDIR)/bin/pconfig > $(EMPDIR)/data/econfig)
491         -(mv $(EMPDIR)/data/econfig.bak $(EMPDIR)/data/econfig)
492
493 ntinstall:
494         -(mkdir bin)
495         cd src\client
496         $(MAKE) ntinstall
497         cd ..\..
498         cd src\server
499         $(MAKE) ntinstall
500         cd ..\..
501         cd src\util
502         $(MAKE) ntinstall
503         cd ..\..
504         cd data
505         ($(NTINSTDIR)\bin\pconfig.exe > $(NTINSTDIR)\data\econfig.new)
506         -(move econfig.new econfig)
507         cd ..
508