annotate buildHelper.d @ 192:eb38fdcb3e62 default tip

updated to compile with dmd2.062
author korDen
date Sat, 02 Mar 2013 01:25:52 -0800
parents 80660782bffe
children
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);
192
eb38fdcb3e62 updated to compile with dmd2.062
korDen
parents: 190
diff changeset
98 auto dir = dirName(file);
171
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);
192
eb38fdcb3e62 updated to compile with dmd2.062
korDen
parents: 190
diff changeset
106 if(str.length > 0 && str[$-1] != dirSeparator[0])
eb38fdcb3e62 updated to compile with dmd2.062
korDen
parents: 190
diff changeset
107 str ~= dirSeparator;
171
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);
192
eb38fdcb3e62 updated to compile with dmd2.062
korDen
parents: 190
diff changeset
116 if(str.length > 0 && str[$-1] == dirSeparator[0])
171
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
186
1a0c1126bc46 Fixed: Build script's initial setup fails if "{ddmd}/bin" doesn't already exist.
Abscissa
parents: 183
diff changeset
157 makePath("bin");
1a0c1126bc46 Fixed: Build script's initial setup fails if "{ddmd}/bin" doesn't already exist.
Abscissa
parents: 183
diff changeset
158
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
159 // Download dmd zip
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
160 if(!exists(dmdArchive) && shouldDownload)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
161 doSystem("wget "~dmdArchiveBaseURL~dmdArchive);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
162
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
163 // Extract dmd zip
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
164 writeln("Extracting dmd archive...");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
165 if(exists("dmd2"))
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
166 rmdirRecurse("dmd2");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
167 auto zip = new ZipArchive(std.file.read(dmdArchive));
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
168 foreach(member; zip.directory)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
169 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
170 makePathTo(member.name);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
171 std.file.write(member.name, zip.expand(member));
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
172 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
173
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
174 // Make mars2.c with 'main' hidden
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
175 doChDir("dmd2/src/dmd");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
176 copyAndPatch("mars.c", "mars2.c", (ref string data) {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
177 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
178 });
180
0622fff7810a Fixed a few memory allocation related issues
korDen
parents: 172
diff changeset
179
0622fff7810a Fixed a few memory allocation related issues
korDen
parents: 172
diff changeset
180 copyAndPatch("util.c", "util.c", (ref string data) {
0622fff7810a Fixed a few memory allocation related issues
korDen
parents: 172
diff changeset
181 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
182 });
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
183
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
184 // Apply patch
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
185 doChDir("../../..");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
186 doChDir("dmd2");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
187 doSystem("patch -p1 --binary < " ~ normFilePath("../dmdpatch.patch"));
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
188
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
189 // Setup makefile for dmd.lib
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
190 doChDir("..");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
191 doChDir("dmd2/src/dmd");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
192 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
193 enum makefile = "win32.mak";
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
194 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
195 {
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
196 version (linux)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
197 enum makefile = "linux_lib.mak";
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
198
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
199 else version (OSX)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
200 enum makefile = "osx_lib.mak";
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
201
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
202 doCopy("../../../"~makefile, makefile);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
203 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
204
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
205 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
206 copyAndPatch(makefile, makefile, (ref string data) {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
207 if(dmBase == "")
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
208 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
209 data = data.replace("\nCC=$(SCROOT)\\bin\\dmc", "\nCC=dmc");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
210 data = data.replace("\nLIB=$(SCROOT)\\bin\\lib", "\nLIB=lib");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
211 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
212 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
213 data = data.replace("\nD=", "\nD="~dmBase);
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
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
216
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
217 // Build dmd.lib
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
218 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
219 doSystem("make deblib -f"~makefile);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
220 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
221 doSystem("make -f"~makefile);
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
222 doCopy(dmdLib, "../../../" ~ dmdLib);
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
223
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
224 // Copy and patch config file
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
225 doChDir("../../..");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
226 copyAndPatch(
172
5a9a88e919f9 BuildHelper updated to use src and lib from dmd2/, not copies
korDen
parents: 171
diff changeset
227 normFilePath("dmd2/"~osSubDir~"/bin/"~configFile),
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
228 normFilePath("bin/"~configFile),
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
229 (ref string data) {
172
5a9a88e919f9 BuildHelper updated to use src and lib from dmd2/, not copies
korDen
parents: 171
diff changeset
230 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
231 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
232 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
233 );
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
234
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
235 // Copy linker
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
236 version (Windows)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
237 doCopy("dmd2/"~osSubDir~"/bin/link"~execExt, "bin/link"~execExt);
171
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 return true;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
240 }
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 int main(string[] args)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
243 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
244 endOfOptions = "";
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
245 bool help;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
246 bool shouldSetup;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
247 bool debugOnly;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
248 bool releaseOnly;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
249 dmdVersion = dmdVersionDefault;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
250 getopt(
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
251 args,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
252 std.getopt.config.caseSensitive,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
253 "setup", &shouldSetup,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
254 "debug|d", &debugOnly,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
255 "release|r", &releaseOnly,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
256 "ver", &dmdVersion,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
257 "download", &shouldDownload,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
258 "dmbase", &dmBase,
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
259 "help|h|H|?", &help
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
260 );
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
261
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
262 dmdPackage = "dmd."~dmdVersion;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
263 dmdArchive = dmdPackage~".zip";
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
264
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
265 auto helpMsg =
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
266 `This script will compile DDMD
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 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
269
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
270 Also, make sure you have GNU patch installed and current versions
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
271 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
272
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
273 Usage:
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
274 `~scriptName~` [options...]
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
275
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
276 --help,-h,-H,-? Display this help message
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
277 --debug,-d Only build debug version
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
278 --release,-r Only build release version
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
279 --ver={ver} Base DDMD off specific DMD version (default: `~dmdVersionDefault~`)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
280 --setup Run initial setup
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
281 --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
282 use wget to download it
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
283 --dmbase={path} Path to directory containing 'dm' for building dmd.lib
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
284 (Optional if --setup is used, otherwise ignored)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
285 `;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
286
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
287 // Assume the user meant they wanted both.
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
288 if(debugOnly && releaseOnly)
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 debugOnly = releaseOnly = false;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
291 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
292
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
293 if(
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
294 help ||
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
295 ( shouldSetup && !exists(dmdArchive) && !shouldDownload ) ||
190
80660782bffe Fixed deprecated function call
korDen@korDen-pc
parents: 186
diff changeset
296 ( shouldSetup && exists(dmdArchive) && !isFile(dmdArchive) )
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
297 )
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
298 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
299 write(helpMsg);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
300 return 1;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
301 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
302
190
80660782bffe Fixed deprecated function call
korDen@korDen-pc
parents: 186
diff changeset
303 if( !shouldSetup && (!exists(dmdLib) || !isFile(dmdLib)) )
171
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
304 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
305 auto needSetupMsg =
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
306 `'`~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
307
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
308 If you have GNU wget installed, just run:
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
309 `~scriptName~` --setup --download
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
310
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
311 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
312 directory. It can be obtained from:
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
313 `~dmdArchiveBaseURL~dmdArchive~`
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
314 Then run:
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
315 `~scriptName~` --setup
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
316
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
317 For a full list of options, run:
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
318 `~scriptName~` --help
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
319 `;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
320
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
321 write(needSetupMsg);
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
322 return 1;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
323 }
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(shouldSetup)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
326 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
327 if(!initialSetup())
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
328 return 1;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
329 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
330
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
331 int ret=0;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
332 version(Windows)
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
333 {
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
334 system("cls");
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
335 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
336 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
337 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
338 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
339 else
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
340 {
183
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
341 version (linux)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
342 auto commands = "@commands.linux.txt";
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
343
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
344 else version (OSX)
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
345 auto commands = "@commands.osx.txt";
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
346
190ba98276b3 Several changes to make it build on posix systems.
Jacob Carlborg <doob@me.com>
parents: 180
diff changeset
347 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
348 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
349 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
350 }
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
351
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
352 return ret;
b080e62b16b4 Enhanced buildscript to simplify compiling for new users
Abscissa
parents:
diff changeset
353 }