]> git.pond.sub.org Git - empserver/blob - Makefile
Update copyright notice.
[empserver] / Makefile
1
2 #   Empire - A multi-player, client/server Internet based war game.
3 #   Copyright (C) 1986-2004, 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 '   interix'
57         @echo '   irix'
58         @echo '   irix5'
59         @echo '   isi'
60         @echo '   linux'
61         @echo '   linux-pthreads'
62         @echo '   mach2.5'
63         @echo '   mipsbsd'
64         @echo '   mipsultrix'
65         @echo '   mipsultrix.gcc'
66         @echo '   next'
67         @echo '   nt'
68         @echo '   osx'
69         @echo '   rtpc'
70         @echo '   sequent'
71         @echo '   sequent.fpa'
72         @echo '   solaris'
73         @echo '   sun3'
74         @echo '   sun4'
75         @echo '   sun4.debug'
76         @echo '   sun4.opt'
77         @echo '   vaxultrix'
78
79 alpha:
80         @echo 'building a $(WORLDX) by $(WORLDY) server...'
81         (cd src/doconfig; $(MAKE) $(ALPHAMASTER))
82         ($(MAKE) genlibs $(ALPHAMASTER))
83         (cd src/lib/lwp; $(MAKE) $(ALPHAMASTER))
84         ($(MAKE) binaries $(ALPHAMASTER))
85         ($(MAKE) install)
86
87 alpha-pthreads:
88         @echo 'building a $(WORLDX) by $(WORLDY) server...'
89         (cd src/doconfig; $(MAKE) $(ALPHAPOSMASTER))
90         ($(MAKE) genlibs $(ALPHAPOSMASTER))
91         (cd src/lib/lwp; $(MAKE) $(ALPHAPOSMASTER))
92         ($(MAKE) binaries $(ALPHAPOSMASTER))
93         ($(MAKE) install)
94
95 apollo:
96         @echo 'building a $(WORLDX) by $(WORLDY) server...'
97         (cd src/doconfig; $(MAKE) $(APOLLOMASTER))
98         ($(MAKE) genlibs $(APOLLOMASTER))
99         (cd src/lib/lwp; $(MAKE) $(APOLLOMASTER))
100         ($(MAKE) binaries $(APOLLOMASTER))
101         ($(MAKE) install)
102
103 freebsd:
104         @echo 'building a $(WORLDX) by $(WORLDY) server...'
105         (cd src/doconfig; $(MAKE) $(FREEBSDMASTER))
106         ($(MAKE) genlibs $(FREEBSDMASTER))
107         (cd src/lib/lwp; $(MAKE) $(FREEBSDMASTER))
108         ($(MAKE) binaries $(FREEBSDMASTER))
109         ($(MAKE) install)
110
111 hp:
112         @echo 'building a $(WORLDX) by $(WORLDY) server...'
113         (cd src/doconfig; $(MAKE) $(HPMASTER))
114         ($(MAKE) genlibs $(HPMASTER))
115         (cd src/lib/lwp; $(MAKE) $(HPMASTER))
116         ($(MAKE) binaries $(HPMASTER))
117         ($(MAKE) install)
118
119 hpux:
120         @echo 'building a $(WORLDX) by $(WORLDY) server...'
121         (cd src/doconfig; $(MAKE) $(HPUXMASTER))
122         ($(MAKE) genlibs $(HPUXMASTER))
123         (cd src/lib/lwp; $(MAKE) $(HPUXMASTER))
124         ($(MAKE) binaries $(HPUXMASTER) CLIENTLIBS="")
125         ($(MAKE) install)
126
127 next:
128         @echo 'building a $(WORLDX) by $(WORLDY) server...'
129         (cd src/doconfig; $(MAKE) $(NEXTMASTER))
130         ($(MAKE) genlibs $(NEXTMASTER))
131         (cd src/lib/lwp; $(MAKE) $(NEXTMASTER))
132         ($(MAKE) binaries $(NEXTMASTER))
133         ($(MAKE) install)
134
135 osx:
136         @echo 'building a $(WORLDX) by $(WORLDY) server...'
137         (cd src/doconfig; $(MAKE) $(OSXMASTER))
138         ($(MAKE) genlibs $(OSXMASTER))
139         ($(MAKE) binaries TOBUILD=osx $(OSXMASTER) CLIENTLIBS="")
140         ($(MAKE) install)
141
142 irix:
143         @echo 'building a $(WORLDX) by $(WORLDY) server...'
144         (cd src/doconfig; $(MAKE) $(IRIXMASTER))
145         ($(MAKE) genlibs $(IRIXMASTER))
146         (cd src/lib/lwp; $(MAKE) $(IRIXMASTER))
147         ($(MAKE) binaries $(IRIXMASTER))
148         ($(MAKE) install)
149
150 irix5:
151         @echo 'building a $(WORLDX) by $(WORLDY) server...'
152         (cd src/doconfig; $(MAKE) $(IRIX5MASTER))
153         ($(MAKE) genlibs $(IRIX5MASTER))
154         (cd src/lib/lwp; $(MAKE) $(IRIX5MASTER))
155         ($(MAKE) binaries $(IRIX5MASTER))
156         ($(MAKE) install)
157
158 isi:
159         @echo 'building a $(WORLDX) by $(WORLDY) server...'
160         (cd src/doconfig; $(MAKE) $(ISIMASTER))
161         ($(MAKE) genlibs $(ISIMASTER))
162         (cd src/lib/lwp; $(MAKE) $(ISIMASTER))
163         ($(MAKE) binaries $(ISIMASTER))
164         ($(MAKE) install)
165
166 linux:
167         @echo 'building a $(WORLDX) by $(WORLDY) server...'
168         @echo 'This build is only tested on x86 machines.  Try using'
169         @echo 'linux-pthreads for other architectures.'
170         (cd src/doconfig; $(MAKE) $(LINUXMASTER))
171         ($(MAKE) genlibs $(LINUXMASTER))
172         (cd src/lib/lwp; $(MAKE) $(LINUXMASTER))
173         ($(MAKE) binaries $(LINUXMASTER))
174         ($(MAKE) install)
175
176 linux-pthreads:
177         @echo 'building a $(WORLDX) by $(WORLDY) server...'
178         (cd src/doconfig; $(MAKE) $(LINUXPTHMASTER))
179         ($(MAKE) genlibs $(LINUXPTHMASTER))
180         (cd src/lib/lwp; $(MAKE) $(LINUXPTHMASTER))
181         ($(MAKE) binaries $(LINUXPTHMASTER))
182         ($(MAKE) install)
183
184 mipsbsd:
185         @echo 'building a $(WORLDX) by $(WORLDY) server...'
186         (cd src/doconfig; $(MAKE) $(MIPSBSDMASTER))
187         ($(MAKE) genlibs $(MIPSBSDMASTER))
188         (cd src/lib/lwp; $(MAKE) mipsultrix $(MIPSBSDMASTER))
189         ($(MAKE) binaries $(MIPSBSDMASTER))
190         ($(MAKE) install)
191
192 mach2.5:
193         @echo 'building a $(WORLDX) by $(WORLDY) server...'
194         (cd src/doconfig; $(MAKE) $(MACH25MASTER))
195         ($(MAKE) genlibs $(MACH25MASTER))
196         (cd src/lib/lwp; $(MAKE) mipsultrix $(MACH25MASTER))
197         ($(MAKE) binaries $(MACH25MASTER))
198         ($(MAKE) install)
199
200 mipsultrix:
201         @echo 'building a $(WORLDX) by $(WORLDY) server...'
202         (cd src/doconfig; $(MAKE) $(MIPSULTMASTER))
203         ($(MAKE) genlibs $(MIPSULTMASTER))
204         (cd src/lib/lwp; $(MAKE) mipsultrix $(MIPSULTMASTER))
205         ($(MAKE) binaries $(MIPSULTMASTER))
206         ($(MAKE) install)
207
208 mipsultrix.gcc:
209         @echo 'building a $(WORLDX) by $(WORLDY) server...'
210         (cd src/doconfig; $(MAKE) $(MIPSULTGMASTER))
211         ($(MAKE) genlibs $(MIPSULTGMASTER))
212         (cd src/lib/lwp; $(MAKE) mipsultrix $(MIPSULTGMASTER))
213         ($(MAKE) binaries $(MIPSULTGMASTER))
214         ($(MAKE) install)
215
216 nt:
217         @echo 'building a $(WORLDX) by $(WORLDY) server...'
218         cd src/doconfig
219         $(MAKE) nt $(NTMASTER)
220         cd ../..
221         $(MAKE) ntgenlibs TOBUILD=nt $(NTMASTER)
222         cd src/lib/lwp
223         $(MAKE) nt $(NTMASTER)
224         cd ../../..
225         $(MAKE) ntbinaries TOBUILD=nt $(NTMASTER)
226         $(MAKE) ntinstall
227
228 interix:
229         @echo 'building a $(WORLDX) by $(WORLDY) server...'
230         (cd src/doconfig; $(MAKE) $(INTERIXMASTER))
231         ($(MAKE) genlibs $(INTERIXMASTER))
232         (cd src/lib/lwp; $(MAKE) $(INTERIXMASTER))
233         ($(MAKE) binaries $(INTERIXMASTER))
234         ($(MAKE) install)
235
236 vaxultrix:
237         @echo 'building a $(WORLDX) by $(WORLDY) server...'
238         (cd src/doconfig; $(MAKE) $(VAXULTMASTER))
239         ($(MAKE) genlibs $(VAXULTMASTER))
240         (cd src/lib/lwp; $(MAKE) $(VAXULTMASTER))
241         ($(MAKE) binaries $(VAXULTMASTER))
242         ($(MAKE) install)
243
244 aix:
245         @echo 'building a $(WORLDX) by $(WORLDY) server...'
246         (cd src/doconfig; $(MAKE) $(AIXMASTER))
247         ($(MAKE) genlibs $(AIXMASTER))
248         (cd src/lib/lwp; $(MAKE) aix $(AIXMASTER))
249         ($(MAKE) binaries $(AIXMASTER))
250         ($(MAKE) install)
251
252 rtpc:
253         @echo 'building a $(WORLDX) by $(WORLDY) server...'
254         (cd src/doconfig; $(MAKE) $(RTPCMASTER))
255         ($(MAKE) genlibs $(RTPCMASTER))
256         (cd src/lib/lwp; $(MAKE) aix $(RTPCMASTER))
257         ($(MAKE) binaries $(RTPCMASTER))
258         ($(MAKE) install)
259
260 sequent:
261         @echo 'building a $(WORLDX) by $(WORLDY) server...'
262         (cd src/doconfig; $(MAKE) $(SEQMASTER))
263         ($(MAKE) genlibs $(SEQMASTER))
264         (cd src/lib/lwp; $(MAKE) $(SEQMASTER))
265         ($(MAKE) binaries $(SEQMASTER))
266         ($(MAKE) install)
267
268 sequent.fpa:
269         @echo 'building a $(WORLDX) by $(WORLDY) server...'
270         (cd src/doconfig; $(MAKE) $(SEQFPAMASTER))
271         ($(MAKE) genlibs $(SEQFPAMASTER))
272         (cd src/lib/lwp; $(MAKE) $(SEQFPAMASTER))
273         ($(MAKE) binaries $(SEQFPAMASTER))
274         ($(MAKE) install)
275
276 solaris:
277         @echo 'building a $(WORLDX) by $(WORLDY) server...'
278         (cd src/doconfig; $(MAKE) $(SOLMASTER))
279         ($(MAKE) genlibs $(SOLMASTER))
280         (cd src/lib/lwp; $(MAKE) $(SOLMASTER))
281         ($(MAKE) binaries $(SOLMASTER))
282         ($(MAKE) install)
283
284 sun3:
285         @echo 'building a $(WORLDX) by $(WORLDY) server...'
286         (cd src/doconfig; $(MAKE) $(SUN3MASTER))
287         ($(MAKE) genlibs $(SUN3MASTER))
288         (cd src/lib/lwp; $(MAKE) $(SUN3MASTER))
289         ($(MAKE) binaries $(SUN3MASTER))
290         ($(MAKE) install)
291
292 sun4:
293         @echo 'building a $(WORLDX) by $(WORLDY) server...'
294         (cd src/doconfig; $(MAKE) $(SUN4MASTER))
295         ($(MAKE) genlibs $(SUN4MASTER))
296         (cd src/lib/lwp; $(MAKE) $(SUN4MASTER))
297         ($(MAKE) binaries $(SUN4MASTER))
298         ($(MAKE) install)
299
300 sun4.opt:
301         @echo 'building a $(WORLDX) by $(WORLDY) server...'
302         (cd src/doconfig; $(MAKE) $(SUN4OPTMASTER))
303         ($(MAKE) genlibs $(SUN4OPTMASTER))
304         (cd src/lib/lwp; $(MAKE) $(SUN4OPTMASTER))
305         ($(MAKE) binaries $(SUN4OPTMASTER))
306         ($(MAKE) install)
307
308 sun4.debug:
309         @echo 'building a $(WORLDX) by $(WORLDY) server...'
310         (cd src/doconfig; $(MAKE) $(SUN4DBGMASTER))
311         ($(MAKE) genlibs $(SUN4DBGMASTER))
312         (cd src/lib/lwp; $(MAKE) $(SUN4DBGMASTER))
313         ($(MAKE) binaries $(SUN4DBGMASTER))
314         ($(MAKE) install)
315
316 #
317 # Generic stuff that is called from the architecture specific stuff.
318 #
319
320 binaries:
321         @echo 'building the binaries'
322         (cd src/client; $(MAKE) $(GENMASTER) CLIENTLIBS=$(CLIENTLIBS))
323         (cd src/server; $(MAKE) $(GENMASTER))
324         (cd src/util; $(MAKE) $(GENMASTER))
325
326 ntbinaries:
327         @echo 'building the binaries'
328         cd src/client
329         $(MAKE) $(GENMASTER) CLIENTLIBS=$(CLIENTLIBS)
330         cd ../..
331         cd src/server
332         $(MAKE) $(GENMASTER)
333         cd ../..
334         cd src/util
335         $(MAKE) $(GENMASTER)
336         cd ../..
337
338 genlibs:
339         @echo 'building generic libraries'
340         -mkdir lib
341         (cd src/lib/as; $(MAKE)  $(GENMASTER))
342         (cd src/lib/commands; $(MAKE)  $(GENMASTER))
343         (cd src/lib/common; $(MAKE)  $(GENMASTER))
344         (cd src/lib/empthread; $(MAKE)  $(GENMASTER))
345         (cd src/lib/gen; $(MAKE)  $(GENMASTER))
346         (cd src/lib/global; $(MAKE)  $(GENMASTER))
347         (cd src/lib/player; $(MAKE)  $(GENMASTER))
348         (cd src/lib/subs; $(MAKE)  $(GENMASTER))
349         (cd src/lib/update; $(MAKE)  $(GENMASTER))
350         @echo 'done building generic libraries'
351
352 ntgenlibs:
353         @echo 'building generic libraries'
354         -(mkdir lib)
355         cd src/lib/as
356         $(MAKE) $(GENMASTER)
357         cd ../../..
358         cd src/lib/commands
359         $(MAKE) $(GENMASTER)
360         cd ../../..
361         cd src/lib/common
362         $(MAKE) $(GENMASTER)
363         cd ../../..
364         cd src/lib/empthread
365         $(MAKE) $(GENMASTER)
366         cd ../../..
367         cd src/lib/gen
368         $(MAKE) $(GENMASTER)
369         cd ../../..
370         cd src/lib/global
371         $(MAKE) $(GENMASTER)
372         cd ../../..
373         cd src/lib/player
374         $(MAKE) $(GENMASTER)
375         cd ../../..
376         cd src/lib/subs
377         $(MAKE) $(GENMASTER)
378         cd ../../..
379         cd src/lib/update
380         $(MAKE) $(GENMASTER)
381         cd ../../..
382         @echo 'done building generic libraries'
383
384 clean:
385         (cd src/lib/as; $(MAKE) clean)
386         (cd src/lib/commands; $(MAKE) clean)
387         (cd src/lib/common; $(MAKE) clean)
388         (cd src/lib/gen; $(MAKE) clean)
389         (cd src/lib/global; $(MAKE) clean)
390         (cd src/lib/player; $(MAKE) clean)
391         (cd src/lib/subs; $(MAKE) clean)
392         (cd src/lib/update; $(MAKE) clean)
393         (cd src/lib/lwp; $(MAKE) clean)
394         (cd src/lib/empthread; $(MAKE) clean)
395         (cd src/client; $(MAKE) clean)
396         (cd src/server; $(MAKE) clean)
397         (cd src/util; $(MAKE) clean)
398         (cd src/doconfig; $(MAKE) clean)
399         (rm -f lib/*.a)
400
401 ntclean:
402         cd src/lib/as
403         $(MAKE) clean
404         cd ../../../
405         cd src/lib/commands
406         $(MAKE) clean
407         cd ../../../
408         cd src/lib/common
409         $(MAKE) clean
410         cd ../../../
411         cd src/lib/gen
412         $(MAKE) clean
413         cd ../../../
414         cd src/lib/global
415         $(MAKE) clean
416         cd ../../../
417         cd src/lib/player
418         $(MAKE) clean
419         cd ../../../
420         cd src/lib/subs
421         $(MAKE) clean
422         cd ../../../
423         cd src/lib/update
424         $(MAKE) clean
425         cd ../../../
426         cd src/lib/lwp
427         $(MAKE) clean
428         cd ../../../
429         cd src/lib/empthread
430         $(MAKE) clean
431         cd ../../../
432         cd src/client
433         $(MAKE) clean
434         cd ../../
435         cd src/server
436         $(MAKE) clean
437         cd ../../
438         cd src/util
439         $(MAKE) clean
440         cd ../../
441         cd src/doconfig
442         $(MAKE) clean
443         cd ../../
444         cd lib
445         -(del /Q *.lib)
446
447 realclean:
448         ($(MAKE) clean)
449         (rm -f bin/*)
450         (rm -rf data/*)
451         -(rm -rf $(EMPDIR)/data/*)
452         -(rm -rf $(EMPDIR)/bin/*)
453         rm -rf lib info.nr info.html
454         rm -f include/gamesdef.h src/client/ipglob.c src/make.src
455
456 ntrealclean:
457         $(MAKE) ntclean
458         cd bin
459         -(del /Q *.*)
460         cd ..
461         cd data
462         -(del /Q *.*)
463         cd ..
464         cd $(EMPDIR)\data
465         -(del /Q *.*)
466         -(rmdir tel)
467         cd $(EMPDIR)\bin
468         -(del /Q *.*)
469         cd $(EMPDIR)\data\tel
470         -(del /Q *.*)
471
472 depend:
473         (cd src/lib/as; $(MAKE) depend)
474         (cd src/lib/commands; $(MAKE) depend)
475         (cd src/lib/common; $(MAKE) depend)
476         (cd src/lib/gen; $(MAKE) depend)
477         (cd src/lib/global; $(MAKE) depend)
478         (cd src/lib/player; $(MAKE) depend)
479         (cd src/lib/subs; $(MAKE) depend)
480         (cd src/lib/update; $(MAKE) depend)
481         (cd src/lib/lwp; $(MAKE) depend)
482         (cd src/lib/empthread; $(MAKE) depend)
483         (cd src/client; $(MAKE) depend)
484         (cd src/server; $(MAKE) depend)
485         (cd src/util; $(MAKE) depend)
486         (cd src/doconfig; $(MAKE) depend)
487
488 # The last three lines here ensure that we don't overwrite an existing
489 # econfig file, by moving it first then moving it back.  The '-''s
490 # ignore any errors (like if the files don't exist.)
491 # So, after an install, you will have an "econfig" file in the
492 # data directory if you didn't have one before.
493
494 install:
495         (cd src/client; $(MAKE) install)
496         (cd src/server; $(MAKE) install)
497         (cd src/util; $(MAKE) install)
498         -mkdir $(EMPDIR)/data
499         -(mv $(EMPDIR)/data/econfig $(EMPDIR)/data/econfig.bak)
500         ($(EMPDIR)/bin/pconfig > $(EMPDIR)/data/econfig)
501         -(mv $(EMPDIR)/data/econfig.bak $(EMPDIR)/data/econfig)
502
503 ntinstall:
504         cd src\client
505         $(MAKE) ntinstall
506         cd ..\..
507         cd src\server
508         $(MAKE) ntinstall
509         cd ..\..
510         cd src\util
511         $(MAKE) ntinstall
512         cd ..\..
513         -mkdir $(NTINSTDIR)\data
514         cd $(NTINSTDIR)\data
515         ($(NTINSTDIR)\bin\pconfig.exe > $(NTINSTDIR)\data\econfig.new)
516         -(move econfig.new econfig)
517         cd ..
518
519 dist:
520         src/scripts/mkdist