#
# If BUILDMSG is not defined, the define it as the empty string to make
# the conditionals easier to write.
#

!INCLUDE $(NTMAKEENV)\makefile.plt

SDKINC = $(_NTROOT)\public\sdk\inc
OAKINC = $(_NTROOT)\public\oak\inc
!IFNDEF NTOSINC
NTOSINC = $(_NTROOT)\private\ntos\inc
!ENDIF

NTSTATUSRC=	$(SDKINC)\ntstatus.h \
		ntos\dll\ntstatus.rc \
		ntos\dll\msg00001.bin

MSAUDITERC=	$(SDKINC)\msaudite.h \
		ntos\seaudit\msaudite\msaudite.rc \
		ntos\seaudit\msaudite\msg00001.bin

NETEVENTRC=	$(SDKINC)\netevent.h \
		eventlog\netevent\netevent.rc \
		eventlog\netevent\msg00001.bin

MSOBJSRC=	$(SDKINC)\msobjs.h \
		ntos\seaudit\msobjs\msobjs.rc \
		ntos\seaudit\msobjs\msg00001.bin


all:	$(NTSTATUSRC)					\
	$(SDKINC)\winerror.h $(SDKINC)\winbase.h	\
	$(MSAUDITERC)					\
	.\inc\lsarpc.h .\inc\samrpc.h			\
	$(NETEVENTRC)					\
	$(MSOBJSRC)
!IF "$(BUILDMSG)" != ""
	@ech ; $(BUILDMSG) ;
!ENDIF

clean: cleansrc binplace all

cleansrc:
    -erase $(SDKINC)\ntstatus.h $(SDKINC)\winbase.h $(SDKINC)\winerror.h \
           $(SDKINC)\msaudite.h $(SDKINC)\netevent.h $(SDKINC)\msobjs.h
    -erase .\inc\lsarpc.h .\inc\samrpc.h
    -erase ntos\dll\msg00001.bin ntos\dll\ntstatus.rc

incs:
    cd ntos
    nmake -f makefil0 BUILDMSG=
    cd ..
    cd windows
    nmake -f makefil0 BUILDMSG=
    cd ..

$(NTSTATUSRC): nls\ntstatus.mc
    mc -v -r ntos\dll\ -h $(SDKINC)\ -x $(SDKINC)\ nls\ntstatus.mc

$(NETEVENTRC): nls\netevent.mc
    mc -v -r eventlog\netevent\ -h $(SDKINC)\ -x $(SDKINC)\ nls\netevent.mc

$(SDKINC)\winerror.h : windows\nlsmsg\winerror.mc
    cd windows
    nmake -f makefil0 BUILDMSG=
    cd ..

$(SDKINC)\winbase.h : windows\inc\winbase.w
    cd windows
    nmake -f makefil0 BUILDMSG=
    cd ..

.\inc\lsarpc.h : lsa\lsarpc.idl
    cd lsa
    nmake -f makefil0 BUILDMSG=
    cd ..

.\inc\samrpc.h : newsam\samrpc.idl
    cd newsam
    nmake -f makefil0 BUILDMSG=
    cd ..

$(MSAUDITERC): ntos\seaudit\msaudite\msaudite.mc
    mc -v -r ntos\seaudit\msaudite\ -h $(SDKINC)\ ntos\seaudit\msaudite\msaudite.mc

$(MSOBJSRC): ntos\seaudit\msobjs\msobjs.mc
    mc -v -r ntos\seaudit\msobjs\ -h $(SDKINC)\ ntos\seaudit\msobjs\msobjs.mc

binplace:
    -binplace $(_NTROOT)\private\windows\shell\progman\*.grp
    -binplace $(_NTROOT)\private\windows\shell\control\bitmaps\*.bmp
    -binplace $(_NTROOT)\private\windows\winnls\data\*.nls
    -binplace $(_NTROOT)\private\windows\gdi\fonts\*.fot
    -binplace $(_NTROOT)\private\windows\gdi\fonts\*.fon
    -binplace $(_NTROOT)\private\windows\gdi\fonts\*.fnt
    -binplace $(_NTROOT)\private\windows\gdi\fonts\*.ttf
    -binplace $(_NTROOT)\private\windows\gdi\fonts\trmn\obj\$(TARGET_DIRECTORY)\tmsre32.fon
    -binplace $(_NTROOT)\private\windows\win.ini
    -binplace $(_NTROOT)\private\mvdm\bin86\system.ini $(_NTROOT)\private\mvdm\bin86\*.nt
    -binplace $(_NTROOT)\public\oak\bin\system
    -binplace $(_NTROOT)\public\oak\bin\default
    -binplace $(_NTROOT)\public\oak\bin\software
    -binplace $(_NTROOT)\public\oak\bin\ntdetect.com
    -binplace $(_NTROOT)\public\oak\bin\registry.ini
!if exist($(_NTROOT)\public\oak\bin\$(TARGET_DIRECTORY)\cmidl.exe)
    -binplace $(_NTROOT)\public\oak\bin\$(TARGET_DIRECTORY)\cmidl.exe
!endif
!if exist($(_NTROOT)\public\oak\bin\$(TARGET_DIRECTORY)\includes.exe)
    -binplace $(_NTROOT)\public\oak\bin\$(TARGET_DIRECTORY)\includes.exe
!endif
!if exist($(_NTROOT)\public\oak\bin\$(TARGET_DIRECTORY)\sed.exe)
    -binplace $(_NTROOT)\public\oak\bin\$(TARGET_DIRECTORY)\sed.exe
!endif
!if exist($(_NTROOT)\public\oak\bin\$(TARGET_DIRECTORY)\mktyplib.exe)
    -binplace $(_NTROOT)\public\oak\bin\$(TARGET_DIRECTORY)\mktyplib.exe
!endif
!IF EXIST($(TARGET_DIRECTORY).mak)
!INCLUDE $(TARGET_DIRECTORY).mak
!ENDIF
    -binplace $(_NTROOT)\public\sdk\lib\$(TARGET_DIRECTORY)\crtdll.dll
