|
|
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
45: OUTDIR = $(OBJDIR)
46: TARGETEXT = com
47: TARGETS = $(OUTDIR)\BootDefs.i $(OUTDIR)\BootSector.bin
48: CPPFLAGS = $(CPPFLAGS) /AT /Zl /f- /G3 /Oe /Os /Ob1 /OV0 /Gs /Gf /Gy /D NDEBUG
49: LFLAGS = $(LFLAGS) /NOD /NOE /TINY
50: OBJS = $(OUTDIR)\BootCrt.obj
51: LIBS = slibce
52:
53: !endif
54:
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:
75: OBJS = $(OBJS) $(OUTDIR)\AesSmall.obj
76: OBJS = $(OBJS) $(OUTDIR)\Serpent.obj
77: OBJS = $(OBJS) $(OUTDIR)\Twofish.obj
78: OBJS = $(OBJS) $(OUTDIR)\Rmd160.obj
79:
80:
81: all: env $(TARGETS)
82:
83: env:
84: set INCLUDE=.
85: set LIB=.
86: set LIBPATH=.
87:
88: clean:
89: -del /q /s $(OBJDIR) >NUL:
90:
91:
92: .asm{$(OUTDIR)}.obj:
93: cd $(OBJDIR)
94: $(AS) $(AFLAGS) /c ..\$<
95: cd ..
96:
97: {..\..\Crypto}.c{$(OUTDIR)}.obj:
98: cd $(OBJDIR)
99: set PATH=.
100: $(CPP) $(CPPFLAGS) /c ..\$<
101: set PATH=$(ENVPATH)
102: cd ..
103:
104: {..\..\Common}.c{$(OUTDIR)}.obj:
105: cd $(OBJDIR)
106: set PATH=.
107: $(CPP) $(CPPFLAGS) /c ..\$<
108: set PATH=$(ENVPATH)
109: cd ..
110:
111: .cpp{$(OUTDIR)}.obj:
112: cd $(OBJDIR)
113: set PATH=.
114: $(CPP) $(CPPFLAGS) /c ..\$<
115: set PATH=$(ENVPATH)
116: cd ..
117:
118: $(OUTDIR)\BootDefs.i: BootDefs.h
119: cd $(OBJDIR)
120: set PATH=.
121: $(CPP) /nologo /D TC_ASM_PREPROCESS /P /EP ..\BootDefs.h
122: set PATH=$(ENVPATH)
123: cd ..
124:
125: $(OUTDIR)\BootSector.bin: $(OUTDIR)\BootSector.obj
126: cd $(OBJDIR)
127: $(LD) $(LFLAGS) BootSector.obj,BootSector.bin,,,, >NUL:
128: -dd.exe conv=notrunc bs=512 conv=notrunc if=BootSector.bin of=$(PROJ).flp 2>NUL:
129: cd ..
130:
131:
132: $(OUTDIR)\$(PROJ).$(TARGETEXT): $(OBJS)
133: @echo Linking...
134: cd $(OBJDIR)
135:
136: echo >NUL: @<<$(PROJ).crf2
137:
138: $(PROJ).$(TARGETEXT)
139: $(PROJ).map
140: $(MSVC16_ROOT)\lib\+
141: $(LIBS)
142: ;
143: <<
144: del $(PROJ).crf >NUL: 2>NUL:
145: for %F in ($(**F)) do @echo %F + >>$(PROJ).crf
146: type $(PROJ).crf2 >>$(PROJ).crf
147:
148: $(LD) $(LFLAGS) @$(PROJ).crf
149: del $(PROJ).crf $(PROJ).crf2
150:
151: !ifndef DEBUG
152: -dd.exe conv=notrunc,sync bs=512 seek=1 if=$(PROJ).$(TARGETEXT) of=$(PROJ).flp 2>NUL:
153: !endif
154: cd ..
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.