|
|
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: #------ Command line arguments ------
10: # DEBUG: Disable optimizations, enable debug checks
11: # DEBUGGER: Enable debugging information for use by debuggers
12: # NOSTRIP: Do not strip release binaries
13: # VERBOSE: Enable verbose messages
14:
15: #------ Targets ------
16: # all
17: # clean
18: # wxbuild: Configure and build wxWidgets - source code must be located at $(WX_ROOT)
19:
20:
21: export APPNAME := truecrypt
22: export BASE_DIR := $(CURDIR)
23: export BUILD_INC := $(BASE_DIR)/Build/Include
24:
25: export TC_BUILD_CONFIG := Release
26:
27: ifeq "$(origin DEBUG)" "command line"
28: ifneq "$(DEBUG)" "0"
29: TC_BUILD_CONFIG := Debug
30: endif
31: endif
32:
33:
34: #------ Build configuration ------
35:
36: export AR ?= ar
37: export CC ?= gcc
38: export CXX ?= g++
39: export RANLIB ?= ranlib
40:
41: export CFLAGS := -W
42: export CXXFLAGS := -Wall
43:
44: C_CXX_FLAGS := -MMD -I$(BASE_DIR) -I$(BASE_DIR)/Crypto
45: C_CXX_FLAGS += -DBOOL=int -DFALSE=0 -DTRUE=1
46: C_CXX_FLAGS += -D__int8=char -D__int16=short -D__int32=int '-D__int64=long long' # Tested in PlatformTest
47:
48: export LFLAGS :=
49: export PKG_CONFIG_PATH ?= /usr/local/lib/pkgconfig
50:
51: WX_CONFIGURE_FLAGS :=
52: export WXCONFIG_CFLAGS :=
53: export WXCONFIG_CXXFLAGS :=
54: WX_ROOT ?= ..
55:
56: ifneq "$(origin VERBOSE)" "command line"
57: MAKEFLAGS += -s
58: endif
59:
60:
61: #------ Release configuration ------
62:
63: ifeq "$(TC_BUILD_CONFIG)" "Release"
64:
65: C_CXX_FLAGS += -O2 -fno-strict-aliasing # Do not enable strict aliasing
66: CXXFLAGS += -Wno-sign-compare -Wno-unused-parameter
67: export WX_BUILD_DIR ?= $(BASE_DIR)/wxrelease
68: WX_CONFIGURE_FLAGS += --disable-debug_flag --disable-debug_gdb --disable-debug_info
69:
70: else
71:
72: #------ Debug configuration ------
73:
74: C_CXX_FLAGS += -DDEBUG
75: CXXFLAGS += -fno-default-inline -Wno-sign-compare -Wno-unused-parameter -Wno-unused-function -Wno-unused-variable
76: export WX_BUILD_DIR ?= $(BASE_DIR)/wxdebug
77: WX_CONFIGURE_FLAGS += --enable-debug_flag --disable-debug_gdb --disable-debug_info
78:
79: endif
80:
81:
82: #------ Debugger configuration ------
83:
84: ifeq "$(origin DEBUGGER)" "command line"
85:
86: C_CXX_FLAGS += -ggdb
87: WX_CONFIGURE_FLAGS += --enable-debug_gdb --enable-debug_info
88:
89: endif
90:
91:
92: #------ Platform configuration ------
93:
94: export PLATFORM
95:
96:
97: #------ Linux configuration ------
98:
99: ifeq "$(shell uname -s)" "Linux"
100:
101: PLATFORM := Linux
102: C_CXX_FLAGS += -DTC_UNIX -DTC_LINUX
103:
104: ifeq "$(TC_BUILD_CONFIG)" "Release"
105: C_CXX_FLAGS += -fdata-sections -ffunction-sections
106: LFLAGS += -Wl,--gc-sections -Wl,--hash-style=sysv
107: WXCONFIG_CFLAGS += -fdata-sections -ffunction-sections
108: WXCONFIG_CXXFLAGS += -fdata-sections -ffunction-sections
109: endif
110:
111: endif
112:
113:
114: #------ Mac OS X configuration ------
115:
116: ifeq "$(shell uname -s)" "Darwin"
117:
118: PLATFORM := MacOSX
119: APPNAME := TrueCrypt
120: C_CXX_FLAGS += -DTC_UNIX -DTC_BSD -DTC_MACOSX
121:
122: ifeq "$(TC_BUILD_CONFIG)" "Release"
123: C_CXX_FLAGS += -gfull
124: LFLAGS += -Wl,-dead_strip
125: WXCONFIG_CFLAGS += -gfull
126: WXCONFIG_CXXFLAGS += -gfull
127: endif
128:
129: ifdef ARCH
130: C_CXX_FLAGS += -arch $(ARCH) -isysroot $(SDK)
131: LFLAGS += -arch $(ARCH) -Wl,-syslibroot $(SDK)
132: WXCONFIG_CFLAGS += -arch $(ARCH) -isysroot $(SDK)
133: WXCONFIG_CXXFLAGS += -arch $(ARCH) -isysroot $(SDK)
134: endif
135:
136: endif
137:
138:
139: #------ FreeBSD configuration ------
140:
141: ifeq "$(shell uname -s)" "FreeBSD"
142:
143: PLATFORM := FreeBSD
144: C_CXX_FLAGS += -DTC_UNIX -DTC_BSD -DTC_FREEBSD
145:
146: endif
147:
148:
149: CFLAGS := $(C_CXX_FLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
150: CXXFLAGS := $(C_CXX_FLAGS) $(CXXFLAGS) $(EXTRA_CXXFLAGS)
151: LFLAGS := $(LFLAGS) $(EXTRA_LFLAGS)
152:
153: WX_CONFIGURE_FLAGS += --enable-unicode -disable-shared --disable-dependency-tracking --disable-compat26 --enable-exceptions --enable-std_string --enable-dataobj --enable-mimetype \
154: --disable-protocol --disable-protocols --disable-url --disable-ipc --disable-sockets --disable-fs_inet --disable-ole --disable-docview --disable-clipboard \
155: --disable-help --disable-html --disable-mshtmlhelp --disable-htmlhelp --disable-mdi --disable-metafile --disable-webkit \
156: --disable-xrc --disable-aui --disable-postscript --disable-printarch \
157: --disable-arcstream --disable-fs_archive --disable-fs_zip --disable-tarstream --disable-zipstream \
158: --disable-animatectrl --disable-bmpcombobox --disable-calendar --disable-caret --disable-checklst --disable-collpane --disable-colourpicker --disable-comboctrl \
159: --disable-datepick --disable-display --disable-dirpicker --disable-filepicker --disable-fontpicker --disable-grid --disable-dataviewctrl \
160: --disable-listbook --disable-odcombobox --disable-sash --disable-searchctrl --disable-slider --disable-splitter --disable-togglebtn \
161: --disable-toolbar --disable-tbarnative --disable-treebook --disable-toolbook --disable-tipwindow --disable-popupwin \
162: --disable-commondlg --disable-aboutdlg --disable-coldlg --disable-finddlg --disable-fontdlg --disable-numberdlg --disable-splash \
163: --disable-tipdlg --disable-progressdlg --disable-wizarddlg --disable-miniframe --disable-tooltips --disable-splines --disable-palette \
164: --disable-richtext --disable-dialupman --disable-debugreport --disable-filesystem \
165: --disable-graphics_ctx --disable-sound --disable-mediactrl --disable-joystick --disable-apple_ieee \
166: --disable-gif --disable-pcx --disable-tga --disable-iff --disable-gif --disable-pnm \
167: --without-expat --without-libtiff --without-libjpeg --without-libpng -without-regex --without-zlib
168:
169:
170: #------ Project build ------
171:
172: PROJ_DIRS := Platform Volume Driver/Fuse Core Main
173:
174: .PHONY: all clean wxbuild
175:
176: all clean:
177: @for DIR in $(PROJ_DIRS); do \
178: PROJ=$$(echo $$DIR | cut -d/ -f1); \
179: $(MAKE) -C $$DIR -f $$PROJ.make NAME=$$PROJ $(MAKECMDGOALS) || exit $?; \
180: export LIBS="$(BASE_DIR)/$$DIR/$$PROJ.a $$LIBS"; \
181: done
182:
183:
184: #------ wxWidgets build ------
185:
186: ifeq "$(MAKECMDGOALS)" "wxbuild"
187: CFLAGS :=
188: CXXFLAGS :=
189: LFLAGS :=
190: endif
191:
192: wxbuild:
193:
194: ifneq "$(shell test -f $(WX_ROOT)/configure || test -f $(WX_BUILD_DIR)/../configure && echo 1)" "1"
195: @echo WX_ROOT must point to wxWidgets source code directory
196: @exit 1
197: endif
198:
199: mkdir -p $(WX_BUILD_DIR)
200: @echo Configuring wxWidgets library...
201: cd $(WX_BUILD_DIR) && $(WX_ROOT)/configure $(WX_CONFIGURE_FLAGS) >/dev/null
202:
203: @echo Building wxWidgets library...
204: cd $(WX_BUILD_DIR) && make
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.