added some support for Haiku

This commit is contained in:
Araq 2012-07-29 00:23:37 +02:00
commit 48e95fe9f9
4 changed files with 33 additions and 20 deletions

View file

@ -68,7 +68,8 @@ proc InitDefines*() =
of osWindows: of osWindows:
DefineSymbol("mswindows") DefineSymbol("mswindows")
DefineSymbol("win32") DefineSymbol("win32")
of osLinux, osMorphOS, osSkyOS, osIrix, osPalmOS, osQNX, osAtari, osAix: of osLinux, osMorphOS, osSkyOS, osIrix, osPalmOS, osQNX, osAtari, osAix,
osHaiku:
# these are all 'unix-like' # these are all 'unix-like'
DefineSymbol("unix") DefineSymbol("unix")
DefineSymbol("posix") DefineSymbol("posix")

View file

@ -21,7 +21,7 @@ type
# conditionals to condsyms (end of module). # conditionals to condsyms (end of module).
osNone, osDos, osWindows, osOs2, osLinux, osMorphos, osSkyos, osSolaris, osNone, osDos, osWindows, osOs2, osLinux, osMorphos, osSkyos, osSolaris,
osIrix, osNetbsd, osFreebsd, osOpenbsd, osAix, osPalmos, osQnx, osAmiga, osIrix, osNetbsd, osFreebsd, osOpenbsd, osAix, osPalmos, osQnx, osAmiga,
osAtari, osNetware, osMacos, osMacosx, osEcmaScript, osNimrodVM, osAtari, osNetware, osMacos, osMacosx, osHaiku, osEcmaScript, osNimrodVM,
osStandalone osStandalone
type type
@ -132,6 +132,10 @@ const
objExt: ".o", newLine: "\x0A", pathSep: ":", dirSep: "/", objExt: ".o", newLine: "\x0A", pathSep: ":", dirSep: "/",
scriptExt: ".sh", curDir: ".", exeExt: "", extSep: ".", scriptExt: ".sh", curDir: ".", exeExt: "", extSep: ".",
props: {ospNeedsPIC, ospPosix, ospLacksThreadVars}), props: {ospNeedsPIC, ospPosix, ospLacksThreadVars}),
(name: "Haiku", parDir: "..", dllFrmt: "lib$1.so", altDirSep: ":",
objExt: ".o", newLine: "\x0A", pathSep: ":", dirSep: "/",
scriptExt: ".sh", curDir: ".", exeExt: "", extSep: ".",
props: {ospNeedsPIC, ospPosix, ospLacksThreadVars}),
(name: "EcmaScript", parDir: "..", (name: "EcmaScript", parDir: "..",
dllFrmt: "lib$1.so", altDirSep: "/", dllFrmt: "lib$1.so", altDirSep: "/",
objExt: ".o", newLine: "\x0A", objExt: ".o", newLine: "\x0A",

View file

@ -8,23 +8,23 @@ set -e
while : while :
do do
case "$1" in case "$1" in
--extraBuildArgs) --extraBuildArgs)
extraBuildArgs=" $2" extraBuildArgs=" $2"
shift 2 shift 2
;; ;;
--) # End of all options --) # End of all options
shift shift
break; break;
;; ;;
-*) -*)
echo "Error: Unknown option: $1" >&2 echo "Error: Unknown option: $1" >&2
exit 1 exit 1
;; ;;
*) # No more options *) # No more options
break break
;; ;;
esac esac
done done
CC="gcc" CC="gcc"
@ -71,6 +71,10 @@ case $uos in
myos="solaris" myos="solaris"
LINK_FLAGS="$LINK_FLAGS -ldl -lm" LINK_FLAGS="$LINK_FLAGS -ldl -lm"
;; ;;
*haiku* )
myos="haiku"
# Haiku does not need -ldl nor -lm
;;
*) *)
echo "Error: unknown operating system: $uos" echo "Error: unknown operating system: $uos"
exit 1 exit 1
@ -78,7 +82,7 @@ case $uos in
esac esac
case $ucpu in case $ucpu in
*i386* | *i486* | *i586* | *i686* ) *i386* | *i486* | *i586* | *i686* | *bepc* )
mycpu="i386" ;; mycpu="i386" ;;
*amd*64* | *x86-64* | *x86_64* ) *amd*64* | *x86-64* | *x86_64* )
mycpu="amd64" ;; mycpu="amd64" ;;

View file

@ -99,6 +99,10 @@ Changes affecting backwards compatibility
to ``int8``. to ``int8``.
- ``bind`` expressions in templates are not properly supported anymore. Use - ``bind`` expressions in templates are not properly supported anymore. Use
the declarative ``bind`` statement instead. the declarative ``bind`` statement instead.
- The default calling convention for a procedural **type** is now ``closure``,
for procs it remains ``nimcall`` (which is compatible to ``closure``).
Activate the warning ``ImplicitClosure`` to make the compiler list the
occurances of proc types which are affected.
Compiler Additions Compiler Additions