1 /* Operating system specific defines to be used when targeting GCC for 2 hosting on Windows32, using GNU tools and the Windows32 API Library. 3 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 4 Free Software Foundation, Inc. 5 6 This file is part of GCC. 7 8 GCC is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 2, or (at your option) 11 any later version. 12 13 GCC is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with GCC; see the file COPYING. If not, write to 20 the Free Software Foundation, 51 Franklin Street, Fifth Floor, 21 Boston, MA 02110-1301, USA. */ 22 23 #undef TARGET_VERSION 24 #define TARGET_VERSION fprintf (stderr, " (x86 MinGW)"); 25 26 /* See i386/crtdll.h for an alternative definition. */ 27 #define EXTRA_OS_CPP_BUILTINS() \ 28 do \ 29 { \ 30 builtin_define ("__MSVCRT__"); \ 31 builtin_define ("__MINGW32__"); \ 32 builtin_define ("_WIN32"); \ 33 builtin_define_std ("WIN32"); \ 34 builtin_define_std ("WINNT"); \ 35 } \ 36 while (0) 37 38 /* Override the standard choice of /usr/include as the default prefix 39 to try when searching for header files. */ 40 #undef STANDARD_INCLUDE_DIR 41 #define STANDARD_INCLUDE_DIR "/mingw/include" 42 #undef STANDARD_INCLUDE_COMPONENT 43 #define STANDARD_INCLUDE_COMPONENT "MINGW" 44 45 #undef CPP_SPEC 46 #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{mthreads:-D_MT}" 47 48 /* For Windows applications, include more libraries, but always include 49 kernel32. */ 50 #undef LIB_SPEC 51 #define LIB_SPEC "%{pg:-lgmon} %{mwindows:-lgdi32 -lcomdlg32} \ 52 -luser32 -lkernel32 -ladvapi32 -lshell32" 53 54 /* Include in the mingw32 libraries with libgcc */ 55 #undef LINK_SPEC 56 #define LINK_SPEC "%{mwindows:--subsystem windows} \ 57 %{mconsole:--subsystem console} \ 58 %{shared: %{mdll: %eshared and mdll are not compatible}} \ 59 %{shared: --shared} %{mdll:--dll} \ 60 %{static:-Bstatic} %{!static:-Bdynamic} \ 61 %{shared|mdll: -e _DllMainCRTStartup@12}" 62 63 /* Include in the mingw32 libraries with libgcc */ 64 #undef LIBGCC_SPEC 65 #define LIBGCC_SPEC \ 66 "%{mthreads:-lmingwthrd} -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt" 67 68 #undef STARTFILE_SPEC 69 #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ 70 %{!shared:%{!mdll:crt2%O%s}} %{pg:gcrt2%O%s}" 71 72 /* Override startfile prefix defaults. */ 73 #ifndef STANDARD_STARTFILE_PREFIX_1 74 #define STANDARD_STARTFILE_PREFIX_1 "/mingw/lib/" 75 #endif 76 #ifndef STANDARD_STARTFILE_PREFIX_2 77 #define STANDARD_STARTFILE_PREFIX_2 "" 78 #endif 79 80 /* Output STRING, a string representing a filename, to FILE. 81 We canonicalize it to be in Unix format (backslashes are replaced 82 forward slashes. */ 83 #undef OUTPUT_QUOTED_STRING 84 #define OUTPUT_QUOTED_STRING(FILE, STRING) \ 85 do { \ 86 char c; \ 87 \ 88 putc ('\"', asm_file); \ 89 \ 90 while ((c = *string++) != 0) \ 91 { \ 92 if (c == '\\') \ 93 c = '/'; \ 94 \ 95 if (ISPRINT (c)) \ 96 { \ 97 if (c == '\"') \ 98 putc ('\\', asm_file); \ 99 putc (c, asm_file); \ 100 } \ 101 else \ 102 fprintf (asm_file, "\\%03o", (unsigned char) c); \ 103 } \ 104 \ 105 putc ('\"', asm_file); \ 106 } while (0) 107 108 /* Define as short unsigned for compatibility with MS runtime. */ 109 #undef WINT_TYPE 110 #define WINT_TYPE "short unsigned int" 111 112 /* mingw32 uses the -mthreads option to enable thread support. */ 113 #undef GOMP_SELF_SPECS 114 #define GOMP_SELF_SPECS "%{fopenmp: -mthreads}" 115