summary refs log tree commit diff stats
path: root/config/nimrod.cfg
blob: fdab40c6c2c5edbe445cccaaff6c0c77480d67b4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Configuration file for the Nimrod Compiler.
# (c) 2012 Andreas Rumpf

# Feel free to edit the default values as you need.

# You may set environment variables with
# @putenv "key" "val"
# Environment variables cannot be used in the options, however!

cc = gcc

@if nim: 
  # use the old fixed library for bootstrapping with Nim:
  lib = "nimlib"
@end

path="$lib/core"
path="$lib/pure"
path="$lib/pure/collections"
path="$lib/impure"
path="$lib/wrappers"
path="$lib/wrappers/cairo"
path="$lib/wrappers/gtk"
path="$lib/wrappers/lua"
path="$lib/wrappers/opengl"
path="$lib/wrappers/pcre"
path="$lib/wrappers/readline"
path="$lib/wrappers/sdl"
path="$lib/wrappers/x11"
path="$lib/wrappers/zip"
path="$lib/windows"
path="$lib/posix"
path="$lib/ecmas"
path="$lib/pure/unidecode"
#recursivePath:"$home/.babel/lib"

@if release or quick:
  obj_checks:off
  field_checks:off
  range_checks:off
  bound_checks:off
  overflow_checks:off
  assertions:off
  stacktrace:off
  debugger:off
  line_dir:off
  dead_code_elim:on
@end

@if release:
  opt:speed
@end

# additional options always passed to the compiler:
--verbosity: "1"
--parallel_build: "0" # 0 to auto-detect number of processors

hint[LineTooLong]=off
#hint[XDeclaredButNotUsed]=off

@if unix:
  @if not bsd:
    # -fopenmp
    gcc.options.linker = "-ldl"
    gpp.options.linker = "-ldl"
    clang.options.linker = "-ldl"
    tcc.options.linker = "-ldl"
  @else:
    # BSD got posix_spawn only recently, so we deactivate it for osproc:
    define:useFork
    # at least NetBSD has problems with thread local storage:
    tlsEmulation:on
  @end
@end

# Configuration for the Intel C/C++ compiler:
icc.options.always = "-cxxlib"
icc.options.linker = "-cxxlib"

# Configuration for the GNU C/C++ compiler:
@if windows:
  #gcc.path = r"$nimrod\dist\mingw\bin"
  @if gcc:
    tlsEmulation:on
  @end
@end

@if macosx:
  tlsEmulation:on
  gcc.options.always = "-w -fasm-blocks"
  gpp.options.always = "-w -fasm-blocks"
@else:
  gcc.options.always = "-w"
  gpp.options.always = "-w"
@end

gcc.options.speed = "-O3 -fno-strict-aliasing"
gcc.options.size = "-Os"
gcc.options.debug = "-g3 -O0"

gpp.options.speed = "-O3 -fno-strict-aliasing"
gpp.options.size = "-Os"
gpp.options.debug = "-g3 -O0"
#passl = "-pg"

# Configuration for the LLVM GCC compiler:
llvm_gcc.options.debug = "-g"
llvm_gcc.options.always = "-w"
llvm_gcc.options.speed = "-O2"
llvm_gcc.options.size = "-Os"

# Configuration for the LLVM CLang compiler:
clang.options.debug = "-g"
clang.options.always = "-w"
clang.options.speed = "-O3"
clang.options.size = "-Os"

# Configuration for the Visual C/C++ compiler:
vcc.options.linker = "/DEBUG /Zi /Fd\"$projectName.pdb\" /F33554432" # set the stack size to 8 MB
vcc.options.debug = "/Zi /Fd\"$projectName.pdb\""
vcc.options.always = "/nologo"
vcc.options.speed = "/Ox /arch:SSE2"
vcc.options.size = "/O1"

# Configuration for the Digital Mars C/C++ compiler:
@if windows:
  dmc.path = r"$nimrod\dist\dm\bin"
@end

# Configuration for the Tiny C Compiler:
tcc.options.always = "-w"