source: trunk/src/makefile@ 10366

Last change on this file since 10366 was 10023, checked in by bird, 22 years ago

Build NTDLL too.

File size: 4.2 KB
RevLine 
[10023]1# $Id: makefile,v 1.88 2003-04-14 23:08:52 bird Exp $
[4]2
3#
[4722]4# Odin32 API
[4]5#
6# Top of the src tree makefile
7#
8#
[2715]9# Usage: nmake ( all | libs | dep | clean )
[4]10#
11# all: Build the entire src tree.
[1585]12# lib: Builds the libraries.
[2715]13# dep: Builds depenency information for the entire src tree.
[4]14# clean: Bring src tree back to a "virgin" state.
15#
16#
17#
[2715]18
19
[4644]20#
21# Build environment.
22#
[4722]23!include ../makefile.inc
[4]24
[1492]25
[2734]26#
27# Exclude lists which is to be passed in to DOWITHDIRS
28#
[10023]29NOTTOBEMADE = CVS;pe2lx;odin32api;odinwps;spy;odinldr;ws2help;win16ldr;oslib;custombuild;opengl;programs;crtdll;msvcrt # generally not made
[7410]30NOTDLLS = $(NOTTOBEMADE);peldr;dllentry;guidlib # not dlls
[9875]31NOTHAVELIBS = $(NOTTOBEMADE);peldr # don't generate libs
[2932]32NOTWIN32DLLS= $(NOTDLLS);win32k;odincrt;dllentry # not win32 dlls.
[1492]33
[1585]34
[4644]35#
36# Check for SMP and MASSIVE.
37# SMP: Working backwards thru the directories traversed by a rule.
38# MASSIVE: Spawn a child processes for each process.
39#
[6916]40EXTRA =
[4644]41!ifdef SMP
42EXTRA = -r
43!endif
44!ifdef MASSIVE
45EXTRA = -s start "Odin32 Massive Build" /B /C
46!endif
[6916]47# TEMPORARY: ignore return codes while we're working with watcom and nmake.
48!if defined(WAT) && defined(NMAKE)
49EXTRA = $(EXTRA) -i
50!endif
[4]51
[4644]52
[2909]53#
[4644]54# All rule. Make libraries and then build every directory.
[2909]55#
[4644]56all: libs build
57
58
59
[2909]60#
[4644]61# Smp rule - Dual build. Starts a second build process after libraries
62# was made.
63#
64smp: startsmp libs build
[1585]65
[4644]66startsmp: # Internal helper for the smp rule.
67 start "Odin32 SMP Build Process" /B $(MAKE_CMD) SMP=1 libs build
[2909]68
69
[4644]70#
71# Rules which supports the SMP and MASSIVE features.
72#
73# build: Invokes the all rule in every directory.
74# clean: Invokes the clean rule in every directory.
75# lib(s): Invokes the lib rule in every directory known to support it.
76# dep: Invokes the dep rule in every directory.
77#
78build:
[6872]79 @$(DOWITHDIRS) -e$(NOTTOBEMADE) -lbld$(CCENV)$(DEBUG) -c $(EXTRA) \
[4644]80 $(MAKE_CMD) all
[1585]81
[4644]82lib libs:
[7997]83 @$(DOWITHDIRS) -e$(NOTHAVELIBS) -c -llib$(CCENV)$(DEBUG) $(EXTRA) \
[4644]84 $(MAKE_CMD) lib
85
[2715]86dep:
[6872]87 @$(DOWITHDIRS) -e$(NOTTOBEMADE) -c -ldep $(EXTRA) \
[6540]88 $(CMDQD_SUB) $(MAKE_CMD) NODEP=1 dep
89 $(CMDQD_WAIT)
[2715]90
[9875]91clean cleanall:
[6872]92 @$(DOWITHDIRS) -e$(NOTTOBEMADE) -c -lcln$(CCENV)$(DEBUG) $(EXTRA) \
[9875]93 $(CMDQD_SUB) $(MAKE_CMD) NODEP=1 $@
[6540]94 $(CMDQD_WAIT)
[1649]95
[9875]96$(COMMONRULES:cleanall clean dep lib all=):
[6872]97 @$(DOWITHDIRS) -e$(NOTTOBEMADE) -c -l$@$(CCENV)$(DEBUG) $(EXTRA) \
[6447]98 $(MAKE_CMD) $@
[2743]99
100#
[6422]101# Custom rules
102#
[8223]103CUSTOMBUILD = kernel32 user32 advapi32 comctl32 comdlg32 ctl3d32 ddraw ddraw \
104 dinput gdi32 icmp imagehlp iphlpapi lz32 msvfw32 ntdll ole32 riched32 \
105 rpcrt4 shell32 shlwapi version wininet winmm winspool wnaspi32 ws2_32 \
[9674]106 wsock32 uxtheme imm32
[7102]107
[6422]108custombuild:
[6872]109 @$(DODIRS) "$(CUSTOMBUILD)" $(MAKE_CMD) all CUSTOMBUILD=1
110 @$(DODIRS) ".\win32k\lib custombuild" $(MAKE_CMD) all
[6422]111
112custombuild_all custombuild_clean custombuild_dep:
[6872]113 @$(DODIRS) "$(CUSTOMBUILD)" $(MAKE_CMD) $(@:custombuild_=) CUSTOMBUILD=1
114 @$(DODIRS) ".\win32k\lib custombuild" $(MAKE_CMD) $(@:custombuild_=)
[6422]115
116
117#
[2743]118# Odin32 API DB Management
119#
[2749]120APIImport:
[6872]121 @$(DOWITHDIRS) -e$(NOTWIN32DLLS) -cp \
[2743]122 ..\..\tools\bin\APIImport.cmd
123
[2749]124StateUpd:
[2788]125 ..\tools\bin\StateUpd.exe -io+
[6872]126 -@$(DOWITHDIRS) -e$(NOTWIN32DLLS) -cp -i \
[3941]127 ..\..\tools\bin\StateUpd.cmd -ie- -ib-
[6872]128 @$(DODIRS) ".\win32k" $(MAKE_CMD) StateUpd
[2788]129 ..\tools\bin\StateUpd.exe -io+
[2743]130
[2749]131ReadSignals:
[6872]132 -@$(DOWITHDIRS) -e$(NOTWIN32DLLS:win32k;=) -cp -i \
[2749]133 IF EXIST signals.log list signals.log
134
135ReadStateUpdLogs:
[6872]136 -@$(DOWITHDIRS) -e$(NOTWIN32DLLS:win32k;=) -cp -i \
[2751]137 IF EXIST stateupd.log list stateupd.log
[2749]138
139ReadAPIImportLogs:
[6872]140 -@$(DOWITHDIRS) -e$(NOTWIN32DLLS) -cp -i \
[2749]141 IF EXIST apiimport.log list apiimport.log
142
143CleanDBLogs:
[6872]144 @$(DOWITHDIRS) -e$(NOTWIN32DLLS:win32k;=) -cp \
[2743]145 $(RM) apiimport.log signals.log stateupd.log apiimport.def
[2750]146 $(RM) signals.log stateupd.log
[2743]147
[6916]148
149!ifdef NMAKE
150#
151# Common: If MULTIJOBS is defined make sure cmdqd is running.
152#
153!ifndef NO_MULTIJOBS
154! ifdef MULTIJOBS
155! if [$(CMDQD) queryrunning] != 0
156! if [$(DODIRS) "$(ODIN32_BASE)\tools\cmdqd" $(MAKE_CMD) all] == 0
157! endif
158! if [$(CMDQD) init 7] == 0
159! endif
160! endif
161! endif
162!endif
163!endif
164
Note: See TracBrowser for help on using the repository browser.