diff options
Diffstat (limited to 'mingw.bld')
-rw-r--r-- | mingw.bld | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/mingw.bld b/mingw.bld new file mode 100644 index 0000000..f224fa0 --- /dev/null +++ b/mingw.bld | |||
@@ -0,0 +1,121 @@ | |||
1 | #build-m3 file for fishtrax client | ||
2 | |||
3 | action "default" | ||
4 | { | ||
5 | warning "Use the 'release' target to strip debugging and build without deps."; | ||
6 | DEBUG = "true"; | ||
7 | build: ["stage.exe"]; | ||
8 | } | ||
9 | |||
10 | action "release" | ||
11 | { | ||
12 | warning "Relesae will build without deps, and will strip debugging."; | ||
13 | DEBUG = "false"; | ||
14 | build: ["stage.exe"]; | ||
15 | } | ||
16 | |||
17 | action "clean" | ||
18 | { | ||
19 | clean: targets(); | ||
20 | } | ||
21 | |||
22 | CXXFLAGS += "-ggdb"; | ||
23 | |||
24 | target "stage.exe" | ||
25 | { | ||
26 | input [ | ||
27 | files("src/*.cpp") | ||
28 | // files("src/*.c") | ||
29 | ]; | ||
30 | rule "winexe"; | ||
31 | |||
32 | CXXFLAGS += "-O2 -frtti -fexceptions -Wall -Ilibbu++/support/windows -Isrc"; | ||
33 | |||
34 | LDFLAGS += "-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -lmingw32 -Llibbu++ -lbu++win -Llibbu++/support/windows -lbz2"; | ||
35 | |||
36 | CXXFLAGS += "-Ilibbu++"; | ||
37 | } | ||
38 | |||
39 | rule "winlib" | ||
40 | { | ||
41 | input "*.win_o"; | ||
42 | profile "build" | ||
43 | { | ||
44 | execute("wine C:/MinGW/bin/ar.exe cr ${OUTPUT} ${INPUT}"); | ||
45 | } | ||
46 | } | ||
47 | |||
48 | rule "winexe" | ||
49 | { | ||
50 | input "*.win_o"; | ||
51 | profile "build" | ||
52 | { | ||
53 | if DEBUG != "true" then | ||
54 | { | ||
55 | LDFLAGS += "-Wl,-s"; | ||
56 | } | ||
57 | execute("wine C:/MinGW/bin/mingw32-g++.exe -o ${OUTPUT} ${INPUT} ${LDFLAGS}"); | ||
58 | } | ||
59 | } | ||
60 | |||
61 | function cppToWinObj() | ||
62 | { | ||
63 | if OBJ_DIR == null then | ||
64 | { | ||
65 | DIR = INPUT.dirName(); | ||
66 | } | ||
67 | else | ||
68 | { | ||
69 | DIR = OBJ_DIR; | ||
70 | } | ||
71 | |||
72 | return DIR + "/" + INPUT.fileName().replace(".cpp", ".win_o"); | ||
73 | } | ||
74 | |||
75 | function cToWinObj() | ||
76 | { | ||
77 | if OBJ_DIR == null then | ||
78 | { | ||
79 | DIR = INPUT.dirName(); | ||
80 | } | ||
81 | else | ||
82 | { | ||
83 | DIR = OBJ_DIR; | ||
84 | } | ||
85 | |||
86 | return DIR + "/" + INPUT.fileName().replace(".c", ".win_o"); | ||
87 | } | ||
88 | |||
89 | function winDeps( CMD ) | ||
90 | { | ||
91 | if DEBUG == "true" then | ||
92 | { | ||
93 | return getMakeDeps( CMD ); | ||
94 | } | ||
95 | return []; | ||
96 | } | ||
97 | |||
98 | rule "wincpp" | ||
99 | { | ||
100 | input "*.cpp"; | ||
101 | output INPUT.cppToWinObj(); | ||
102 | requires winDeps("wine C:/MinGW/bin/g++.exe ${CXXFLAGS} -M ${INPUT}"); | ||
103 | profile "build" | ||
104 | { | ||
105 | //condition always; | ||
106 | execute("wine C:/MinGW/bin/mingw32-g++.exe ${CXXFLAGS} -c -o ${OUTPUT} ${INPUT}", "g++"); | ||
107 | } | ||
108 | } | ||
109 | |||
110 | rule "winc" | ||
111 | { | ||
112 | input "*.c"; | ||
113 | output INPUT.cToWinObj(); | ||
114 | requires winDeps("wine C:/MinGW/bin/g++.exe ${CXXFLAGS} -M ${INPUT}"); | ||
115 | profile "build" | ||
116 | { | ||
117 | //condition always; | ||
118 | execute("wine C:/MinGW/bin/mingw32-g++.exe ${CXXFLAGS} -c -o ${OUTPUT} ${INPUT}", "g++"); | ||
119 | } | ||
120 | } | ||
121 | |||