--- truecrypt/driver/makefile 2018/04/24 16:37:52 1.1 +++ truecrypt/driver/makefile 2018/04/24 16:43:07 1.1.1.3 @@ -1,88 +1,106 @@ # -# THIS MAKEFILE WORKS WITH MICROSOFT NMAKE ONLY +# TrueCrypt Windows driver Makefile # -# change this to point to your DDK -DDK = C:\SDK\WINDDK\3790 -OS = wxp +# Change this path point to your DDK installation +DDK = C:\SDK\WINDDK\3790.1830 BASENAME = truecrypt +OS = wxp +ARCH = i386 +MACHINE = IX86 +PFLAGS = -Zel -Gi- -QIfdiv- -QIf -YXTcdefs.h +DEFS = -D_X86_ -Di386 +CC = $(DDK)\bin\x86\cl.exe +LD = $(DDK)\bin\x86\link.exe +OBJECTS = + +!IFDEF AMD64 + +BASENAME = truecrypt-x64 +OS = wnet +ARCH = amd64 +MACHINE = AMD64 +PFLAGS = +DEFS = -DAMD64 -D_AMD64_ +CC = $(DDK)\bin\win64\x86\amd64\cl.exe +LD = $(DDK)\bin\win64\x86\amd64\link.exe +PATH = $(PATH);$(DDK)\bin\win64\x86\amd64;$(DDK)\bin\x86 +OBJECTS = Aescrypt.obj Aeskey.obj Aestab.obj Bf_ecb.obj Bf_enc.obj Bf_skey.obj \ +C_ecb.obj C_enc.obj C_skey.obj Des.obj Des_enc.obj Ecb3_enc.obj Rmd160.obj \ +Serpent.obj Set_key.obj Sha1.obj Twofish.obj Whirlpool.obj + +!ENDIF -CC = cl -ASM = ml - -all: $(BASENAME).sys - -OBJECTS = Ntdriver.obj Ntvol.obj Ntrawdv.obj Ntfiledv.obj \ - Volumes.obj Crypto.obj Endian.obj Crc.obj Pkcs5.obj Cache.obj \ - Driver.res - - -!IFNDEF RELEASE -# Debug +CFLAGS = -nologo $(CFLAGS) $(PFLAGS) \ +-EHs-c- -Zp8 -GS -Gy -cbstring -Gz -Gm- \ +-GR- -GF -W3 -Wp64 -FI$(DDK)\inc\$(OS)\warning.h \ +-I$(DDK)\inc\$(OS) -I$(DDK)\inc\ddk\$(OS) \ +-I$(DDK)\inc\ddk\wdm\$(OS) -I$(DDK)\inc\crt \ +-I..\..\Common -I..\..\Crypto -DEFINES_D = -D_X86_=1 -Di386=1 -DSTD_CALL -DCONDITION_HANDLING=1 \ +DEFS = $(DEFS) -DNT4_DRIVER -DSTD_CALL -DCONDITION_HANDLING=1 \ -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 \ --DWINNT=1 -D_WIN32_WINNT=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDBG=1 -D_DEBUG -DDEBUG -DDEVL=1 \ --DFPO=0 -D_DLL=1 -D_IDWBUILD -DRDRDBG -DSRVDBG -DDBG_MESSAGES=1 \ --D_UNICODE -DLITTLE_ENDIAN - -CFLAGS_D = $(DEFINES_D) -Zel -Zp8 -Gy -cbstring -Gz -QIfdiv- -QIf -Gi- -Gm- -GX- \ --GR- -GF -FI$(DDK)\inc\$(OS)\warning.h -Z7 -Od -Oi -Oy- -W3 +-DWINNT=1 -D_WIN32_WINNT=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 \ +-D_UNICODE -DLITTLE_ENDIAN -DFPO=0 -D_DLL=1 -D_IDWBUILD -LFLAGS_D = -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -SECTION:INIT,d \ +LINK_OPTS = -nologo -machine:$(MACHINE) \ +-MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -SECTION:INIT,d \ -INCREMENTAL:NO -FORCE:MULTIPLE -RELEASE -FULLBUILD \ -IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096 -NODEFAULTLIB \ --debug -version:4.00 -osversion:4.00 \ -MERGE:.rdata=.text -MAP:$(BASENAME).map -driver -align:0x20 \ --subsystem:native,4.00 -base:0x10000 -entry:DriverEntry@8 +-subsystem:native -base:0x10000 -entry:DriverEntry -CRYPTOLIB = ..\..\crypto\debug\crypto.lib -COPYRELEASE = +OBJECTS = $(OBJECTS) Ntdriver.obj Ntvol.obj Ntrawdv.obj Ntfiledv.obj \ +Volumes.obj Crypto.obj Endian.obj Crc.obj Pkcs5.obj Cache.obj Tests.obj \ +Driver.res -!ELSE +LIBS = $(DDK)\lib\$(OS)\$(ARCH)\ntoskrnl.lib \ +$(DDK)\lib\$(OS)\$(ARCH)\hal.lib \ +$(DDK)\lib\$(OS)\$(ARCH)\bufferoverflowK.lib -# Release -DEFINES_D = -D_X86_=1 -Di386=1 -DSTD_CALL -DCONDITION_HANDLING=1 \ --DNT_UP=1 -DNO_DISK_ACCESS -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 \ --DWINNT=1 -D_WIN32_WINNT=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 \ --DFPO=1 -DNDEBUG -D_DLL=1 -D_IDWBUILD -D_UNICODE \ --DLITTLE_ENDIAN +!IFDEF RELEASE -CFLAGS_D = $(DEFINES_D) -Zel -Zp8 -Gy -cbstring -Gz -QIfdiv- -QIf -Gi- -Gm- -GX- \ --GR- -GF -Oxs -Oy -FI$(DDK)\inc\$(OS)\warning.h -W3 -FAcs +# Release +DEFS = $(DEFS) -DNO_DISK_ACCESS -DNDEBUG +CFLAGS = $(CFLAGS) -Gs- -Oxs -Oy -w34244 -w34267 -w34189 -FAcs +CRYPTOLIB = ..\..\Crypto\Release\Crypto.lib +COPYRELEASE = copy $(BASENAME).sys "..\..\Release\Setup files" -LFLAGS_D = -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -SECTION:INIT,d \ --INCREMENTAL:NO -FORCE:MULTIPLE -RELEASE -FULLBUILD \ --IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096 -NODEFAULTLIB -version:4.00 \ --osversion:4.00 -MERGE:.rdata=.text -MAP:$(BASENAME).map -driver \ --align:0x20 -subsystem:native,4.00 -base:0x10000 -entry:DriverEntry@8 +!ELSE -CRYPTOLIB = ..\..\crypto\release\crypto.lib -COPYRELEASE = copy $(BASENAME).sys "..\..\release\setup files" +# Debug +CFLAGS = $(CFLAGS) -Gs -Z7 -Od -Oi -Oy- +DEFS = $(DEFS) -DDBG=1 -D_DEBUG -DDEBUG -DRDRDBG -DSRVDBG -DDBG_MESSAGES=1 +LINK_OPTS = -debug $(LINK_OPTS) +CRYPTOLIB = ..\..\Crypto\Debug\Crypto.lib +COPYRELEASE = !ENDIF -LINK_D = link $(LFLAGS_D) -nologo -out:$(BASENAME).sys -machine:IX86 \ - $(DDK)\lib\$(OS)\i386\ntoskrnl.lib \ - $(DDK)\lib\$(OS)\i386\hal.lib +!IFNDEF AMD64 +LIBS = $(LIBS) $(CRYPTOLIB) +!ENDIF + +CFLAGS = $(CFLAGS) $(DEFS) -CFLAGS = $(CFLAGS_D) -nologo -DNT4_DRIVER -I"C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include" -I$(DDK)\inc\$(OS) -I$(DDK)\inc\ddk\$(OS) -I$(DDK)\inc\ddk\wdm\$(OS) -YXTCdefs.h +all: $(BASENAME).sys {..}.c{}.obj : - @$(CC) -c $(CFLAGS) -I..\..\common -I..\..\crypto $< + @$(CC) -c $(CFLAGS) $< -{..\..\common}.c{}.obj : - @$(CC) -c $(CFLAGS) -I..\..\common -I..\..\crypto $< - -{..}.rc{}.res : - rc -r -D_X86_ -fo driver.res $< +{..\..\Common}.c{}.obj : + @$(CC) -c $(CFLAGS) $< +{..\..\Crypto}.c{}.obj : + @$(CC) -c $(CFLAGS) $< + +{..}.rc{}.res : + rc -r -fo Driver.res $< -$(BASENAME).sys : $(OBJECTS) $(CRYPTOLIB) - $(LINK_D) $(OBJECTS) $(CRYPTOLIB) +$(BASENAME).sys : $(OBJECTS) $(LIBS) + $(LD) $(LINK_OPTS) $(OBJECTS) $(LIBS) -out:$(BASENAME).sys $(COPYRELEASE) -