CMake: Use CMAKE_CXX_STANDARD to require C++98
[geos.git] / nmake.opt
blob9dd202b6ef93235a70c8c1c4d53380a6c8740c1b
1 #\r
2 # nmake.opt - main configuration file for NMAKE makefiles\r
3 #\r
4 !MESSAGE **********************************************************************\r
5 !MESSAGE *** GEOS Build Configuration ***\r
6 \r
7 # TODO: Confirm as redundant and remove, nmake /P displays _NMAKE_VER anyway.\r
8 #!INCLUDE <ntwin32.mak>\r
9 \r
10 ###############################################################################\r
11 # For convenience, user may put custom settings to private mynmake.opt\r
12 # and use EXT_NMAKE_OPT option while calling nmake.exe, as follows:\r
13 #\r
14 # nmake -f makefile.vc EXT_NMAKE_OPT=mynmake.opt\r
16 !IFDEF EXT_NMAKE_OPT\r
17 !MESSAGE *** Setting EXT_NMAKE_OPT $(EXT_NMAKE_OPT)\r
18 !INCLUDE $(EXT_NMAKE_OPT)\r
19 !ENDIF\r
21 ###############################################################################\r
22 # Set BUILD_DEBUG to YES if you want to make debug build\r
23 # and to prepare not optimized binaries.\r
25 !IFNDEF BUILD_DEBUG \r
26 BUILD_DEBUG = NO\r
27 !ENDIF\r
29 !MESSAGE *** Setting BUILD_DEBUG $(BUILD_DEBUG)\r
31 ###############################################################################\r
32 # Set ENABLE_INLINE to YES if you want to make debug build\r
33 # and to prepare not optimized binaries.\r
35 !IFNDEF ENABLE_INLINE\r
36 ENABLE_INLINE = NO\r
37 !ENDIF\r
39 !MESSAGE *** Setting ENABLE_INLINE $(ENABLE_INLINE)\r
41 ###############################################################################\r
42 # Set BUILD_BATCH to YES if you want feed compiler with all\r
43 # source .c and .cpp files in single batch.\r
45 !IFNDEF BUILD_BATCH\r
46 BUILD_BATCH = NO\r
47 !ENDIF\r
49 !MESSAGE *** Setting BUILD_BATCH $(BUILD_BATCH)\r
51 ###############################################################################\r
52 # Set WIN64=YES if you are building for 64-bit windows (x64).\r
53 # Alternatively, pass WIN64=YES as NMAKE command line argument.\r
54 ###############################################################################\r
55 !IFNDEF WIN64\r
56 WIN64 = NO\r
57 !ENDIF\r
59 !MESSAGE *** Setting WIN64 $(WIN64)\r
61 ###############################################################################\r
62 # Derive version of Visual C++ being used from NMAKE if not specified\r
63 #\r
64 # WARNING:\r
65 # If we should expect variety of NMAKE build versions, tests below may fail\r
66 # and we will need to fall back to setting GEOS_MSVC as command line parameter.\r
68 !IF "$(_NMAKE_VER)" == ""\r
69 GEOS_MSVC = 4.0\r
70 !ERROR *** Failed to determine version of Visual C++\r
71 !ELSEIF "$(_NMAKE_VER)" == "162"\r
72 GEOS_MSVC = 5.0\r
73 !ERROR *** Detected Visual C++ 5.0 - NOT SUPPORTED\r
74 !ELSEIF "$(_NMAKE_VER)" == "6.00.8168.0"\r
75 GEOS_MSVC = 6.0\r
76 GEOS_MSC = 1200\r
77 !ERROR *** Detected Visual C++ 6.0 - NOT SUPPORTED\r
78 !ELSEIF "$(_NMAKE_VER)" == "7.00.9466"\r
79 GEOS_MSVC = 7.0\r
80 GEOS_MSC = 1300\r
81 !ELSEIF "$(_NMAKE_VER)" == "7.10.3077"\r
82 GEOS_MSVC = 7.1\r
83 GEOS_MSC = 1310\r
84 !ELSEIF "$(_NMAKE_VER)" == "8.00.50727.42"\r
85 GEOS_MSVC = 8.0\r
86 GEOS_MSC = 1400\r
87 !ELSEIF "$(_NMAKE_VER)" == "8.00.50727.762"\r
88 GEOS_MSVC = 8.0\r
89 GEOS_MSC = 1400\r
90 !ELSEIF "$(_NMAKE_VER)" == "9.00.21022.08"\r
91 GEOS_MSVC = 9.0\r
92 GEOS_MSC = 1500\r
93 !ELSEIF "$(_NMAKE_VER)" == "9.00.30729.01"\r
94 GEOS_MSVC = 9.0\r
95 GEOS_MSC = 1500\r
96 !ELSEIF "$(_NMAKE_VER)" == "10.00.30128.01"\r
97 GEOS_MSVC = 10.0\r
98 GEOS_MSC = 1600\r
99 !ELSEIF "$(_NMAKE_VER)" == "10.00.30319.01"\r
100 GEOS_MSVC = 10.0\r
101 GEOS_MSC = 1600\r
102 !ELSEIF "$(_NMAKE_VER)" == "11.00.40825.2"\r
103 GEOS_MSVC = 11.0\r
104 GEOS_MSC = 1700\r
105 !ELSEIF "$(_NMAKE_VER)" == "11.00.50522.1"\r
106 GEOS_MSVC = 11.0\r
107 GEOS_MSC = 1700\r
108 !ELSEIF "$(_NMAKE_VER)" == "11.00.50727.1"\r
109 GEOS_MSVC = 11.0\r
110 GEOS_MSC = 1700\r
111 !ELSEIF "$(_NMAKE_VER)" == "11.00.51106.1"\r
112 GEOS_MSVC = 11.0\r
113 GEOS_MSC = 1700\r
114 !ELSEIF "$(_NMAKE_VER)" == "11.00.60315.1"\r
115 GEOS_MSVC = 11.0\r
116 GEOS_MSC = 1700\r
117 !ELSEIF "$(_NMAKE_VER)" == "11.00.60430.2"\r
118 GEOS_MSVC = 11.0\r
119 GEOS_MSC = 1700\r
120 !ELSEIF "$(_NMAKE_VER)" == "11.00.60521.0"\r
121 GEOS_MSVC = 11.0\r
122 GEOS_MSC = 1700\r
123 !ELSEIF "$(_NMAKE_VER)" == "11.00.60610.1"\r
124 GEOS_MSVC = 11.0\r
125 GEOS_MSC = 1700\r
126 !ELSEIF "$(_NMAKE_VER)" == "11.00.61030.0"\r
127 GEOS_MSVC = 11.0\r
128 GEOS_MSC = 1700\r
129 !ELSEIF "$(_NMAKE_VER)" == "12.00.21005.1"\r
130 GEOS_MSVC = 12.0\r
131 GEOS_MSC = 1800\r
132 !ELSEIF "$(_NMAKE_VER)" == "14.00.22816.0"\r
133 GEOS_MSVC = 14.0\r
134 GEOS_MSC = 1900\r
135 !ELSEIF "$(_NMAKE_VER)" == "14.00.23026.0"\r
136 GEOS_MSVC = 14.0\r
137 GEOS_MSC = 1900\r
138 !ELSEIF "$(_NMAKE_VER)" == "14.00.23506.0"\r
139 GEOS_MSVC = 14.0\r
140 GEOS_MSC = 1900\r
141 !ELSEIF "$(_NMAKE_VER)" == "14.00.24210.0"\r
142 GEOS_MSVC = 14.0\r
143 GEOS_MSC = 1900\r
144 !ELSEIF "$(_NMAKE_VER)" == "14.10.25017.0"\r
145 GEOS_MSVC = 14.10\r
146 GEOS_MSC = 1910\r
147 !ELSE\r
148 GEOS_MSVC = 0.0\r
149 GEOS_MSC = 0\r
150 !ENDIF\r
152 !IF "$(GEOS_MSVC)" == "0.0" && "$(GEOS_MSC)" == "0"\r
153 !MESSAGE *** Cannot determine Visual C++ version\r
154 !ERROR *** Aborting make job\r
155 !ELSE\r
156 !MESSAGE *** Using Microsoft NMAKE version $(_NMAKE_VER)\r
157 !MESSAGE *** Using Microsoft Visual C++ version $(GEOS_MSVC)\r
158 !MESSAGE *** Using Microsoft C/C++ version $(GEOS_MSC)\r
159 !ENDIF\r
161 ###############################################################################\r
162 # Optional use of Visual Leak Detector (VLD) http://vld.codeplex.com/\r
163 # Uncomment this line to use VLD in debug configuration only:\r
164 #MSVC_VLD_DIR=$(EXTLIBDIR)\Source\vld\vld\r
166 !IF "$(BUILD_DEBUG)" == "YES"\r
167 !IFDEF MSVC_VLD_DIR\r
168 MSVC_VLD_FLAGS=-DMSVC_USE_VLD=1 -I$(MSVC_VLD_DIR)\include\r
169 !IFDEF WIN64\r
170 MSVC_VLD_LIB=/LIBPATH:$(MSVC_VLD_DIR)/lib/Win64\r
171 !ELSE\r
172 MSVC_VLD_LIB=/LIBPATH:$(MSVC_VLD_DIR)/lib/Win32\r
173 !ENDIF\r
174 !ENDIF\r
175 !ENDIF\r
177 ###############################################################################\r
178 # Include directories\r
180 GEOS_INCLUDE = -I..\include -I..\capi\r
182 !MESSAGE *** Setting GEOS_INCLUDE $(GEOS_INCLUDE)\r
183 !MESSAGE *** Setting INCLUDE $(INCLUDE)\r
185 ###############################################################################\r
186 # Compilation flags for Release and Debug modes\r
188 GEOS_CPPFLAGS = /D "NOMINMAX" /D "WIN32_LEAN_AND_MEAN" /D "NOGDI"\r
189 GEOS_CPPFLAGS = $(GEOS_CPPFLAGS) /D "GEOS_DLL_EXPORT" $(MSVC_VLD_FLAGS)\r
191 !IF "$(BUILD_DEBUG)" == "YES"\r
192 BUILD_PREFIX=_d\r
193 GEOS_CFLAGS = /nologo /MDd /GR /Od /W4 /Zi\r
194 GEOS_CPPFLAGS = /D "DEBUG" /D "_DEBUG" $(GEOS_CPPFLAGS)\r
195 !ELSE\r
196 GEOS_CFLAGS = /nologo /MD /GR /O2 /W3\r
197 GEOS_CPPFLAGS = /D "NDEBUG" $(GEOS_CPPFLAGS)\r
198 !ENDIF\r
200 # Compiler version specific flags\r
201 !IF $(GEOS_MSC) >= 1400\r
202 GEOS_CFLAGS = $(GEOS_CFLAGS) /EHs\r
203 GEOS_CPPFLAGS = $(GEOS_CPPFLAGS) /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_SCL_SECURE_NO_DEPRECATE"\r
204 !ELSE\r
205 GEOS_CFLAGS = $(GEOS_CFLAGS) /GX\r
206 !ENDIF\r
208 # For Visual C++ 9.0+ use multiple process build\r
209 !IF "$(BUILD_BATCH)" == "YES"\r
210 !IF $(GEOS_MSC) > 1400\r
211 MPFLAGS = /MP\r
212 !MESSAGE *** Setting /MP flag to number of effective processors\r
213 !ENDIF\r
214 !ENDIF\r
216 !IF "$(ENABLE_INLINE)" == "YES"\r
217 GEOS_CFLAGS = /D "GEOS_INLINE"\r
218 !ENDIF\r
220 !MESSAGE *** Using GEOS_CFLAGS $(GEOS_CFLAGS)\r
221 !MESSAGE *** Using GEOS_CPPFLAGS $(GEOS_CPPFLAGS)\r
223 CFLAGS=$(MPFLAGS) $(GEOS_CFLAGS) $(GEOS_CPPFLAGS) $(GEOS_INCLUDE)\r
225 !MESSAGE *** Complete CFLAGS $(CFLAGS)\r
227 ###############################################################################\r
228 # Output location\r
230 LIBNAME = geos$(BUILD_PREFIX).lib\r
231 DLLNAME = geos$(BUILD_PREFIX).dll\r
232 SLIBNAME = geos_i$(BUILD_PREFIX).lib\r
233 CDLLNAME = geos_c$(BUILD_PREFIX).dll\r
234 CLIBNAME = geos_c_i$(BUILD_PREFIX).lib\r
236 ###############################################################################\r
237 # Building toolset programs\r
239 MAKE = nmake\r
240 CC = cl\r
241 RM = del\r
242 CP = copy\r
244 # Linker executable\r
245 # - Dynamic-Linked Libraries\r
246 # $(LINK) /dll\r
247 # - Static Libraries (use of lib.exe wrapper is not portable, see VC++ Toolkit 2003)\r
248 # $(LINK) /lib\r
249 LINK = link.exe\r
250 LINKER_FLAGS = $(MSVC_VLD_LIB)\r
252 !MESSAGE **********************************************************************\r
253 # EOF\r