Mercurial > projects > ldc
annotate premake.lua @ 581:8a8ee1f6b268
Only link default native backend by default.
Use the new option --add-backend to link in additional targets.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sun, 07 Sep 2008 15:30:34 +0200 |
parents | cbd6c8073a32 |
children | 723806dc48d8 |
rev | line source |
---|---|
1 | 1 project.name = llvmdc |
2 | |
268
23d0d9855cad
[svn r289] Fixed: right shift >> was broken for unsigned types.
lindquist
parents:
237
diff
changeset
|
3 -- options |
295
895e1b50cf2a
[svn r316] Fixed array slice assignments like: int[] arr = ...; arr[] = 42;
lindquist
parents:
285
diff
changeset
|
4 |
895e1b50cf2a
[svn r316] Fixed array slice assignments like: int[] arr = ...; arr[] = 42;
lindquist
parents:
285
diff
changeset
|
5 -- we always make vtables opaque, it simply kills performance... |
268
23d0d9855cad
[svn r289] Fixed: right shift >> was broken for unsigned types.
lindquist
parents:
237
diff
changeset
|
6 OPAQUE_VTBLS = 1 |
295
895e1b50cf2a
[svn r316] Fixed array slice assignments like: int[] arr = ...; arr[] = 42;
lindquist
parents:
285
diff
changeset
|
7 |
581
8a8ee1f6b268
Only link default native backend by default.
Christian Kamm <kamm incasoftware de>
parents:
571
diff
changeset
|
8 -- enables additional backends |
8a8ee1f6b268
Only link default native backend by default.
Christian Kamm <kamm incasoftware de>
parents:
571
diff
changeset
|
9 addoption("add-backend", "Link in more than the native LLVM backend") |
8a8ee1f6b268
Only link default native backend by default.
Christian Kamm <kamm incasoftware de>
parents:
571
diff
changeset
|
10 EXTRA_BACKENDS="" |
8a8ee1f6b268
Only link default native backend by default.
Christian Kamm <kamm incasoftware de>
parents:
571
diff
changeset
|
11 if options["add-backend"] then |
8a8ee1f6b268
Only link default native backend by default.
Christian Kamm <kamm incasoftware de>
parents:
571
diff
changeset
|
12 EXTRA_BACKENDS=options["add-backend"] |
8a8ee1f6b268
Only link default native backend by default.
Christian Kamm <kamm incasoftware de>
parents:
571
diff
changeset
|
13 end |
8a8ee1f6b268
Only link default native backend by default.
Christian Kamm <kamm incasoftware de>
parents:
571
diff
changeset
|
14 |
295
895e1b50cf2a
[svn r316] Fixed array slice assignments like: int[] arr = ...; arr[] = 42;
lindquist
parents:
285
diff
changeset
|
15 -- use of boehm gc |
544
1c7220171d41
Disable boehm gc by default. Use --enable-boehm-gc on premake to enable.
Christian Kamm <kamm incasoftware de>
parents:
366
diff
changeset
|
16 USE_BOEHM_GC = 0 |
1c7220171d41
Disable boehm gc by default. Use --enable-boehm-gc on premake to enable.
Christian Kamm <kamm incasoftware de>
parents:
366
diff
changeset
|
17 if OS ~= "windows" then |
1c7220171d41
Disable boehm gc by default. Use --enable-boehm-gc on premake to enable.
Christian Kamm <kamm incasoftware de>
parents:
366
diff
changeset
|
18 addoption("enable-boehm-gc", "Enable use of the Boehm GC (broken!)") |
295
895e1b50cf2a
[svn r316] Fixed array slice assignments like: int[] arr = ...; arr[] = 42;
lindquist
parents:
285
diff
changeset
|
19 |
544
1c7220171d41
Disable boehm gc by default. Use --enable-boehm-gc on premake to enable.
Christian Kamm <kamm incasoftware de>
parents:
366
diff
changeset
|
20 if options["enable-boehm-gc"] then |
295
895e1b50cf2a
[svn r316] Fixed array slice assignments like: int[] arr = ...; arr[] = 42;
lindquist
parents:
285
diff
changeset
|
21 USE_BOEHM_GC = 1 |
895e1b50cf2a
[svn r316] Fixed array slice assignments like: int[] arr = ...; arr[] = 42;
lindquist
parents:
285
diff
changeset
|
22 end |
285
297690b5d4a5
[svn r306] Fixed: it's now possible to compile and link llvmdc with MinGW32 and msys on Win32 :D I tried it myself ;) Building the runtime still needs some work, but it's a step in the right direction.
lindquist
parents:
268
diff
changeset
|
23 end |
268
23d0d9855cad
[svn r289] Fixed: right shift >> was broken for unsigned types.
lindquist
parents:
237
diff
changeset
|
24 |
571
cbd6c8073a32
Changed all '#if linux || __APPLE__' to '#if POSIX' so we can support other platforms too, thanx for the suggestion anders.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
544
diff
changeset
|
25 -- are we on a Posix system? |
cbd6c8073a32
Changed all '#if linux || __APPLE__' to '#if POSIX' so we can support other platforms too, thanx for the suggestion anders.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
544
diff
changeset
|
26 POSIX = 1 |
cbd6c8073a32
Changed all '#if linux || __APPLE__' to '#if POSIX' so we can support other platforms too, thanx for the suggestion anders.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
544
diff
changeset
|
27 if OS == "windows" then |
cbd6c8073a32
Changed all '#if linux || __APPLE__' to '#if POSIX' so we can support other platforms too, thanx for the suggestion anders.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
544
diff
changeset
|
28 POSIX = 0 |
cbd6c8073a32
Changed all '#if linux || __APPLE__' to '#if POSIX' so we can support other platforms too, thanx for the suggestion anders.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
544
diff
changeset
|
29 end |
cbd6c8073a32
Changed all '#if linux || __APPLE__' to '#if POSIX' so we can support other platforms too, thanx for the suggestion anders.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
544
diff
changeset
|
30 |
336 | 31 -- D version - don't change these !!! |
32 DMDV1 = "1" | |
33 | |
268
23d0d9855cad
[svn r289] Fixed: right shift >> was broken for unsigned types.
lindquist
parents:
237
diff
changeset
|
34 -- idgen |
1 | 35 package = newpackage() |
36 package.name = "idgen" | |
37 package.kind = "exe" | |
38 package.language = "c++" | |
39 package.files = { "dmd/idgen.c" } | |
40 package.buildoptions = { "-x c++" } | |
35
3cfcb944304e
[svn r39] * Updated to DMD 1.022 with the exception of:
lindquist
parents:
4
diff
changeset
|
41 package.postbuildcommands = { "./idgen", "mv -f id.c id.h dmd" } |
336 | 42 package.defines = { "DMDV1="..DMDV1 } |
1 | 43 |
268
23d0d9855cad
[svn r289] Fixed: right shift >> was broken for unsigned types.
lindquist
parents:
237
diff
changeset
|
44 -- impcnvgen |
1 | 45 package = newpackage() |
46 package.name = "impcnvgen" | |
47 package.kind = "exe" | |
48 package.language = "c++" | |
49 package.files = { "dmd/impcnvgen.c" } | |
50 package.buildoptions = { "-x c++" } | |
35
3cfcb944304e
[svn r39] * Updated to DMD 1.022 with the exception of:
lindquist
parents:
4
diff
changeset
|
51 package.postbuildcommands = { "./impcnvgen", "mv -f impcnvtab.c dmd" } |
336 | 52 package.defines = { "DMDV1="..DMDV1 } |
53 | |
268
23d0d9855cad
[svn r289] Fixed: right shift >> was broken for unsigned types.
lindquist
parents:
237
diff
changeset
|
54 -- llvmdc |
1 | 55 package = newpackage() |
35
3cfcb944304e
[svn r39] * Updated to DMD 1.022 with the exception of:
lindquist
parents:
4
diff
changeset
|
56 package.bindir = "bin" |
1 | 57 package.name = "llvmdc" |
58 package.kind = "exe" | |
59 package.language = "c++" | |
136
0e28624814e8
[svn r140] did a lot of the work towards being able to pass multiple modules on the command line. not complete yet though
lindquist
parents:
131
diff
changeset
|
60 package.files = { matchfiles("dmd/*.c"), matchfiles("gen/*.cpp"), matchfiles("ir/*.cpp") } |
366 | 61 package.excludes = { "dmd/idgen.c", "dmd/impcnvgen.c" } |
1 | 62 package.buildoptions = { "-x c++", "`llvm-config --cxxflags`" } |
131 | 63 package.linkoptions = { |
64 -- long but it's faster than just 'all' | |
581
8a8ee1f6b268
Only link default native backend by default.
Christian Kamm <kamm incasoftware de>
parents:
571
diff
changeset
|
65 "`llvm-config --libs backend asmparser bitreader bitwriter linker ipo instrumentation " .. EXTRA_BACKENDS .. "`", |
193
aca17e55b7a5
[svn r209] Fixed: exotic array to pointer casts were broken.
lindquist
parents:
136
diff
changeset
|
66 "`llvm-config --ldflags`", |
131 | 67 } |
193
aca17e55b7a5
[svn r209] Fixed: exotic array to pointer casts were broken.
lindquist
parents:
136
diff
changeset
|
68 package.defines = { |
aca17e55b7a5
[svn r209] Fixed: exotic array to pointer casts were broken.
lindquist
parents:
136
diff
changeset
|
69 "IN_LLVM", |
aca17e55b7a5
[svn r209] Fixed: exotic array to pointer casts were broken.
lindquist
parents:
136
diff
changeset
|
70 "_DH", |
268
23d0d9855cad
[svn r289] Fixed: right shift >> was broken for unsigned types.
lindquist
parents:
237
diff
changeset
|
71 "OPAQUE_VTBLS="..OPAQUE_VTBLS, |
23d0d9855cad
[svn r289] Fixed: right shift >> was broken for unsigned types.
lindquist
parents:
237
diff
changeset
|
72 "USE_BOEHM_GC="..USE_BOEHM_GC, |
336 | 73 "DMDV1="..DMDV1, |
571
cbd6c8073a32
Changed all '#if linux || __APPLE__' to '#if POSIX' so we can support other platforms too, thanx for the suggestion anders.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
544
diff
changeset
|
74 "POSIX="..POSIX, |
193
aca17e55b7a5
[svn r209] Fixed: exotic array to pointer casts were broken.
lindquist
parents:
136
diff
changeset
|
75 } |
1 | 76 package.config.Release.defines = { "LLVMD_NO_LOGGER" } |
86
fd32135dca3e
[svn r90] Major updates to the gen directory. Redesigned the 'elem' struct. Much more... !!!
lindquist
parents:
35
diff
changeset
|
77 package.config.Debug.buildoptions = { "-g -O0" } |
1 | 78 --package.targetprefix = "llvm" |
4
e116aa1488e6
[svn r8] changed backend includes to always use the gen/<foo>.h prefix
lindquist
parents:
1
diff
changeset
|
79 package.includepaths = { ".", "dmd" } |
1 | 80 --package.postbuildcommands = { "cd runtime; ./build.sh; cd .." } |
268
23d0d9855cad
[svn r289] Fixed: right shift >> was broken for unsigned types.
lindquist
parents:
237
diff
changeset
|
81 if USE_BOEHM_GC == 1 then |
23d0d9855cad
[svn r289] Fixed: right shift >> was broken for unsigned types.
lindquist
parents:
237
diff
changeset
|
82 package.links = { "gc" } |
23d0d9855cad
[svn r289] Fixed: right shift >> was broken for unsigned types.
lindquist
parents:
237
diff
changeset
|
83 end |