annotate buildHelper.d @ 183:190ba98276b3

Several changes to make it build on posix systems. I've only tried to build on Mac OS X but it should build on Linux now as well. This should also fix ticket #9.
author Jacob Carlborg <doob@me.com>
date Mon, 25 Oct 2010 15:36:13 +0200
parents 0622fff7810a
children 1a0c1126bc46
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
1 // Written in The D Programming Language
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
2 /// Script to build DDMD
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
3 import std.file;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
4 import std.getopt;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
5 import std.path;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
6 import std.process;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
7 import std.stdio;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
8 import std.string: replace, format;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
9 import std.zip;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
10
180
0622fff7810a Fixed a few memory allocation related issues
korDen
parents: 172
diff changeset
11 enum dmdVersionDefault = "2.040";
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
12 enum dmdArchiveBaseURL = "http://ftp.digitalmars.com/";
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
13 enum dmd = "dmd";
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
14
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
15 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
16 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
17 enum scriptName = "build.bat";
172
5a9a88e919f9 BuildHelper updated to use src and lib from dmd2/, not copies
korDen
parents: 171
diff changeset
18 enum osSubDir = "windows";
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
19 enum configFile = "sc.ini";
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
20 enum execExt = ".exe";
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
21 enum dmdLib = "dmd.lib";
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
22 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
23 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
24 {
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
25 version (OSX)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
26 enum osSubDir = "osx";
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
27
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
28 else version (linux)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
29 enum osSubDir = "linux";
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
30
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
31 enum scriptName = "./build.sh";
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
32 enum configFile = "dmd.conf";
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
33 enum execExt = "";
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
34 enum dmdLib = "libdmd.a";
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
35 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
36
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
37 string dmdVersion;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
38 string dmdPackage;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
39 string dmdArchive;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
40 string dmBase="";
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
41 bool shouldDownload;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
42
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
43 void doCopy(string from, string to)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
44 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
45 from = normFilePath(from);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
46 to = normFilePath(to);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
47
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
48 writefln(`copy "%s" "%s"`, from, to);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
49 copy(from, to);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
50 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
51
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
52 void doChDir(string dir)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
53 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
54 dir = normDirPath(dir);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
55
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
56 writefln(`chdir "%s"`, dir);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
57 chdir(dir);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
58 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
59
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
60 int doSystem(string cmd)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
61 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
62 writeln(cmd);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
63 stdout.flush();
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
64 return system(cmd);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
65 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
66
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
67 void copyRecurse(string from, string to)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
68 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
69 from = normDirPath(from)[0..$-1];
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
70 to = normDirPath(to)[0..$-1];
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
71 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
72 doSystem(`xcopy "%s" "%s" /E /I /Y /Q`.format(from, to));
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
73 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
74 doSystem(`cp '%s' '%s' -r`.format(from, to));
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
75 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
76
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
77 void copyAndPatch(string from, string to, void delegate(ref string) patcher)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
78 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
79 auto data = cast(string)read(from);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
80 patcher(data);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
81 std.file.write(to, data);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
82 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
83
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
84 /// makePath("C:\foo\bar\dir") will create "C:\foo\bar\dir" if it doesn't already exist.
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
85 /// makePath("C:\foo\bar\dir\") will create "C:\foo\bar\dir" if it doesn't already exist.
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
86 void makePath(string dir)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
87 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
88 dir = normDirPath(dir)[0..$-1];
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
89 if(!exists(dir))
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
90 mkdirRecurse(dir);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
91 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
92
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
93 /// makePathTo("C:\foo\bar\file.txt") will create "C:\foo\bar\" if it doesn't already exist.
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
94 /// makePathTo("C:\foo\bar\dir\") will create "C:\foo\bar\" if it doesn't already exist.
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
95 void makePathTo(string file)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
96 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
97 file = normFilePath(file);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
98 auto dir = dirname(file);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
99 makePath(dir);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
100 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
101
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
102 /// Ensure trailing slash and OS-correct path separators
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
103 string normDirPath(string str)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
104 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
105 str = normPathSep(str);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
106 if(str.length > 0 && str[$-1] != sep[0])
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
107 str ~= sep;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
108
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
109 return str;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
110 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
111
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
112 /// Ensure no trailing slash and OS-correct path separators
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
113 string normFilePath(string str)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
114 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
115 str = normPathSep(str);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
116 if(str.length > 0 && str[$-1] == sep[0])
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
117 str = str[0..$-1];
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
118
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
119 return str;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
120 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
121
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
122 /// Ensure OS-correct path separators
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
123 string normPathSep(string str)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
124 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
125 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
126 str = str.replace("/", "\\");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
127 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
128 str = str.replace("\\", "/");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
129
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
130 return str;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
131 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
132
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
133 unittest
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
134 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
135 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
136 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
137 assert(normDirPath ("C:\\a/b\\c/d" ) == "C:\\a\\b\\c\\d\\");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
138 assert(normDirPath ("C:\\a/b\\c/d\\") == "C:\\a\\b\\c\\d\\");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
139 assert(normDirPath ("C:\\a/b\\c/d/" ) == "C:\\a\\b\\c\\d\\");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
140 assert(normFilePath("C:\\a/b\\c/d" ) == "C:\\a\\b\\c\\d" );
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
141 assert(normFilePath("C:\\a/b\\c/d\\") == "C:\\a\\b\\c\\d" );
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
142 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
143 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
144 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
145 assert(normDirPath ("\\a/b\\c/d" ) == "/a/b/c/d/");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
146 assert(normDirPath ("\\a/b\\c/d\\") == "/a/b/c/d/");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
147 assert(normDirPath ("\\a/b\\c/d/" ) == "/a/b/c/d/");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
148 assert(normFilePath("\\a/b\\c/d" ) == "/a/b/c/d" );
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
149 assert(normFilePath("\\a/b\\c/d\\") == "/a/b/c/d" );
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
150 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
151 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
152
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
153 bool initialSetup()
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
154 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
155 writeln("Running initial setup...");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
156
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
157 // Download dmd zip
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
158 if(!exists(dmdArchive) && shouldDownload)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
159 doSystem("wget "~dmdArchiveBaseURL~dmdArchive);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
160
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
161 // Extract dmd zip
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
162 writeln("Extracting dmd archive...");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
163 if(exists("dmd2"))
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
164 rmdirRecurse("dmd2");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
165 auto zip = new ZipArchive(std.file.read(dmdArchive));
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
166 foreach(member; zip.directory)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
167 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
168 makePathTo(member.name);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
169 std.file.write(member.name, zip.expand(member));
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
170 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
172 // Make mars2.c with 'main' hidden
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
173 doChDir("dmd2/src/dmd");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
174 copyAndPatch("mars.c", "mars2.c", (ref string data) {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
175 data = data.replace("int main(int argc, char *argv[])", "int HIDE_main(int argc, char *argv[])");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
176 });
180
0622fff7810a Fixed a few memory allocation related issues
korDen
parents: 172
diff changeset
177
0622fff7810a Fixed a few memory allocation related issues
korDen
parents: 172
diff changeset
178 copyAndPatch("util.c", "util.c", (ref string data) {
0622fff7810a Fixed a few memory allocation related issues
korDen
parents: 172
diff changeset
179 data = data.replace("void util_assert(char *file,int line)", "void HIDE_util_assert(char *file,int line)");
0622fff7810a Fixed a few memory allocation related issues
korDen
parents: 172
diff changeset
180 });
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
181
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
182 // Apply patch
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
183 doChDir("../../..");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
184 doChDir("dmd2");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
185 doSystem("patch -p1 --binary < " ~ normFilePath("../dmdpatch.patch"));
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
186
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
187 // Setup makefile for dmd.lib
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
188 doChDir("..");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
189 doChDir("dmd2/src/dmd");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
190 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
191 enum makefile = "win32.mak";
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
192 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
193 {
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
194 version (linux)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
195 enum makefile = "linux_lib.mak";
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
196
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
197 else version (OSX)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
198 enum makefile = "osx_lib.mak";
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
199
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
200 doCopy("../../../"~makefile, makefile);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
201 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
202
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
203 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
204 copyAndPatch(makefile, makefile, (ref string data) {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
205 if(dmBase == "")
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
206 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
207 data = data.replace("\nCC=$(SCROOT)\\bin\\dmc", "\nCC=dmc");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
208 data = data.replace("\nLIB=$(SCROOT)\\bin\\lib", "\nLIB=lib");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
209 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
210 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
211 data = data.replace("\nD=", "\nD="~dmBase);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
212 });
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
213
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
214
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
215 // Build dmd.lib
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
216 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
217 doSystem("make deblib -f"~makefile);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
218 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
219 doSystem("make -f"~makefile);
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
220 doCopy(dmdLib, "../../../" ~ dmdLib);
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
221
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
222 // Copy and patch config file
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
223 doChDir("../../..");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
224 copyAndPatch(
172
5a9a88e919f9 BuildHelper updated to use src and lib from dmd2/, not copies
korDen
parents: 171
diff changeset
225 normFilePath("dmd2/"~osSubDir~"/bin/"~configFile),
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
226 normFilePath("bin/"~configFile),
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
227 (ref string data) {
172
5a9a88e919f9 BuildHelper updated to use src and lib from dmd2/, not copies
korDen
parents: 171
diff changeset
228 data = data.replace(normDirPath("../.."), normDirPath("../dmd2"));
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
229 data = data.replace(normDirPath("../lib")[0 .. $ - 1], normDirPath("../dmd2/"~osSubDir~"/lib")[0 .. $ - 1]);
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
230 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
231 );
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
232
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
233 // Copy linker
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
234 version (Windows)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
235 doCopy("dmd2/"~osSubDir~"/bin/link"~execExt, "bin/link"~execExt);
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
236
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
237 return true;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
238 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
239
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
240 int main(string[] args)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
241 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
242 endOfOptions = "";
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
243 bool help;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
244 bool shouldSetup;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
245 bool debugOnly;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
246 bool releaseOnly;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
247 dmdVersion = dmdVersionDefault;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
248 getopt(
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
249 args,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
250 std.getopt.config.caseSensitive,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
251 "setup", &shouldSetup,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
252 "debug|d", &debugOnly,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
253 "release|r", &releaseOnly,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
254 "ver", &dmdVersion,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
255 "download", &shouldDownload,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
256 "dmbase", &dmBase,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
257 "help|h|H|?", &help
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
258 );
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
259
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
260 dmdPackage = "dmd."~dmdVersion;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
261 dmdArchive = dmdPackage~".zip";
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
262
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
263 auto helpMsg =
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
264 `This script will compile DDMD
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
265
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
266 Note that this script must be run from the main DDMD directory.
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
267
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
268 Also, make sure you have GNU patch installed and current versions
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
269 of DMC and DMD (D2) on the PATH. (DMC is only needed on Windows.)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
270
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
271 Usage:
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
272 `~scriptName~` [options...]
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
273
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
274 --help,-h,-H,-? Display this help message
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
275 --debug,-d Only build debug version
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
276 --release,-r Only build release version
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
277 --ver={ver} Base DDMD off specific DMD version (default: `~dmdVersionDefault~`)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
278 --setup Run initial setup
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
279 --download If running initial setup and the dmd zip doesn't exist,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
280 use wget to download it
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
281 --dmbase={path} Path to directory containing 'dm' for building dmd.lib
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
282 (Optional if --setup is used, otherwise ignored)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
283 `;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
284
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
285 // Assume the user meant they wanted both.
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
286 if(debugOnly && releaseOnly)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
287 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
288 debugOnly = releaseOnly = false;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
289 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
290
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
291 if(
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
292 help ||
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
293 ( shouldSetup && !exists(dmdArchive) && !shouldDownload ) ||
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
294 ( shouldSetup && exists(dmdArchive) && !isfile(dmdArchive) )
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
295 )
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
296 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
297 write(helpMsg);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
298 return 1;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
299 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
300
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
301 if( !shouldSetup && (!exists(dmdLib) || !isfile(dmdLib)) )
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
302 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
303 auto needSetupMsg =
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
304 `'`~dmdLib~`' has not been built so you need to run the initial setup:
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
305
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
306 If you have GNU wget installed, just run:
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
307 `~scriptName~` --setup --download
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
308
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
309 If you don't have wget, download a copy of `~dmdArchive~` to this
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
310 directory. It can be obtained from:
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
311 `~dmdArchiveBaseURL~dmdArchive~`
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
312 Then run:
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
313 `~scriptName~` --setup
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
314
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
315 For a full list of options, run:
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
316 `~scriptName~` --help
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
317 `;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
318
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
319 write(needSetupMsg);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
320 return 1;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
321 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
322
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
323 if(shouldSetup)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
324 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
325 if(!initialSetup())
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
326 return 1;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
327 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
328
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
329 int ret=0;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
330 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
331 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
332 system("cls");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
333 if(ret == 0) ret = doSystem(r"dmc.exe bridge\bridge.cpp -c");
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
334 if(!releaseOnly) if(ret == 0) ret = doSystem(dmd ~ r" -debug -g @commands.txt");
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
335 if(!debugOnly) if(ret == 0) ret = doSystem(dmd ~ r" -release -O -inline @commands.txt");
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
336 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
337 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
338 {
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
339 version (linux)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
340 auto commands = "@commands.linux.txt";
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
341
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
342 else version (OSX)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
343 auto commands = "@commands.osx.txt";
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
344
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
345 if(ret == 0) ret = doSystem("g++ -m32 -c bridge/bridge.cpp -obridge.o");
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
346 if(!releaseOnly) if(ret == 0) ret = doSystem(dmd ~ " -debug -gc " ~ commands);
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
347 if(!debugOnly) if(ret == 0) ret = doSystem(dmd ~ " -release -O -inline " ~ commands);
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
348 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
349
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
350 return ret;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
351 }