diff -c -p -r1.1.1.1 -r1.2 *** config.sub 1999/08/29 00:59:05 1.1.1.1 --- config.sub 1999/09/01 11:48:53 1.2 *************** case $basic_machine in *** 277,286 **** os=-sysv ;; amiga | amiga-*) ! basic_machine=m68k-cbm ;; amigaos | amigados) ! basic_machine=m68k-cbm os=-amigaos ;; amigaunix | amix) --- 277,286 ---- os=-sysv ;; amiga | amiga-*) ! basic_machine=m68k-unknown ;; amigaos | amigados) ! basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) diff -N x-amigaos *** gcc/config/m68k/x-amigaos Tue May 5 13:32:27 1998 --- gcc/config/m68k/x-amigaos Sat Sep 4 11:20:56 1999 *************** *** 0 **** --- 1,77 ---- + # Makefile fragment for AmigaOS host + + # Uncomment the following macro to get a resident GCC. We don't do it + # by default, since we want to support users with mc68000. + # WARNING! If you uncomment this, you MUST add the same flags to the + # libiberty's Makefile (libiberty is now linked into GCC executables). + + #RESIDENT = -m68020 -resident32 + + # Additional host flags that are not used when compiling with GCC_FOR_TARGET, + # such as when compiling the libgcc* runtime archives. GCC uses stack + # a lot, and since AmigaOS provides processes with a small, fixed size + # stack, we have to generate code that will extend it whenever necessary. + + XCFLAGS = -mstackextend $(RESIDENT) + + # AmigaOS supports "AmigaGuide(R)" hypertext files. For GCC, these are + # build with a custom "makeinfo". + + ### begin-GG-local: gcc-amigaos + EXTRA_DOC_TARGETS = guide gcc-amigaos-doc + ### end-GG-local + + # Arrange for guides to be build with GCC, in the build directory. + + ALL = all.internal doc + + # Actually build guides + + guide: cpp.guide gcc.guide + + cpp.guide: cpp.texi + $(MAKEINFO) -I$(srcdir) $(srcdir)/cpp.texi --output=$@ --amiga + + gcc.guide: gcc.texi extend.texi install.texi invoke.texi \ + md.texi rtl.texi tm.texi + $(MAKEINFO) -I$(srcdir) $(srcdir)/gcc.texi --output=$@ --amiga + + # Arrange for guides to be installed with GCC. + + ### begin-GG-local: gcc-amigaos + INSTALL_TARGET=install-normal install-guide install-gcc-amigaos-doc + ### end-GG-local + + # Where the guide files go + + guidedir = $(prefix)/guide + + # Actually install guides. + + install-guide: doc installdirs + -if [ -d $(guidedir) ] ; then true ; else mkdir $(guidedir) ; chmod a+rx $(guidedir) ; fi + -rm -f $(guidedir)/cpp.guide $(guidedir)/gcc.guide + for f in cpp.guide gcc.guide; \ + do $(INSTALL_DATA) $$f $(guidedir)/$$f; done + -chmod a-x $(guidedir)/cpp.guide $(guidedir)/gcc.guide + + ### begin-GG-local: gcc-amigaos + # Build and install gcc-amigaos.guide - documentation specific to the + # AmigaOS port of GCC. + + gcc-amigaos-doc: gcc-amigaos.info gcc-amigaos.guide + + gcc-amigaos.info: gcc-amigaos.texi + $(MAKEINFO) -I$(srcdir) $(srcdir)/gcc-amigaos.texi --output=$@ + + gcc-amigaos.guide: gcc-amigaos.texi + $(MAKEINFO) -I$(srcdir) $(srcdir)/gcc-amigaos.texi --output=$@ --amiga + + install-gcc-amigaos-doc: doc installdirs + -if [ -d $(guidedir) ] ; then true ; else mkdir $(guidedir) ; chmod a+rx $(guidedir) ; fi + -rm -f $(infodir)/gcc-amigaos.info* $(guidedir)/gcc-amigaos.guide + for f in gcc-amigaos.info*; \ + do $(INSTALL_DATA) $$f $(infodir)/$$f; done + $(INSTALL_DATA) gcc-amigaos.guide $(guidedir) + -chmod a-x $(infodir)/gcc-amigaos.info* $(guidedir)/gcc-amigaos.guide + ### end-GG-local Index: gcc/config/m68k/xm-amigaos.h =================================================================== RCS file: xm-amigaos.h diff -N xm-amigaos.h *** gcc/config/m68k/xm-amigaos.h Tue May 5 13:32:27 1998 --- gcc/config/m68k/xm-amigaos.h Sat Sep 4 11:20:56 1999 *************** *** 0 **** --- 1,98 ---- + /* Configuration for GNU C-compiler for m68k Amiga, running AmigaOS. + Copyright (C) 1992, 93-96, 1997 Free Software Foundation, Inc. + Contributed by Markus M. Wild (wild@amiga.physik.unizh.ch). + + This file is part of GNU CC. + + GNU CC is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GNU CC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU CC; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + + /* First include the generic header, then modify some parts. */ + + #include "m68k/xm-m68k.h" + + #ifndef _FCNTL_H_ + #include + #endif + + /* Define various things that the AmigaOS host has. */ + + #define HAVE_ATEXIT + #define HAVE_RENAME + + /* AmigaOS specific headers, such as from the Native Developer Update kits, + go in SYSTEM_INCLUDE_DIR. STANDARD_INCLUDE_DIR is the equivalent of + Unix "/usr/include". All other include paths are set in Makefile. */ + + #define SYSTEM_INCLUDE_DIR "/gg/os-include" + #define STANDARD_INCLUDE_DIR "/gg/include" + + #define STANDARD_EXEC_PREFIX_1 "/gg/lib/gcc/" + #define STANDARD_STARTFILE_PREFIX_1 "/gg/lib/" + #define STANDARD_STARTFILE_PREFIX_2 "/gg/lib/" + + /* The AmigaOS stores file names with regard to upper/lower case, but actions + on existing files are case independent on the standard filesystems. + + A good example of where this causes problems is the conflict between the C + include file and the C++ include file , where the C++ + include file dir is searched first and thus causes includes of + to include instead. + + In order to solve this problem we define the macro OPEN_CASE_SENSITIVE as + the name of the function that takes the same args as open() and does case + dependent opens. */ + + #define OPEN_CASE_SENSITIVE(NAME, FLAGS, MODE) open ((NAME), (FLAGS) | O_CASE, (MODE)) + + /* On the AmigaOS, there are two pathname separators, '/' (DIR_SEPARATOR) + and ':' (VOL_SEPARATOR). DIR_SEPARATOR defaults to the correct + character, so we don't have to explicitly set it. */ + + #define DIR_SEPARATOR '/' + #define VOL_SEPARATOR ':' + #define DIR_SEPARATOR_2 VOL_SEPARATOR + + /* Determine whether a '\0'-terminated file name is absolute or not. + + This checks for both, '/' as the first character, since we're running under + ixemul.library which provides for this unix'ism, and for the usual + logical-terminator, ':', somewhere in the filename. */ + + #define FILE_NAME_ABSOLUTE_P(NAME) ((NAME)[0] == '/' || index ((NAME), ':')) + + /* Like the above, but the file name is not '\0'-terminated. */ + + #define FILE_NAME_ABSOLUTE_N_P(NAME, LEN) amigaos_file_name_absolute_n ((NAME), (LEN)) + + /* Return the file name part of the path name. */ + + #define FILE_NAME_NONDIRECTORY(NAME) \ + (rindex ((NAME), '/') ? rindex ((NAME), '/') + 1 \ + : (rindex ((NAME), ':') ? rindex ((NAME), ':') + 1 \ + : (NAME))) + + /* Generate the name of the cross reference file. */ + + #define XREF_FILE_NAME(BUFF, NAME) \ + do \ + { \ + char *filesrc, *filedst; \ + strcpy ((BUFF), (NAME)); \ + filesrc = FILE_NAME_NONDIRECTORY (NAME); \ + filedst = (BUFF) + (filesrc - (NAME)); \ + sprintf (filedst, ".%s.gxref", filesrc); \ + } \ + while (0) diff -c -p -r1.1.1.1 -r1.2 *** gcc/toplev.c 1999/08/29 00:59:17 1.1.1.1 --- gcc/toplev.c 1999/09/01 11:49:00 1.2 *************** main (argc, argv) *** 5440,5446 **** compile_file (filename); ! #if !defined(OS2) && !defined(VMS) && (!defined(_WIN32) || defined (__CYGWIN__)) && !defined(__INTERIX) if (flag_print_mem) { char *lim = (char *) sbrk (0); --- 5451,5457 ---- compile_file (filename); ! #if !defined(OS2) && !defined(VMS) && (!defined(_WIN32) || defined (__CYGWIN__)) && !defined(__INTERIX) && !defined (__amigaos__) && !defined (__BEOS__) if (flag_print_mem) { char *lim = (char *) sbrk (0); *** gcc/configure~ Sun Mar 19 11:37:57 2000 --- gcc/configure Sun Mar 19 16:24:33 2000 *************** *** 4440,4445 **** --- 4440,4453 ---- extra_headers=math-68881.h float_format=m68k ;; + m68k-*-amigaos*) + xm_file=m68k/xm-amigaos.h + tm_file=m68k/amigaos.h + tmake_file=m68k/t-amigaos + xmake_file=m68k/x-amigaos + extra_objs=amigaos.o + gnu_ld=yes + ;; m88k-dg-dgux*) case $machine in