1##############################################################################
2#
3#    file                 : Make-default.mk
4#    created              : Sat Mar 18 23:53:11 CET 2000
5#    copyright            : (C) 2000 by Eric Espie
6#    email                : torcs@free.fr
7#    version              : $Id: Make-default.mk,v 1.33.2.1 2013/01/12 14:25:08 berniw Exp $
8#
9##############################################################################
10#
11#   This program is free software; you can redistribute it and/or modify
12#   it under the terms of the GNU General Public License as published by
13#   the Free Software Foundation; either version 2 of the License, or
14#   (at your option) any later version.
15#
16##############################################################################
17
18# targets:
19#	 distclean
20#	 clean
21#	 default
22#	 install
23#	 datainstall
24#	 win32setup
25#	 packages
26
27ifndef TORCS_BASE
28
29-include ${HOME}/.torcs.rc
30
31ifndef TORCS_BASE
32
33error:
34	@echo "TORCS_BASE should be defined"
35	@exit 1
36
37endif
38endif
39
40-include ${TORCS_BASE}/Make-config
41
42SOURCEBASE  = ${TORCS_BASE}/src
43EXPORTBASE  = ${TORCS_BASE}/export
44DOCBASE     = ${TORCS_BASE}/doc
45
46#data
47INSTDATABASE = ${DESTDIR}${datadir}
48#launch scripts
49INSTBINBASE  = ${DESTDIR}${bindir}
50#binaries
51INSTLIBBASE  = ${DESTDIR}${libdir}
52#var
53INSTVARBASE  = ${DESTDIR}${datadir}
54
55
56PACKAGEBASE   = ${TORCS_BASE}/package
57PACKAGESBASE  = ${TORCS_BASE}/RPM/SOURCES
58SPECFILESBASE = ${TORCS_BASE}/RPM/SPECS
59
60# linux user setup
61SETUP_LINUX	 = ${TORCS_BASE}/setup_linux.sh
62
63# win32
64INIT_WIN32       = ${TORCS_BASE}/setup_win32.bat
65INIT_WIN32_D     = ${TORCS_BASE}/setup_win32_debug.bat
66DATA_WIN32       = ${TORCS_BASE}/setup_win32-data-from-CVS.bat
67DATA_WIN32_D     = ${TORCS_BASE}/setup_win32-data-from-CVS_debug.bat
68
69
70define create_dir_win32_
71TotDir=`echo $$createdir | sed -e "s:${TORCS_BASE}/::g" ` ; \
72CurDir='.' ; \
73echo "" >> ${INIT_WIN32} ; \
74for Dir in `echo $$TotDir | sed -e 's:/: :g' ` ; \
75do CurDir=$$CurDir/$$Dir ; \
76echo "call .\\create_dir $$CurDir" >> ${INIT_WIN32} ; \
77done
78endef
79
80define create_dir_win32
81TotDir=`echo $$createdir | sed -e "s:${TORCS_BASE}/::g" ` ; \
82CurDir='.' ; \
83echo "" >> ${INIT_WIN32} ; \
84for Dir in `echo $$TotDir | sed -e 's:/: :g' ` ; \
85do CurDir=$$CurDir/$$Dir ; \
86echo "if exist $$D\\*.* call .\\create_dir $$CurDir" >> ${INIT_WIN32} ; \
87done
88endef
89
90define create_dir_win32_data
91TotDir=`echo $$createdir | sed -e "s:${TORCS_BASE}/::g" ` ; \
92CurDir='.' ; \
93echo "" >> ${DATA_WIN32} ; \
94for Dir in `echo $$TotDir | sed -e 's:/: :g' ` ; \
95do CurDir=$$CurDir/$$Dir ; \
96echo "if exist $$D\\*.* call .\\create_dir $$CurDir" >> ${DATA_WIN32} ; \
97done
98endef
99
100
101OB1 = $(SOURCES:.cpp=.o)
102OBJECTS = $(OB1:.c=.o)
103
104define recursedirs
105for Dir in $$RecurseDirs ;\
106do ${MAKE} -C $$Dir $$RecurseFlags TORCS_BASE=${TORCS_BASE} MAKE_DEFAULT=${MAKE_DEFAULT}; \
107if [ $$? != 0 ]; then exit 1; fi ; \
108done
109endef
110
111COMPILATION=
112ifdef LIBRARY
113COMPILATION=true
114endif
115ifdef PROGRAM
116COMPILATION=true
117endif
118ifdef MODULE
119COMPILATION=true
120endif
121ifdef SOLIBRARY
122COMPILATION=true
123endif
124ifdef TOOLS
125COMPILATION=true
126endif
127
128ifdef COMPILATION
129
130default: exports tools compil
131
132ifeq (.depend,$(wildcard .depend))
133include .depend
134endif
135
136.depend:
137	#$(CPP) $(INCFLAGS) $(CFLAGSD) $(COMPILFLAGS)  $(SOURCES) > .depend
138
139dep:	.depend
140
141compil: subdirs dep ${LIBRARY} ${SOLIBRARY} ${MODULE} ${PROGRAM}
142
143else
144
145default: exports tools subdirs
146
147compil: subdirs ${LIBRARY} ${SOLIBRARY} ${MODULE} ${PROGRAM}
148
149endif
150
151win32start:
152	@rm -f ${INIT_WIN32}
153	@echo '@echo off' > ${INIT_WIN32}
154	@echo 'echo Checking directories ...' >> ${INIT_WIN32}
155	@echo '' >> ${INIT_WIN32}
156	@echo 'call .\create_dir .\export' >> ${INIT_WIN32}
157	@echo 'call .\create_dir .\export\lib' >> ${INIT_WIN32}
158	@echo 'call .\create_dir .\export\libd' >> ${INIT_WIN32}
159	@rm -f ${DATA_WIN32}
160	@echo '@echo off' > ${DATA_WIN32}
161	@echo '' >> ${DATA_WIN32}
162
163
164win32end:
165	@sed -e "s:${TORCS_BASE}:\.:g"  -e 's/$$//' ${INIT_WIN32} > ${INIT_WIN32}.eee
166	@mv ${INIT_WIN32}.eee ${INIT_WIN32}
167	@sed -e "s:/src/linux/:/src/windows/:g" ${INIT_WIN32} > ${INIT_WIN32}.eee
168	@mv ${INIT_WIN32}.eee ${INIT_WIN32}
169	@sed -e "s:/:\\\:g" ${INIT_WIN32} > ${INIT_WIN32}.eee
170	@mv ${INIT_WIN32}.eee ${INIT_WIN32}
171	@sed -e "s:runtime:runtimed:g" ${INIT_WIN32} > ${INIT_WIN32_D}
172	@sed -e "s:${TORCS_BASE}:\.:g" ${DATA_WIN32} > ${DATA_WIN32}.eee
173	@mv ${DATA_WIN32}.eee ${DATA_WIN32}
174	@sed -e "s:/:\\\:g" ${DATA_WIN32} > ${DATA_WIN32}.eee
175	@mv ${DATA_WIN32}.eee ${DATA_WIN32}
176	@sed -e "s:runtime:runtimed:g" ${DATA_WIN32} > ${DATA_WIN32_D}
177
178
179win32setup: win32start exportswin32 installshipswin32 installwin32 win32datainstall win32end
180
181
182linuxconfstart:
183	@rm -f ${SETUP_LINUX}
184	@echo '#! /usr/local/usr/local/bin/bash' >> ${SETUP_LINUX}
185	@echo '' >> ${SETUP_LINUX}
186	@echo '[ -z "$$1" ] && exit 1' >> ${SETUP_LINUX}
187	@echo '[ ! -d "$$1" ] && exit 1' >> ${SETUP_LINUX}
188	@echo '' >> ${SETUP_LINUX}
189
190linuxconfend:
191	@sed -e "s:${TORCS_BASE}:\.:g" ${SETUP_LINUX} > ${SETUP_LINUX}.eee
192	@mv ${SETUP_LINUX}.eee ${SETUP_LINUX}
193
194linuxsetup: linuxconfstart installconfdirs linuxconfend
195
196userconfinstall: installconfdirs installconfmkdir installconf
197
198.PHONY : clean tools toolsdirs subdirs expincdirs exports export compil cleantools cleancompil \
199 datadirs shipdirs doc win32start win32end installship installships installshipdirs installshipexecdirs installshipexec \
200 installshipexecwin32dirs installshipexecwin32
201
202# Recursive targets
203
204exports: expincdirs export
205
206installships: installshipdirs installshipexecdirs installship installshipexec installshipmkdir
207
208exportswin32: expincwin32dirs exportwin32
209
210installshipswin32: installshipwin32dirs installshipexecwin32dirs installshipwin32 installshipexecwin32 installshipmkdirwin32
211
212tools: toolsdirs ${TOOLS} ${LOCALTOOLS} toolsdata
213
214clean: cleancompil cleantools
215	-rm -f ${LIBRARY} ${OBJECTS} ${PROGRAM} .depend ${SOLIBRARY} ${MODULE} ${GARBAGE} *~
216
217cleantools: cleantoolsdirs
218	-rm -f  ${TOOLS} ${LOCALTOOLS} .depend ${GARBAGE} *~
219
220cleancompil: cleansubdirs
221	-rm -f ${LIBRARY} ${OBJECTS} ${PROGRAM} .depend ${SOLIBRARY} ${MODULE} ${GARBAGE} *~
222
223install: installdirs installship installshipexec installshipmkdir installsolibrary installmodule installprogram installtools installtoolsdata
224
225installwin32: installwin32dirs installsolibrarywin32 installmodulewin32
226
227datainstall: installdatadirs installdata
228
229win32datainstall: installwin32datadirs installwin32data
230
231packages: win32setup linuxsetup specfiles packagelist
232
233onepackage: packagedirs packagefiles
234
235specfiles: installspecfiles specfilesdirs
236
237.SUFFIXES: .cpp
238
239.cpp.o:
240	${CXX} $(INCFLAGS) $(CXXFLAGS) $(COMPILFLAGS) -c $<
241
242.SUFFIXES: .c
243
244.c.o:
245	${CXX} $(INCFLAGS) $(CXXFLAGS) $(COMPILFLAGS) -c $<
246
247
248#	${CC} $(INCFLAGS) $(CFLAGS) $(COMPILFLAGS) -c $<
249
250
251ifdef LIBRARY
252
253${LIBRARY}: ${OBJECTS}
254	${AR} ${ARFLAGS} ${LIBRARY} ${OBJECTS}
255	${RANLIB} ${LIBRARY}
256	@D=`pwd` ; \
257	createdir="${EXPORTBASE}/${LIBDIR}" ; \
258	$(mkinstalldirs) $$createdir ; \
259	X="${LIBRARY}" ; \
260	echo " Exporting $$X to $$createdir/$$X"; \
261	ln -sf $$D/$$X $$createdir/$$X
262
263endif
264
265ifdef DATA
266
267installdata: $(DATA)
268	@D=`pwd` ; \
269	createdir="${INSTDATABASE}/${DATADIR}" ; \
270	$(mkinstalldirs) $$createdir ; \
271	for X in $? ; \
272	do echo " $(INSTALL_DATA) $$X $$createdir/$$X"; \
273	$(INSTALL_DATA) $$X $$createdir/$$X ; \
274	done
275
276installwin32data: $(DATA)
277	@D=`pwd` ; \
278	createdir="runtime/${DATADIR}" ; \
279	ext="0" ; \
280	${create_dir_win32_data} ; \
281	for X in $? ; \
282	do echo "copy $$D/$$X ./runtime/${DATADIR}/$$X"; \
283	echo "if exist $$D/$$X copy $$D/$$X ./runtime/${DATADIR}/$$X" >> ${DATA_WIN32} ; \
284	done ;
285
286else
287
288installdata: ;
289
290installwin32data: ;
291
292endif
293
294ifdef SHIP
295
296installship: $(SHIP)
297	@D=`pwd` ; \
298	createdir="${INSTDATABASE}/${SHIPDIR}" ; \
299	$(mkinstalldirs) $$createdir ; \
300	for X in $? ; \
301	do echo " $(INSTALL_DATA) $$X $$createdir/$$X"; \
302	$(INSTALL_DATA) $$X $$createdir/$$X ; \
303	done
304
305installshipwin32: $(SHIP)
306	@D=`pwd` ; \
307	createdir="runtime/${SHIPDIR}" ; \
308	${create_dir_win32} ; \
309	for X in $? ; \
310	do echo "copy $$D/$$X ./runtime/${SHIPDIR}/$$X" ; \
311	echo "if exist $$D/$$X copy $$D/$$X ./runtime/${SHIPDIR}/$$X" >> ${INIT_WIN32} ; \
312	done ;
313
314else
315
316installship: ;
317
318installshipwin32: ;
319
320endif
321
322ifdef SHIPEXEC
323
324installshipexec: $(SHIPEXEC)
325	@D=`pwd` ; \
326	createdir="${INSTLIBBASE}/${SHIPEXECDIR}" ; \
327	$(mkinstalldirs) $$createdir ; \
328	for X in $? ; \
329	do echo " $(INSTALL_SCRIPT) $$X $$createdir/$$X"; \
330	$(INSTALL_SCRIPT) $$X $$createdir/$$X ; \
331	done
332
333installshipexecwin32: $(SHIPEXEC)
334	@D=`pwd` ; \
335	createdir="runtime/${SHIPEXECDIR}" ; \
336	${create_dir_win32} ; \
337	for X in $? ; \
338	do echo "copy $$D/$$X ./runtime/${SHIPEXECDIR}/$$X" ; \
339	echo "if exist $$D/$$X copy $$D/$$X ./runtime/${SHIPEXECDIR}/$$X" >> ${INIT_WIN32} ; \
340	done ;
341
342else
343
344installshipexec: ;
345
346installshipexecwin32: ;
347
348endif
349
350ifdef SHIPCREATEDIRS
351
352installshipmkdir:
353	@for D in  $(SHIPCREATEDIRS) ; \
354	do echo " Creating ${INSTVARBASE}/$$D Directory" ; \
355	$(mkinstalldirs) ${INSTVARBASE}/$$D ; \
356	done
357
358installshipmkdirwin32:
359	@for D in  $(SHIPCREATEDIRS) ; \
360	do createdir="runtime/$$D" ; \
361	${create_dir_win32_} ; \
362	done ;
363
364else
365
366installshipmkdir: ;
367
368installshipmkdirwin32: ;
369
370endif
371
372ifdef EXPORTS
373
374export: $(EXPORTS)
375	@D=`pwd` ; \
376	createdir="${EXPORTBASE}/${EXPDIR}" ;\
377	$(mkinstalldirs) $$createdir ; \
378	for X in $? ; \
379	do echo " Exporting $$X to $$createdir/$$X"; \
380	ln -sf $$D/$$X $$createdir/$$X ; \
381	done
382
383exportwin32: $(EXPORTS)
384	@D=`pwd` ; \
385	createdir="${EXPORTBASE}/${EXPDIR}" ;\
386	${create_dir_win32} ; \
387	for X in $? ; \
388	do echo "copy $$D/$$X $$createdir/$$X" ; \
389	echo "if exist $$D/$$X copy $$D/$$X $$createdir/$$X" >> ${INIT_WIN32} ; \
390	done ;
391
392else
393
394export: ;
395
396exportwin32: ;
397
398endif
399
400
401
402ifdef PROGRAM
403
404${PROGRAM}: ${OBJECTS} $(subst -l,${EXPORTBASE}/lib/lib, ${LIBS:=.a})
405	${CXX} ${OBJECTS} ${LDFLAGS} ${LIBS} ${SOLIBS} ${EXT_LIBS} -o $@
406
407installprogram: ${PROGRAM}
408	@ createdir="${INSTLIBBASE}" ; \
409	$(mkinstalldirs) $$createdir ; \
410	X="${PROGRAM}" ; \
411	echo " $(INSTALL_PROGRAM) $$X $$createdir/$$X"; \
412	$(INSTALL_PROGRAM) $$X $$createdir/$$X
413
414else
415
416installprogram: ;
417
418endif
419
420ifdef LOCALTOOLS
421
422${LOCALTOOLS}: ${OBJECTS} $(subst -l,${EXPORTBASE}/lib/lib, ${LIBS:=.a})
423	${CXX} ${OBJECTS} ${LDFLAGS} ${LIBS} ${EXT_LIBS} ${SOLIBS} -o $@
424
425endif
426
427ifdef TOOLS
428
429${TOOLS}: ${OBJECTS} $(subst -l,${EXPORTBASE}/lib/lib, ${LIBS:=.a})
430	${CXX} ${OBJECTS} ${LDFLAGS} ${LIBS} ${EXT_LIBS} ${SOLIBS} -o $@
431
432installtools: ${TOOLS}
433	@createdir="${INSTBINBASE}/${TOOLSDIR}" ; \
434	$(mkinstalldirs) $$createdir ; \
435	X="${TOOLS}" ; \
436	echo " $(INSTALL_PROGRAM) $$X $$createdir/$$X"; \
437	$(INSTALL_PROGRAM) $$X $$createdir/$$X
438
439else
440
441ifdef TOOLSCRIPT
442
443installtools: ${TOOLSCRIPT}
444	@createdir="${INSTBINBASE}/${TOOLSDIR}" ; \
445	$(mkinstalldirs) $$createdir ; \
446	X="${TOOLSCRIPT}" ; \
447	echo " $(INSTALL_SCRIPT) $$X $$createdir/$$X"; \
448	$(INSTALL_SCRIPT) $$X $$createdir/$$X
449
450else
451
452installtools: ;
453
454endif
455endif
456
457ifdef TOOLSDATA
458
459toolsdata: ;
460
461installtoolsdata: $(TOOLSDATA)
462	@createdir="${INSTDATABASE}/${TOOLSDATADIR}" ; \
463	$(mkinstalldirs) $$createdir ; \
464	for X in $? ; \
465	do echo " $(INSTALL_DATA) $$X $$createdir/$$X"; \
466	$(INSTALL_DATA) $$X $$createdir/$$X ; \
467	done
468
469
470else
471
472toolsdata: ;
473installtoolsdata: ;
474
475endif
476
477
478ifdef SOLIBRARY
479
480${SOLIBRARY}: ${OBJECTS}
481	${CXX} -shared -o ${SOLIBRARY} ${OBJECTS} ${SOLIBS} ${LDFLAGS} ${LIBSPATH} ${LIBS} ${DEBUG_LIBS}
482	@D=`pwd` ; \
483	createdir="${EXPORTBASE}/lib" ; \
484	$(mkinstalldirs) $$createdir ; \
485	X="${SOLIBRARY}" ; \
486	echo " Exporting $$X to $$createdir/$$X"; \
487	ln -sf $$D/$$X $$createdir/$$X
488
489
490installsolibrary: ${SOLIBRARY}
491	@createdir="${INSTLIBBASE}/lib" ; \
492	X="${SOLIBRARY}" ;\
493	$(mkinstalldirs) $$createdir ; \
494	echo " $(INSTALL_DATA) $$X $$createdir/$$X"; \
495	$(INSTALL_DATA) $$X $$createdir/$$X
496
497installsolibrarywin32:
498	@createdir="runtime/${SOLIBDIR}" ; \
499	${create_dir_win32_}
500
501else
502
503installsolibrary: ;
504
505installsolibrarywin32: ;
506
507endif
508
509ifdef MODULE
510
511${MODULE}: ${OBJECTS}
512	${CXX} -shared -o ${MODULE} ${OBJECTS} ${LDFLAGS} ${LIBSPATH} ${LIBS}
513	@D=`pwd` ; \
514	createdir="${EXPORTBASE}/${MODULEDIR}" ; \
515	$(mkinstalldirs) $$createdir ; \
516	X="${MODULE}" ; \
517	echo " Exporting $$X to $$createdir/$$X"; \
518	ln -sf $$D/$$X $$createdir/$$X
519
520
521installmodule: ${MODULE}
522	@createdir="${INSTLIBBASE}/${MODULEDIR}" ; \
523	X="${MODULE}" ;\
524	$(mkinstalldirs) $$createdir ; \
525	echo " $(INSTALL_DATA) $$X $$createdir/$$X"; \
526	$(INSTALL_DATA) $$X $$createdir/$$X
527
528installmodulewin32:
529	@createdir="runtime/${MODULEDIR}" ; \
530	${create_dir_win32_}
531
532
533else
534
535installmodule: ;
536
537installmodulewin32: ;
538
539endif
540
541ifdef PKGLIST
542
543packagelist:
544	@for Pkg in ${PKGLIST} ;\
545	do ${MAKE} onepackage PKG=$$Pkg  TORCS_BASE=${TORCS_BASE} MAKE_DEFAULT=${MAKE_DEFAULT};\
546	createdir="${PACKAGESBASE}" ;\
547	$(mkinstalldirs) $$createdir ; \
548	archive="TORCS-${VERSION}-$$Pkg".tgz ;\
549	echo "Creating Package $$archive" ;\
550	tar -C ${PACKAGEBASE} -co . | gzip -9 > "${PACKAGESBASE}/$$archive" ;\
551	rm -rf ${PACKAGEBASE} ;\
552	done
553
554else
555
556packagelist: ;
557
558endif
559
560ifdef PKG
561
562PKGFILES = $($(PKG)_PKGFILES)
563PKGDIR = $($(PKG)_PKGDIR)
564
565ifeq ($(strip $(PKGFILES)),)
566PKGFILES = ""
567endif
568
569packagefiles:
570	@if [ -n "${PKGFILES}" ];\
571	then createdir="${PACKAGEBASE}/${PKGDIR}" ; \
572	$(mkinstalldirs) $$createdir ; \
573	for Pkg in ${PKGFILES} ; \
574	do cp $$Pkg $$createdir/$$Pkg ; \
575	echo " Package $$Pkg to $$createdir/$$Pkg"; \
576	done ;\
577	fi
578
579else
580
581packagefiles: ;
582
583endif
584
585ifdef SPECFILES
586
587installspecfiles:
588	@createdir="$(SPECFILESBASE)" ; \
589	$(mkinstalldirs) $$createdir ; \
590	for spec in $(SPECFILES) ; \
591	do cp $$spec $$createdir/$$spec ; \
592	echo " Specfile $$spec copied to $$createdir/$$spec" ; \
593	done ;
594
595else
596
597installspecfiles: ;
598
599endif
600
601ifdef PKGSUBDIRS
602
603packagedirs:
604	@RecurseDirs="${PKGSUBDIRS}" ; \
605	RecurseFlags="onepackage PKG=${PKG}" ; \
606	${recursedirs}
607
608else
609
610packagedirs: ;
611
612endif
613
614ifdef DATASUBDIRS
615
616instdatadirs:
617	@RecurseDirs="${DATASUBDIRS}" ; \
618	RecurseFlags="install" ; \
619	${recursedirs}
620
621else
622
623instdatadirs: ;
624
625endif
626
627ifdef SHIPSUBDIRS
628
629instshipdirs:
630	@RecurseDirs="${SHIPSUBDIRS}" ; \
631	RecurseFlags="install" ; \
632	${recursedirs}
633
634else
635
636instshipdirs: ;
637
638endif
639
640ifdef SHIPEXECSUBDIRS
641
642instshipexecdirs:
643	@RecurseDirs="${SHIPEXECSUBDIRS}" ; \
644	RecurseFlags="install" ; \
645	${recursedirs}
646
647else
648
649instshipexecdirs: ;
650
651endif
652
653
654ifdef EXPINCDIRS
655
656expincdirs:
657	@RecurseDirs="${EXPINCDIRS}" ; \
658	RecurseFlags="exports" ; \
659	${recursedirs}
660
661expincwin32dirs:
662	@RecurseDirs="${EXPINCDIRS}" ; \
663	RecurseFlags="exportswin32" ; \
664	${recursedirs}
665
666else
667
668expincdirs: ;
669
670expincwin32dirs: ;
671
672endif
673
674
675
676ifdef SUBDIRS
677
678subdirs:
679	@RecurseDirs="${SUBDIRS}" ; \
680	RecurseFlags="compil" ; \
681	${recursedirs}
682
683cleansubdirs:
684	@RecurseDirs="${SUBDIRS}" ; \
685	RecurseFlags="cleancompil" ; \
686	${recursedirs}
687
688instsubdirs:
689	@RecurseDirs="${SUBDIRS}" ; \
690	RecurseFlags="install" ; \
691	${recursedirs}
692
693specfilesdirs:
694	@RecurseDirs="${SUBDIRS}" ; \
695	RecurseFlags="specfiles" ; \
696	${recursedirs}
697
698
699else
700
701subdirs: ;
702cleansubdirs: ;
703instsubdirs: ;
704specfilesdirs: ;
705
706endif
707
708
709
710ifdef TOOLSUBDIRS
711
712toolsdirs:
713	@RecurseDirs="${TOOLSUBDIRS}" ; \
714	RecurseFlags="tools" ; \
715	${recursedirs}
716
717cleantoolsdirs:
718	@RecurseDirs="${TOOLSUBDIRS}" ; \
719	RecurseFlags="cleantools" ; \
720	${recursedirs}
721
722insttoolsdirs:
723	@RecurseDirs="${TOOLSUBDIRS}" ; \
724	RecurseFlags="install" ; \
725	${recursedirs}
726
727else
728
729toolsdirs: ;
730cleantoolsdirs: ;
731insttoolsdirs: ;
732
733endif
734
735ifdef INITSUBDIRS
736
737initsubdirs:
738	@RecurseDirs="${INITSUBDIRS}" ; \
739	RecurseFlags="init" ; \
740	${recursedirs}
741
742endif
743
744#to be done in a better way...
745ifdef SRCDOC
746
747info:
748	mkdir -p ${DOCBASE}/manual/api
749	doxygen ${SOURCEBASE}/doc/torcsdoc.conf
750
751endif
752
753ifdef CONFIGCREATEDIRS
754
755installconfmkdir:
756	@for D in  $(CONFIGCREATEDIRS) ; \
757	do echo "mkdir -p \$$1/$$D 2>/dev/null" >> ${SETUP_LINUX} ; \
758	done
759
760else
761
762installconfmkdir: ;
763
764endif
765
766ifdef CONFIG
767
768installconf:
769	@for C in ${CONFIG} ; \
770	do echo "if [ ! -e  \$$1/${SHIPDIR}/$$C ] || [ ${SHIPDIR}/$$C -nt \$$1/${SHIPDIR}/$$C ]" >> ${SETUP_LINUX} ; \
771	echo "then" >> ${SETUP_LINUX} ; \
772	echo "    if [ -e \$$1/${SHIPDIR}/$$C ]" >> ${SETUP_LINUX} ; \
773	echo "    then" >> ${SETUP_LINUX} ; \
774	echo "        echo \"Saving \$$1/${SHIPDIR}/$$C to \$$1/${SHIPDIR}/$$C.old\"" >> ${SETUP_LINUX} ; \
775	echo "        cp -f \$$1/${SHIPDIR}/$$C \$$1/${SHIPDIR}/$$C.old" >> ${SETUP_LINUX} ; \
776	echo "    fi" >> ${SETUP_LINUX} ; \
777	echo "    cp -f ${SHIPDIR}/$$C \$$1/${SHIPDIR}/$$C" >> ${SETUP_LINUX} ; \
778	echo "    chmod 640 \$$1/${SHIPDIR}/$$C" >> ${SETUP_LINUX} ; \
779	echo "fi" >> ${SETUP_LINUX} ; \
780	done
781
782else
783
784installconf: ;
785
786endif
787
788
789
790installdirs:
791	@if [ -n "${SHIPSUBDIRS}" ] || [ -n "${SUBDIRS}" ] || [ -n "${TOOLSUBDIRS}" ] ; \
792	then R=`for I in ${SHIPSUBDIRS} ${SUBDIRS} ${TOOLSUBDIRS} ; \
793	do echo $$I ;\
794	done | sort -u` ; \
795	RecurseDirs="$$R" ; \
796	RecurseFlags="install" ; \
797	${recursedirs} ; \
798	fi
799
800installwin32dirs:
801	@if [ -n "${SHIPSUBDIRS}" ] || [ -n "${SUBDIRS}" ] || [ -n "${TOOLSUBDIRS}" ] ; \
802	then R=`for I in ${SHIPSUBDIRS} ${SUBDIRS} ${TOOLSUBDIRS} ; \
803	do echo $$I ;\
804	done | sort -u` ; \
805	RecurseDirs="$$R" ; \
806	RecurseFlags="installwin32" ; \
807	${recursedirs} ; \
808	fi
809
810installdatadirs:
811	@if [ -n "${DATASUBDIRS}" ] ; \
812	then R=`for I in ${DATASUBDIRS} ; \
813	do echo $$I ;\
814	done | sort -u` ; \
815	RecurseDirs="$$R" ; \
816	RecurseFlags="datainstall" ; \
817	${recursedirs} ; \
818	fi
819
820installwin32datadirs:
821	@if [ -n "${DATASUBDIRS}" ] ; \
822	then R=`for I in ${DATASUBDIRS} ; \
823	do echo $$I ;\
824	done | sort -u` ; \
825	RecurseDirs="$$R" ; \
826	RecurseFlags="win32datainstall" ; \
827	${recursedirs} ; \
828	fi
829
830installshipdirs:
831	@if [ -n "${SHIPSUBDIRS}" ] ; \
832	then R=`for I in ${SHIPSUBDIRS} ; \
833	do echo $$I ;\
834	done | sort -u` ; \
835	RecurseDirs="$$R" ; \
836	RecurseFlags="installships" ; \
837	${recursedirs} ; \
838	fi
839
840installshipexecdirs:
841	@if [ -n "${SHIPEXECSUBDIRS}" ] ; \
842	then R=`for I in ${SHIPEXECSUBDIRS} ; \
843	do echo $$I ;\
844	done | sort -u` ; \
845	RecurseDirs="$$R" ; \
846	RecurseFlags="installships" ; \
847	${recursedirs} ; \
848	fi
849
850installshipwin32dirs:
851	@if [ -n "${SHIPSUBDIRS}" ] ; \
852	then R=`for I in ${SHIPSUBDIRS} ; \
853	do echo $$I ;\
854	done | sort -u` ; \
855	RecurseDirs="$$R" ; \
856	RecurseFlags="installshipswin32" ; \
857	${recursedirs} ; \
858	fi
859
860installshipexecwin32dirs:
861	@if [ -n "${SHIPEXECSUBDIRS}" ] ; \
862	then R=`for I in ${SHIPEXECSUBDIRS} ; \
863	do echo $$I ;\
864	done | sort -u` ; \
865	RecurseDirs="$$R" ; \
866	RecurseFlags="installshipswin32" ; \
867	${recursedirs} ; \
868	fi
869
870
871installconfdirs:
872	@if [ -n "${SHIPSUBDIRS}" ] || [ -n "${SHIPEXECSUBDIRS}" ] || [ -n "${SUBDIRS}" ] || [ -n "${TOOLSUBDIRS}" ] ; \
873	then R=`for I in ${SHIPSUBDIRS} ${SHIPEXECSUBDIRS} ${SUBDIRS} ${TOOLSUBDIRS} ; \
874	do echo $$I ;\
875	done | sort -u` ; \
876	RecurseDirs="$$R" ; \
877	RecurseFlags="userconfinstall" ; \
878	${recursedirs} ; \
879	fi
880