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 6This file is part of GCC. 7 8GCC is free software; you can redistribute it and/or modify 9it under the terms of the GNU General Public License as published by 10the Free Software Foundation; either version 2, or (at your option) 11any later version. 12 13GCC is distributed in the hope that it will be useful, 14but WITHOUT ANY WARRANTY; without even the implied warranty of 15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16GNU General Public License for more details. 17 18You should have received a copy of the GNU General Public License 19along with GCC; see the file COPYING. If not, write to 20the Free Software Foundation, 51 Franklin Street, Fifth Floor, 21Boston, 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) \ 85do { \ 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