|
|
1.1 root 1: #
2: # Copyright (c) 2008 TrueCrypt Foundation. All rights reserved.
3: #
4: # Governed by the TrueCrypt License 2.4 the full text of which is contained
5: # in the file License.txt included in TrueCrypt binary and source code
6: # distribution packages.
7: #
8:
9: PROJ = BootLoader
10: .SILENT:
11:
12: !ifndef MSVC16_ROOT
13: !error Environment variable MSVC16_ROOT must point to the installation directory of MS Visual C++ 1.5
14: !endif
15:
16: ENVPATH = $(PATH)
17:
18: CPP = $(MSVC16_ROOT)\bin\cl.exe
19: LD = $(MSVC16_ROOT)\bin\link.exe
20:
21: AFLAGS = /nologo /AT /omf
22:
23: CPPFLAGS = /nologo /W2 /Fc /I "$(MSVC16_ROOT)\Include" /I"..\..\.." /I"..\..\..\Common" /I"..\..\..\Crypto"
24: CPPFLAGS = $(CPPFLAGS) /D __int8=char /D __int16=int /D __int32=long /D BOOL=__int32 /D FALSE=0 /D TRUE=1
25: CPPFLAGS = $(CPPFLAGS) /D LITTLE_ENDIAN=1234 /D BYTE_ORDER=1234 /D TC_WINDOWS_BOOT /D TC_MINIMIZE_CODE_SIZE /D TC_NO_COMPILER_INT64
26: CPPFLAGS = $(CPPFLAGS) /D malloc=malloc_NA
27:
28: LFLAGS = /NOLOGO /ONERROR:NOEXE /NOI /BATCH
29:
30:
31: !ifdef DEBUG
32:
33: OBJDIR = Debug
34: OUTDIR = $(OBJDIR)
35: TARGETEXT = exe
36: CPPFLAGS = $(CPPFLAGS) /AM /Zl /G2 /D _DEBUG /D DEBUG /Od /Z7 /D_DOS
37: LFLAGS = $(LFLAGS) /CO /STACK:32768
38: OBJS =
39: LIBS = mlibce
40: PROJDIR = ..
41:
42: !else
43:
44: OBJDIR = Release
1.1.1.3 ! root 45:
! 46: !ifdef SINGLE_CIPHER
! 47: OBJDIR = $(OBJDIR)_$(SINGLE_CIPHER)
! 48: CPPFLAGS = $(CPPFLAGS) /D TC_WINDOWS_BOOT_SINGLE_CIPHER_MODE /D TC_WINDOWS_BOOT_$(SINGLE_CIPHER)
! 49: !endif
! 50:
1.1 root 51: OUTDIR = $(OBJDIR)
52: TARGETEXT = com
1.1.1.3 ! root 53: TARGETS = $(OUTDIR)\BootDefs.i $(OUTDIR)\BootSector.bin $(OUTDIR)\Decompressor.com
1.1 root 54: CPPFLAGS = $(CPPFLAGS) /AT /Zl /f- /G3 /Oe /Os /Ob1 /OV0 /Gs /Gf /Gy /D NDEBUG
55: LFLAGS = $(LFLAGS) /NOD /NOE /TINY
56: OBJS = $(OUTDIR)\BootCrt.obj
57: LIBS = slibce
58:
59: !endif
60:
1.1.1.3 ! root 61: !if 1
! 62: SRCDIR = ..
! 63: !else
! 64: SRCDIR = $(MAKEDIR)
! 65: !endif
1.1 root 66:
67: TARGETS = $(TARGETS) $(OUTDIR)\$(PROJ).$(TARGETEXT)
68:
69: OBJS = $(OBJS) $(OUTDIR)\BootConfig.obj
70: OBJS = $(OBJS) $(OUTDIR)\BootConsoleIo.obj
71: OBJS = $(OBJS) $(OUTDIR)\BootDebug.obj
72: OBJS = $(OBJS) $(OUTDIR)\BootDiskIo.obj
73: OBJS = $(OBJS) $(OUTDIR)\BootEncryptedIo.obj
74: OBJS = $(OBJS) $(OUTDIR)\BootMain.obj
1.1.1.2 root 75: OBJS = $(OBJS) $(OUTDIR)\BootMemory.obj
1.1 root 76: OBJS = $(OBJS) $(OUTDIR)\IntFilter.obj
77: OBJS = $(OBJS) $(OUTDIR)\Platform.obj
78:
79: OBJS = $(OBJS) $(OUTDIR)\Crc.obj
80: OBJS = $(OBJS) $(OUTDIR)\Crypto.obj
81: OBJS = $(OBJS) $(OUTDIR)\Endian.obj
82: OBJS = $(OBJS) $(OUTDIR)\Pkcs5.obj
83: OBJS = $(OBJS) $(OUTDIR)\Volumes.obj
84: OBJS = $(OBJS) $(OUTDIR)\Xts.obj
85:
1.1.1.3 ! root 86: OBJS = $(OBJS) $(OUTDIR)\Rmd160.obj
! 87:
! 88: !if !DEFINED (SINGLE_CIPHER)
1.1 root 89: OBJS = $(OBJS) $(OUTDIR)\AesSmall.obj
1.1.1.3 ! root 90: !else if "$(SINGLE_CIPHER)" == "AES"
! 91: OBJS = $(OBJS) $(OUTDIR)\AesSmall_x86.obj
! 92: OBJS = $(OBJS) $(OUTDIR)\Aestab.obj
! 93: !endif
! 94:
! 95: !if !DEFINED (SINGLE_CIPHER) || "$(SINGLE_CIPHER)" == "SERPENT"
1.1 root 96: OBJS = $(OBJS) $(OUTDIR)\Serpent.obj
1.1.1.3 ! root 97: !endif
! 98:
! 99: !if !DEFINED (SINGLE_CIPHER) || "$(SINGLE_CIPHER)" == "TWOFISH"
1.1 root 100: OBJS = $(OBJS) $(OUTDIR)\Twofish.obj
1.1.1.3 ! root 101: !endif
1.1 root 102:
103:
104: all: env $(TARGETS)
105:
106: env:
107: set INCLUDE=.
108: set LIB=.
109: set LIBPATH=.
110:
111: clean:
112: -del /q /s $(OBJDIR) >NUL:
113:
114:
115: .asm{$(OUTDIR)}.obj:
116: cd $(OBJDIR)
1.1.1.3 ! root 117: $(AS) $(AFLAGS) /c "$(SRCDIR)\$<"
! 118: cd ..
! 119:
! 120: {..\..\Crypto}.asm{$(OUTDIR)}.obj:
! 121: cd $(OBJDIR)
! 122: echo $(<F)
! 123: nasm.exe -Xvc -f obj -O3 "$(SRCDIR)\$<" -o "$(<B).obj" -l "$(<B).lst"
1.1 root 124: cd ..
125:
126: {..\..\Crypto}.c{$(OUTDIR)}.obj:
127: cd $(OBJDIR)
128: set PATH=.
1.1.1.3 ! root 129: $(CPP) $(CPPFLAGS) /c "$(SRCDIR)\$<"
1.1 root 130: set PATH=$(ENVPATH)
131: cd ..
132:
133: {..\..\Common}.c{$(OUTDIR)}.obj:
134: cd $(OBJDIR)
135: set PATH=.
1.1.1.3 ! root 136: $(CPP) $(CPPFLAGS) /c "$(SRCDIR)\$<"
1.1 root 137: set PATH=$(ENVPATH)
138: cd ..
1.1.1.3 ! root 139:
! 140: .c{$(OUTDIR)}.obj:
! 141: cd $(OBJDIR)
! 142: set PATH=.
! 143: $(CPP) $(CPPFLAGS) /c "$(SRCDIR)\$<"
! 144: set PATH=$(ENVPATH)
! 145: cd ..
! 146:
1.1 root 147: .cpp{$(OUTDIR)}.obj:
148: cd $(OBJDIR)
149: set PATH=.
1.1.1.3 ! root 150: $(CPP) $(CPPFLAGS) /c "$(SRCDIR)\$<"
1.1 root 151: set PATH=$(ENVPATH)
152: cd ..
153:
154: $(OUTDIR)\BootDefs.i: BootDefs.h
155: cd $(OBJDIR)
156: set PATH=.
1.1.1.3 ! root 157: $(CPP) $(CPPFLAGS) /D TC_ASM_PREPROCESS /P /EP "$(SRCDIR)\BootDefs.h"
1.1 root 158: set PATH=$(ENVPATH)
159: cd ..
160:
161: $(OUTDIR)\BootSector.bin: $(OUTDIR)\BootSector.obj
162: cd $(OBJDIR)
163: $(LD) $(LFLAGS) BootSector.obj,BootSector.bin,,,, >NUL:
164: -dd.exe conv=notrunc bs=512 conv=notrunc if=BootSector.bin of=$(PROJ).flp 2>NUL:
165: cd ..
166:
1.1.1.3 ! root 167: $(OUTDIR)\Decompressor.com: $(OUTDIR)\BootCrt.obj $(OUTDIR)\Decompressor.obj
! 168: cd $(OBJDIR)
! 169: $(LD) $(LFLAGS) BootCrt.obj Decompressor.obj,Decompressor.com,Decompressor.map,$(MSVC16_ROOT)\lib\+slibce,,
! 170: -dd.exe conv=notrunc,sync bs=512 seek=1 if=Decompressor.com of=$(PROJ).flp 2>NUL:
! 171: cd ..
1.1 root 172:
173: $(OUTDIR)\$(PROJ).$(TARGETEXT): $(OBJS)
174: @echo Linking...
175: cd $(OBJDIR)
176:
177: echo >NUL: @<<$(PROJ).crf2
1.1.1.3 ! root 178:
1.1 root 179: $(PROJ).$(TARGETEXT)
180: $(PROJ).map
181: $(MSVC16_ROOT)\lib\+
182: $(LIBS)
183: ;
184: <<
185: del $(PROJ).crf >NUL: 2>NUL:
186: for %F in ($(**F)) do @echo %F + >>$(PROJ).crf
187: type $(PROJ).crf2 >>$(PROJ).crf
188:
189: $(LD) $(LFLAGS) @$(PROJ).crf
190: del $(PROJ).crf $(PROJ).crf2
191:
192: !ifndef DEBUG
1.1.1.3 ! root 193: gzip.exe -c -n --best $(PROJ).$(TARGETEXT) >$(PROJ).$(TARGETEXT).gz
! 194: -dd.exe conv=notrunc,sync bs=512 seek=5 if=$(PROJ).$(TARGETEXT).gz of=$(PROJ).flp 2>NUL:
1.1 root 195: !endif
196: cd ..
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.