Add magic flags for OS/X Snow Leopard only. (#299)
[geos.git] / nmake.opt
blobfbbca7949cbba9b6258164046c031744d5c44832
1 # $Id$\r
2 #\r
3 # nmake.opt - main configuration file for NMAKE makefiles\r
4 #\r
5 !MESSAGE **********************************************************************\r
6 !MESSAGE *** GEOS Build Configuration ***\r
7 !INCLUDE <ntwin32.mak>\r
8 \r
9 ###############################################################################\r
10 # For convenience, user may put custom settings to private mynmake.opt\r
11 # and use EXT_NMAKE_OPT option while calling nmake.exe, as follows:\r
12 #\r
13 # nmake -f makefile.vc EXT_NMAKE_OPT=mynmake.opt\r
15 !IFDEF EXT_NMAKE_OPT\r
16 !MESSAGE *** Setting EXT_NMAKE_OPT $(EXT_NMAKE_OPT)\r
17 !INCLUDE $(EXT_NMAKE_OPT)\r
18 !ENDIF\r
20 ###############################################################################\r
21 # Set BUILD_DEBUG to YES if you want to make debug build\r
22 # and to prepare not optimized binaries.\r
24 !IFNDEF BUILD_DEBUG \r
25 BUILD_DEBUG = NO\r
26 !ENDIF\r
28 !MESSAGE *** Setting BUILD_DEBUG $(BUILD_DEBUG)\r
30 ###############################################################################\r
31 # Set BUILD_BATCH to YES if you want feed compiler with all\r
32 # source .c and .cpp files in single batch.\r
34 !IFNDEF BUILD_BATCH\r
35 BUILD_BATCH = NO\r
36 !ENDIF\r
38 !MESSAGE *** Setting BUILD_BATCH $(BUILD_BATCH)\r
40 ###############################################################################\r
41 # Derive version of Visual C++ being used from NMAKE if not specified\r
42 #\r
43 # WARNING:\r
44 # If we should expect variety of NMAKE build versions, tests below may fail\r
45 # and we will need to fall back to setting GEOS_MSVC as command line parameter.\r
47 !IF "$(_NMAKE_VER)" == ""\r
48 GEOS_MSVC = 4.0\r
49 !ERROR *** Failed to determine version of Visual C++\r
50 !ELSEIF "$(_NMAKE_VER)" == "162"\r
51 GEOS_MSVC = 5.0\r
52 !ERROR *** Detected Visual C++ 5.0 - NOT SUPPORTED\r
53 !ELSEIF "$(_NMAKE_VER)" == "6.00.8168.0"\r
54 GEOS_MSVC = 6.0\r
55 GEOS_MSC = 1200\r
56 !ERROR *** Detected Visual C++ 6.0 - NOT SUPPORTED\r
57 !ELSEIF "$(_NMAKE_VER)" == "7.00.9466"\r
58 GEOS_MSVC = 7.0\r
59 GEOS_MSC = 1300\r
60 !ELSEIF "$(_NMAKE_VER)" == "7.10.3077"\r
61 GEOS_MSVC = 7.1\r
62 GEOS_MSC = 1310\r
63 !ELSEIF "$(_NMAKE_VER)" == "8.00.50727.42"\r
64 GEOS_MSVC = 8.0\r
65 GEOS_MSC = 1400\r
66 !ELSEIF "$(_NMAKE_VER)" == "8.00.50727.762"\r
67 GEOS_MSVC = 8.0\r
68 GEOS_MSC = 1400\r
69 !ELSEIF "$(_NMAKE_VER)" == "9.00.21022.08"\r
70 GEOS_MSVC = 9.0\r
71 GEOS_MSC = 1500\r
72 !ELSEIF "$(_NMAKE_VER)" == "9.00.30729.01"\r
73 GEOS_MSVC = 9.0\r
74 GEOS_MSC = 1500\r
75 !ELSE\r
76 GEOS_MSVC = 0.0\r
77 GEOS_MSC = 0\r
78 !ENDIF\r
80 !IF "$(GEOS_MSVC)" == "0.0" && "$(GEOS_MSC)" == "0"\r
81 !MESSAGE *** Cannot determined Visual C++ version\r
82 !ERROR *** Aborting make job\r
83 !ELSE\r
84 !MESSAGE *** Using Microsoft NMAKE version $(_NMAKE_VER)\r
85 !MESSAGE *** Using Microsoft Visual C++ version $(GEOS_MSVC)\r
86 !MESSAGE *** Using Microsoft C/C++ version $(GEOS_MSC)\r
87 !ENDIF\r
89 ###############################################################################\r
90 # Include directories\r
92 GEOS_INCLUDE = -Iheaders -I..\capi\r
94 !MESSAGE *** Setting GEOS_INCLUDE $(GEOS_INCLUDE)\r
95 !MESSAGE *** Setting INCLUDE $(INCLUDE)\r
97 ###############################################################################\r
98 # Compilation flags for Release and Debug modes\r
100 GEOS_CPPFLAGS = /D "NOMINMAX" /D "WIN32_LEAN_AND_MEAN" /D "NOGDI"\r
102 !IF "$(BUILD_DEBUG)" == "YES"\r
103 BUILD_PREFIX=_d\r
104 GEOS_CFLAGS = /nologo /MDd /GR /Od /W4 /Zi\r
105 GEOS_CPPFLAGS = /D "NDEBUG" $(GEOS_CPPFLAGS)\r
106 !ELSE\r
107 GEOS_CFLAGS = /nologo /MD /GR /O2 /W3\r
108 GEOS_CPPFLAGS = /D "NDEBUG" $(GEOS_CPPFLAGS)\r
109 !ENDIF\r
111 # Compiler version specific flags\r
112 !IF $(GEOS_MSC) >= 1400\r
113 GEOS_CFLAGS = $(GEOS_CFLAGS) /EHs\r
114 GEOS_CPPFLAGS = $(GEOS_CPPFLAGS) /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_SCL_SECURE_NO_DEPRECATE"\r
115 !ELSE\r
116 GEOS_CFLAGS = $(GEOS_CFLAGS) /GX\r
117 !ENDIF\r
119 # For Visual C++ 9.0+ use multiple process build\r
120 !IF "$(BUILD_BATCH)" == "YES"\r
121 !IF $(GEOS_MSC) > 1400\r
122 MPFLAGS = /MP\r
123 !MESSAGE *** Setting /MP flag to number of effective processors\r
124 !ENDIF\r
125 !ENDIF\r
127 !MESSAGE *** Using CFLAGS $(GEOS_CFLAGS)\r
128 !MESSAGE *** Using CPPFLAGS $(GEOS_CPPFLAGS)\r
130 CFLAGS= $(MPFLAGS) $(GEOS_CFLAGS) $(GEOS_CPPFLAGS) $(GEOS_INCLUDE)\r
132 ###############################################################################\r
133 # Output location\r
135 LIBNAME = geos$(BUILD_PREFIX).lib\r
136 DLLNAME = geos$(BUILD_PREFIX).dll\r
137 SLIBNAME = geos_i$(BUILD_PREFIX).lib\r
138 CDLLNAME = geos_c$(BUILD_PREFIX).dll\r
139 CLIBNAME = geos_c_i$(BUILD_PREFIX).lib\r
141 ###############################################################################\r
142 # Building toolset programs\r
144 MAKE = nmake\r
145 CC = cl\r
146 RM = del\r
147 CP = copy\r
149 # Linker executable\r
150 # - Dynamic-Linked Libraries\r
151 # $(LINK) /dll\r
152 # - Static Libraries (use of lib.exe wrapper is not portable, see VC++ Toolkit 2003)\r
153 # $(LINK) /lib\r
154 LINK = link.exe\r
156 !MESSAGE **********************************************************************\r
157 # EOF\r