mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-10 05:40:07 +02:00
* this fixes the wrong recipe names introduced by myself in #d525fee * adjust patch names to match corresponding recipes * additionally: create 'additional-files' folders as hint to some ports that do not have a proper recipe yet
2815 lines
90 KiB
Diff
2815 lines
90 KiB
Diff
diff -Naur dmd/src/dmd/backend/cc.h dmd1/src/dmd/backend/cc.h
|
|
--- dmd/src/dmd/backend/cc.h 2010-09-14 07:16:00.036962304 +0000
|
|
+++ dmd1/src/dmd/backend/cc.h 2010-09-19 15:18:13.894697472 +0000
|
|
@@ -82,7 +82,7 @@
|
|
WM_badnumber = 24,
|
|
WM_ccast = 25,
|
|
WM_obsolete = 26,
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
WM_skip_attribute = 27, // skip GNUC attribute specification
|
|
WM_warning_message = 28, // preprocessor warning message
|
|
WM_bad_vastart = 29, // args for builtin va_start bad
|
|
@@ -146,7 +146,7 @@
|
|
#include "msgs2.h"
|
|
#endif
|
|
#include "ty.h"
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#include "../tk/mem.h"
|
|
#else
|
|
#include "mem.h"
|
|
@@ -745,7 +745,7 @@
|
|
#define Fnteh 0x08 // uses NT Structured EH
|
|
#define Fdoinline 0x40 // do inline walk
|
|
#define Foverridden 0x80 // ignore for overriding purposes
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#define Fnowrite 0x100 // SCinline should never output definition
|
|
#else
|
|
#define Fjmonitor 0x100 // Jupiter synchronized function
|
|
@@ -800,7 +800,7 @@
|
|
// of SCftexpspec explicit specializations
|
|
Funcsym *Fsurrogatesym; // Fsurrogate: surrogate cast function
|
|
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
char *Fredirect; // redirect function name to this name in object
|
|
#endif
|
|
TARGET_structFUNC_S
|
|
@@ -1325,7 +1325,7 @@
|
|
#define SFLmutable 0x100000 // SCmember or SCfield is mutable
|
|
#define SFLdyninit 0x200000 // symbol has dynamic initializer
|
|
#define SFLtmp 0x400000 // symbol is a generated temporary
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#define SFLthunk 0x40000 // symbol is temporary for thunk
|
|
#endif
|
|
|
|
@@ -1543,7 +1543,7 @@
|
|
FLallocatmp, // temp for built-in alloca()
|
|
FLstack, // offset from ESP rather than EBP
|
|
FLdsymbol, // it's a Dsymbol
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
// Change this, update debug.c too
|
|
FLgot, // global offset table entry outside this object file
|
|
FLgotoff, // global offset table entry inside this object file
|
|
diff -Naur dmd/src/dmd/backend/cdef.h dmd1/src/dmd/backend/cdef.h
|
|
--- dmd/src/dmd/backend/cdef.h 2010-09-14 07:16:00.023068672 +0000
|
|
+++ dmd1/src/dmd/backend/cdef.h 2010-09-19 15:22:37.755236864 +0000
|
|
@@ -171,9 +171,14 @@
|
|
#define TARGET_SOLARIS 0 // target is a Solaris executable
|
|
#endif
|
|
|
|
+// Set to 1 using the makefile
|
|
+#ifndef TARGET_HAIKU
|
|
+#define TARGET_HAIKU 0 // target is a Haiku executable
|
|
+#endif
|
|
+
|
|
// This is the default
|
|
#ifndef TARGET_WINDOS
|
|
-#define TARGET_WINDOS (!(TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS))
|
|
+#define TARGET_WINDOS (!(TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU))
|
|
#endif
|
|
|
|
#if __GNUC__
|
|
@@ -242,7 +247,7 @@
|
|
|
|
// Precompiled header variations
|
|
#define MEMORYHX (_WINDLL && _WIN32) // HX and SYM files are cached in memory
|
|
-#define MMFIO (_WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4) // if memory mapped files
|
|
+#define MMFIO (_WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__) // if memory mapped files
|
|
#define LINEARALLOC _WIN32 // if we can reserve address ranges
|
|
|
|
// H_STYLE takes on one of these precompiled header methods
|
|
@@ -458,7 +463,7 @@
|
|
#define DOUBLESIZE 8
|
|
#if TARGET_OSX
|
|
#define LNGDBLSIZE 16 // 80 bit reals
|
|
-#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#define LNGDBLSIZE 12 // 80 bit reals
|
|
#else
|
|
#define LNGDBLSIZE 10 // 80 bit reals
|
|
@@ -509,7 +514,7 @@
|
|
#define OMFOBJ TARGET_WINDOS
|
|
#endif
|
|
#ifndef ELFOBJ
|
|
-#define ELFOBJ (TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS)
|
|
+#define ELFOBJ (TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU)
|
|
#endif
|
|
#ifndef MACHOBJ
|
|
#define MACHOBJ TARGET_OSX
|
|
@@ -696,6 +701,7 @@
|
|
#define EX_SCOUNIX 0x800
|
|
#define EX_UNIXSVR4 0x1000
|
|
#define EX_LINUX 0x2000
|
|
+#define EX_HAIKU 0x2000
|
|
#define EX_WIN64 0x4000 // AMD64 and Windows (64 bit mode)
|
|
#define EX_LINUX64 0x8000 // AMD64 and Linux (64 bit mode)
|
|
#define EX_OSX 0x10000
|
|
@@ -707,7 +713,7 @@
|
|
|
|
#define EX_flat (EX_OS2 | EX_NT | EX_LINUX | EX_WIN64 | EX_LINUX64 | \
|
|
EX_OSX | EX_OSX64 | EX_FREEBSD | EX_FREEBSD64 | \
|
|
- EX_SOLARIS | EX_SOLARIS64)
|
|
+ EX_SOLARIS | EX_SOLARIS64 | EX_HAIKU)
|
|
#define EX_dos (EX_DOSX | EX_ZPM | EX_RATIONAL | EX_PHARLAP | \
|
|
EX_COM | EX_MZ /*| EX_WIN16*/)
|
|
|
|
@@ -760,7 +766,7 @@
|
|
#define CFG3relax 0x200 // relaxed type checking (C only)
|
|
#define CFG3cpp 0x400 // C++ compile
|
|
#define CFG3igninc 0x800 // ignore standard include directory
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#define CFG3mars 0x1000 // use mars libs and headers
|
|
#define NO_FAR (TRUE) // always ignore __far and __huge keywords
|
|
#else
|
|
@@ -772,7 +778,7 @@
|
|
#define CFG3cppcomment 0x8000 // allow C++ style comments
|
|
#define CFG3wkfloat 0x10000 // make floating point references weak externs
|
|
#define CFG3digraphs 0x20000 // support ANSI C++ digraphs
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#define CFG3semirelax 0x40000 // moderate relaxed type checking
|
|
#endif
|
|
#define CFG3pic 0x80000 // position independent code
|
|
@@ -975,7 +981,7 @@
|
|
#define SYMBOLZERO
|
|
#endif
|
|
|
|
-#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#define UNIXFIELDS (unsigned)-1,(unsigned)-1,0,0,
|
|
#elif TARGET_OSX
|
|
#define UNIXFIELDS (unsigned)-1,(unsigned)-1,0,0,0,
|
|
diff -Naur dmd/src/dmd/backend/cg87.c dmd1/src/dmd/backend/cg87.c
|
|
--- dmd/src/dmd/backend/cg87.c 2010-09-14 07:16:00.041680896 +0000
|
|
+++ dmd1/src/dmd/backend/cg87.c 2010-09-19 16:00:13.923271168 +0000
|
|
@@ -619,7 +619,7 @@
|
|
static double dval[7] =
|
|
{0.0,1.0,PI,LOG2T,LOG2E,LOG2,LN2};
|
|
static long double ldval[7] =
|
|
-#if __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#define M_PIl 0x1.921fb54442d1846ap+1L // 3.14159 fldpi
|
|
#define M_LOG2T_L 0x1.a934f0979a3715fcp+1L // 3.32193 fldl2t
|
|
#define M_LOG2El 0x1.71547652b82fe178p+0L // 1.4427 fldl2e
|
|
diff -Naur dmd/src/dmd/backend/cgcod.c dmd1/src/dmd/backend/cgcod.c
|
|
--- dmd/src/dmd/backend/cgcod.c 2010-09-14 07:16:00.010223616 +0000
|
|
+++ dmd1/src/dmd/backend/cgcod.c 2010-09-19 15:23:23.361496576 +0000
|
|
@@ -127,7 +127,7 @@
|
|
csmax = 64;
|
|
csextab = (struct CSE *) util_calloc(sizeof(struct CSE),csmax);
|
|
functy = tybasic(funcsym_p->ty());
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (0 && config.flags3 & CFG3pic)
|
|
{
|
|
ALLREGS = ALLREGS_INIT_PIC;
|
|
@@ -1002,7 +1002,7 @@
|
|
#endif
|
|
if (config.flags2 & CFG2seh)
|
|
c = cat(c,nteh_unwind(0,toindex));
|
|
-#if MARS && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS)
|
|
+#if MARS && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU)
|
|
else if (toindex + 1 <= fromindex)
|
|
{
|
|
//c = cat(c, linux_unwind(0, toindex));
|
|
@@ -1089,7 +1089,7 @@
|
|
assert(!getregs(allregs));
|
|
assert(!e);
|
|
assert(!bl->Bcode);
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (config.flags3 & CFG3pic)
|
|
{
|
|
if (STACKALIGN == 16)
|
|
@@ -1553,7 +1553,7 @@
|
|
return mST0;
|
|
|
|
case TYcfloat:
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (I32 && tybasic(tyf) == TYnfunc)
|
|
return mDX | mAX;
|
|
#endif
|
|
@@ -2492,7 +2492,7 @@
|
|
case OPrelconst:
|
|
c = cdrelconst(e,pretregs);
|
|
break;
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
case OPgot:
|
|
c = cdgot(e,pretregs);
|
|
break;
|
|
diff -Naur dmd/src/dmd/backend/cgelem.c dmd1/src/dmd/backend/cgelem.c
|
|
--- dmd/src/dmd/backend/cgelem.c 2010-09-14 07:16:00.005242880 +0000
|
|
+++ dmd1/src/dmd/backend/cgelem.c 2010-09-19 15:24:12.137101312 +0000
|
|
@@ -812,7 +812,7 @@
|
|
e2 = e->E2;
|
|
if (e2->Eoper == OPconst)
|
|
{
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (e1->Eoper == OPrelconst && e1->EV.sp.Vsym->Sfl == FLgot)
|
|
goto ret;
|
|
#endif
|
|
@@ -827,7 +827,7 @@
|
|
}
|
|
else if (e1->Eoper == OPconst)
|
|
{
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (e2->Eoper == OPrelconst && e2->EV.sp.Vsym->Sfl == FLgot)
|
|
goto ret;
|
|
#endif
|
|
diff -Naur dmd/src/dmd/backend/cod1.c dmd1/src/dmd/backend/cod1.c
|
|
--- dmd/src/dmd/backend/cod1.c 2010-09-14 07:16:00.022282240 +0000
|
|
+++ dmd1/src/dmd/backend/cod1.c 2010-09-19 15:25:02.416808960 +0000
|
|
@@ -1279,7 +1279,7 @@
|
|
case FLextern:
|
|
if (s->Sident[0] == '_' && memcmp(s->Sident + 1,"tls_array",10) == 0)
|
|
{
|
|
-#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
// Rewrite as GS:[0000], or FS:[0000] for 64 bit
|
|
if (I64)
|
|
{
|
|
@@ -1307,7 +1307,7 @@
|
|
case FLdata:
|
|
case FLudata:
|
|
case FLcsdata:
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
case FLgot:
|
|
case FLgotoff:
|
|
case FLtlsdata:
|
|
@@ -1338,7 +1338,7 @@
|
|
{
|
|
pcs->Iflags |= CFcs | CFoff;
|
|
}
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (I64 && config.flags3 & CFG3pic &&
|
|
(fl == FLtlsdata || s->ty() & mTYthread))
|
|
{
|
|
@@ -1923,12 +1923,12 @@
|
|
{
|
|
//printf("callclib(e = %p, clib = %d, *pretregs = %s, keepmask = %s\n", e, clib, regm_str(*pretregs), regm_str(keepmask));
|
|
//elem_print(e);
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
static symbol lib[] =
|
|
{
|
|
/* Convert destroyed regs into saved regs */
|
|
#define Z(desregs) (~(desregs) & (mBP| mES | ALLREGS))
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#define N(name) "_" name
|
|
#else
|
|
#define N(name) name
|
|
@@ -2149,7 +2149,7 @@
|
|
{DOUBLEREGS_16,DOUBLEREGS_32,0,INFfloat,1,1}, // _INTDBL@ intdbl
|
|
{mAX,mAX,0,INFfloat,1,1}, // _DBLUNS@ dbluns
|
|
{DOUBLEREGS_16,DOUBLEREGS_32,0,INFfloat,1,1}, // _UNSDBL@ unsdbl
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
{mDX|mAX,mAX,0,INF32|INFfloat,0,1}, // _DBLULNG@ dblulng
|
|
#else
|
|
{mDX|mAX,mAX,0,INFfloat,1,1}, // _DBLULNG@ dblulng
|
|
@@ -2162,7 +2162,7 @@
|
|
|
|
{DOUBLEREGS_16,mDX|mAX,0,INFfloat,1,1}, // _DBLLLNG@
|
|
{DOUBLEREGS_16,DOUBLEREGS_32,0,INFfloat,1,1}, // _LLNGDBL@
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
{DOUBLEREGS_16,mDX|mAX,0,INFfloat,2,2}, // _DBLULLNG@
|
|
#else
|
|
{DOUBLEREGS_16,mDX|mAX,0,INFfloat,1,1}, // _DBLULLNG@
|
|
diff -Naur dmd/src/dmd/backend/cod2.c dmd1/src/dmd/backend/cod2.c
|
|
--- dmd/src/dmd/backend/cod2.c 2010-09-14 07:16:00.049020928 +0000
|
|
+++ dmd1/src/dmd/backend/cod2.c 2010-09-19 15:25:43.999292928 +0000
|
|
@@ -151,7 +151,7 @@
|
|
|
|
ty1 = tybasic(e1->Ety);
|
|
if (tyfloating(ty1))
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
return orth87(e,pretregs);
|
|
#else
|
|
return opdouble(e,pretregs,(e->Eoper == OPadd) ? CLIBdadd
|
|
@@ -793,7 +793,7 @@
|
|
unsigned grex = rex << 16;
|
|
|
|
if (tyfloating(tyml))
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
return orth87(e,pretregs);
|
|
#else
|
|
return opdouble(e,pretregs,(oper == OPmul) ? CLIBdmul : CLIBddiv);
|
|
@@ -3761,7 +3761,7 @@
|
|
goto L4;
|
|
|
|
case FLtlsdata:
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
{
|
|
L5:
|
|
if (I64 && config.flags3 & CFG3pic)
|
|
@@ -3853,13 +3853,13 @@
|
|
goto L4;
|
|
|
|
case FLextern:
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (e->EV.sp.Vsym->ty() & mTYthread)
|
|
goto L5;
|
|
#endif
|
|
case FLdata:
|
|
case FLudata:
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
case FLgot:
|
|
case FLgotoff:
|
|
#endif
|
|
@@ -4141,7 +4141,7 @@
|
|
|
|
if (tyfloating(tyml))
|
|
{
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
return post87(e,pretregs);
|
|
#else
|
|
if (config.inline8087)
|
|
diff -Naur dmd/src/dmd/backend/cod3.c dmd1/src/dmd/backend/cod3.c
|
|
--- dmd/src/dmd/backend/cod3.c 2010-09-14 07:16:00.003145728 +0000
|
|
+++ dmd1/src/dmd/backend/cod3.c 2010-09-19 15:26:46.276037632 +0000
|
|
@@ -534,7 +534,7 @@
|
|
genjmp(c,JNE,FLblock,list_block(b->Bsucc)); /* JNE default */
|
|
}
|
|
ce = getregs(mCX|mDI);
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (config.flags3 & CFG3pic)
|
|
{ // Add in GOT
|
|
code *cx;
|
|
@@ -614,7 +614,7 @@
|
|
mod = (disp > 127) ? 2 : 1; /* 1 or 2 byte displacement */
|
|
if (config.flags & CFGromable)
|
|
gen1(ce,SEGCS); /* table is in code segment */
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (config.flags3 & CFG3pic)
|
|
{ // ADD EDX,(ncases-1)*2[EDI]
|
|
ct = genc1(CNIL,0x03,modregrm(mod,DX,7),FLconst,disp);
|
|
@@ -1092,7 +1092,7 @@
|
|
gen1(c, 0x58 + reg); // L1: POP reg
|
|
|
|
return cat(c,fixresult(e,retregs,pretregs));
|
|
-#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
regm_t retregs;
|
|
unsigned reg;
|
|
code *c;
|
|
@@ -1125,7 +1125,7 @@
|
|
#endif
|
|
}
|
|
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
/*****************************
|
|
* Returns:
|
|
* # of bytes stored
|
|
@@ -1401,7 +1401,7 @@
|
|
if (config.wflags & WFincbp && farfunc)
|
|
c = gen1(c,0x40 + BP); /* INC BP */
|
|
if (config.target_cpu < TARGET_80286 ||
|
|
- config.exe & (EX_LINUX | EX_LINUX64 | EX_OSX | EX_OSX64 | EX_FREEBSD | EX_FREEBSD64 | EX_SOLARIS | EX_SOLARIS64) ||
|
|
+ config.exe & (EX_LINUX | EX_LINUX64 | EX_OSX | EX_OSX64 | EX_FREEBSD | EX_FREEBSD64 | EX_SOLARIS | EX_SOLARIS64 | EX_HAIKU) ||
|
|
!localsize ||
|
|
config.flags & CFGstack ||
|
|
(xlocalsize >= 0x1000 && config.exe & EX_flat) ||
|
|
@@ -2077,7 +2077,7 @@
|
|
|
|
code *cod3_load_got()
|
|
{
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
code *c;
|
|
code *cgot;
|
|
|
|
@@ -2259,7 +2259,7 @@
|
|
sthunk->Soffset = thunkoffset;
|
|
sthunk->Ssize = Coffset - thunkoffset; /* size of thunk */
|
|
sthunk->Sseg = cseg;
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
objpubdef(cseg,sthunk,sthunk->Soffset);
|
|
#endif
|
|
searchfixlist(sthunk); /* resolve forward refs */
|
|
@@ -4251,7 +4251,7 @@
|
|
// un-named external with is the start of .rodata or .data
|
|
case FLextern: /* external data symbol */
|
|
case FLtlsdata:
|
|
-#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
case FLgot:
|
|
case FLgotoff:
|
|
#endif
|
|
@@ -4344,7 +4344,7 @@
|
|
// un-named external with is the start of .rodata or .data
|
|
case FLextern: /* external data symbol */
|
|
case FLtlsdata:
|
|
-#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
case FLgot:
|
|
case FLgotoff:
|
|
#endif
|
|
@@ -4568,7 +4568,7 @@
|
|
// resolve directly.
|
|
if (s->Sseg == p->Lseg &&
|
|
(s->Sclass == SCstatic ||
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
(!(config.flags3 & CFG3pic) && s->Sclass == SCglobal)) &&
|
|
#else
|
|
s->Sclass == SCglobal) &&
|
|
diff -Naur dmd/src/dmd/backend/cod4.c dmd1/src/dmd/backend/cod4.c
|
|
--- dmd/src/dmd/backend/cod4.c 2010-09-14 07:16:00.025165824 +0000
|
|
+++ dmd1/src/dmd/backend/cod4.c 2010-09-19 15:27:05.449576960 +0000
|
|
@@ -749,7 +749,7 @@
|
|
byte = (sz == 1); // 1 for byte operation, else 0
|
|
if (tyfloating(tyml))
|
|
{
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (op == OPnegass)
|
|
c = cdnegass87(e,pretregs);
|
|
else
|
|
@@ -1192,7 +1192,7 @@
|
|
|
|
|
|
if (tyfloating(tyml))
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
return opass87(e,pretregs);
|
|
#else
|
|
return opassdbl(e,pretregs,op);
|
|
@@ -1685,7 +1685,7 @@
|
|
unsigned rex = (I64 && sz == 8) ? REX_W : 0;
|
|
unsigned grex = rex << 16; // 64 bit operands
|
|
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (tyfloating(tym)) /* if floating operation */
|
|
{
|
|
retregs = mPSW;
|
|
@@ -2427,7 +2427,7 @@
|
|
case OPd_s64:
|
|
return cnvt87(e,pretregs);
|
|
case OPd_u32: // use subroutine, not 8087
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
retregs = mST0;
|
|
#else
|
|
retregs = DOUBLEREGS;
|
|
diff -Naur dmd/src/dmd/backend/code.h dmd1/src/dmd/backend/code.h
|
|
--- dmd/src/dmd/backend/code.h 2010-09-14 07:16:00.039059456 +0000
|
|
+++ dmd1/src/dmd/backend/code.h 2010-09-19 15:27:18.326369280 +0000
|
|
@@ -110,7 +110,7 @@
|
|
#define RMload (1 << 30)
|
|
#define RMstore (1 << 31)
|
|
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
// To support positional independent code,
|
|
// must be able to remove BX from available registers
|
|
extern regm_t ALLREGS;
|
|
@@ -669,7 +669,7 @@
|
|
cd_t cdcomma;
|
|
cd_t cdloglog;
|
|
cd_t cdshift;
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
cd_t cdindpic;
|
|
#endif
|
|
cd_t cdind;
|
|
diff -Naur dmd/src/dmd/backend/debug.c dmd1/src/dmd/backend/debug.c
|
|
--- dmd/src/dmd/backend/debug.c 2010-09-14 07:16:00.005767168 +0000
|
|
+++ dmd1/src/dmd/backend/debug.c 2010-09-19 15:27:38.099876864 +0000
|
|
@@ -101,7 +101,7 @@
|
|
if (t & mTYpasobj)
|
|
dbg_printf("mTYpasobj|");
|
|
#endif
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
if (t & mTYtransu)
|
|
dbg_printf("mTYtransu|");
|
|
#endif
|
|
@@ -294,7 +294,7 @@
|
|
"ndp ","farda ","local ","csdat ","tlsdat",
|
|
"bprel ","frameh","asm ","blocko","alloca",
|
|
"stack ","dsym ",
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
"got ","gotoff",
|
|
#endif
|
|
#endif
|
|
diff -Naur dmd/src/dmd/backend/dwarf.c dmd1/src/dmd/backend/dwarf.c
|
|
--- dmd/src/dmd/backend/dwarf.c 2010-09-14 07:16:00.007077888 +0000
|
|
+++ dmd1/src/dmd/backend/dwarf.c 2010-09-19 15:28:04.921174016 +0000
|
|
@@ -22,7 +22,7 @@
|
|
#include <malloc.h>
|
|
#endif
|
|
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#include <signal.h>
|
|
#include <unistd.h>
|
|
#include <errno.h>
|
|
@@ -402,7 +402,7 @@
|
|
linebuf->writeString((char *)list_ptr(pl));
|
|
linebuf->writeByte(0);
|
|
}
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
for (pl = pathsyslist; pl; pl = list_next(pl))
|
|
{
|
|
linebuf->writeString((char *)list_ptr(pl));
|
|
diff -Naur dmd/src/dmd/backend/el.c dmd1/src/dmd/backend/el.c
|
|
--- dmd/src/dmd/backend/el.c 2010-09-14 07:16:00.015728640 +0000
|
|
+++ dmd1/src/dmd/backend/el.c 2010-09-19 15:28:43.187170816 +0000
|
|
@@ -1329,7 +1329,7 @@
|
|
return e;
|
|
}
|
|
#endif
|
|
-#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
|
|
elem *el_picvar(symbol *s)
|
|
{ elem *e;
|
|
@@ -1531,10 +1531,10 @@
|
|
|
|
//printf("el_var(s = '%s')\n", s->Sident);
|
|
//printf("%x\n", s->Stype->Tty);
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
// OSX is currently always pic
|
|
if (config.flags3 & CFG3pic &&
|
|
-#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
(!(s->Stype->Tty & mTYthread) || I64) &&
|
|
#endif
|
|
!tyfunc(s->ty()))
|
|
@@ -1553,7 +1553,7 @@
|
|
//printf("thread local %s\n", s->Sident);
|
|
#if TARGET_OSX
|
|
;
|
|
-#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
/* For 32 bit:
|
|
* Generate for var locals:
|
|
* MOV reg,GS:[00000000] // add GS: override in back end
|
|
@@ -1658,7 +1658,7 @@
|
|
{ elem *e;
|
|
|
|
//printf("el_var(s = '%s')\n", s->Sident);
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (config.flags3 & CFG3pic && !tyfunc(s->ty()))
|
|
return el_picvar(s);
|
|
#endif
|
|
@@ -1755,7 +1755,7 @@
|
|
return e;
|
|
}
|
|
#endif
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (config.flags3 & CFG3pic && tyfunc(s->ty()))
|
|
e = el_picvar(s);
|
|
else
|
|
diff -Naur dmd/src/dmd/backend/elfobj.c dmd1/src/dmd/backend/elfobj.c
|
|
--- dmd/src/dmd/backend/elfobj.c 2010-09-14 07:16:00.040632320 +0000
|
|
+++ dmd1/src/dmd/backend/elfobj.c 2010-09-19 15:28:59.817364992 +0000
|
|
@@ -1863,7 +1863,7 @@
|
|
}
|
|
break;
|
|
case mTYman_std:
|
|
-#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (tyfunc(s->ty()) && !variadic(s->Stype))
|
|
#else
|
|
if (!(config.flags4 & CFG4oldstdmangle) &&
|
|
diff -Naur dmd/src/dmd/backend/evalu8.c dmd1/src/dmd/backend/evalu8.c
|
|
--- dmd/src/dmd/backend/evalu8.c 2010-09-14 07:16:00.031981568 +0000
|
|
+++ dmd1/src/dmd/backend/evalu8.c 2010-09-19 15:29:18.926416896 +0000
|
|
@@ -42,7 +42,7 @@
|
|
|
|
extern void error(const char *filename, unsigned linnum, const char *format, ...);
|
|
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
int _status87()
|
|
{
|
|
return fetestexcept(FE_ALL_EXCEPT);
|
|
@@ -514,7 +514,7 @@
|
|
if (e2->Eoper == OPconst)
|
|
{ targ_int i = e2->EV.Vint;
|
|
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (i && e1->EV.sp.Vsym->Sfl == FLgot)
|
|
break;
|
|
#endif
|
|
diff -Naur dmd/src/dmd/backend/global.h dmd1/src/dmd/backend/global.h
|
|
--- dmd/src/dmd/backend/global.h 2010-09-14 07:16:00.052428800 +0000
|
|
+++ dmd1/src/dmd/backend/global.h 2010-09-19 15:29:26.810549248 +0000
|
|
@@ -546,7 +546,7 @@
|
|
void dwarf_CFA_args_size(size_t sz);
|
|
#endif
|
|
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
void elfobj_gotref(symbol *s);
|
|
symbol *elfobj_getGOTsym();
|
|
void elfobj_refGOTsym();
|
|
diff -Naur dmd/src/dmd/backend/machobj.c dmd1/src/dmd/backend/machobj.c
|
|
--- dmd/src/dmd/backend/machobj.c 2010-09-14 07:16:00.008650752 +0000
|
|
+++ dmd1/src/dmd/backend/machobj.c 2010-09-19 15:29:53.417333248 +0000
|
|
@@ -21,7 +21,7 @@
|
|
#include <malloc.h>
|
|
#endif
|
|
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#include <signal.h>
|
|
#include <unistd.h>
|
|
#endif
|
|
@@ -1615,7 +1615,7 @@
|
|
strupr(dest); // to upper case
|
|
break;
|
|
case mTYman_std:
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (tyfunc(s->ty()) && !variadic(s->Stype))
|
|
#else
|
|
if (!(config.flags4 & CFG4oldstdmangle) &&
|
|
diff -Naur dmd/src/dmd/backend/nteh.c dmd1/src/dmd/backend/nteh.c
|
|
--- dmd/src/dmd/backend/nteh.c 2010-09-14 07:16:00.019922944 +0000
|
|
+++ dmd1/src/dmd/backend/nteh.c 2010-09-19 15:30:37.083099648 +0000
|
|
@@ -415,7 +415,7 @@
|
|
/* An sindex value of -2 is a magic value that tells the
|
|
* stack unwinder to skip this frame.
|
|
*/
|
|
- assert(config.exe & (EX_LINUX | EX_LINUX64 | EX_OSX | EX_OSX64 | EX_FREEBSD | EX_FREEBSD64 | EX_SOLARIS | EX_SOLARIS64));
|
|
+ assert(config.exe & (EX_LINUX | EX_LINUX64 | EX_OSX | EX_OSX64 | EX_FREEBSD | EX_FREEBSD64 | EX_SOLARIS | EX_SOLARIS64 | EX_HAIKU));
|
|
cs.Iop = 0x68;
|
|
cs.Iflags = 0;
|
|
cs.Irex = 0;
|
|
diff -Naur dmd/src/dmd/backend/optabgen.c dmd1/src/dmd/backend/optabgen.c
|
|
--- dmd/src/dmd/backend/optabgen.c 2010-09-14 07:16:00.063700992 +0000
|
|
+++ dmd1/src/dmd/backend/optabgen.c 2010-09-19 15:30:57.498860032 +0000
|
|
@@ -703,7 +703,7 @@
|
|
case FLctor: segfl[i] = -1; break;
|
|
case FLdtor: segfl[i] = -1; break;
|
|
case FLdsymbol: segfl[i] = -1; break;
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
case FLgot: segfl[i] = -1; break;
|
|
case FLgotoff: segfl[i] = -1; break;
|
|
#endif
|
|
diff -Naur dmd/src/dmd/backend/os.c dmd1/src/dmd/backend/os.c
|
|
--- dmd/src/dmd/backend/os.c 2010-09-14 07:16:00.039321600 +0000
|
|
+++ dmd1/src/dmd/backend/os.c 2010-09-19 15:31:43.780664832 +0000
|
|
@@ -26,7 +26,7 @@
|
|
#include <sys\stat.h>
|
|
#endif
|
|
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
@@ -658,7 +658,7 @@
|
|
if (!find)
|
|
return 0;
|
|
return (find->attribute & FA_DIREC) ? 2 : 1;
|
|
-#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
struct stat buf;
|
|
|
|
return stat(name,&buf) == 0; /* file exists if stat succeeded */
|
|
@@ -735,7 +735,7 @@
|
|
|
|
int file_write(char *name, void *buffer, unsigned len)
|
|
{
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
int fd;
|
|
ssize_t numwritten;
|
|
|
|
@@ -811,7 +811,7 @@
|
|
|
|
int file_createdirs(char *name)
|
|
{
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
return 1;
|
|
#endif
|
|
#if _WIN32
|
|
@@ -861,7 +861,7 @@
|
|
}
|
|
#endif
|
|
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
int os_critsecsize()
|
|
{
|
|
return sizeof(pthread_mutex_t);
|
|
diff -Naur dmd/src/dmd/backend/out.c dmd1/src/dmd/backend/out.c
|
|
--- dmd/src/dmd/backend/out.c 2010-09-14 07:16:00.046661632 +0000
|
|
+++ dmd1/src/dmd/backend/out.c 2010-09-19 15:31:52.633077760 +0000
|
|
@@ -408,7 +408,7 @@
|
|
flags = CFoff | CFseg;
|
|
if (tybasic(dt->Dty) == TYcptr)
|
|
reftocodseg(seg,offset,dt->DTabytes);
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
else
|
|
reftodatseg(seg,offset,dt->DTabytes,dt->DTseg,flags);
|
|
#else
|
|
diff -Naur dmd/src/dmd/backend/parser.h dmd1/src/dmd/backend/parser.h
|
|
--- dmd/src/dmd/backend/parser.h 2010-09-14 07:16:00.043515904 +0000
|
|
+++ dmd1/src/dmd/backend/parser.h 2010-09-23 20:53:34.909901824 +0000
|
|
@@ -156,7 +156,7 @@
|
|
#define FQtop 8 // top level file, already open
|
|
#define FQqual 0x10 // filename is already qualified
|
|
#endif
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#define FQnext 0x20 // search starts after directory
|
|
#endif // of last included file
|
|
|
|
@@ -698,7 +698,7 @@
|
|
|
|
extern list_t pathlist; // include paths
|
|
extern list_t headers; // pre-include files
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
extern list_t pathsyslist; // include path for .h file overrides
|
|
#endif
|
|
|
|
diff -Naur dmd/src/dmd/backend/strtold.c dmd1/src/dmd/backend/strtold.c
|
|
--- dmd/src/dmd/backend/strtold.c 2010-09-14 07:16:00.062390272 +0000
|
|
+++ dmd1/src/dmd/backend/strtold.c 2010-09-19 15:32:39.060030976 +0000
|
|
@@ -20,7 +20,7 @@
|
|
#if _WIN32
|
|
#include <fltpnt.h>
|
|
#endif
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#include <errno.h>
|
|
#endif
|
|
|
|
@@ -30,7 +30,7 @@
|
|
void __pascal __set_errno (int an_errno);
|
|
#endif
|
|
|
|
-#if _WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if _WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
|
|
#if 0
|
|
/* This is for compilers that don't support hex float literals,
|
|
diff -Naur dmd/src/dmd/backend/token.h dmd1/src/dmd/backend/token.h
|
|
--- dmd/src/dmd/backend/token.h 2010-09-14 07:16:00.044302336 +0000
|
|
+++ dmd1/src/dmd/backend/token.h 2010-09-19 15:32:54.867958784 +0000
|
|
@@ -179,7 +179,7 @@
|
|
TK_stdcall,
|
|
TK_syscall,
|
|
TK_try,
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
TK_attribute,
|
|
TK_extension,
|
|
TK_format,
|
|
@@ -211,7 +211,7 @@
|
|
TKandand,TKshl,TKshr,TKrcur,TKeq,TKaddass,TKminass,TKmulass,TKdivass,
|
|
TKmodass,TKshrass,TKshlass,TKandass,TKxorass,TKorass,TKsemi,
|
|
TKadd,TKellipsis,
|
|
-#if !TX86 || TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if !TX86 || TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
TKdollar,
|
|
#endif
|
|
|
|
diff -Naur dmd/src/dmd/backend/ty.h dmd1/src/dmd/backend/ty.h
|
|
--- dmd/src/dmd/backend/ty.h 2010-09-14 07:16:00.038535168 +0000
|
|
+++ dmd1/src/dmd/backend/ty.h 2010-09-19 15:33:02.589299712 +0000
|
|
@@ -304,7 +304,7 @@
|
|
/* Array to give the 'relaxed' type for relaxed type checking */
|
|
extern unsigned char _tyrelax[];
|
|
#define type_relax (config.flags3 & CFG3relax) // !=0 if relaxed type checking
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#define type_semirelax (config.flags3 & CFG3semirelax) // !=0 if semi-relaxed type checking
|
|
#else
|
|
#define type_semirelax type_relax
|
|
diff -Naur dmd/src/dmd/backend/type.h dmd1/src/dmd/backend/type.h
|
|
--- dmd/src/dmd/backend/type.h 2010-09-14 07:16:00.019136512 +0000
|
|
+++ dmd1/src/dmd/backend/type.h 2010-09-19 15:33:16.247988224 +0000
|
|
@@ -54,7 +54,7 @@
|
|
unsigned short Tflags; // TFxxxxx
|
|
|
|
#if TX86
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#define mTYnoret 0x010000 // function has no return
|
|
#define mTYtransu 0x010000 // transparent union
|
|
#else
|
|
@@ -68,7 +68,7 @@
|
|
#define mTYsyscall 0x400000
|
|
#define mTYjava 0x800000
|
|
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#define mTYTFF 0xFE0000
|
|
#else
|
|
#define mTYTFF 0xFF0000
|
|
diff -Naur dmd/src/dmd/backend/var.c dmd1/src/dmd/backend/var.c
|
|
--- dmd/src/dmd/backend/var.c 2010-09-14 07:16:00.006815744 +0000
|
|
+++ dmd1/src/dmd/backend/var.c 2010-09-19 15:33:25.649854976 +0000
|
|
@@ -58,7 +58,7 @@
|
|
#if MEMMODELS == 1
|
|
tym_t functypetab[LINK_MAXDIM] =
|
|
{
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
TYnfunc,
|
|
TYnpfunc,
|
|
TYnpfunc,
|
|
diff -Naur dmd/src/dmd/cond.c dmd1/src/dmd/cond.c
|
|
--- dmd/src/dmd/cond.c 2010-09-14 07:16:00.002097152 +0000
|
|
+++ dmd1/src/dmd/cond.c 2010-09-19 15:34:06.023855104 +0000
|
|
@@ -138,6 +138,7 @@
|
|
#endif
|
|
"OSX", "FreeBSD",
|
|
"Solaris",
|
|
+ "Haiku",
|
|
"LittleEndian", "BigEndian",
|
|
"all",
|
|
"none",
|
|
diff -Naur dmd/src/dmd/e2ir.c dmd1/src/dmd/e2ir.c
|
|
--- dmd/src/dmd/e2ir.c 2010-09-14 07:16:00.029622272 +0000
|
|
+++ dmd1/src/dmd/e2ir.c 2010-09-19 15:34:41.236716032 +0000
|
|
@@ -174,7 +174,8 @@
|
|
if ((global.params.isLinux ||
|
|
global.params.isOSX ||
|
|
global.params.isFreeBSD ||
|
|
- global.params.isSolaris) && tf->linkage != LINKd)
|
|
+ global.params.isSolaris ||
|
|
+ global.params.isHaiku) && tf->linkage != LINKd)
|
|
; // ehidden goes last on Linux/OSX C++
|
|
else
|
|
{
|
|
@@ -1582,7 +1583,7 @@
|
|
if (global.params.useInvariants && t1->ty == Tclass &&
|
|
!((TypeClass *)t1)->sym->isInterfaceDeclaration())
|
|
{
|
|
-#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
e = el_bin(OPcall, TYvoid, el_var(rtlsym[RTLSYM__DINVARIANT]), e);
|
|
#else
|
|
e = el_bin(OPcall, TYvoid, el_var(rtlsym[RTLSYM_DINVARIANT]), e);
|
|
diff -Naur dmd/src/dmd/eh.c dmd1/src/dmd/eh.c
|
|
--- dmd/src/dmd/eh.c 2010-09-14 07:16:00.013631488 +0000
|
|
+++ dmd1/src/dmd/eh.c 2010-09-19 15:34:56.559153152 +0000
|
|
@@ -26,7 +26,7 @@
|
|
symbol *except_gentables()
|
|
{
|
|
//printf("except_gentables()\n");
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
symbol *s;
|
|
int sz; // size so far
|
|
dt_t **pdt;
|
|
diff -Naur dmd/src/dmd/expression.c dmd1/src/dmd/expression.c
|
|
--- dmd/src/dmd/expression.c 2010-09-14 07:16:00.011534336 +0000
|
|
+++ dmd1/src/dmd/expression.c 2010-09-23 20:55:42.509083648 +0000
|
|
@@ -1625,6 +1625,8 @@
|
|
{
|
|
#if __APPLE__
|
|
return (__inline_isnan(x1) && __inline_isnan(x2)) ||
|
|
+#elif __HAIKU__
|
|
+ return (__isnan(x1) && __isnan(x2)) ||
|
|
#else
|
|
return (isnan(x1) && isnan(x2)) ||
|
|
#endif
|
|
@@ -1734,6 +1736,8 @@
|
|
|
|
#if __APPLE__
|
|
if (__inline_isnan(value))
|
|
+#elif __HAIKU__
|
|
+ if (__isnan(value))
|
|
#else
|
|
if (isnan(value))
|
|
#endif
|
|
diff -Naur dmd/src/dmd/glue.c dmd1/src/dmd/glue.c
|
|
--- dmd/src/dmd/glue.c 2010-09-14 07:16:00.022806528 +0000
|
|
+++ dmd1/src/dmd/glue.c 2010-09-19 15:35:50.215220224 +0000
|
|
@@ -610,7 +610,7 @@
|
|
// Pull in RTL startup code
|
|
if (func->isMain())
|
|
{ objextdef("_main");
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
obj_ehsections(); // initialize exception handling sections
|
|
#endif
|
|
#if TARGET_WINDOS
|
|
@@ -770,7 +770,7 @@
|
|
pi++;
|
|
}
|
|
|
|
- if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isSolaris) &&
|
|
+ if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isSolaris || global.params.isHaiku) &&
|
|
linkage != LINKd && shidden && sthis)
|
|
{
|
|
/* swap shidden and sthis
|
|
@@ -1015,7 +1015,7 @@
|
|
s->toObjFile(0);
|
|
}
|
|
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
// A hack to get a pointer to this function put in the .dtors segment
|
|
if (ident && memcmp(ident->toChars(), "_STD", 4) == 0)
|
|
obj_staticdtor(s);
|
|
@@ -1061,7 +1061,7 @@
|
|
//case Tbit: t = TYuchar; break;
|
|
case Tbool: t = TYbool; break;
|
|
case Tchar: t = TYchar; break;
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
case Twchar: t = TYwchar_t; break;
|
|
case Tdchar: t = TYdchar; break;
|
|
#else
|
|
@@ -1151,7 +1151,7 @@
|
|
|
|
case LINKc:
|
|
tyf = TYnfunc;
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
if (retStyle() == RETstack)
|
|
tyf = TYhfunc;
|
|
#endif
|
|
diff -Naur dmd/src/dmd/haiku.mak dmd1/src/dmd/haiku.mak
|
|
--- dmd/src/dmd/haiku.mak 1970-01-01 00:00:00.000000000 +0000
|
|
+++ dmd1/src/dmd/haiku.mak 2010-09-19 15:16:23.496762880 +0000
|
|
@@ -0,0 +1,599 @@
|
|
+
|
|
+C=backend
|
|
+TK=tk
|
|
+ROOT=root
|
|
+
|
|
+MODEL=-m32
|
|
+
|
|
+CC=g++ $(MODEL)
|
|
+
|
|
+#OPT=-g -g3
|
|
+#OPT=-O2
|
|
+
|
|
+#COV=-fprofile-arcs -ftest-coverage
|
|
+
|
|
+WARNINGS=-Wno-deprecated -Wstrict-aliasing
|
|
+
|
|
+#GFLAGS = $(WARNINGS) -D__near= -D__pascal= -fno-exceptions -g -DDEBUG=1 $(COV)
|
|
+GFLAGS = $(WARNINGS) -D__near= -D__pascal= -fno-exceptions -O2
|
|
+
|
|
+CFLAGS = $(GFLAGS) -I$(ROOT) -D__I86__=1 -DMARS=1 -DTARGET_HAIKU=1 -D_DH
|
|
+MFLAGS = $(GFLAGS) -I$C -I$(TK) -D__I86__=1 -DMARS=1 -DTARGET_HAIKU=1 -D_DH
|
|
+
|
|
+CH= $C/cc.h $C/global.h $C/parser.h $C/oper.h $C/code.h $C/type.h \
|
|
+ $C/dt.h $C/cgcv.h $C/el.h $C/iasm.h
|
|
+TOTALH=
|
|
+
|
|
+DMD_OBJS = \
|
|
+ access.o array.o attrib.o bcomplex.o bit.o blockopt.o \
|
|
+ cast.o code.o cg.o cg87.o cgcod.o cgcs.o cgelem.o cgen.o \
|
|
+ cgreg.o cgsched.o class.o cod1.o cod2.o cod3.o cod4.o cod5.o \
|
|
+ constfold.o irstate.o dchar.o cond.o debug.o \
|
|
+ declaration.o dsymbol.o dt.o dump.o e2ir.o ee.o eh.o el.o \
|
|
+ dwarf.o enum.o evalu8.o expression.o func.o gdag.o gflow.o \
|
|
+ glocal.o gloop.o glue.o gnuc.o go.o gother.o html.o iasm.o id.o \
|
|
+ identifier.o impcnvtab.o import.o inifile.o init.o inline.o \
|
|
+ lexer.o link.o lstring.o mangle.o mars.o rmem.o module.o msc.o mtype.o \
|
|
+ nteh.o cppmangle.o opover.o optimize.o os.o out.o outbuf.o \
|
|
+ parse.o ph.o ptrntab.o root.o rtlsym.o s2ir.o scope.o statement.o \
|
|
+ stringtable.o struct.o csymbol.o template.o tk.o tocsym.o todt.o \
|
|
+ type.o typinf.o util.o var.o version.o strtold.o utf.o staticassert.o \
|
|
+ unialpha.o toobj.o toctype.o toelfdebug.o entity.o doc.o macro.o \
|
|
+ hdrgen.o delegatize.o aa.o ti_achar.o toir.o interpret.o traits.o \
|
|
+ builtin.o clone.o aliasthis.o \
|
|
+ man.o arrayop.o port.o response.o async.o json.o speller.o aav.o unittests.o \
|
|
+ imphint.o \
|
|
+ libelf.o elfobj.o
|
|
+
|
|
+SRC = win32.mak linux.mak osx.mak freebsd.mak solaris.mak haiku.mak \
|
|
+ mars.c enum.c struct.c dsymbol.c import.c idgen.c impcnvgen.c \
|
|
+ identifier.c mtype.c expression.c optimize.c template.h \
|
|
+ template.c lexer.c declaration.c cast.c cond.h cond.c link.c \
|
|
+ aggregate.h parse.c statement.c constfold.c version.h version.c \
|
|
+ inifile.c iasm.c module.c scope.c dump.c init.h init.c attrib.h \
|
|
+ attrib.c opover.c class.c mangle.c bit.c tocsym.c func.c inline.c \
|
|
+ access.c complex_t.h irstate.h irstate.c glue.c msc.c ph.c tk.c \
|
|
+ s2ir.c todt.c e2ir.c util.c identifier.h parse.h \
|
|
+ scope.h enum.h import.h mars.h module.h mtype.h dsymbol.h \
|
|
+ declaration.h lexer.h expression.h irstate.h statement.h eh.c \
|
|
+ utf.h utf.c staticassert.h staticassert.c unialpha.c \
|
|
+ typinf.c toobj.c toctype.c tocvdebug.c toelfdebug.c entity.c \
|
|
+ doc.h doc.c macro.h macro.c hdrgen.h hdrgen.c arraytypes.h \
|
|
+ delegatize.c toir.h toir.c interpret.c traits.c cppmangle.c \
|
|
+ builtin.c clone.c lib.h libomf.c libelf.c libmach.c arrayop.c \
|
|
+ aliasthis.h aliasthis.c json.h json.c unittests.c imphint.c \
|
|
+ $C/cdef.h $C/cc.h $C/oper.h $C/ty.h $C/optabgen.c \
|
|
+ $C/global.h $C/parser.h $C/code.h $C/type.h $C/dt.h $C/cgcv.h \
|
|
+ $C/el.h $C/iasm.h $C/rtlsym.h $C/html.h \
|
|
+ $C/bcomplex.c $C/blockopt.c $C/cg.c $C/cg87.c \
|
|
+ $C/cgcod.c $C/cgcs.c $C/cgcv.c $C/cgelem.c $C/cgen.c $C/cgobj.c \
|
|
+ $C/cgreg.c $C/var.c $C/strtold.c \
|
|
+ $C/cgsched.c $C/cod1.c $C/cod2.c $C/cod3.c $C/cod4.c $C/cod5.c \
|
|
+ $C/code.c $C/symbol.c $C/debug.c $C/dt.c $C/ee.c $C/el.c \
|
|
+ $C/evalu8.c $C/go.c $C/gflow.c $C/gdag.c \
|
|
+ $C/gother.c $C/glocal.c $C/gloop.c $C/html.c $C/newman.c \
|
|
+ $C/nteh.c $C/os.c $C/out.c $C/outbuf.c $C/ptrntab.c $C/rtlsym.c \
|
|
+ $C/type.c $C/melf.h $C/mach.h $C/bcomplex.h \
|
|
+ $C/cdeflnx.h $C/outbuf.h $C/token.h $C/tassert.h \
|
|
+ $C/elfobj.c $C/cv4.h $C/dwarf2.h $C/cpp.h $C/exh.h $C/go.h \
|
|
+ $C/dwarf.c $C/dwarf.h $C/aa.h $C/aa.c $C/tinfo.h $C/ti_achar.c \
|
|
+ $C/machobj.c \
|
|
+ $(TK)/filespec.h $(TK)/mem.h $(TK)/list.h $(TK)/vec.h \
|
|
+ $(TK)/filespec.c $(TK)/mem.c $(TK)/vec.c $(TK)/list.c \
|
|
+ $(ROOT)/dchar.h $(ROOT)/dchar.c $(ROOT)/lstring.h \
|
|
+ $(ROOT)/lstring.c $(ROOT)/root.h $(ROOT)/root.c $(ROOT)/array.c \
|
|
+ $(ROOT)/rmem.h $(ROOT)/rmem.c $(ROOT)/port.h $(ROOT)/port.c \
|
|
+ $(ROOT)/gnuc.h $(ROOT)/gnuc.c $(ROOT)/man.c \
|
|
+ $(ROOT)/stringtable.h $(ROOT)/stringtable.c \
|
|
+ $(ROOT)/response.c $(ROOT)/async.h $(ROOT)/async.c \
|
|
+ $(ROOT)/aav.h $(ROOT)/aav.c \
|
|
+ $(ROOT)/speller.h $(ROOT)/speller.c
|
|
+
|
|
+
|
|
+all: dmd
|
|
+
|
|
+dmd: $(DMD_OBJS)
|
|
+ gcc $(MODEL) -lstdc++ -lroot $(COV) $(DMD_OBJS) -o dmd
|
|
+
|
|
+clean:
|
|
+ rm -f $(DMD_OBJS) dmd optab.o id.o impcnvgen idgen id.c id.h \
|
|
+ impcnvtab.c optabgen debtab.c optab.c cdxxx.c elxxx.c fltables.c \
|
|
+ tytab.c core \
|
|
+ *.cov *.gcda *.gcno
|
|
+
|
|
+######## optabgen generates some source
|
|
+
|
|
+optabgen: $C/optabgen.c $C/cc.h $C/oper.h
|
|
+ $(CC) $(MFLAGS) $< -o optabgen
|
|
+ ./optabgen
|
|
+
|
|
+optabgen_output = debtab.c optab.c cdxxx.c elxxx.c fltables.c tytab.c
|
|
+$(optabgen_output) : optabgen
|
|
+
|
|
+######## idgen generates some source
|
|
+
|
|
+idgen_output = id.h id.c
|
|
+$(idgen_output) : idgen
|
|
+
|
|
+idgen : idgen.c
|
|
+ $(CC) idgen.c -o idgen
|
|
+ ./idgen
|
|
+
|
|
+######### impcnvgen generates some source
|
|
+
|
|
+impcnvtab_output = impcnvtab.c
|
|
+$(impcnvtab_output) : impcnvgen
|
|
+
|
|
+impcnvgen : mtype.h impcnvgen.c
|
|
+ $(CC) $(CFLAGS) impcnvgen.c -o impcnvgen
|
|
+ ./impcnvgen
|
|
+
|
|
+#########
|
|
+
|
|
+$(DMD_OBJS) : $(idgen_output) $(optabgen_output) $(impcnvgen_output)
|
|
+
|
|
+aa.o: $C/aa.h $C/tinfo.h $C/aa.c
|
|
+ $(CC) -c $(MFLAGS) -I. $C/aa.c
|
|
+
|
|
+aav.o: $(ROOT)/aav.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $<
|
|
+
|
|
+access.o: access.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+aliasthis.o: aliasthis.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+array.o: $(ROOT)/array.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $<
|
|
+
|
|
+arrayop.o: arrayop.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+async.o: $(ROOT)/async.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $<
|
|
+
|
|
+attrib.o: attrib.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+bcomplex.o: $C/bcomplex.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+bit.o: expression.h bit.c
|
|
+ $(CC) -c -I$(ROOT) $(MFLAGS) bit.c
|
|
+
|
|
+blockopt.o: $C/blockopt.c
|
|
+ $(CC) -c $(MFLAGS) $C/blockopt.c
|
|
+
|
|
+builtin.o: builtin.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+cast.o: cast.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+cg.o: fltables.c $C/cg.c
|
|
+ $(CC) -c $(MFLAGS) -I. $C/cg.c
|
|
+
|
|
+cg87.o: $C/cg87.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+cgcod.o: $C/cgcod.c
|
|
+ $(CC) -c $(MFLAGS) -I. $<
|
|
+
|
|
+cgcs.o: $C/cgcs.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+cgcv.o: $C/cgcv.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+cgelem.o: $C/rtlsym.h $C/cgelem.c
|
|
+ $(CC) -c $(MFLAGS) -I. $C/cgelem.c
|
|
+
|
|
+cgen.o: $C/rtlsym.h $C/cgen.c
|
|
+ $(CC) -c $(MFLAGS) $C/cgen.c
|
|
+
|
|
+cgobj.o: $C/cgobj.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+cgreg.o: $C/cgreg.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+cgsched.o: $C/rtlsym.h $C/cgsched.c
|
|
+ $(CC) -c $(MFLAGS) $C/cgsched.c
|
|
+
|
|
+class.o: class.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+clone.o: clone.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+cod1.o: $C/rtlsym.h $C/cod1.c
|
|
+ $(CC) -c $(MFLAGS) $C/cod1.c
|
|
+
|
|
+cod2.o: $C/rtlsym.h $C/cod2.c
|
|
+ $(CC) -c $(MFLAGS) $C/cod2.c
|
|
+
|
|
+cod3.o: $C/rtlsym.h $C/cod3.c
|
|
+ $(CC) -c $(MFLAGS) $C/cod3.c
|
|
+
|
|
+cod4.o: $C/cod4.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+cod5.o: $C/cod5.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+code.o: $C/code.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+constfold.o: constfold.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+irstate.o: irstate.h irstate.c
|
|
+ $(CC) -c $(MFLAGS) -I$(ROOT) irstate.c
|
|
+
|
|
+csymbol.o : $C/symbol.c
|
|
+ $(CC) -c $(MFLAGS) $C/symbol.c -o csymbol.o
|
|
+
|
|
+dchar.o: $(ROOT)/dchar.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $<
|
|
+
|
|
+cond.o: cond.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+cppmangle.o: cppmangle.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+debug.o: $C/debug.c
|
|
+ $(CC) -c $(MFLAGS) -I. $<
|
|
+
|
|
+declaration.o: declaration.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+delegatize.o: delegatize.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+doc.o: doc.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+dsymbol.o: dsymbol.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+dt.o: $C/dt.h $C/dt.c
|
|
+ $(CC) -c $(MFLAGS) $C/dt.c
|
|
+
|
|
+dump.o: dump.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+dwarf.o: $C/dwarf.h $C/dwarf.c
|
|
+ $(CC) -c $(MFLAGS) -I. $C/dwarf.c
|
|
+
|
|
+e2ir.o: $C/rtlsym.h expression.h toir.h e2ir.c
|
|
+ $(CC) -c -I$(ROOT) $(MFLAGS) e2ir.c
|
|
+
|
|
+ee.o: $C/ee.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+eh.o : $C/cc.h $C/code.h $C/type.h $C/dt.h eh.c
|
|
+ $(CC) -c $(MFLAGS) eh.c
|
|
+
|
|
+el.o: $C/rtlsym.h $C/el.h $C/el.c
|
|
+ $(CC) -c $(MFLAGS) $C/el.c
|
|
+
|
|
+elfobj.o: $C/elfobj.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+entity.o: entity.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+enum.o: enum.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+evalu8.o: $C/evalu8.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+expression.o: expression.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+func.o: func.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+gdag.o: $C/gdag.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+gflow.o: $C/gflow.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+#globals.o: globals.c
|
|
+# $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+glocal.o: $C/rtlsym.h $C/glocal.c
|
|
+ $(CC) -c $(MFLAGS) $C/glocal.c
|
|
+
|
|
+gloop.o: $C/gloop.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+glue.o: $(CH) $(TOTALH) $C/rtlsym.h mars.h module.h glue.c
|
|
+ $(CC) -c $(MFLAGS) -I$(ROOT) glue.c
|
|
+
|
|
+gnuc.o: $(ROOT)/gnuc.h $(ROOT)/gnuc.c
|
|
+ $(CC) -c $(GFLAGS) $(ROOT)/gnuc.c
|
|
+
|
|
+go.o: $C/go.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+gother.o: $C/gother.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+hdrgen.o: hdrgen.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+html.o: $(CH) $(TOTALH) $C/html.h $C/html.c
|
|
+ $(CC) -c -I$(ROOT) $(MFLAGS) $C/html.c
|
|
+
|
|
+iasm.o : $(CH) $(TOTALH) $C/iasm.h iasm.c
|
|
+ $(CC) -c $(MFLAGS) -I$(ROOT) iasm.c
|
|
+
|
|
+id.o : id.h id.c
|
|
+ $(CC) -c $(CFLAGS) id.c
|
|
+
|
|
+identifier.o: identifier.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+impcnvtab.o: mtype.h impcnvtab.c
|
|
+ $(CC) -c $(CFLAGS) -I$(ROOT) impcnvtab.c
|
|
+
|
|
+imphint.o: imphint.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+import.o: import.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+inifile.o: inifile.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+init.o: init.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+inline.o: inline.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+interpret.o: interpret.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+json.o: json.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+lexer.o: lexer.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+libelf.o: libelf.c $C/melf.h
|
|
+ $(CC) -c $(CFLAGS) -I$C $<
|
|
+
|
|
+libmach.o: libmach.c $C/mach.h
|
|
+ $(CC) -c $(CFLAGS) -I$C $<
|
|
+
|
|
+link.o: link.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+lstring.o: $(ROOT)/lstring.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $<
|
|
+
|
|
+machobj.o: $C/machobj.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+macro.o: macro.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+man.o: $(ROOT)/man.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $<
|
|
+
|
|
+mangle.o: mangle.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+mars.o: mars.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+rmem.o: $(ROOT)/rmem.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $(ROOT)/rmem.c
|
|
+
|
|
+module.o: $(TOTALH) $C/html.h module.c
|
|
+ $(CC) -c $(CFLAGS) -I$C module.c
|
|
+
|
|
+msc.o: $(CH) mars.h msc.c
|
|
+ $(CC) -c $(MFLAGS) msc.c
|
|
+
|
|
+mtype.o: mtype.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+nteh.o: $C/rtlsym.h $C/nteh.c
|
|
+ $(CC) -c $(MFLAGS) $C/nteh.c
|
|
+
|
|
+opover.o: opover.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+optimize.o: optimize.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+os.o: $C/os.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+out.o: $C/out.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+outbuf.o : $C/outbuf.h $C/outbuf.c
|
|
+ $(CC) -c $(MFLAGS) $C/outbuf.c
|
|
+
|
|
+parse.o: parse.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+ph.o: ph.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+port.o: $(ROOT)/port.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $<
|
|
+
|
|
+ptrntab.o: $C/iasm.h $C/ptrntab.c
|
|
+ $(CC) -c $(MFLAGS) $C/ptrntab.c
|
|
+
|
|
+response.o: $(ROOT)/response.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $<
|
|
+
|
|
+root.o: $(ROOT)/root.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $<
|
|
+
|
|
+rtlsym.o: $C/rtlsym.h $C/rtlsym.c
|
|
+ $(CC) -c $(MFLAGS) $C/rtlsym.c
|
|
+
|
|
+s2ir.o : $C/rtlsym.h statement.h s2ir.c
|
|
+ $(CC) -c -I$(ROOT) $(MFLAGS) s2ir.c
|
|
+
|
|
+scope.o: scope.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+speller.o: $(ROOT)/speller.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $<
|
|
+
|
|
+statement.o: statement.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+staticassert.o: staticassert.h staticassert.c
|
|
+ $(CC) -c $(CFLAGS) staticassert.c
|
|
+
|
|
+stringtable.o: $(ROOT)/stringtable.c
|
|
+ $(CC) -c $(GFLAGS) -I$(ROOT) $<
|
|
+
|
|
+strtold.o: $C/strtold.c
|
|
+ gcc $(MODEL) -c $C/strtold.c
|
|
+
|
|
+struct.o: struct.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+template.o: template.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+ti_achar.o: $C/tinfo.h $C/ti_achar.c
|
|
+ $(CC) -c $(MFLAGS) -I. $C/ti_achar.c
|
|
+
|
|
+tk.o: tk.c
|
|
+ $(CC) -c $(MFLAGS) tk.c
|
|
+
|
|
+tocsym.o: $(CH) $(TOTALH) mars.h module.h tocsym.c
|
|
+ $(CC) -c $(MFLAGS) -I$(ROOT) tocsym.c
|
|
+
|
|
+toctype.o: $(CH) $(TOTALH) $C/rtlsym.h mars.h module.h toctype.c
|
|
+ $(CC) -c $(MFLAGS) -I$(ROOT) toctype.c
|
|
+
|
|
+todt.o : mtype.h expression.h $C/dt.h todt.c
|
|
+ $(CC) -c -I$(ROOT) $(MFLAGS) todt.c
|
|
+
|
|
+toelfdebug.o: $(CH) $(TOTALH) mars.h toelfdebug.c
|
|
+ $(CC) -c $(MFLAGS) -I$(ROOT) toelfdebug.c
|
|
+
|
|
+toir.o: $C/rtlsym.h expression.h toir.h toir.c
|
|
+ $(CC) -c -I$(ROOT) $(MFLAGS) toir.c
|
|
+
|
|
+toobj.o: $(CH) $(TOTALH) mars.h module.h toobj.c
|
|
+ $(CC) -c $(MFLAGS) -I$(ROOT) toobj.c
|
|
+
|
|
+traits.o: $(TOTALH) traits.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+type.o: $C/type.c
|
|
+ $(CC) -c $(MFLAGS) $C/type.c
|
|
+
|
|
+typinf.o: $(CH) $(TOTALH) mars.h module.h mtype.h typinf.c
|
|
+ $(CC) -c $(MFLAGS) -I$(ROOT) typinf.c
|
|
+
|
|
+util.o: util.c
|
|
+ $(CC) -c $(MFLAGS) $<
|
|
+
|
|
+utf.o: utf.h utf.c
|
|
+ $(CC) -c $(CFLAGS) utf.c
|
|
+
|
|
+unialpha.o: unialpha.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+unittests.o: unittests.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+var.o: $C/var.c optab.c
|
|
+ $(CC) -c $(MFLAGS) -I. $C/var.c
|
|
+
|
|
+version.o: version.c
|
|
+ $(CC) -c $(CFLAGS) $<
|
|
+
|
|
+######################################################
|
|
+
|
|
+gcov:
|
|
+ gcov access.c
|
|
+ gcov aliasthis.c
|
|
+ gcov arrayop.c
|
|
+ gcov attrib.c
|
|
+ gcov bit.c
|
|
+ gcov builtin.c
|
|
+ gcov cast.c
|
|
+ gcov class.c
|
|
+ gcov clone.c
|
|
+ gcov cond.c
|
|
+ gcov constfold.c
|
|
+ gcov declaration.c
|
|
+ gcov delegatize.c
|
|
+ gcov doc.c
|
|
+ gcov dsymbol.c
|
|
+ gcov dump.c
|
|
+ gcov e2ir.c
|
|
+ gcov eh.c
|
|
+ gcov entity.c
|
|
+ gcov enum.c
|
|
+ gcov expression.c
|
|
+ gcov func.c
|
|
+ gcov glue.c
|
|
+ gcov iasm.c
|
|
+ gcov identifier.c
|
|
+ gcov imphint.c
|
|
+ gcov import.c
|
|
+ gcov inifile.c
|
|
+ gcov init.c
|
|
+ gcov inline.c
|
|
+ gcov interpret.c
|
|
+ gcov irstate.c
|
|
+ gcov json.c
|
|
+ gcov lexer.c
|
|
+ gcov libelf.c
|
|
+ gcov link.c
|
|
+ gcov macro.c
|
|
+ gcov mangle.c
|
|
+ gcov mars.c
|
|
+ gcov module.c
|
|
+ gcov msc.c
|
|
+ gcov mtype.c
|
|
+ gcov opover.c
|
|
+ gcov optimize.c
|
|
+ gcov parse.c
|
|
+ gcov ph.c
|
|
+ gcov scope.c
|
|
+ gcov statement.c
|
|
+ gcov staticassert.c
|
|
+ gcov s2ir.c
|
|
+ gcov struct.c
|
|
+ gcov template.c
|
|
+ gcov tk.c
|
|
+ gcov tocsym.c
|
|
+ gcov todt.c
|
|
+ gcov toobj.c
|
|
+ gcov toctype.c
|
|
+ gcov toelfdebug.c
|
|
+ gcov typinf.c
|
|
+ gcov unialpha.c
|
|
+ gcov utf.c
|
|
+ gcov util.c
|
|
+ gcov version.c
|
|
+
|
|
+# gcov hdrgen.c
|
|
+# gcov tocvdebug.c
|
|
+
|
|
+######################################################
|
|
+
|
|
+zip:
|
|
+ -rm -f dmdsrc.zip
|
|
+ zip dmdsrc $(SRC)
|
|
diff -Naur dmd/src/dmd/inifile.c dmd1/src/dmd/inifile.c
|
|
--- dmd/src/dmd/inifile.c 2010-09-14 07:16:00.055312384 +0000
|
|
+++ dmd1/src/dmd/inifile.c 2010-09-19 15:37:02.201064448 +0000
|
|
@@ -111,8 +111,8 @@
|
|
filename = (char *)FileName::replaceName(argv0, inifile);
|
|
if (!FileName::exists(filename))
|
|
{
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
-#if __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 // This fix by Thomas Kuehne
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
+#if __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ // This fix by Thomas Kuehne
|
|
/* argv0 might be a symbolic link,
|
|
* so try again looking past it to the real path
|
|
*/
|
|
diff -Naur dmd/src/dmd/link.c dmd1/src/dmd/link.c
|
|
--- dmd/src/dmd/link.c 2010-09-14 07:16:00.028835840 +0000
|
|
+++ dmd1/src/dmd/link.c 2010-09-26 22:44:20.477626368 +0000
|
|
@@ -19,7 +19,7 @@
|
|
#include <process.h>
|
|
#endif
|
|
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#include <sys/types.h>
|
|
#include <sys/wait.h>
|
|
#include <unistd.h>
|
|
@@ -198,7 +198,7 @@
|
|
delete lnkfilename;
|
|
}
|
|
return status;
|
|
-#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
pid_t childpid;
|
|
int i;
|
|
int status;
|
|
@@ -348,8 +348,12 @@
|
|
argv.push((void *)buf); // turns into /usr/lib/libphobos2.a
|
|
|
|
// argv.push((void *)"-ldruntime");
|
|
- argv.push((void *)"-lpthread");
|
|
- argv.push((void *)"-lm");
|
|
+ #if __HAIKU__
|
|
+ argv.push((void *)"-lroot");
|
|
+ #else
|
|
+ argv.push((void *)"-lpthread");
|
|
+ argv.push((void *)"-lm");
|
|
+ #endif
|
|
|
|
if (!global.params.quiet || global.params.verbose)
|
|
{
|
|
@@ -486,7 +490,7 @@
|
|
//printf("spawning '%s'\n",file);
|
|
#if _WIN32
|
|
return spawnl(0,file,file,args,NULL);
|
|
-#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
char *full;
|
|
int cmdl = strlen(cmd);
|
|
|
|
@@ -549,7 +553,7 @@
|
|
else
|
|
ex = global.params.exefile;
|
|
return spawnv(0,ex,(char **)argv.data);
|
|
-#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
pid_t childpid;
|
|
int status;
|
|
|
|
diff -Naur dmd/src/dmd/mangle.c dmd1/src/dmd/mangle.c
|
|
--- dmd/src/dmd/mangle.c 2010-09-14 07:16:00.008126464 +0000
|
|
+++ dmd1/src/dmd/mangle.c 2010-09-19 15:39:32.027525120 +0000
|
|
@@ -24,7 +24,7 @@
|
|
#include "id.h"
|
|
#include "module.h"
|
|
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
char *cpp_mangle(Dsymbol *s);
|
|
#endif
|
|
|
|
@@ -119,7 +119,7 @@
|
|
return ident->toChars();
|
|
|
|
case LINKcpp:
|
|
-#if DMDV2 && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS)
|
|
+#if DMDV2 && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU)
|
|
return cpp_mangle(this);
|
|
#else
|
|
// Windows C++ mangling is done by C++ back end
|
|
diff -Naur dmd/src/dmd/mars.c dmd1/src/dmd/mars.c
|
|
--- dmd/src/dmd/mars.c 2010-09-14 07:16:00.036700160 +0000
|
|
+++ dmd1/src/dmd/mars.c 2010-09-26 21:50:22.656932864 +0000
|
|
@@ -14,7 +14,7 @@
|
|
#include <assert.h>
|
|
#include <limits.h>
|
|
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#include <errno.h>
|
|
#endif
|
|
|
|
@@ -59,7 +59,7 @@
|
|
|
|
#if TARGET_WINDOS
|
|
obj_ext = "obj";
|
|
-#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
obj_ext = "o";
|
|
#elif TARGET_NET
|
|
#else
|
|
@@ -68,7 +68,7 @@
|
|
|
|
#if TARGET_WINDOS
|
|
lib_ext = "lib";
|
|
-#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
lib_ext = "a";
|
|
#elif TARGET_NET
|
|
#else
|
|
@@ -77,7 +77,7 @@
|
|
|
|
#if TARGET_WINDOS
|
|
dll_ext = "dll";
|
|
-#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
dll_ext = "so";
|
|
#elif TARGET_OSX
|
|
dll_ext = "dylib";
|
|
@@ -354,7 +354,7 @@
|
|
|
|
#if TARGET_WINDOS
|
|
global.params.defaultlibname = "phobos";
|
|
-#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
global.params.defaultlibname = "phobos";
|
|
#elif TARGET_NET
|
|
#else
|
|
@@ -375,6 +375,10 @@
|
|
VersionCondition::addPredefinedGlobalIdent("Posix");
|
|
VersionCondition::addPredefinedGlobalIdent("linux");
|
|
global.params.isLinux = 1;
|
|
+#elif TARGET_HAIKU
|
|
+ VersionCondition::addPredefinedGlobalIdent("Posix");
|
|
+ VersionCondition::addPredefinedGlobalIdent("Haiku");
|
|
+ global.params.isHaiku = 1;
|
|
#elif TARGET_OSX
|
|
VersionCondition::addPredefinedGlobalIdent("Posix");
|
|
VersionCondition::addPredefinedGlobalIdent("OSX");
|
|
@@ -403,7 +407,7 @@
|
|
|
|
#if _WIN32
|
|
inifilename = inifile(argv[0], "sc.ini");
|
|
-#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
inifilename = inifile(argv[0], "dmd.conf");
|
|
#else
|
|
#error "fix this"
|
|
@@ -428,7 +432,7 @@
|
|
global.params.link = 0;
|
|
else if (strcmp(p + 1, "cov") == 0)
|
|
global.params.cov = 1;
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
else if (strcmp(p + 1, "fPIC") == 0)
|
|
global.params.pic = 1;
|
|
#endif
|
|
diff -Naur dmd/src/dmd/mars.h dmd1/src/dmd/mars.h
|
|
--- dmd/src/dmd/mars.h 2010-09-14 07:16:00.038273024 +0000
|
|
+++ dmd1/src/dmd/mars.h 2010-09-19 15:53:13.589824000 +0000
|
|
@@ -86,7 +86,7 @@
|
|
#define MODULEINFO_IS_STRUCT DMDV2 // if ModuleInfo is a struct rather than a class
|
|
|
|
// Set if C++ mangling is done by the front end
|
|
-#define CPP_MANGLE (DMDV2 && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS))
|
|
+#define CPP_MANGLE (DMDV2 && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU))
|
|
|
|
/* Other targets are TARGET_LINUX, TARGET_OSX, TARGET_FREEBSD and
|
|
* TARGET_SOLARIS, which are
|
|
@@ -98,7 +98,7 @@
|
|
#define OMFOBJ 1
|
|
#endif
|
|
|
|
-#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
#ifndef ELFOBJ
|
|
#define ELFOBJ 1
|
|
#endif
|
|
@@ -133,6 +133,7 @@
|
|
char cpu; // target CPU
|
|
char isX86_64; // generate X86_64 bit code
|
|
char isLinux; // generate code for linux
|
|
+ char isHaiku; // generate code for Haiku
|
|
char isOSX; // generate code for Mac OSX
|
|
char isWindows; // generate code for Windows
|
|
char isFreeBSD; // generate code for FreeBSD
|
|
diff -Naur dmd/src/dmd/msc.c dmd1/src/dmd/msc.c
|
|
--- dmd/src/dmd/msc.c 2010-09-14 07:16:00.040632320 +0000
|
|
+++ dmd1/src/dmd/msc.c 2010-09-19 15:54:02.013107200 +0000
|
|
@@ -81,6 +81,13 @@
|
|
if (params->pic)
|
|
config.flags3 |= CFG3pic;
|
|
#endif
|
|
+#if TARGET_HAIKU
|
|
+ config.exe = EX_HAIKU;
|
|
+ config.flags |= CFGnoebp;
|
|
+ config.flags |= CFGalwaysframe;
|
|
+ if (params->pic)
|
|
+ config.flags3 |= CFG3pic;
|
|
+#endif
|
|
#if TARGET_OSX
|
|
if (params->isX86_64)
|
|
config.exe = EX_OSX64;
|
|
diff -Naur dmd/src/dmd/mtype.c dmd1/src/dmd/mtype.c
|
|
--- dmd/src/dmd/mtype.c 2010-09-14 07:16:00.028049408 +0000
|
|
+++ dmd1/src/dmd/mtype.c 2010-09-19 15:54:47.708050944 +0000
|
|
@@ -71,7 +71,7 @@
|
|
int REALSIZE = 16;
|
|
int REALPAD = 6;
|
|
int REALALIGNSIZE = 16;
|
|
-#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
int REALSIZE = 12;
|
|
int REALPAD = 2;
|
|
int REALALIGNSIZE = 4;
|
|
@@ -236,7 +236,7 @@
|
|
if (global.params.isX86_64)
|
|
{
|
|
PTRSIZE = 8;
|
|
- if (global.params.isLinux || global.params.isFreeBSD || global.params.isSolaris)
|
|
+ if (global.params.isLinux || global.params.isFreeBSD || global.params.isSolaris || global.params.isHaiku)
|
|
{
|
|
REALSIZE = 16;
|
|
REALPAD = 6;
|
|
@@ -251,7 +251,7 @@
|
|
#if TARGET_OSX
|
|
REALSIZE = 16;
|
|
REALPAD = 6;
|
|
-#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
REALSIZE = 12;
|
|
REALPAD = 2;
|
|
#else
|
|
@@ -1077,7 +1077,7 @@
|
|
sz = REALALIGNSIZE;
|
|
break;
|
|
|
|
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU
|
|
case Tint64:
|
|
case Tuns64:
|
|
case Tfloat64:
|
|
diff -Naur dmd/src/dmd/root/man.c dmd1/src/dmd/root/man.c
|
|
--- dmd/src/dmd/root/man.c 2010-09-14 07:16:00.030408704 +0000
|
|
+++ dmd1/src/dmd/root/man.c 2010-09-19 15:55:15.172228608 +0000
|
|
@@ -26,7 +26,7 @@
|
|
|
|
#endif
|
|
|
|
-#if linux || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/wait.h>
|
|
diff -Naur dmd/src/dmd/root/port.c dmd1/src/dmd/root/port.c
|
|
--- dmd/src/dmd/root/port.c 2010-09-14 07:16:00.046661632 +0000
|
|
+++ dmd1/src/dmd/root/port.c 2010-09-23 21:00:14.377487360 +0000
|
|
@@ -315,7 +315,7 @@
|
|
|
|
#endif
|
|
|
|
-#if linux || __APPLE__ || __FreeBSD__
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __HAIKU__
|
|
|
|
#include <math.h>
|
|
#if linux
|
|
@@ -373,6 +373,8 @@
|
|
{
|
|
#if __APPLE__
|
|
return __inline_isnan(r);
|
|
+#elif __HAIKU__
|
|
+ return ::__isnan(r);
|
|
#else
|
|
return ::isnan(r);
|
|
#endif
|
|
@@ -382,6 +384,8 @@
|
|
{
|
|
#if __APPLE__
|
|
return __inline_isnan(r);
|
|
+#elif __HAIKU__
|
|
+ return ::__isnan(r);
|
|
#else
|
|
return ::isnan(r);
|
|
#endif
|
|
@@ -414,6 +418,8 @@
|
|
{
|
|
#if __APPLE__
|
|
return fpclassify(r) == FP_INFINITE;
|
|
+#elif __HAIKU__
|
|
+ return ::__isinf(r);
|
|
#else
|
|
return ::isinf(r);
|
|
#endif
|
|
diff -Naur dmd/src/dmd/root/response.c dmd1/src/dmd/root/response.c
|
|
--- dmd/src/dmd/root/response.c 2010-09-14 07:16:00.022282240 +0000
|
|
+++ dmd1/src/dmd/root/response.c 2010-09-19 15:56:08.390332416 +0000
|
|
@@ -19,7 +19,7 @@
|
|
#include <io.h>
|
|
#endif
|
|
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#include <sys/stat.h>
|
|
#include <sys/types.h>
|
|
#include <fcntl.h>
|
|
diff -Naur dmd/src/dmd/root/rmem.c dmd1/src/dmd/root/rmem.c
|
|
--- dmd/src/dmd/root/rmem.c 2010-09-14 07:16:00.052690944 +0000
|
|
+++ dmd1/src/dmd/root/rmem.c 2010-09-19 15:56:26.385875968 +0000
|
|
@@ -6,7 +6,7 @@
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#include "../root/rmem.h"
|
|
#else
|
|
#include "rmem.h"
|
|
diff -Naur dmd/src/dmd/root/root.c dmd1/src/dmd/root/root.c
|
|
--- dmd/src/dmd/root/root.c 2010-09-14 07:16:00.025427968 +0000
|
|
+++ dmd1/src/dmd/root/root.c 2010-09-19 15:56:47.602931200 +0000
|
|
@@ -7,7 +7,7 @@
|
|
// in artistic.txt, or the GNU General Public License in gnu.txt.
|
|
// See the included readme.txt for details.
|
|
|
|
-#define POSIX (linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4)
|
|
+#define POSIX (linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__)
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
diff -Naur dmd/src/dmd/tk/filespec.c dmd1/src/dmd/tk/filespec.c
|
|
--- dmd/src/dmd/tk/filespec.c 2010-09-14 07:16:00.017301504 +0000
|
|
+++ dmd1/src/dmd/tk/filespec.c 2010-09-19 15:57:58.566755328 +0000
|
|
@@ -25,7 +25,7 @@
|
|
#include <ctype.h>
|
|
#endif
|
|
|
|
-#if M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
#endif
|
|
@@ -87,7 +87,7 @@
|
|
/**********************/
|
|
char * filespecrootpath(char *filespec)
|
|
{
|
|
-#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
#define DIRCHAR '/'
|
|
#endif
|
|
#if MSDOS || __OS2__ || __NT__ || _WIN32
|
|
@@ -112,7 +112,7 @@
|
|
#endif
|
|
|
|
/* get current working directory path */
|
|
-#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
cwd_t = (char *)getcwd(NULL, 256);
|
|
#endif
|
|
#if MSDOS || __OS2__ || __NT__ || _WIN32
|
|
@@ -133,7 +133,7 @@
|
|
if (cwd[strlen(cwd) - 1] == DIRCHAR)
|
|
cwd[strlen(cwd) - 1] = '\0';
|
|
#endif
|
|
-#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
free(cwd_t);
|
|
#endif
|
|
p = filespec;
|
|
@@ -150,7 +150,7 @@
|
|
{
|
|
cwd_t = cwd;
|
|
cwd = (char *)mem_calloc(strlen(cwd_t) + 1 + strlen(p) + 1);
|
|
-#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
sprintf(cwd, "%s/%s", cwd_t, p); /* add relative directory */
|
|
#endif
|
|
#if MSDOS || __OS2__ || __NT__ || _WIN32
|
|
@@ -171,7 +171,7 @@
|
|
{ /* ... save remaining string */
|
|
cwd_t = cwd;
|
|
cwd = (char *)mem_calloc(strlen(cwd_t) + 1 + strlen(p) + 1);
|
|
-#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
sprintf(cwd, "%s/%s", cwd_t, p); /* add relative directory */
|
|
#endif
|
|
#if MSDOS || __OS2__ || __NT__ || _WIN32
|
|
@@ -402,7 +402,7 @@
|
|
#if MSDOS || __OS2__ || __NT__ || _WIN32
|
|
return filespecforceext(filespec,"BAK");
|
|
#endif
|
|
-#if BSDUNIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if BSDUNIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
char *p,*f;
|
|
|
|
/* Prepend .B to file name, if it isn't already there */
|
|
diff -Naur dmd/src/dmd/tk/mem.c dmd1/src/dmd/tk/mem.c
|
|
--- dmd/src/dmd/tk/mem.c 2010-09-14 07:16:00.064225280 +0000
|
|
+++ dmd1/src/dmd/tk/mem.c 2010-09-19 15:58:19.705691648 +0000
|
|
@@ -296,7 +296,7 @@
|
|
11111,
|
|
0,
|
|
BEFOREVAL,
|
|
-#if !(linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4)
|
|
+#if !(linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__)
|
|
AFTERVAL
|
|
#endif
|
|
};
|
|
@@ -804,7 +804,7 @@
|
|
mem_numalloc = 0;
|
|
mem_maxalloc = 0;
|
|
mem_alloclist.Mnext = NULL;
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
*(long *) &(mem_alloclist.data[0]) = AFTERVAL;
|
|
#endif
|
|
#endif
|
|
diff -Naur dmd/src/dmd/toir.c dmd1/src/dmd/toir.c
|
|
--- dmd/src/dmd/toir.c 2010-09-14 07:16:00.028835840 +0000
|
|
+++ dmd1/src/dmd/toir.c 2010-09-19 15:58:55.091226112 +0000
|
|
@@ -676,7 +676,7 @@
|
|
}
|
|
return RETstack;
|
|
}
|
|
- else if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isSolaris) &&
|
|
+ else if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isSolaris || global.params.isHaiku) &&
|
|
linkage == LINKc &&
|
|
tn->iscomplex())
|
|
{
|
|
diff -Naur dmd/src/dmd/util.c dmd1/src/dmd/util.c
|
|
--- dmd/src/dmd/util.c 2010-09-14 07:16:00.055312384 +0000
|
|
+++ dmd1/src/dmd/util.c 2010-09-19 15:59:11.752877568 +0000
|
|
@@ -131,7 +131,7 @@
|
|
|
|
#endif
|
|
|
|
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
|
|
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__
|
|
void util_progress()
|
|
{
|
|
}
|
|
diff -Naur dmd/src/phobos/etc/c/zlib/haiku.mak dmd1/src/phobos/etc/c/zlib/haiku.mak
|
|
--- dmd/src/phobos/etc/c/zlib/haiku.mak 1970-01-01 00:00:00.000000000 +0000
|
|
+++ dmd1/src/phobos/etc/c/zlib/haiku.mak 2010-09-14 07:16:06.000000000 +0000
|
|
@@ -0,0 +1,79 @@
|
|
+# Makefile for zlib
|
|
+
|
|
+MODEL=32
|
|
+CC=gcc
|
|
+LD=link
|
|
+CFLAGS=-O -m$(MODEL)
|
|
+LDFLAGS=
|
|
+O=.o
|
|
+
|
|
+.c.o:
|
|
+ $(CC) -c $(CFLAGS) $*
|
|
+
|
|
+.d.o:
|
|
+ $(DMD) -c $(DFLAGS) $*
|
|
+
|
|
+# variables
|
|
+OBJS = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \
|
|
+ trees$(O) zutil$(O) inflate$(O) infback$(O) inftrees$(O) inffast$(O)
|
|
+
|
|
+all: zlib.a example minigzip
|
|
+
|
|
+adler32.o: adler32.c zlib.h zconf.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+compress.o: compress.c zlib.h zconf.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+crc32.o: crc32.c zlib.h zconf.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+deflate.o: deflate.c deflate.h zutil.h zlib.h zconf.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+gzio.o: gzio.c zutil.h zlib.h zconf.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+infback.o: infback.c zlib.h zconf.h inftrees.h inflate.h inffast.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+inflate.o: inflate.c zlib.h zconf.h inftrees.h inflate.h inffast.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+inftrees.o: inftrees.c zlib.h zconf.h inftrees.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+inffast.o: inffast.c zlib.h zconf.h inftrees.h inflate.h inffast.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+trees.o: trees.c deflate.h zutil.h zlib.h zconf.h trees.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+uncompr.o: uncompr.c zlib.h zconf.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+zutil.o: zutil.c zutil.h zlib.h zconf.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+example.o: example.c zlib.h zconf.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+minigzip.o: minigzip.c zlib.h zconf.h
|
|
+ $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
|
|
+
|
|
+zlib.a: $(OBJS)
|
|
+ ar -r $@ $(OBJS)
|
|
+
|
|
+example: example.o zlib.a
|
|
+ $(CC) $(CFLAGS) -o $@ example.o zlib.a -g
|
|
+
|
|
+minigzip: minigzip.o zlib.a
|
|
+ $(CC) $(CFLAGS) -o $@ minigzip.o zlib.a -g
|
|
+
|
|
+test: example minigzip
|
|
+ ./example
|
|
+ echo hello world | minigzip | minigzip -d
|
|
+
|
|
+clean:
|
|
+ $(RM) $(OBJS) zlib.a example.o example minigzip minigzip.o test foo.gz
|
|
+
|
|
diff -Naur dmd/src/phobos/haiku.mak dmd1/src/phobos/haiku.mak
|
|
--- dmd/src/phobos/haiku.mak 1970-01-01 00:00:00.000000000 +0000
|
|
+++ dmd1/src/phobos/haiku.mak 2010-09-23 21:08:26.131858432 +0000
|
|
@@ -0,0 +1,650 @@
|
|
+# Makefile to build Haiku D runtime library libphobos.a.
|
|
+# Targets:
|
|
+# make
|
|
+# Same as make unittest
|
|
+# make libphobos.a
|
|
+# Build libphobos.a
|
|
+# make clean
|
|
+# Delete unneeded files created by build process
|
|
+# make unittest
|
|
+# Build libphobos.a, build and run unit tests
|
|
+
|
|
+LIB=libphobos.a
|
|
+
|
|
+MAKEFILE=haiku.mak
|
|
+MODEL=32
|
|
+
|
|
+CFLAGS=-O -m$(MODEL)
|
|
+#CFLAGS=-g -m$(MODEL)
|
|
+
|
|
+DFLAGS=-O -release -w -m$(MODEL)
|
|
+#DFLAGS=-unittest -w -m$(MODEL)
|
|
+
|
|
+CC=gcc
|
|
+#DMD=/dmd/bin/dmd
|
|
+DMD=dmd
|
|
+
|
|
+.SUFFIXES: .c .o .cpp .d .asm
|
|
+
|
|
+.c.o:
|
|
+ $(CC) -c $(CFLAGS) $*.c
|
|
+
|
|
+.cpp.o:
|
|
+ g++ -c $(CFLAGS) $*.cpp
|
|
+
|
|
+.d.o:
|
|
+ $(DMD) -c $(DFLAGS) $*.d
|
|
+
|
|
+.asm.o:
|
|
+ $(CC) -c $*.asm
|
|
+
|
|
+targets : $(LIB)
|
|
+
|
|
+test.o : test.d
|
|
+ $(DMD) -c test -g
|
|
+
|
|
+test : test.o $(LIB)
|
|
+ $(CC) -o $@ test.o $(LIB) -lroot
|
|
+
|
|
+OBJS = complex.o gcstats.o \
|
|
+ critical.o object.o monitor.o \
|
|
+ linux.o linuxsocket.o \
|
|
+ posix.o posixsocket.o posixpthread.o \
|
|
+ Dcrc32.o errno.o \
|
|
+ std_c_stdarg.o \
|
|
+ Czlib.o \
|
|
+ pthread.o
|
|
+
|
|
+ALLMAKEFILES= \
|
|
+ win32.mak linux.mak osx.mak freebsd.mak solaris.mak haiku.mak
|
|
+
|
|
+ZLIB_OBJS = etc/c/zlib/adler32.o etc/c/zlib/compress.o \
|
|
+ etc/c/zlib/crc32.o etc/c/zlib/gzio.o \
|
|
+ etc/c/zlib/uncompr.o etc/c/zlib/deflate.o \
|
|
+ etc/c/zlib/trees.o etc/c/zlib/zutil.o \
|
|
+ etc/c/zlib/inflate.o etc/c/zlib/infback.o \
|
|
+ etc/c/zlib/inftrees.o etc/c/zlib/inffast.o
|
|
+
|
|
+GC_OBJS= internal/gc/gc.o internal/gc/gcold.o internal/gc/gcx.o \
|
|
+ internal/gc/gcbits.o internal/gc/gclinux.o
|
|
+
|
|
+SRC= errno.c object.d unittest.d crc32.d gcstats.d
|
|
+
|
|
+SRC_STD= std/zlib.d std/zip.d std/stdint.d std/conv.d std/utf.d std/uri.d \
|
|
+ std/math.d std/string.d std/path.d std/date.d \
|
|
+ std/ctype.d std/file.d std/compiler.d std/system.d std/moduleinit.d \
|
|
+ std/outbuffer.d std/math2.d std/thread.d std/md5.d std/base64.d \
|
|
+ std/asserterror.d std/dateparse.d std/outofmemory.d std/mmfile.d \
|
|
+ std/intrinsic.d std/array.d std/switcherr.d std/syserror.d \
|
|
+ std/regexp.d std/random.d std/stream.d std/process.d \
|
|
+ std/socket.d std/socketstream.d std/loader.d std/stdarg.d \
|
|
+ std/stdio.d std/format.d std/perf.d std/openrj.d std/uni.d \
|
|
+ std/boxer.d std/cstream.d std/demangle.d std/cover.d std/bitarray.d \
|
|
+ std/signals.d std/cpuid.d std/typetuple.d std/traits.d std/bind.d \
|
|
+ std/metastrings.d
|
|
+
|
|
+SRC_STD_C= std/c/process.d std/c/stdlib.d std/c/time.d std/c/stdio.d \
|
|
+ std/c/math.d std/c/stdarg.d std/c/stddef.d std/c/fenv.d std/c/string.d \
|
|
+ std/d/locale.d
|
|
+
|
|
+SRC_TI= \
|
|
+ std/typeinfo/ti_wchar.d std/typeinfo/ti_uint.d \
|
|
+ std/typeinfo/ti_short.d std/typeinfo/ti_ushort.d \
|
|
+ std/typeinfo/ti_byte.d std/typeinfo/ti_ubyte.d \
|
|
+ std/typeinfo/ti_long.d std/typeinfo/ti_ulong.d \
|
|
+ std/typeinfo/ti_ptr.d \
|
|
+ std/typeinfo/ti_float.d std/typeinfo/ti_double.d \
|
|
+ std/typeinfo/ti_real.d std/typeinfo/ti_delegate.d \
|
|
+ std/typeinfo/ti_creal.d std/typeinfo/ti_ireal.d \
|
|
+ std/typeinfo/ti_cfloat.d std/typeinfo/ti_ifloat.d \
|
|
+ std/typeinfo/ti_cdouble.d std/typeinfo/ti_idouble.d \
|
|
+ std/typeinfo/ti_Ashort.d \
|
|
+ std/typeinfo/ti_Ag.d \
|
|
+ std/typeinfo/ti_AC.d std/typeinfo/ti_C.d \
|
|
+ std/typeinfo/ti_int.d std/typeinfo/ti_char.d \
|
|
+ std/typeinfo/ti_dchar.d \
|
|
+ std/typeinfo/ti_Aint.d \
|
|
+ std/typeinfo/ti_Along.d \
|
|
+ std/typeinfo/ti_Afloat.d std/typeinfo/ti_Adouble.d \
|
|
+ std/typeinfo/ti_Areal.d \
|
|
+ std/typeinfo/ti_Acfloat.d std/typeinfo/ti_Acdouble.d \
|
|
+ std/typeinfo/ti_Acreal.d \
|
|
+ std/typeinfo/ti_void.d
|
|
+
|
|
+SRC_INTC= \
|
|
+ internal/complex.c internal/critical.c \
|
|
+ internal/minit.asm internal/deh.c \
|
|
+ internal/monitor.c \
|
|
+ internal/mars.h
|
|
+
|
|
+
|
|
+SRC_INT= \
|
|
+ internal/switch.d \
|
|
+ internal/alloca.d internal/llmath.d \
|
|
+ internal/arraycat.d internal/invariant.d \
|
|
+ internal/memset.d internal/arraycast.d internal/aaA.d internal/adi.d \
|
|
+ internal/dmain2.d internal/cast.d internal/qsort.d internal/deh2.d \
|
|
+ internal/cmath2.d internal/obj.d internal/aApply.d \
|
|
+ internal/aApplyR.d internal/object.d internal/trace.d internal/qsort2.d
|
|
+
|
|
+SRC_STD_WIN= std/windows/registry.d \
|
|
+ std/windows/iunknown.d std/windows/charset.d
|
|
+
|
|
+SRC_STD_C_WIN= std/c/windows/windows.d std/c/windows/com.d \
|
|
+ std/c/windows/winsock.d std/c/windows/stat.d
|
|
+
|
|
+SRC_STD_C_LINUX= std/c/linux/linux.d std/c/linux/linuxextern.d \
|
|
+ std/c/linux/socket.d std/c/linux/pthread.d
|
|
+
|
|
+SRC_STD_C_OSX= std/c/osx/osx.d
|
|
+
|
|
+SRC_STD_C_FREEBSD= std/c/freebsd/freebsd.d \
|
|
+ std/c/freebsd/socket.d std/c/freebsd/pthread.d \
|
|
+ std/c/freebsd/math.d
|
|
+
|
|
+SRC_STD_C_SOLARIS= std/c/solaris/solaris.d \
|
|
+ std/c/solaris/socket.d std/c/solaris/pthread.d
|
|
+
|
|
+SRC_STD_C_POSIX= std/c/posix/posix.d \
|
|
+ std/c/posix/socket.d std/c/posix/pthread.d
|
|
+
|
|
+SRC_ETC= etc/gamma.d
|
|
+
|
|
+SRC_ETC_C= etc/c/zlib.d
|
|
+
|
|
+SRC_ZLIB= etc/c/zlib/trees.h \
|
|
+ etc/c/zlib/inffixed.h \
|
|
+ etc/c/zlib/inffast.h \
|
|
+ etc/c/zlib/crc32.h \
|
|
+ etc/c/zlib/algorithm.txt \
|
|
+ etc/c/zlib/uncompr.c \
|
|
+ etc/c/zlib/compress.c \
|
|
+ etc/c/zlib/deflate.h \
|
|
+ etc/c/zlib/inftrees.h \
|
|
+ etc/c/zlib/infback.c \
|
|
+ etc/c/zlib/zutil.c \
|
|
+ etc/c/zlib/crc32.c \
|
|
+ etc/c/zlib/inflate.h \
|
|
+ etc/c/zlib/example.c \
|
|
+ etc/c/zlib/inffast.c \
|
|
+ etc/c/zlib/trees.c \
|
|
+ etc/c/zlib/inflate.c \
|
|
+ etc/c/zlib/gzio.c \
|
|
+ etc/c/zlib/zconf.h \
|
|
+ etc/c/zlib/zconf.in.h \
|
|
+ etc/c/zlib/minigzip.c \
|
|
+ etc/c/zlib/deflate.c \
|
|
+ etc/c/zlib/inftrees.c \
|
|
+ etc/c/zlib/zutil.h \
|
|
+ etc/c/zlib/zlib.3 \
|
|
+ etc/c/zlib/zlib.h \
|
|
+ etc/c/zlib/adler32.c \
|
|
+ etc/c/zlib/ChangeLog \
|
|
+ etc/c/zlib/README \
|
|
+ etc/c/zlib/win32.mak \
|
|
+ etc/c/zlib/linux.mak \
|
|
+ etc/c/zlib/haiku.mak \
|
|
+ etc/c/zlib/osx.mak \
|
|
+ etc/c/zlib/freebsd.mak \
|
|
+ etc/c/zlib/solaris.mak
|
|
+
|
|
+SRC_GC= internal/gc/gc.d \
|
|
+ internal/gc/gcold.d \
|
|
+ internal/gc/gcx.d \
|
|
+ internal/gc/gcstub.d \
|
|
+ internal/gc/gcbits.d \
|
|
+ internal/gc/win32.d \
|
|
+ internal/gc/gclinux.d \
|
|
+ internal/gc/gcosxc.c \
|
|
+ internal/gc/testgc.d \
|
|
+ internal/gc/win32.mak \
|
|
+ internal/gc/linux.mak \
|
|
+ internal/gc/haiku.mak \
|
|
+ internal/gc/osx.mak \
|
|
+ internal/gc/freebsd.mak \
|
|
+ internal/gc/solaris.mak
|
|
+
|
|
+ALLSRCS = $(SRC) $(SRC_STD) std/gc.d $(SRC_STD_C) $(SRC_TI) $(SRC_INTC) $(SRC_INT) $(SRC_STD_WIN) \
|
|
+ $(SRC_STD_C_WIN) $(SRC_STD_C_LINUX) $(SRC_ETC) $(SRC_ETC_C) \
|
|
+ $(SRC_ZLIB) $(SRC_GC) $(SRC_STD_C_FREEBSD) $(SRC_STD_C_SOLARIS) \
|
|
+ $(SRC_STD_C_POSIX)
|
|
+
|
|
+
|
|
+SRCS= \
|
|
+ internal/aaA.d internal/adi.d \
|
|
+ internal/aApply.d internal/aApplyR.d internal/memset.d \
|
|
+ internal/arraycast.d internal/arraycat.d \
|
|
+ internal/switch.d internal/qsort.d internal/invariant.d \
|
|
+ internal/dmain2.d internal/cast.d internal/obj.d \
|
|
+ internal/arrayfloat.d internal/arraydouble.d internal/arrayreal.d \
|
|
+ internal/arraybyte.d internal/arrayshort.d internal/arrayint.d \
|
|
+ internal/deh2.d internal/llmath.d \
|
|
+ internal/trace.d internal/cmath2.d \
|
|
+ internal/alloca.d \
|
|
+ $(SRC_STD) \
|
|
+ $(SRC_TI)
|
|
+
|
|
+
|
|
+$(LIB) : $(OBJS) $(GC_OBJS) $(ZLIB_OBJS) $(SRCS) $(MAKEFILE)
|
|
+# rm -f $(LIB)
|
|
+# ar -r $@ $(OBJS) $(ZLIB_OBJS) $(GC_OBJS)
|
|
+ $(DMD) -lib -of$(LIB) $(DFLAGS) $(SRCS) $(OBJS) $(ZLIB_OBJS) $(GC_OBJS)
|
|
+
|
|
+unittest :
|
|
+ $(DMD) $(DFLAGS) -unittest -version=Unittest unittest.d $(SRCS) $(LIB) -L-ldl
|
|
+ ./unittest
|
|
+
|
|
+cov : $(SRCS) $(LIB)
|
|
+ $(DMD) -cov -unittest -ofcov -m$(MODEL) unittest.d $(SRCS) $(LIB)
|
|
+ ./cov
|
|
+
|
|
+
|
|
+###########################################################
|
|
+
|
|
+$(GC_OBJS):
|
|
+# cd internal/gc
|
|
+# make -f $(MAKEFILE) dmgc.a
|
|
+# cd ../..
|
|
+ make DMD=$(DMD) MODEL=$(MODEL) -C ./internal/gc -f $(MAKEFILE)
|
|
+
|
|
+$(ZLIB_OBJS):
|
|
+# cd etc/c/zlib
|
|
+# make -f $(MAKEFILE)
|
|
+# cd ../../..
|
|
+ make -C ./etc/c/zlib -f $(MAKEFILE) MODEL=$(MODEL)
|
|
+
|
|
+###
|
|
+
|
|
+Dcrc32.o : crc32.d
|
|
+ $(DMD) -c $(DFLAGS) crc32.d -ofDcrc32.o
|
|
+
|
|
+errno.o : errno.c
|
|
+
|
|
+gcstats.o : gcstats.d
|
|
+ $(DMD) -c $(DFLAGS) gcstats.d
|
|
+
|
|
+### internal
|
|
+
|
|
+aaA.o : internal/aaA.d
|
|
+ $(DMD) -c $(DFLAGS) internal/aaA.d
|
|
+
|
|
+aApply.o : internal/aApply.d
|
|
+ $(DMD) -c $(DFLAGS) internal/aApply.d
|
|
+
|
|
+aApplyR.o : internal/aApplyR.d
|
|
+ $(DMD) -c $(DFLAGS) internal/aApplyR.d
|
|
+
|
|
+adi.o : internal/adi.d
|
|
+ $(DMD) -c $(DFLAGS) internal/adi.d
|
|
+
|
|
+alloca.o : internal/alloca.d
|
|
+ $(DMD) -c $(DFLAGS) internal/alloca.d
|
|
+
|
|
+arraycast.o : internal/arraycast.d
|
|
+ $(DMD) -c $(DFLAGS) internal/arraycast.d
|
|
+
|
|
+arraycat.o : internal/arraycat.d
|
|
+ $(DMD) -c $(DFLAGS) internal/arraycat.d
|
|
+
|
|
+cast.o : internal/cast.d
|
|
+ $(DMD) -c $(DFLAGS) internal/cast.d
|
|
+
|
|
+cmath2.o : internal/cmath2.d
|
|
+ $(DMD) -c $(DFLAGS) internal/cmath2.d
|
|
+
|
|
+complex.o : internal/complex.c
|
|
+ $(CC) -c $(CFLAGS) internal/complex.c
|
|
+
|
|
+critical.o : internal/critical.c
|
|
+ $(CC) -c $(CFLAGS) internal/critical.c
|
|
+
|
|
+#deh.o : internal/mars.h internal/deh.cA
|
|
+# $(CC) -c $(CFLAGS) internal/deh.c
|
|
+
|
|
+deh2.o : internal/deh2.d
|
|
+ $(DMD) -c $(DFLAGS) -release internal/deh2.d
|
|
+
|
|
+dmain2.o : internal/dmain2.d
|
|
+ $(DMD) -c $(DFLAGS) internal/dmain2.d
|
|
+
|
|
+invariant.o : internal/invariant.d
|
|
+ $(DMD) -c $(DFLAGS) internal/invariant.d
|
|
+
|
|
+llmath.o : internal/llmath.d
|
|
+ $(DMD) -c $(DFLAGS) internal/llmath.d
|
|
+
|
|
+memset.o : internal/memset.d
|
|
+ $(DMD) -c $(DFLAGS) internal/memset.d
|
|
+
|
|
+#minit.o : internal/minit.asm
|
|
+# $(CC) -c internal/minit.asm
|
|
+
|
|
+monitor.o : internal/mars.h internal/monitor.c
|
|
+ $(CC) -c $(CFLAGS) internal/monitor.c
|
|
+
|
|
+obj.o : internal/obj.d
|
|
+ $(DMD) -c $(DFLAGS) internal/obj.d
|
|
+
|
|
+object.o : internal/object.d
|
|
+ $(DMD) -c $(DFLAGS) internal/object.d
|
|
+
|
|
+qsort.o : internal/qsort.d
|
|
+ $(DMD) -c $(DFLAGS) internal/qsort.d
|
|
+
|
|
+switch.o : internal/switch.d
|
|
+ $(DMD) -c $(DFLAGS) internal/switch.d
|
|
+
|
|
+trace.o : internal/trace.d
|
|
+ $(DMD) -c $(DFLAGS) internal/trace.d
|
|
+
|
|
+### std
|
|
+
|
|
+array.o : std/array.d
|
|
+ $(DMD) -c $(DFLAGS) std/array.d
|
|
+
|
|
+asserterror.o : std/asserterror.d
|
|
+ $(DMD) -c $(DFLAGS) std/asserterror.d
|
|
+
|
|
+base64.o : std/base64.d
|
|
+ $(DMD) -c $(DFLAGS) std/base64.d
|
|
+
|
|
+bind.o : std/bind.d
|
|
+ $(DMD) -c $(DFLAGS) std/bind.d
|
|
+
|
|
+bitarray.o : std/bitarray.d
|
|
+ $(DMD) -c $(DFLAGS) std/bitarray.d
|
|
+
|
|
+boxer.o : std/boxer.d
|
|
+ $(DMD) -c $(DFLAGS) std/boxer.d
|
|
+
|
|
+compiler.o : std/compiler.d
|
|
+ $(DMD) -c $(DFLAGS) std/compiler.d
|
|
+
|
|
+conv.o : std/conv.d
|
|
+ $(DMD) -c $(DFLAGS) std/conv.d
|
|
+
|
|
+cover.o : std/cover.d
|
|
+ $(DMD) -c $(DFLAGS) std/cover.d
|
|
+
|
|
+cpuid.o : std/cpuid.d
|
|
+ $(DMD) -c $(DFLAGS) std/cpuid.d
|
|
+
|
|
+cstream.o : std/cstream.d
|
|
+ $(DMD) -c $(DFLAGS) std/cstream.d
|
|
+
|
|
+ctype.o : std/ctype.d
|
|
+ $(DMD) -c $(DFLAGS) std/ctype.d
|
|
+
|
|
+date.o : std/dateparse.d std/date.d
|
|
+ $(DMD) -c $(DFLAGS) std/date.d
|
|
+
|
|
+dateparse.o : std/dateparse.d std/date.d
|
|
+ $(DMD) -c $(DFLAGS) std/dateparse.d
|
|
+
|
|
+demangle.o : std/demangle.d
|
|
+ $(DMD) -c $(DFLAGS) std/demangle.d
|
|
+
|
|
+file.o : std/file.d
|
|
+ $(DMD) -c $(DFLAGS) std/file.d
|
|
+
|
|
+format.o : std/format.d
|
|
+ $(DMD) -c $(DFLAGS) std/format.d
|
|
+
|
|
+gc.o : std/gc.d
|
|
+ $(DMD) -c $(DFLAGS) std/gc.d
|
|
+
|
|
+loader.o : std/loader.d
|
|
+ $(DMD) -c $(DFLAGS) std/loader.d
|
|
+
|
|
+math.o : std/math.d
|
|
+ $(DMD) -c $(DFLAGS) std/math.d
|
|
+
|
|
+math2.o : std/math2.d
|
|
+ $(DMD) -c $(DFLAGS) std/math2.d
|
|
+
|
|
+md5.o : std/md5.d
|
|
+ $(DMD) -c $(DFLAGS) std/md5.d
|
|
+
|
|
+metastrings.o : std/metastrings.d
|
|
+ $(DMD) -c $(DFLAGS) std/metastrings.d
|
|
+
|
|
+mmfile.o : std/mmfile.d
|
|
+ $(DMD) -c $(DFLAGS) std/mmfile.d
|
|
+
|
|
+moduleinit.o : std/moduleinit.d
|
|
+ $(DMD) -c $(DFLAGS) std/moduleinit.d
|
|
+
|
|
+openrj.o : std/openrj.d
|
|
+ $(DMD) -c $(DFLAGS) std/openrj.d
|
|
+
|
|
+outbuffer.o : std/outbuffer.d
|
|
+ $(DMD) -c $(DFLAGS) std/outbuffer.d
|
|
+
|
|
+outofmemory.o : std/outofmemory.d
|
|
+ $(DMD) -c $(DFLAGS) std/outofmemory.d
|
|
+
|
|
+path.o : std/path.d
|
|
+ $(DMD) -c $(DFLAGS) std/path.d
|
|
+
|
|
+perf.o : std/perf.d
|
|
+ $(DMD) -c $(DFLAGS) std/perf.d
|
|
+
|
|
+process.o : std/process.d
|
|
+ $(DMD) -c $(DFLAGS) std/process.d
|
|
+
|
|
+random.o : std/random.d
|
|
+ $(DMD) -c $(DFLAGS) std/random.d
|
|
+
|
|
+regexp.o : std/regexp.d
|
|
+ $(DMD) -c $(DFLAGS) std/regexp.d
|
|
+
|
|
+signals.o : std/signals.d
|
|
+ $(DMD) -c $(DFLAGS) std/signals.d
|
|
+
|
|
+socket.o : std/socket.d
|
|
+ $(DMD) -c $(DFLAGS) std/socket.d
|
|
+
|
|
+socketstream.o : std/socketstream.d
|
|
+ $(DMD) -c $(DFLAGS) std/socketstream.d
|
|
+
|
|
+stdio.o : std/stdio.d
|
|
+ $(DMD) -c $(DFLAGS) std/stdio.d
|
|
+
|
|
+stream.o : std/stream.d
|
|
+ $(DMD) -c $(DFLAGS) -d std/stream.d
|
|
+
|
|
+string.o : std/string.d
|
|
+ $(DMD) -c $(DFLAGS) std/string.d
|
|
+
|
|
+switcherr.o : std/switcherr.d
|
|
+ $(DMD) -c $(DFLAGS) std/switcherr.d
|
|
+
|
|
+system.o : std/system.d
|
|
+ $(DMD) -c $(DFLAGS) std/system.d
|
|
+
|
|
+syserror.o : std/syserror.d
|
|
+ $(DMD) -c $(DFLAGS) std/syserror.d
|
|
+
|
|
+thread.o : std/thread.d
|
|
+ $(DMD) -c $(DFLAGS) std/thread.d
|
|
+
|
|
+traits.o : std/traits.d
|
|
+ $(DMD) -c $(DFLAGS) std/traits.d
|
|
+
|
|
+typetuple.o : std/typetuple.d
|
|
+ $(DMD) -c $(DFLAGS) std/typetuple.d
|
|
+
|
|
+uri.o : std/uri.d
|
|
+ $(DMD) -c $(DFLAGS) std/uri.d
|
|
+
|
|
+uni.o : std/uni.d
|
|
+ $(DMD) -c $(DFLAGS) std/uni.d
|
|
+
|
|
+utf.o : std/utf.d
|
|
+ $(DMD) -c $(DFLAGS) std/utf.d
|
|
+
|
|
+Dzlib.o : std/zlib.d
|
|
+ $(DMD) -c $(DFLAGS) std/zlib.d -ofDzlib.o
|
|
+
|
|
+zip.o : std/zip.d
|
|
+ $(DMD) -c $(DFLAGS) std/zip.d
|
|
+
|
|
+### std/c
|
|
+
|
|
+std_c_stdarg.o : std/c/stdarg.d
|
|
+ $(DMD) -c $(DFLAGS) std/c/stdarg.d -ofstd_c_stdarg.o
|
|
+
|
|
+### std/c/linux
|
|
+
|
|
+linux.o : std/c/linux/linux.d
|
|
+ $(DMD) -c $(DFLAGS) std/c/linux/linux.d
|
|
+
|
|
+linuxsocket.o : std/c/linux/socket.d
|
|
+ $(DMD) -c $(DFLAGS) std/c/linux/socket.d -oflinuxsocket.o
|
|
+
|
|
+pthread.o : std/c/linux/pthread.d
|
|
+ $(DMD) -c $(DFLAGS) std/c/linux/pthread.d
|
|
+
|
|
+### std/c/posix
|
|
+
|
|
+posix.o : std/c/posix/posix.d
|
|
+ $(DMD) -c $(DFLAGS) std/c/posix/posix.d
|
|
+
|
|
+posixsocket.o : std/c/posix/socket.d
|
|
+ $(DMD) -c $(DFLAGS) std/c/posix/socket.d -ofposixsocket.o
|
|
+
|
|
+posixpthread.o : std/c/posix/pthread.d
|
|
+ $(DMD) -c $(DFLAGS) std/c/posix/pthread.d -ofposixpthread.o
|
|
+
|
|
+### etc
|
|
+
|
|
+### etc/c
|
|
+
|
|
+Czlib.o : etc/c/zlib.d
|
|
+ $(DMD) -c $(DFLAGS) etc/c/zlib.d -ofCzlib.o
|
|
+
|
|
+### std/typeinfo
|
|
+
|
|
+ti_void.o : std/typeinfo/ti_void.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_void.d
|
|
+
|
|
+ti_wchar.o : std/typeinfo/ti_wchar.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_wchar.d
|
|
+
|
|
+ti_dchar.o : std/typeinfo/ti_dchar.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_dchar.d
|
|
+
|
|
+ti_uint.o : std/typeinfo/ti_uint.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_uint.d
|
|
+
|
|
+ti_short.o : std/typeinfo/ti_short.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_short.d
|
|
+
|
|
+ti_ushort.o : std/typeinfo/ti_ushort.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_ushort.d
|
|
+
|
|
+ti_byte.o : std/typeinfo/ti_byte.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_byte.d
|
|
+
|
|
+ti_ubyte.o : std/typeinfo/ti_ubyte.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_ubyte.d
|
|
+
|
|
+ti_long.o : std/typeinfo/ti_long.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_long.d
|
|
+
|
|
+ti_ulong.o : std/typeinfo/ti_ulong.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_ulong.d
|
|
+
|
|
+ti_ptr.o : std/typeinfo/ti_ptr.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_ptr.d
|
|
+
|
|
+ti_float.o : std/typeinfo/ti_float.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_float.d
|
|
+
|
|
+ti_double.o : std/typeinfo/ti_double.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_double.d
|
|
+
|
|
+ti_real.o : std/typeinfo/ti_real.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_real.d
|
|
+
|
|
+ti_delegate.o : std/typeinfo/ti_delegate.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_delegate.d
|
|
+
|
|
+ti_creal.o : std/typeinfo/ti_creal.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_creal.d
|
|
+
|
|
+ti_ireal.o : std/typeinfo/ti_ireal.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_ireal.d
|
|
+
|
|
+ti_cfloat.o : std/typeinfo/ti_cfloat.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_cfloat.d
|
|
+
|
|
+ti_ifloat.o : std/typeinfo/ti_ifloat.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_ifloat.d
|
|
+
|
|
+ti_cdouble.o : std/typeinfo/ti_cdouble.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_cdouble.d
|
|
+
|
|
+ti_idouble.o : std/typeinfo/ti_idouble.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_idouble.d
|
|
+
|
|
+ti_AC.o : std/typeinfo/ti_AC.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_AC.d
|
|
+
|
|
+ti_Ag.o : std/typeinfo/ti_Ag.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_Ag.d
|
|
+
|
|
+ti_Abit.o : std/typeinfo/ti_Abit.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_Abit.d
|
|
+
|
|
+ti_Ashort.o : std/typeinfo/ti_Ashort.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_Ashort.d
|
|
+
|
|
+ti_Aint.o : std/typeinfo/ti_Aint.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_Aint.d
|
|
+
|
|
+ti_Along.o : std/typeinfo/ti_Along.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_Along.d
|
|
+
|
|
+ti_Afloat.o : std/typeinfo/ti_Afloat.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_Afloat.d
|
|
+
|
|
+ti_Adouble.o : std/typeinfo/ti_Adouble.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_Adouble.d
|
|
+
|
|
+ti_Areal.o : std/typeinfo/ti_Areal.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_Areal.d
|
|
+
|
|
+ti_Acfloat.o : std/typeinfo/ti_Acfloat.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_Acfloat.d
|
|
+
|
|
+ti_Acdouble.o : std/typeinfo/ti_Acdouble.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_Acdouble.d
|
|
+
|
|
+ti_Acreal.o : std/typeinfo/ti_Acreal.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_Acreal.d
|
|
+
|
|
+ti_C.o : std/typeinfo/ti_C.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_C.d
|
|
+
|
|
+ti_char.o : std/typeinfo/ti_char.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_char.d
|
|
+
|
|
+ti_int.o : std/typeinfo/ti_int.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_int.d
|
|
+
|
|
+ti_bit.o : std/typeinfo/ti_bit.d
|
|
+ $(DMD) -c $(DFLAGS) std/typeinfo/ti_bit.d
|
|
+
|
|
+
|
|
+##########################################################
|
|
+
|
|
+zip : $(ALLSRCS) $(ALLMAKEFILES) phoboslicense.txt
|
|
+ $(RM) phobos.zip
|
|
+ zip phobos $(ALLSRCS) $(ALLMAKEFILES) phoboslicense.txt
|
|
+
|
|
+clean:
|
|
+ $(RM) $(LIB) $(OBJS) unittest unittest.o
|
|
+ make -C ./internal/gc -f $(MAKEFILE) clean
|
|
+ make -C ./etc/c/zlib -f $(MAKEFILE) clean
|
|
+
|
|
diff -Naur dmd/src/phobos/internal/gc/haiku.mak dmd1/src/phobos/internal/gc/haiku.mak
|
|
--- dmd/src/phobos/internal/gc/haiku.mak 1970-01-01 00:00:00.000000000 +0000
|
|
+++ dmd1/src/phobos/internal/gc/haiku.mak 2010-09-20 16:41:30.325582848 +0000
|
|
@@ -0,0 +1,56 @@
|
|
+
|
|
+# makefile to build linux D garbage collector
|
|
+
|
|
+MODEL=32
|
|
+#DMD=../../../dmd
|
|
+DMD=dmd
|
|
+CFLAGS=-g -m$(MODEL)
|
|
+#DFLAGS=-unittest -g -release
|
|
+DFLAGS=-release -O -inline -m$(MODEL) -I../..
|
|
+#DFLAGS=-release -inline -O
|
|
+CC=gcc
|
|
+MAKEFILE=haiku.mak
|
|
+
|
|
+OBJS= gc.o gcx.o gcbits.o gclinux.o gcold.o
|
|
+
|
|
+SRC= gc.d gcx.d gcbits.d win32.d gclinux.d gcold.d testgc.d \
|
|
+ win32.mak osx.mak linux.mak freebsd.mak solaris.mak
|
|
+
|
|
+.c.o:
|
|
+ $(CC) -c $(CFLAGS) $*
|
|
+
|
|
+.d.o:
|
|
+ $(DMD) -c $(DFLAGS) $*
|
|
+
|
|
+targets : dmgc.a
|
|
+
|
|
+testgc : testgc.o $(OBJS) $(MAKEFILE)
|
|
+ $(DMD) -of$@ -m$(MODEL) testgc.o gc.o gcx.o gcbits.o gclinux.o -g
|
|
+
|
|
+testgc.o : testgc.d
|
|
+ $(DMD) -c $(DFLAGS) testgc.d
|
|
+
|
|
+dmgc.a : $(OBJS) $(MAKEFILE)
|
|
+ ar -r $@ $(OBJS)
|
|
+
|
|
+gc.o : gc.d
|
|
+ $(DMD) -c $(DFLAGS) gc.d
|
|
+
|
|
+gcold.o : gcold.d
|
|
+ $(DMD) -c $(DFLAGS) gcold.d
|
|
+
|
|
+gcx.o : gcx.d
|
|
+ $(DMD) -c $(DFLAGS) gcx.d gcbits.d
|
|
+
|
|
+#gcbits.o : gcbits.d
|
|
+# $(DMD) -c $(DFLAGS) gcbits.d
|
|
+
|
|
+gclinux.o : gclinux.d
|
|
+ $(DMD) -c $(DFLAGS) gclinux.d
|
|
+
|
|
+zip : $(SRC)
|
|
+ $(RM) dmgc.zip
|
|
+ zip dmgc $(SRC)
|
|
+
|
|
+clean:
|
|
+ $(RM) $(OBJS) dmgc.a testgc testgc.o
|