/* target def file for atarist (both TOS and MINIX), for use with GNU CC */ /* The following Macros control the compilation * * CROSSATARI defined when making cross compiler for TOS or Minix * MINIX defined when making cross compiler for MINIX only * atariminix defined when making compiler for MINIX * atarist defined when making compiler for TOS */ #include "tm-m68k.h" #ifndef CROSSATARI #ifndef atarist #undef alloca #endif #endif /* See tm-m68k.h. 0 means 68000 with no 68881. */ #define TARGET_DEFAULT 0 /* -m68020 requires special flags to the assembler. */ /* -m68000 (on atari) need this flag to assembler, otherwise pc relative code is produced where it should not be (in places where the 68000 only allows data ALTERABLE addressing modes) (++jrb 03/19/89) */ #define ASM_SPEC "%{m68020:-mc68020}%{!m68020:-m68000}" #if 1 /* now, we pick up PARAM_BOUNDARY from tm-m68k.h -- implies changes in in library *.s files and in files like doprintf.c etc that took variable no. of arguements */ /* *******#undef PARM_BOUNDARY #define PARM_BOUNDARY 32 ********* */ /* FINALLY works !!!!! */ #else /* */ #endif /* Names to predefine in the preprocessor for this target machine. */ #if (defined(MINIX) || defined(atariminix)) #define CPP_PREDEFINES "-DATARI_ST -Dminix -Dm68k" #else #define CPP_PREDEFINES "-Datarist -Dgem -Dm68k" #endif /* default exec dir */ #ifndef STANDARD_EXEC_PREFIX #ifdef MINIX #define STANDARD_EXEC_PREFIX "/dsrg/bammi/cross-minix/lib/gcc-" #else #ifdef atariminix #define STANDARD_EXEC_PREFIX "/usr/local/lib/gcc-" #else #define STANDARD_EXEC_PREFIX "/dsrg/bammi/cross-gcc/lib/gcc-" #endif #endif #endif /* Alignment of field after `int : 0' in a structure. */ /* recent gcc's have this as 16, this is left in for the benfit of */ /* older gcc */ #undef EMPTY_FIELD_BOUNDARY #define EMPTY_FIELD_BOUNDARY 16 /* Every structure or union's size must be a multiple of 2 bytes. */ #undef STRUCTURE_SIZE_BOUNDARY #define STRUCTURE_SIZE_BOUNDARY 16 /* code seems to assume this... */ #define DBX_DEBUGGING_INFO #ifndef HAVE_VPRINTF #define HAVE_VPRINTF 1 #endif #ifdef abort #undef abort #define abort fancy_abort #endif /* the following stolen from tm-sun3.h, they seem to work better */ /* This is how to output an assembler line defining a `double' constant. */ #undef ASM_OUTPUT_DOUBLE #define ASM_OUTPUT_DOUBLE(FILE,VALUE) \ fprintf (FILE, "\t.double 0r%.20e\n", (VALUE)) /* This is how to output an assembler line defining a `float' constant. */ #undef ASM_OUTPUT_FLOAT #define ASM_OUTPUT_FLOAT(FILE,VALUE) \ fprintf (FILE, "\t.single 0r%.20e\n", (VALUE)) #undef ASM_OUTPUT_FLOAT_OPERAND #define ASM_OUTPUT_FLOAT_OPERAND(FILE,VALUE) \ fprintf (FILE, "#0r%.9g", (VALUE)) #undef ASM_OUTPUT_DOUBLE_OPERAND #define ASM_OUTPUT_DOUBLE_OPERAND(FILE,VALUE) \ fprintf (FILE, "#0r%.20g", (VALUE)) /* these moved here from xm-atari.h */ /* specs for start file and link specs */ #ifndef CROSSATARI #ifdef atariminix #define STARTFILE_SPEC \ "%{pg:/usr/local/lib/gcrt0.o%s}\ %{!pg:\ %{p:/usr/local/lib/mcrtso.o%s}\ %{!p:/usr/local/lib/crtso.o%s}}" #else /* atarist */ #define STARTFILE_SPEC \ "%{pg:$GNULIB$\\gcrt0.o%s}%{!pg:%{p:$GNULIB$\\mcrt0.o%s}%{!p:$GNULIB$\\crt0.o%s}}" #endif #else /* CROSSATARI */ #ifdef MINIX #define STARTFILE_SPEC \ "%{pg:/dsrg/bammi/cross-minix/lib/gcrt0.o%s}\ %{!pg:\ %{p:/dsrg/bammi/cross-minix/lib/mcrtso.o%s}\ %{!p:/dsrg/bammi/cross-minix/lib/crtso.o%s}}" #else #define STARTFILE_SPEC \ "%{pg:/dsrg/bammi/cross-gcc/lib/gcrt0.o%s}\ %{!pg:\ %{p:/dsrg/bammi/cross-gcc/lib/mcrt0.o%s}\ %{!p:/dsrg/bammi/cross-gcc/lib/crt0.o%s}}" #endif #endif /* CROSSATARI */ #ifdef MINIX #define LIB_SPEC \ "%{mshort:/dsrg/bammi/cross-minix/lib/libc.a}\ %{!mshort:/dsrg/bammi/cross-minix/lib/libc32.a}" #else #ifdef atariminix #define LIB_SPEC \ "%{mshort:/usr/local/lib/libc.a}\ %{!mshort:/usr/local/lib/libc32.a}" #else /* atarist cross or native */ #define LIB_SPEC \ "%{!gg:\ %{mshort:-lgnu16}\ %{!mshort:-lgnu}}\ %{gg:\ %{mshort:-lgnugdb16}\ %{!mshort:-lgnugdb}}" #endif #endif