;
; configuration file for architectures and compiler options.
;
; the final value set is the one used.
;
; all '-m' parameters on the command line are parsed and processed in order.
;
; there is an implicit -mdefault processed first
; entries in the user config file are appended to this one.
;
; the cross compilation entries in this file should be treated as examples.
; although they work out of the box for many systems, cross compilation
; environments differ, so you may need to override them for your
; specific setup.

[default]
cc=gcc
gc=jgc
cflags=-std=gnu99 -D_GNU_SOURCE -falign-functions=4 -ffast-math -Wextra -Wall -Wno-unused-parameter -fno-strict-aliasing
cflags_debug=-g
cflags_nodebug=-DNDEBUG -O3
profile=false
autoload=haskell2010,haskell-extras,haskell98,applicative


; cross compilation entries

[win32]
cc=@MINGW@
executable_extension=.exe
merge=i686

[win64]
cc=@MINGW64@
executable_extension=.exe
merge=x86_64

[wii]
cc=powerpc-eabi-gcc
byteorder=be
cflags+=-g -DGEKKO -D__WORDSIZE=32 -mrvl -mcpu=750 -meabi -mhard-float
executable_extension=.elf
bits=32
bits_max=64
merge=be32

; macintosh, this is for cross compiling, not for native compilation on osx
[osx]

[osx-intel]
cc=i686-apple-darwin9-gcc
merge=i686
merge=osx

[osx-powerpc]
cc=powerpc-apple-darwin9-gcc
merge=be32
merge=osx

; a couple specific cpus
[i686]
merge=le32
arch=i686
bits_max=64
cflags_nodebug+=-fomit-frame-pointer

[x86_64]
bits_max=64
merge=le64

[le32]

byteorder=le
merge=32

[be32]
byteorder=be
merge=32

[le64]
byteorder=le
merge=64

[be64]
byteorder=be
merge=64

[32]
cflags+=-m32
bits=32

[64]
cflags+=-m64
bits=64

