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