Windows: Cleanup .exp .res .manifest and others
[openafs.git] / NTMakefile
1 # Copyright 2000, International Business Machines Corporation and others.
2 # All Rights Reserved.
3
4 # This software has been released under the terms of the IBM Public
5 # License.  For details, see the LICENSE file in the top-level source
6 # directory or online at http://www.openafs.org/dl/license10.html
7
8 # Top level nmake NTMakefile driver for building AFS.
9 #
10 # This file simply imposes a reasonable total ordering on the set of
11 # directories to build; this ordering is of course more strict than the
12 # partial ordering established by the actual directory dependencies.
13 #
14 # When porting a new directory, simply add the directory into the
15 # dependence chain at the earliest point possible, updating its successor
16 # appropriately; if the new directory is the last in the chain, then
17 # update the 'finale' dependency to be the new directory.
18
19 # These three macros define the source, object, and destination folders
20 SRC=$(AFSROOT)\src
21 DOC=$(AFSROOT)\doc
22
23 #If AFS_OBJDIR is not defined then use obj as relative obj folder
24 !IFNDEF AFS_OBJDIR
25 AFS_OBJDIR=$(AFSROOT)\obj\$(SYS_NAME)
26 !ENDIF
27
28 !IFNDEF DESTDIR
29 DESTDIR=$(AFSROOT)\dest\$(SYS_NAME)
30 !ENDIF
31
32 !IFNDEF NOCYGWIN
33 WIXCYGOPT=-dCygwinArchives
34 !ELSE
35 WIXCYGOPT=
36 !ENDIF
37
38 CD = cd
39 MKDIR = md
40
41 NTMAKE = nmake /nologo /f ntmakefile install
42 NTMAKELANG = nmake /nologo  /f ntmakefile en_US
43 NTMAKE_HEADERS = nmake /nologo  /f ntmakefile install_headers
44 NTMAKE_OBJS = nmake /nologo /f ntmakefile install_objs
45
46 #debug statement support jumping to last known error
47 DOCD=$(SRC)\DOLASTCMP.BAT
48
49 config:
50      @echo ***** $@
51         $(DOCD) $(SRC)\config
52         $(CD) $(SRC)\config
53         $(NTMAKE)
54         $(CD) ..\..
55
56 procmgmt_headers: config
57      @echo ***** $@
58         $(DOCD) $(SRC)\procmgmt
59         $(CD) $(SRC)\procmgmt
60         $(NTMAKE_HEADERS)
61         $(CD) ..\..
62
63 afsreg_headers:
64      @echo ***** $@
65         $(DOCD) $(SRC)\WINNT\afsreg
66         $(CD) $(SRC)\WINNT\afsreg
67         $(NTMAKE_HEADERS)
68         $(CD) ..\..\..
69
70 lwp_headers:
71      @echo ***** $@
72         $(DOCD) $(SRC)\lwp
73         $(CD) $(SRC)\lwp
74         $(NTMAKE_HEADERS)
75         $(CD) ..\..
76
77 rx_headers:
78      @echo ***** $@
79         $(DOCD) $(SRC)\rx
80         $(CD) $(SRC)\rx
81         $(NTMAKE_HEADERS)
82         $(CD) ..\..
83
84 util_headers:
85      @echo ***** $@
86         $(DOCD) $(SRC)\util
87         $(CD) $(SRC)\util
88         $(NTMAKE_HEADERS)
89         $(CD) ..\..
90
91 pthread: util_headers
92      @echo ***** $@
93         $(DOCD) $(SRC)\WINNT\$@
94         $(CD) $(SRC)\WINNT\$@
95         $(NTMAKE)
96         $(CD) ..\..\..
97
98 util: procmgmt_headers afsreg_headers lwp_headers rx_headers pthread
99      @echo ***** $@
100         $(DOCD) $(SRC)\$@
101         $(CD) $(SRC)\$@
102         $(NTMAKE)
103         $(CD) ..\..
104
105 comerr: util
106      @echo ***** $@
107         $(DOCD) $(SRC)\$@
108         $(CD) $(SRC)\$@
109         $(NTMAKE)
110         $(CD) ..\..
111
112 afs: comerr
113       @echo ***** $@
114       $(DOCD) $(SRC)\afs
115       $(CD) $(SRC)\afs
116       $(NTMAKE)
117       $(CD) ..\..
118
119 cmd: afs
120      @echo ***** $@
121         $(DOCD) $(SRC)\$@
122         $(CD) $(SRC)\$@
123         $(NTMAKE)
124         $(CD) ..\..
125
126 afsreg: cmd
127      @echo ***** $@
128         $(DOCD) $(SRC)\WINNT\$@
129         $(CD) $(SRC)\WINNT\$@
130         $(NTMAKE)
131         $(CD) ..\..\..
132
133 eventlog: afsreg
134      @echo ***** $@
135         $(DOCD) $(SRC)\WINNT\$@
136         $(CD) $(SRC)\WINNT\$@
137         $(NTMAKE)
138         $(CD) ..\..\..
139
140 lwp: eventlog
141      @echo ***** $@
142         $(DOCD) $(SRC)\$@
143         $(CD) $(SRC)\$@
144         $(NTMAKE)
145         $(CD) ..\..
146
147 rxgen: lwp
148      @echo ***** $@
149         $(DOCD) $(SRC)\$@
150         $(CD) $(SRC)\$@
151         $(NTMAKE)
152         $(CD) ..\..
153
154 des: rxgen
155      @echo ***** $@
156         $(DOCD) $(SRC)\des
157         $(CD) $(SRC)\des
158         $(NTMAKE)
159         $(CD) ..\..
160
161 rx: des
162      @echo ***** $@
163         $(DOCD) $(SRC)\$@
164         $(CD) $(SRC)\$@
165         $(NTMAKE)
166         $(CD) ..\..
167
168 rxdebug: rx
169      @echo ***** $@
170         $(DOCD) $(SRC)\$@
171         $(CD) $(SRC)\$@
172         $(NTMAKE)
173         $(CD) ..\..
174
175 ubik_headers: rxdebug
176      @echo ***** $@
177         $(DOCD) $(SRC)\ubik
178         $(CD) $(SRC)\ubik
179         $(NTMAKE_HEADERS)
180         $(CD) ..\..
181
182 rxstat: ubik_headers
183      @echo ***** $@
184         $(DOCD) $(SRC)\$@
185         $(CD) $(SRC)\$@
186         $(NTMAKE)
187         $(CD) ..\..
188
189 rxkad: rxstat
190      @echo ***** $@
191         $(DOCD) $(SRC)\$@
192         $(CD) $(SRC)\$@
193         $(NTMAKE)
194         $(CD) ..\..
195
196 procmgmt: rxkad
197      @echo ***** $@
198         $(DOCD) $(SRC)\$@
199         $(CD) $(SRC)\$@
200         $(NTMAKE)
201         $(CD) ..\..
202
203 fsint: procmgmt
204      @echo ***** $@
205         $(DOCD) $(SRC)\$@
206         $(CD) $(SRC)\$@
207         $(NTMAKE)
208         $(CD) ..\..
209
210 audit: fsint
211      @echo ***** $@
212         $(DOCD) $(SRC)\$@
213         $(CD) $(SRC)\$@
214         $(NTMAKE)
215         $(CD) ..\..
216
217 osi_headers: audit
218      @echo ***** $@
219         $(DOCD) $(SRC)\WINNT\client_osi
220         $(CD) $(SRC)\WINNT\client_osi
221         $(NTMAKE_HEADERS)
222         $(CD) ..\..\..
223
224 libacl_headers: osi_headers
225      @echo ***** $@
226         $(DOCD) $(SRC)\libacl
227         $(CD) $(SRC)\libacl
228         $(NTMAKE_HEADERS)
229         $(CD) ..\..
230
231 cm_headers: libacl_headers
232      @echo ***** $@
233         $(DOCD) $(SRC)\WINNT\afsd
234         $(CD) $(SRC)\WINNT\afsd
235         $(NTMAKE_HEADERS)
236         $(CD) ..\..\..
237
238 auth_headers: cm_headers
239      @echo ***** $@
240         $(DOCD) $(SRC)\auth
241         $(CD) $(SRC)\auth
242         $(NTMAKE_HEADERS)
243         $(CD) ..\..
244
245 vlserver_headers: auth_headers
246      @echo ***** $@
247         $(DOCD) $(SRC)\vlserver
248         $(CD) $(SRC)\vlserver
249         $(NTMAKE_HEADERS)
250         $(CD) ..\..
251
252 afsdobjs: vlserver_headers
253      @echo ***** $@
254         $(DOCD) $(SRC)\WINNT\afsd
255         $(CD) $(SRC)\WINNT\afsd
256         $(NTMAKE_OBJS)
257         $(CD) ..\..\..
258
259 sys: afsdobjs
260      @echo ***** $@
261         $(DOCD) $(SRC)\$@
262         $(CD) $(SRC)\$@
263         $(NTMAKE)
264         $(CD) ..\..
265
266 auth: sys
267      @echo ***** $@
268         $(DOCD) $(SRC)\$@
269         $(CD) $(SRC)\$@
270         $(NTMAKE)
271         $(CD) ..\..     
272
273 ubik: auth
274      @echo ***** $@
275         $(DOCD) $(SRC)\$@
276         $(CD) $(SRC)\$@
277         $(NTMAKE)
278         $(CD) ..\..     
279
280 ptserver: ubik
281      @echo ***** $@
282         $(DOCD) $(SRC)\$@
283         $(CD) $(SRC)\$@
284         $(NTMAKE)
285         $(CD) ..\..     
286
287 libacl: ptserver
288      @echo ***** $@
289         $(DOCD) $(SRC)\$@
290         $(CD) $(SRC)\$@
291         $(NTMAKE)
292         $(CD) ..\..
293
294 kauth: libacl
295      @echo ***** $@
296         $(DOCD) $(SRC)\$@
297         $(CD) $(SRC)\$@
298         $(NTMAKE)
299         $(CD) ..\..
300
301 vlserver: kauth
302      @echo ***** $@
303         $(DOCD) $(SRC)\$@
304         $(CD) $(SRC)\$@
305         $(NTMAKE)
306         $(CD) ..\..
307
308 usd: vlserver
309      @echo ***** $@
310         $(DOCD) $(SRC)\$@
311         $(CD) $(SRC)\$@
312         $(NTMAKE)
313         $(CD) ..\..
314
315 bubasics: usd
316      @echo ***** $@
317         $(DOCD) $(SRC)\$@
318         $(CD) $(SRC)\$@
319         $(NTMAKE)
320         $(CD) ..\..
321
322 budb:   bubasics
323      @echo ***** $@
324         $(DOCD) $(SRC)\$@
325         $(CD) $(SRC)\$@
326         $(NTMAKE)
327         $(CD) ..\..
328 butm:  budb
329      @echo ***** $@
330      $(DOCD) $(SRC)\$@
331      $(CD) $(SRC)\$@
332      $(NTMAKE)
333      $(CD) ..\..
334
335 dir: butm
336      @echo ***** $@
337         $(DOCD) $(SRC)\$@
338         $(CD) $(SRC)\$@
339         $(NTMAKE)
340         $(CD) ..\..
341
342 vol: dir
343      @echo ***** $@
344         $(DOCD) $(SRC)\$@
345         $(CD) $(SRC)\$@
346         $(NTMAKE)
347         $(CD) ..\..
348
349 volser: vol
350      @echo ***** $@
351         $(DOCD) $(SRC)\$@
352         $(CD) $(SRC)\$@
353         $(NTMAKE)
354         $(CD) ..\..
355
356 viced: volser
357      @echo ***** $@
358         $(DOCD) $(SRC)\$@
359         $(CD) $(SRC)\$@
360         $(NTMAKE)
361         $(CD) ..\..
362
363 update: viced
364      @echo ***** $@
365         $(DOCD) $(SRC)\$@
366         $(CD) $(SRC)\$@
367         $(NTMAKE)
368         $(CD) ..\..
369
370 bucoord: update
371      @echo ***** $@
372      $(DOCD) $(SRC)\$@
373      $(CD) $(SRC)\$@
374      $(NTMAKE)
375      $(CD) ..\..
376
377 butc:   bucoord
378      @echo ***** $@
379      $(DOCD) $(SRC)\$@
380      $(CD) $(SRC)\$@
381      $(NTMAKE)
382      $(CD) ..\..
383
384 bozo: butc
385      @echo ***** $@
386         $(DOCD) $(SRC)\$@
387         $(CD) $(SRC)\$@
388         $(NTMAKE)
389         $(CD) ..\..
390
391 bosctlsvc: bozo
392      @echo ***** $@
393         $(DOCD) $(SRC)\WINNT\$@
394         $(CD) $(SRC)\WINNT\$@
395         $(NTMAKE)
396         $(CD) ..\..\..
397
398 bu_utils: bosctlsvc
399      @echo ***** $@
400         $(DOCD) $(SRC)\$@
401         $(CD) $(SRC)\$@
402         $(NTMAKE)
403         $(CD) ..\..
404
405 libafsrpc: bu_utils
406      @echo ***** $@
407         $(DOCD) $(SRC)\$@
408         $(CD) $(SRC)\$@
409         $(NTMAKE)
410         $(CD) ..\..
411
412 libafsauthent: libafsrpc
413      @echo ***** $@
414         $(DOCD) $(SRC)\$@
415         $(CD) $(SRC)\$@
416         $(NTMAKE)
417         $(CD) ..\..
418
419 tviced: libafsauthent
420      @echo ***** $@
421         $(DOCD) $(SRC)\$@
422         $(CD) $(SRC)\$@
423         $(NTMAKE)
424         $(CD) ..\..
425
426 tvolser: tviced
427      @echo ***** $@
428         $(DOCD) $(SRC)\$@
429         $(CD) $(SRC)\$@
430         $(NTMAKE)
431         $(CD) ..\..
432
433 tbutc:  tvolser
434      @echo ***** $@
435      $(DOCD) $(SRC)\$@
436      $(CD) $(SRC)\$@
437      $(NTMAKE)
438      $(CD) ..\..
439
440 talocale: tbutc
441      @echo ***** $@
442         $(DOCD) $(SRC)\WINNT\$@
443         $(CD) $(SRC)\WINNT\$@
444         $(NTMAKE)
445         $(CD) ..\..\..
446
447 license: talocale
448      @echo ***** $@
449         $(DOCD) $(SRC)\WINNT\$@
450         $(CD) $(SRC)\WINNT\$@
451         $(NTMAKE)
452         $(CD) ..\..\..
453
454 client_osi: license
455      @echo ***** $@
456         $(DOCD) $(SRC)\WINNT\$@
457         $(CD) $(SRC)\WINNT\$@
458         $(NTMAKE)
459         $(CD) ..\..\..
460
461 afsd: client_osi
462      @echo ***** $@
463         $(DOCD) $(SRC)\WINNT\$@
464         $(CD) $(SRC)\WINNT\$@
465         $(NTMAKE)
466         $(CD) ..\..\..
467
468 libadmin: afsd
469      @echo ***** $@
470         $(DOCD) $(SRC)\$@
471         $(CD) $(SRC)\$@
472         $(NTMAKE)
473         $(CD) ..\..
474
475 adminutil: libadmin
476      @echo ***** $@
477         $(DOCD) $(SRC)\libadmin\$@
478         $(CD) $(SRC)\libadmin\$@
479         $(NTMAKE)
480         $(CD) ..\..\..
481
482 vos: adminutil
483      @echo ***** $@
484         $(DOCD) $(SRC)\libadmin\$@
485         $(CD) $(SRC)\libadmin\$@
486         $(NTMAKE)
487         $(CD) ..\..\..
488
489 client: vos
490      @echo ***** $@
491         $(DOCD) $(SRC)\libadmin\$@
492         $(CD) $(SRC)\libadmin\$@
493         $(NTMAKE)
494         $(CD) ..\..\..
495
496 kas: client
497      @echo ***** $@
498         $(DOCD) $(SRC)\libadmin\$@
499         $(CD) $(SRC)\libadmin\$@
500         $(NTMAKE)
501         $(CD) ..\..\..
502
503 pts: kas
504      @echo ***** $@
505         $(DOCD) $(SRC)\libadmin\$@
506         $(CD) $(SRC)\libadmin\$@
507         $(NTMAKE)
508         $(CD) ..\..\..
509
510 bos: pts
511      @echo ***** $@
512         $(DOCD) $(SRC)\libadmin\$@
513         $(CD) $(SRC)\libadmin\$@
514         $(NTMAKE)
515         $(CD) ..\..\..
516
517 cfg: bos
518      @echo ***** $@
519         $(DOCD) $(SRC)\libadmin\$@
520         $(CD) $(SRC)\libadmin\$@
521         $(NTMAKE)
522         $(CD) ..\..\..
523
524 admintest: cfg
525      @echo ***** $@
526         $(DOCD) $(SRC)\libadmin\test
527         $(CD) $(SRC)\libadmin\test
528         $(NTMAKE)
529         $(CD) ..\..\..
530
531 afsadmsvr: admintest
532      @echo ***** $@
533         $(DOCD) $(SRC)\WINNT\$@
534         $(CD) $(SRC)\WINNT\$@
535         $(NTMAKE)
536         $(CD) ..\..\..
537
538 afsusrmgr: afsadmsvr
539      @echo ***** $@
540         $(DOCD) $(SRC)\WINNT\$@
541         $(CD) $(SRC)\WINNT\$@
542         $(NTMAKE)
543         $(CD) ..\..\..
544
545 afssvrmgr: afsusrmgr
546      @echo ***** $@
547         $(DOCD) $(SRC)\WINNT\$@
548         $(CD) $(SRC)\WINNT\$@
549         $(NTMAKE)
550         $(CD) ..\..\..
551
552 afssvrcfg: afssvrmgr
553      @echo ***** $@
554         $(DOCD) $(SRC)\WINNT\$@
555         $(CD) $(SRC)\WINNT\$@
556         $(NTMAKE)
557         $(CD) ..\..\..
558
559 afssvrcpa: afssvrcfg
560      @echo ***** $@
561         $(DOCD) $(SRC)\WINNT\$@
562         $(CD) $(SRC)\WINNT\$@
563         $(NTMAKE)
564         $(CD) ..\..\..
565
566 client_talocale: afssvrcpa
567      @echo ***** $@
568         $(DOCD) $(SRC)\WINNT\talocale
569         $(CD) $(SRC)\WINNT\talocale
570         $(NTMAKE)
571         $(CD) ..\..\..
572
573 client_cpa: client_talocale
574      @echo ***** $@
575         $(DOCD) $(SRC)\WINNT\$@
576         $(CD) $(SRC)\WINNT\$@
577         $(NTMAKE)
578         $(CD) ..\..\..
579
580 client_config: client_cpa
581      @echo ***** $@
582         $(DOCD) $(SRC)\WINNT\$@
583         $(CD) $(SRC)\WINNT\$@
584         $(NTMAKE)
585         $(CD) ..\..\..
586
587 client_exp: client_config
588      @echo ***** $@
589         $(DOCD) $(SRC)\WINNT\$@
590         $(CD) $(SRC)\WINNT\$@
591         $(NTMAKE)
592         $(CD) ..\..\..
593
594 client_creds: client_exp
595      @echo ***** $@
596         $(DOCD) $(SRC)\WINNT\$@
597         $(CD) $(SRC)\WINNT\$@
598         $(NTMAKE)
599         $(CD) ..\..\..
600
601 aklog: client_creds
602      @echo ***** $@
603         $(DOCD) $(SRC)\WINNT\$@
604         $(CD) $(SRC)\WINNT\$@
605         $(NTMAKE)
606         $(CD) ..\..\..
607
608 xstat: aklog
609      @echo ***** $@
610         $(DOCD) $(SRC)\$@
611         $(CD) $(SRC)\$@
612         $(NTMAKE)
613         $(CD) ..\..
614
615 netidmgr_plugin: xstat
616      @echo ***** $@
617         $(DOCD) $(SRC)\WINNT\$@
618         $(CD) $(SRC)\WINNT\$@
619         $(NTMAKE)
620         $(CD) ..\..\..
621
622 extra: netidmgr_plugin
623 !       IF EXIST($(SRC)\WINNT\extra) && EXIST($(SRC)\WINNT\extra\NTMakefile)
624      @echo ***** $@
625     $(DOCD) $(SRC)\WINNT\$@
626         $(CD) $(SRC)\WINNT\$@
627         $(NTMAKE)
628         $(CD) ..\..\..
629 !       ELSE
630      @echo ***** Skipping $@ ***** Not found.
631 !       ENDIF
632                 
633 finale: extra
634      @echo ***** $@
635         $(DOCD) $(SRC)\$@
636         $(CD) $(SRC)\$@
637         $(NTMAKE)
638         $(CD) ..\..
639
640 install: finale
641         @echo Build Finished Successfully
642         
643
644 # Clean target for obj tree
645 clean:
646         $(CD) $(SRC)\config
647         nmake /nologo /f ntmakefile version
648         $(CD) ..\..
649         nmake /nologo /f ntmakefile "NTMAKE = nmake /nologo /f ntmakefile clean" "NTMAKE_HEADERS = nmake /nologo /f ntmakefile clean" "NTMAKE_OBJS = nmake /nologo /f ntmakefile clean" media
650         $(CD) $(SRC)\config
651         nmake /nologo /f ntmakefile clean_version
652         $(CD) ..\..
653
654 # Language-only build target
655 lang:
656     nmake /nologo /f ntmakefile "NTMAKE = nmake /nologo /f ntmakefile lang" "NTMAKE_HEADERS = nmake /nologo /f ntmakefile lang" install
657
658 mkdir:
659     -mkdir $(AFS_OBJDIR)
660     -mkdir $(DESTDIR)
661     -mkdir $(AFS_OBJDIR)\checked
662     -mkdir $(AFS_OBJDIR)\free
663         -xcopy /q /t /e $(SRC)\*.* $(AFS_OBJDIR)\checked\ 
664         -xcopy /q /t /e $(SRC)\*.* $(AFS_OBJDIR)\free\ 
665     -mkdir $(DESTDIR)\checked
666         -mkdir $(DESTDIR)\free
667     -mkdir $(DESTDIR)\checked\bin
668         -mkdir $(DESTDIR)\free\bin
669         -@copy $(SRC)\config\NTLANG.BAT .
670
671 loopback:
672    @echo ***** Making Loopback Adapter Utility DLL
673    $(DOCD) $(SRC)\WINNT\install\$@
674    $(CD) $(SRC)\WINNT\install\$@
675    $(NTMAKE)
676    $(CD) ..\..\..\..
677
678 man-pages: config
679    @echo ***** $@
680    $(DOCD) $(DOC)\man-pages
681    $(CD) $(DOC)\man-pages
682    $(NTMAKE)
683    $(CD) ..\..
684
685 documentation: config
686    @echo ***** $@
687    $(DOCD) $(DOC)\xml\ReleaseNotesWindows
688    $(CD) $(DOC)\xml\ReleaseNotesWindows
689    $(NTMAKE)
690    $(DOCD) ..\UserGuide
691    $(CD) ..\UserGuide
692    $(NTMAKE)
693    $(DOCD) ..\AdminGuide
694    $(CD) ..\AdminGuide
695    $(NTMAKE)
696    $(DOCD) ..\..\..
697    $(CD) ..\..\..
698
699 NSIS.i386: loopback man-pages documentation
700    @echo ***** Making NSIS Installer
701    $(DOCD) $(SRC)\WINNT\install\NSIS
702    $(CD) $(SRC)\WINNT\install\NSIS
703    $(NTMAKE)
704    $(CD) ..\..\..\..
705
706 NSIS.AMD64:
707    @echo Skipping NSIS Installer on non-x86 platforms; not implemented
708
709 NSIS: NSIS.$(CPU)
710
711 wix: loopback man-pages documentation
712    @echo ***** Making Wix MSI Installer
713    $(DOCD) $(SRC)\WINNT\install\$@
714    $(CD) $(SRC)\WINNT\install\$@
715    $(NTMAKE)
716    $(CD) ..\..\..\..
717
718 wix-lite: loopback man-pages documentation
719    @echo ***** Making Wix MSI Installer (Lite)
720    $(DOCD) $(SRC)\WINNT\install\wix
721    $(CD) $(SRC)\WINNT\install\wix
722    $(NTMAKE) LITECLIENT=1
723    $(CD) ..\..\..\..
724
725 media: install NSIS wix
726
727 install-nsis: install NSIS
728
729 install-wix: install wix
730
731 install-wix-lite: install wix-lite
732