|
|
1.1 root 1: #
2: # Copyright (c) 2008 TrueCrypt Foundation. All rights reserved.
3: #
1.1.1.6 ! root 4: # Governed by the TrueCrypt License 2.7 the full text of which is contained
1.1 root 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: OBJDIR = Release
1.1.1.3 root 31:
1.1.1.4 root 32: !ifdef RESCUE_DISK
33: OBJDIR = Rescue
34: CPPFLAGS = $(CPPFLAGS) /D TC_WINDOWS_BOOT_RESCUE_DISK_MODE
35: !endif
36:
1.1.1.3 root 37: !ifdef SINGLE_CIPHER
38: OBJDIR = $(OBJDIR)_$(SINGLE_CIPHER)
39: CPPFLAGS = $(CPPFLAGS) /D TC_WINDOWS_BOOT_SINGLE_CIPHER_MODE /D TC_WINDOWS_BOOT_$(SINGLE_CIPHER)
40: !endif
41:
1.1 root 42: OUTDIR = $(OBJDIR)
43: TARGETEXT = com
1.1.1.3 root 44: TARGETS = $(OUTDIR)\BootDefs.i $(OUTDIR)\BootSector.bin $(OUTDIR)\Decompressor.com
1.1 root 45: CPPFLAGS = $(CPPFLAGS) /AT /Zl /f- /G3 /Oe /Os /Ob1 /OV0 /Gs /Gf /Gy /D NDEBUG
46: LFLAGS = $(LFLAGS) /NOD /NOE /TINY
47: OBJS = $(OUTDIR)\BootCrt.obj
48: LIBS = slibce
49:
1.1.1.3 root 50: !if 1
51: SRCDIR = ..
52: !else
53: SRCDIR = $(MAKEDIR)
54: !endif
1.1 root 55:
56: TARGETS = $(TARGETS) $(OUTDIR)\$(PROJ).$(TARGETEXT)
57:
58: OBJS = $(OBJS) $(OUTDIR)\BootConfig.obj
59: OBJS = $(OBJS) $(OUTDIR)\BootConsoleIo.obj
60: OBJS = $(OBJS) $(OUTDIR)\BootDebug.obj
61: OBJS = $(OBJS) $(OUTDIR)\BootDiskIo.obj
62: OBJS = $(OBJS) $(OUTDIR)\BootEncryptedIo.obj
63: OBJS = $(OBJS) $(OUTDIR)\BootMain.obj
1.1.1.2 root 64: OBJS = $(OBJS) $(OUTDIR)\BootMemory.obj
1.1 root 65: OBJS = $(OBJS) $(OUTDIR)\IntFilter.obj
66: OBJS = $(OBJS) $(OUTDIR)\Platform.obj
67:
68: OBJS = $(OBJS) $(OUTDIR)\Crc.obj
69: OBJS = $(OBJS) $(OUTDIR)\Crypto.obj
70: OBJS = $(OBJS) $(OUTDIR)\Endian.obj
71: OBJS = $(OBJS) $(OUTDIR)\Pkcs5.obj
72: OBJS = $(OBJS) $(OUTDIR)\Volumes.obj
73: OBJS = $(OBJS) $(OUTDIR)\Xts.obj
74:
1.1.1.3 root 75: OBJS = $(OBJS) $(OUTDIR)\Rmd160.obj
76:
77: !if !DEFINED (SINGLE_CIPHER)
1.1 root 78: OBJS = $(OBJS) $(OUTDIR)\AesSmall.obj
1.1.1.3 root 79: !else if "$(SINGLE_CIPHER)" == "AES"
80: OBJS = $(OBJS) $(OUTDIR)\AesSmall_x86.obj
81: OBJS = $(OBJS) $(OUTDIR)\Aestab.obj
82: !endif
83:
84: !if !DEFINED (SINGLE_CIPHER) || "$(SINGLE_CIPHER)" == "SERPENT"
1.1 root 85: OBJS = $(OBJS) $(OUTDIR)\Serpent.obj
1.1.1.3 root 86: !endif
87:
88: !if !DEFINED (SINGLE_CIPHER) || "$(SINGLE_CIPHER)" == "TWOFISH"
1.1 root 89: OBJS = $(OBJS) $(OUTDIR)\Twofish.obj
1.1.1.3 root 90: !endif
1.1 root 91:
92:
93: all: env $(TARGETS)
94:
95: env:
96: set INCLUDE=.
97: set LIB=.
98: set LIBPATH=.
99:
100: clean:
101: -del /q /s $(OBJDIR) >NUL:
102:
103:
104: .asm{$(OUTDIR)}.obj:
105: cd $(OBJDIR)
1.1.1.3 root 106: $(AS) $(AFLAGS) /c "$(SRCDIR)\$<"
107: cd ..
108:
109: {..\..\Crypto}.asm{$(OUTDIR)}.obj:
110: cd $(OBJDIR)
111: echo $(<F)
112: nasm.exe -Xvc -f obj -O3 "$(SRCDIR)\$<" -o "$(<B).obj" -l "$(<B).lst"
1.1 root 113: cd ..
114:
115: {..\..\Crypto}.c{$(OUTDIR)}.obj:
116: cd $(OBJDIR)
117: set PATH=.
1.1.1.3 root 118: $(CPP) $(CPPFLAGS) /c "$(SRCDIR)\$<"
1.1 root 119: set PATH=$(ENVPATH)
120: cd ..
121:
122: {..\..\Common}.c{$(OUTDIR)}.obj:
123: cd $(OBJDIR)
124: set PATH=.
1.1.1.3 root 125: $(CPP) $(CPPFLAGS) /c "$(SRCDIR)\$<"
1.1 root 126: set PATH=$(ENVPATH)
127: cd ..
1.1.1.3 root 128:
129: .c{$(OUTDIR)}.obj:
130: cd $(OBJDIR)
131: set PATH=.
132: $(CPP) $(CPPFLAGS) /c "$(SRCDIR)\$<"
133: set PATH=$(ENVPATH)
134: cd ..
135:
1.1 root 136: .cpp{$(OUTDIR)}.obj:
137: cd $(OBJDIR)
138: set PATH=.
1.1.1.3 root 139: $(CPP) $(CPPFLAGS) /c "$(SRCDIR)\$<"
1.1 root 140: set PATH=$(ENVPATH)
141: cd ..
142:
143: $(OUTDIR)\BootDefs.i: BootDefs.h
144: cd $(OBJDIR)
145: set PATH=.
1.1.1.3 root 146: $(CPP) $(CPPFLAGS) /D TC_ASM_PREPROCESS /P /EP "$(SRCDIR)\BootDefs.h"
1.1 root 147: set PATH=$(ENVPATH)
148: cd ..
149:
150: $(OUTDIR)\BootSector.bin: $(OUTDIR)\BootSector.obj
151: cd $(OBJDIR)
152: $(LD) $(LFLAGS) BootSector.obj,BootSector.bin,,,, >NUL:
153: -dd.exe conv=notrunc bs=512 conv=notrunc if=BootSector.bin of=$(PROJ).flp 2>NUL:
154: cd ..
155:
1.1.1.3 root 156: $(OUTDIR)\Decompressor.com: $(OUTDIR)\BootCrt.obj $(OUTDIR)\Decompressor.obj
157: cd $(OBJDIR)
158: $(LD) $(LFLAGS) BootCrt.obj Decompressor.obj,Decompressor.com,Decompressor.map,$(MSVC16_ROOT)\lib\+slibce,,
159: -dd.exe conv=notrunc,sync bs=512 seek=1 if=Decompressor.com of=$(PROJ).flp 2>NUL:
160: cd ..
1.1 root 161:
162: $(OUTDIR)\$(PROJ).$(TARGETEXT): $(OBJS)
163: @echo Linking...
164: cd $(OBJDIR)
165:
166: echo >NUL: @<<$(PROJ).crf2
1.1.1.3 root 167:
1.1 root 168: $(PROJ).$(TARGETEXT)
169: $(PROJ).map
170: $(MSVC16_ROOT)\lib\+
171: $(LIBS)
172: ;
173: <<
174: del $(PROJ).crf >NUL: 2>NUL:
175: for %F in ($(**F)) do @echo %F + >>$(PROJ).crf
176: type $(PROJ).crf2 >>$(PROJ).crf
177:
178: $(LD) $(LFLAGS) @$(PROJ).crf
179: del $(PROJ).crf $(PROJ).crf2
180:
1.1.1.3 root 181: gzip.exe -c -n --best $(PROJ).$(TARGETEXT) >$(PROJ).$(TARGETEXT).gz
182: -dd.exe conv=notrunc,sync bs=512 seek=5 if=$(PROJ).$(TARGETEXT).gz of=$(PROJ).flp 2>NUL:
1.1 root 183: cd ..
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.