Windows: Move src/NTMakefile to top-level in order to avoid copying
[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 !       IF (EXIST($(SRC)\des\NTMakefile))
157                 $(DOCD) $(SRC)\des
158                 $(CD) $(SRC)\des
159                 $(NTMAKE)
160                 $(CD) ..\..
161 !       ELSE
162                 $(DOCD) $(SRC)\des_stub
163                 $(CD) $(SRC)\des_stub
164                 $(NTMAKE)
165                 $(CD) ..\..
166 !       ENDIF
167
168 rx: des
169      @echo ***** $@
170         $(DOCD) $(SRC)\$@
171         $(CD) $(SRC)\$@
172         $(NTMAKE)
173         $(CD) ..\..
174
175 rxdebug: rx
176      @echo ***** $@
177         $(DOCD) $(SRC)\$@
178         $(CD) $(SRC)\$@
179         $(NTMAKE)
180         $(CD) ..\..
181
182 ubik_headers: rxdebug
183      @echo ***** $@
184         $(DOCD) $(SRC)\ubik
185         $(CD) $(SRC)\ubik
186         $(NTMAKE_HEADERS)
187         $(CD) ..\..
188
189 rxstat: ubik_headers
190      @echo ***** $@
191         $(DOCD) $(SRC)\$@
192         $(CD) $(SRC)\$@
193         $(NTMAKE)
194         $(CD) ..\..
195
196 rxkad: rxstat
197      @echo ***** $@
198         $(DOCD) $(SRC)\$@
199         $(CD) $(SRC)\$@
200         $(NTMAKE)
201         $(CD) ..\..
202
203 procmgmt: rxkad
204      @echo ***** $@
205         $(DOCD) $(SRC)\$@
206         $(CD) $(SRC)\$@
207         $(NTMAKE)
208         $(CD) ..\..
209
210 fsint: procmgmt
211      @echo ***** $@
212         $(DOCD) $(SRC)\$@
213         $(CD) $(SRC)\$@
214         $(NTMAKE)
215         $(CD) ..\..
216
217 audit: fsint
218      @echo ***** $@
219         $(DOCD) $(SRC)\$@
220         $(CD) $(SRC)\$@
221         $(NTMAKE)
222         $(CD) ..\..
223
224 osi_headers: audit
225      @echo ***** $@
226         $(DOCD) $(SRC)\WINNT\client_osi
227         $(CD) $(SRC)\WINNT\client_osi
228         $(NTMAKE_HEADERS)
229         $(CD) ..\..\..
230
231 libacl_headers: osi_headers
232      @echo ***** $@
233         $(DOCD) $(SRC)\libacl
234         $(CD) $(SRC)\libacl
235         $(NTMAKE_HEADERS)
236         $(CD) ..\..
237
238 cm_headers: libacl_headers
239      @echo ***** $@
240         $(DOCD) $(SRC)\WINNT\afsd
241         $(CD) $(SRC)\WINNT\afsd
242         $(NTMAKE_HEADERS)
243         $(CD) ..\..\..
244
245 auth_headers: cm_headers
246      @echo ***** $@
247         $(DOCD) $(SRC)\auth
248         $(CD) $(SRC)\auth
249         $(NTMAKE_HEADERS)
250         $(CD) ..\..
251
252 vlserver_headers: auth_headers
253      @echo ***** $@
254         $(DOCD) $(SRC)\vlserver
255         $(CD) $(SRC)\vlserver
256         $(NTMAKE_HEADERS)
257         $(CD) ..\..
258
259 afsdobjs: vlserver_headers
260      @echo ***** $@
261         $(DOCD) $(SRC)\WINNT\afsd
262         $(CD) $(SRC)\WINNT\afsd
263         $(NTMAKE_OBJS)
264         $(CD) ..\..\..
265
266 sys: afsdobjs
267      @echo ***** $@
268         $(DOCD) $(SRC)\$@
269         $(CD) $(SRC)\$@
270         $(NTMAKE)
271         $(CD) ..\..
272
273 auth: sys
274      @echo ***** $@
275         $(DOCD) $(SRC)\$@
276         $(CD) $(SRC)\$@
277         $(NTMAKE)
278         $(CD) ..\..     
279
280 ubik: auth
281      @echo ***** $@
282         $(DOCD) $(SRC)\$@
283         $(CD) $(SRC)\$@
284         $(NTMAKE)
285         $(CD) ..\..     
286
287 ptserver: ubik
288      @echo ***** $@
289         $(DOCD) $(SRC)\$@
290         $(CD) $(SRC)\$@
291         $(NTMAKE)
292         $(CD) ..\..     
293
294 libacl: ptserver
295      @echo ***** $@
296         $(DOCD) $(SRC)\$@
297         $(CD) $(SRC)\$@
298         $(NTMAKE)
299         $(CD) ..\..
300
301 kauth: libacl
302      @echo ***** $@
303         $(DOCD) $(SRC)\$@
304         $(CD) $(SRC)\$@
305         $(NTMAKE)
306         $(CD) ..\..
307
308 vlserver: kauth
309      @echo ***** $@
310         $(DOCD) $(SRC)\$@
311         $(CD) $(SRC)\$@
312         $(NTMAKE)
313         $(CD) ..\..
314
315 usd: vlserver
316      @echo ***** $@
317         $(DOCD) $(SRC)\$@
318         $(CD) $(SRC)\$@
319         $(NTMAKE)
320         $(CD) ..\..
321
322 bubasics: usd
323      @echo ***** $@
324         $(DOCD) $(SRC)\$@
325         $(CD) $(SRC)\$@
326         $(NTMAKE)
327         $(CD) ..\..
328
329 budb:   bubasics
330      @echo ***** $@
331         $(DOCD) $(SRC)\$@
332         $(CD) $(SRC)\$@
333         $(NTMAKE)
334         $(CD) ..\..
335 butm:  budb
336      @echo ***** $@
337      $(DOCD) $(SRC)\$@
338      $(CD) $(SRC)\$@
339      $(NTMAKE)
340      $(CD) ..\..
341
342 dir: butm
343      @echo ***** $@
344         $(DOCD) $(SRC)\$@
345         $(CD) $(SRC)\$@
346         $(NTMAKE)
347         $(CD) ..\..
348
349 vol: dir
350      @echo ***** $@
351         $(DOCD) $(SRC)\$@
352         $(CD) $(SRC)\$@
353         $(NTMAKE)
354         $(CD) ..\..
355
356 volser: vol
357      @echo ***** $@
358         $(DOCD) $(SRC)\$@
359         $(CD) $(SRC)\$@
360         $(NTMAKE)
361         $(CD) ..\..
362
363 viced: volser
364      @echo ***** $@
365         $(DOCD) $(SRC)\$@
366         $(CD) $(SRC)\$@
367         $(NTMAKE)
368         $(CD) ..\..
369
370 update: viced
371      @echo ***** $@
372         $(DOCD) $(SRC)\$@
373         $(CD) $(SRC)\$@
374         $(NTMAKE)
375         $(CD) ..\..
376
377 bucoord: update
378      @echo ***** $@
379      $(DOCD) $(SRC)\$@
380      $(CD) $(SRC)\$@
381      $(NTMAKE)
382      $(CD) ..\..
383
384 butc:   bucoord
385      @echo ***** $@
386      $(DOCD) $(SRC)\$@
387      $(CD) $(SRC)\$@
388      $(NTMAKE)
389      $(CD) ..\..
390
391 bozo: butc
392      @echo ***** $@
393         $(DOCD) $(SRC)\$@
394         $(CD) $(SRC)\$@
395         $(NTMAKE)
396         $(CD) ..\..
397
398 bosctlsvc: bozo
399      @echo ***** $@
400         $(DOCD) $(SRC)\WINNT\$@
401         $(CD) $(SRC)\WINNT\$@
402         $(NTMAKE)
403         $(CD) ..\..\..
404
405 bu_utils: bosctlsvc
406      @echo ***** $@
407         $(DOCD) $(SRC)\$@
408         $(CD) $(SRC)\$@
409         $(NTMAKE)
410         $(CD) ..\..
411
412 libafsrpc: bu_utils
413      @echo ***** $@
414         $(DOCD) $(SRC)\$@
415         $(CD) $(SRC)\$@
416         $(NTMAKE)
417         $(CD) ..\..
418
419 libafsauthent: libafsrpc
420      @echo ***** $@
421         $(DOCD) $(SRC)\$@
422         $(CD) $(SRC)\$@
423         $(NTMAKE)
424         $(CD) ..\..
425
426 tviced: libafsauthent
427      @echo ***** $@
428         $(DOCD) $(SRC)\$@
429         $(CD) $(SRC)\$@
430         $(NTMAKE)
431         $(CD) ..\..
432
433 tvolser: tviced
434      @echo ***** $@
435         $(DOCD) $(SRC)\$@
436         $(CD) $(SRC)\$@
437         $(NTMAKE)
438         $(CD) ..\..
439
440 tbutc:  tvolser
441      @echo ***** $@
442      $(DOCD) $(SRC)\$@
443      $(CD) $(SRC)\$@
444      $(NTMAKE)
445      $(CD) ..\..
446
447 talocale: tbutc
448      @echo ***** $@
449         $(DOCD) $(SRC)\WINNT\$@
450         $(CD) $(SRC)\WINNT\$@
451         $(NTMAKE)
452         $(CD) ..\..\..
453
454 license: talocale
455      @echo ***** $@
456         $(DOCD) $(SRC)\WINNT\$@
457         $(CD) $(SRC)\WINNT\$@
458         $(NTMAKE)
459         $(CD) ..\..\..
460
461 client_osi: license
462      @echo ***** $@
463         $(DOCD) $(SRC)\WINNT\$@
464         $(CD) $(SRC)\WINNT\$@
465         $(NTMAKE)
466         $(CD) ..\..\..
467
468 afsd: client_osi
469      @echo ***** $@
470         $(DOCD) $(SRC)\WINNT\$@
471         $(CD) $(SRC)\WINNT\$@
472         $(NTMAKE)
473         $(CD) ..\..\..
474
475 libadmin: afsd
476      @echo ***** $@
477         $(DOCD) $(SRC)\$@
478         $(CD) $(SRC)\$@
479         $(NTMAKE)
480         $(CD) ..\..
481
482 adminutil: libadmin
483      @echo ***** $@
484         $(DOCD) $(SRC)\libadmin\$@
485         $(CD) $(SRC)\libadmin\$@
486         $(NTMAKE)
487         $(CD) ..\..\..
488
489 vos: adminutil
490      @echo ***** $@
491         $(DOCD) $(SRC)\libadmin\$@
492         $(CD) $(SRC)\libadmin\$@
493         $(NTMAKE)
494         $(CD) ..\..\..
495
496 client: vos
497      @echo ***** $@
498         $(DOCD) $(SRC)\libadmin\$@
499         $(CD) $(SRC)\libadmin\$@
500         $(NTMAKE)
501         $(CD) ..\..\..
502
503 kas: client
504      @echo ***** $@
505         $(DOCD) $(SRC)\libadmin\$@
506         $(CD) $(SRC)\libadmin\$@
507         $(NTMAKE)
508         $(CD) ..\..\..
509
510 pts: kas
511      @echo ***** $@
512         $(DOCD) $(SRC)\libadmin\$@
513         $(CD) $(SRC)\libadmin\$@
514         $(NTMAKE)
515         $(CD) ..\..\..
516
517 bos: pts
518      @echo ***** $@
519         $(DOCD) $(SRC)\libadmin\$@
520         $(CD) $(SRC)\libadmin\$@
521         $(NTMAKE)
522         $(CD) ..\..\..
523
524 cfg: bos
525      @echo ***** $@
526         $(DOCD) $(SRC)\libadmin\$@
527         $(CD) $(SRC)\libadmin\$@
528         $(NTMAKE)
529         $(CD) ..\..\..
530
531 admintest: cfg
532      @echo ***** $@
533         $(DOCD) $(SRC)\libadmin\test
534         $(CD) $(SRC)\libadmin\test
535         $(NTMAKE)
536         $(CD) ..\..\..
537
538 afsadmsvr: admintest
539      @echo ***** $@
540         $(DOCD) $(SRC)\WINNT\$@
541         $(CD) $(SRC)\WINNT\$@
542         $(NTMAKE)
543         $(CD) ..\..\..
544
545 afsusrmgr: afsadmsvr
546      @echo ***** $@
547         $(DOCD) $(SRC)\WINNT\$@
548         $(CD) $(SRC)\WINNT\$@
549         $(NTMAKE)
550         $(CD) ..\..\..
551
552 afssvrmgr: afsusrmgr
553      @echo ***** $@
554         $(DOCD) $(SRC)\WINNT\$@
555         $(CD) $(SRC)\WINNT\$@
556         $(NTMAKE)
557         $(CD) ..\..\..
558
559 afssvrcfg: afssvrmgr
560      @echo ***** $@
561         $(DOCD) $(SRC)\WINNT\$@
562         $(CD) $(SRC)\WINNT\$@
563         $(NTMAKE)
564         $(CD) ..\..\..
565
566 afssvrcpa: afssvrcfg
567      @echo ***** $@
568         $(DOCD) $(SRC)\WINNT\$@
569         $(CD) $(SRC)\WINNT\$@
570         $(NTMAKE)
571         $(CD) ..\..\..
572
573 client_talocale: afssvrcpa
574      @echo ***** $@
575         $(DOCD) $(SRC)\WINNT\talocale
576         $(CD) $(SRC)\WINNT\talocale
577         $(NTMAKE)
578         $(CD) ..\..\..
579
580 client_cpa: client_talocale
581      @echo ***** $@
582         $(DOCD) $(SRC)\WINNT\$@
583         $(CD) $(SRC)\WINNT\$@
584         $(NTMAKE)
585         $(CD) ..\..\..
586
587 client_config: client_cpa
588      @echo ***** $@
589         $(DOCD) $(SRC)\WINNT\$@
590         $(CD) $(SRC)\WINNT\$@
591         $(NTMAKE)
592         $(CD) ..\..\..
593
594 client_exp: client_config
595      @echo ***** $@
596         $(DOCD) $(SRC)\WINNT\$@
597         $(CD) $(SRC)\WINNT\$@
598         $(NTMAKE)
599         $(CD) ..\..\..
600
601 client_creds: client_exp
602      @echo ***** $@
603         $(DOCD) $(SRC)\WINNT\$@
604         $(CD) $(SRC)\WINNT\$@
605         $(NTMAKE)
606         $(CD) ..\..\..
607
608 aklog: client_creds
609      @echo ***** $@
610         $(DOCD) $(SRC)\WINNT\$@
611         $(CD) $(SRC)\WINNT\$@
612         $(NTMAKE)
613         $(CD) ..\..\..
614
615 xstat: aklog
616      @echo ***** $@
617         $(DOCD) $(SRC)\$@
618         $(CD) $(SRC)\$@
619         $(NTMAKE)
620         $(CD) ..\..
621
622 netidmgr_plugin: xstat
623      @echo ***** $@
624         $(DOCD) $(SRC)\WINNT\$@
625         $(CD) $(SRC)\WINNT\$@
626         $(NTMAKE)
627         $(CD) ..\..\..
628
629 extra: netidmgr_plugin
630 !       IF EXIST($(SRC)\WINNT\extra) && EXIST($(SRC)\WINNT\extra\NTMakefile)
631      @echo ***** $@
632     $(DOCD) $(SRC)\WINNT\$@
633         $(CD) $(SRC)\WINNT\$@
634         $(NTMAKE)
635         $(CD) ..\..\..
636 !       ELSE
637      @echo ***** Skipping $@ ***** Not found.
638 !       ENDIF
639                 
640 finale: extra
641      @echo ***** $@
642         $(DOCD) $(SRC)\$@
643         $(CD) $(SRC)\$@
644         $(NTMAKE)
645         $(CD) ..\..
646
647 install: finale
648         @echo Build Finished Successfully
649         
650
651 # Clean target for obj tree
652 clean:
653         nmake /nologo /f ntmakefile "NTMAKE = nmake /nologo /f ntmakefile clean" "NTMAKE_HEADERS = nmake /nologo /f ntmakefile clean" "NTMAKE_OBJS = nmake /nologo /f ntmakefile clean" install
654         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
655         $(CD) $(SRC)\config
656         nmake /nologo /f ntmakefile clean_version
657         $(CD) ..\..
658
659 # Language-only build target
660 lang:
661     nmake /nologo /f ntmakefile "NTMAKE = nmake /nologo /f ntmakefile lang" "NTMAKE_HEADERS = nmake /nologo /f ntmakefile lang" install
662
663 mkdir:
664     -mkdir $(AFS_OBJDIR)
665     -mkdir $(DESTDIR)
666     -mkdir $(AFS_OBJDIR)\checked
667     -mkdir $(AFS_OBJDIR)\free
668         -xcopy /q /t /e $(SRC)\*.* $(AFS_OBJDIR)\checked\ 
669         -xcopy /q /t /e $(SRC)\*.* $(AFS_OBJDIR)\free\ 
670     -mkdir $(DESTDIR)\checked
671         -mkdir $(DESTDIR)\free
672     -mkdir $(DESTDIR)\checked\bin
673         -mkdir $(DESTDIR)\free\bin
674         -@copy $(SRC)\config\NTLANG.BAT .
675
676 loopback:
677    @echo ***** Making Loopback Adapter Utility DLL
678    $(DOCD) $(SRC)\WINNT\install\$@
679    $(CD) $(SRC)\WINNT\install\$@
680    $(NTMAKE)
681    $(CD) ..\..\..\..
682
683 man-pages: 
684    @echo ***** $@
685    $(DOCD) $(DOC)\man-pages
686    $(CD) $(DOC)\man-pages
687    $(NTMAKE)
688    $(CD) ..\..
689
690 documentation:
691    @echo ***** $@
692    $(DOCD) $(DOC)\xml\ReleaseNotesWindows
693    $(CD) $(DOC)\xml\ReleaseNotesWindows
694    $(NTMAKE)
695    $(DOCD) ..\UserGuide
696    $(CD) ..\UserGuide
697    $(NTMAKE)
698    $(DOCD) ..\AdminGuide
699    $(CD) ..\AdminGuide
700    $(NTMAKE)
701    $(DOCD) ..\..\..
702    $(CD) ..\..\..
703
704 NSIS.i386: loopback man-pages documentation
705    @echo ***** Making NSIS Installer
706    $(DOCD) $(SRC)\WINNT\install\NSIS
707    $(CD) $(SRC)\WINNT\install\NSIS
708    $(NTMAKE)
709    $(CD) ..\..\..\..
710
711 NSIS.AMD64:
712    @echo Skipping NSIS Installer on non-x86 platforms; not implemented
713
714 NSIS: NSIS.$(CPU)
715
716 wix: loopback man-pages documentation
717    @echo ***** Making Wix MSI Installer
718    $(DOCD) $(SRC)\WINNT\install\$@
719    $(CD) $(SRC)\WINNT\install\$@
720    $(NTMAKE)
721    $(CD) ..\..\..\..
722
723 media: install NSIS wix
724
725 install-nsis: install NSIS
726
727 install-wix: install wix
728
729