]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/apr-util/Makefile.win
sysctl(9): Fix a few mandoc related issues
[FreeBSD/FreeBSD.git] / contrib / apr-util / Makefile.win
1 # Makefile.win for Win32 APR + APR-iconv + APR-util
2 #
3 # Targets are:
4 #
5 #     buildall - compile everything
6 #     checkall - run APR + APR-util regression tests
7 #     install  - compile everything
8 #     clean    - mop up everything
9 #
10 # You can override the build mechanism, choose only one;
11 #
12 #     USEMAK=1 - compile from exported make files
13 #     USEDSW=1 - compile from .dsw / .dsp VC6 projects
14 #     USESLN=1 - compile from converted .sln / .vcproj VC7+ files
15 #
16 # Define ARCH to your desired preference (your PATH must point
17 # to the correct compiler tools!)  Choose only one;
18 #
19 #     ARCH="Win32 Release"
20 #     ARCH="Win32 Debug"
21 #     ARCH="Win32 Release9x"
22 #     ARCH="Win32 Debug9x"
23 #     ARCH="x64 Release"
24 #     ARCH="x64 Debug"
25 #
26 # Provide the APR_PATH, API_PATH and APU_PATH entirely relative 
27 # to one another!  At this time, building the libraries themselves
28 # is only expected to work if the defaults (../apr, ../apr-iconv 
29 # and ../apr-util) are used, or if they are built with USEMAK=1.
30 #
31 #     APR_PATH=..\apr-1.3.0
32 #     API_PATH=..\apr-iconv-1.3.0
33 #     APU_PATH=..\apr-util-1.3.0
34 #
35 # Provide a DBD_LIST argument after configuring LIB and INCLUDE with
36 # the SDK paths of the corresponding client support libraries.
37 # ODBC is always built on Windows, so it does not get included in DBD_LIST
38 # Note that at this time, none of these are supported on win32, per say.
39 #
40 #     DBD_LIST="sqlite3 pgsql oracle mysql freetds"
41 #
42 # Provide a DBM_LIST argument after configuring LIB and INCLUDE with
43 # the SDK paths of the corresponding database support libraries.  Right
44 # now only db has been configured, gdbm and ndbm require additional study.
45 # Note that at this time, none of these are supported on win32, per say.
46 #
47 #     DBM_LIST="db gdbm"
48 #
49 # Provide a CRYPTO_LIST argument after configuring LIB and INCLUDE with
50 # the SDK paths of the corresponding cryptographic support libraries.
51 #
52 #     CRYPTO_LIST="nss openssl"
53 #
54 # Provide the XML_PARSER argument after configuring LIB and INCLUDE with
55 # the expat path of the corresponding xml parser, e.g. libexpatMT to choose
56 # static, or libexpat (default) to choose the dynamic library for aprutil-1.dll
57 # (Static libaprutil-1.lib always presumes libexpatMT with XML_STATIC flag.)
58 #
59 #     XML_PARSER="libexpat"
60 #
61 # For example;
62 #
63 #   nmake -f Makefile.win PREFIX=C:\APR buildall checkall installall clean
64 #
65
66 !IF EXIST("aprutil.sln") && ([devenv /help > NUL 2>&1] == 0) \
67     && !defined(USEMAK) && !defined(USEDSW)
68 USESLN=1
69 USEMAK=0
70 USEDSW=0
71 !ELSEIF EXIST("aprutil.mak") && !defined(USEDSW)
72 USESLN=0
73 USEMAK=1
74 USEDSW=0
75 !ELSE
76 USESLN=0
77 USEMAK=0
78 USEDSW=1
79 !ENDIF
80
81 PREFIX=..\apr-dist
82
83 !IF EXIST("..\openssl")
84 !IF EXIST("..\openssl\libcrypto.lib")
85 SSLOPT=_HAVE_OSSL110=1
86 !ENDIF
87 !ENDIF
88
89 # Legacy default (and unwise alternative) for libapr-1.dll is libexpatMT
90 XML_PARSER="libexpat"
91 !IF "$(XML_PARSER)" == "libexpat"
92 XMLOPT=XML_PARSER=$(XML_PARSER)
93 !ELSE
94 XMLOPT=XML_PARSER=$(XML_PARSER) XML_OPTIONS="/D XML_STATIC"
95 !ENDIF
96
97 !IF [$(COMSPEC) /c cl /nologo /? \
98         | $(SystemRoot)\System32\find.exe "x64" >NUL ] == 0
99 ARCH=x64 Release
100 !ELSE
101 ARCH=Win32 Release
102 !ENDIF
103
104 APR_PATH=..\apr
105 API_PATH=..\apr-iconv
106 APU_PATH=..\apr-util
107
108 !MESSAGE ARCH        = $(ARCH)
109 !MESSAGE APR_PATH    = $(APR_PATH)
110 !MESSAGE API_PATH    = $(API_PATH)  (apr-iconv)
111 !MESSAGE APU_PATH    = $(APU_PATH)  (apr-util)
112 !MESSAGE PREFIX      = $(PREFIX)  (install path)
113 !MESSAGE DBD_LIST    = $(DBD_LIST)
114 !MESSAGE DBM_LIST    = $(DBM_LIST)
115 !MESSAGE CRYPTO_LIST = $(CRYPTO_LIST)
116
117 # Utility and Translation things, nothing here for the user
118 #
119 !IF "$(ARCH)" == "Win32 Release"
120 SLNARCH=Release|Win32
121 ARCHPATH=Release
122 LIBSPATH=LibR
123 ARCHOSPATH=Release
124 LIBSOSPATH=LibR
125 !ELSEIF "$(ARCH)" == "Win32 Debug"
126 SLNARCH=Debug|Win32
127 ARCHPATH=Debug
128 LIBSPATH=LibD
129 ARCHOSPATH=Debug
130 LIBSOSPATH=LibD
131 !ELSEIF "$(ARCH)" == "Win32 Release9x"
132 SLNARCH=Release9x|Win32
133 ARCHPATH=Release
134 LIBSPATH=LibR
135 ARCHOSPATH=9x\Release
136 LIBSOSPATH=9x\LibR
137 !ELSEIF "$(ARCH)" == "Win32 Debug9x"
138 SLNARCH=Debug9x|Win32
139 ARCHPATH=Debug
140 LIBSPATH=LibD
141 ARCHOSPATH=9x\Debug
142 LIBSOSPATH=9x\LibD
143 !ELSEIF "$(ARCH)" == "x64 Release"
144 SLNARCH=Release|x64
145 ARCHPATH=x64\Release
146 LIBSPATH=x64\LibR
147 ARCHOSPATH=x64\Release
148 LIBSOSPATH=x64\LibR
149 !ELSEIF "$(ARCH)" == "x64 Debug"
150 SLNARCH=Debug|x64
151 ARCHPATH=x64\Debug
152 LIBSPATH=x64\LibD
153 ARCHOSPATH=x64\Debug
154 LIBSOSPATH=x64\LibD
155 !ENDIF
156
157 !IFNDEF MAKEOPT
158 # Only default the behavior if MAKEOPT= is omitted
159 !IFDEF _NMAKE_VER
160 # Microsoft NMake options
161 MAKEOPT=-nologo
162 !ELSEIF "$(MAKE)" == "make"
163 # Borland make options?  Not really supported (yet)
164 MAKEOPT=-s -N
165 !ENDIF
166 !ENDIF
167
168
169 # Sanity Checks
170 #
171 !IF !EXIST("$(APR_PATH)\apr.dsp") || !EXIST("$(API_PATH)\apriconv.dsp") \
172  || !EXIST("$(APU_PATH)\aprutil.dsp")
173 !MESSAGE Please check out or download and unpack the Apache Portability Runtime
174 !MESSAGE sources (apr, apr-iconv and apr-util) under a single parent dir,
175 !MESSAGE or provide APR_PATH, API_PATH and APU_PATH (all relative to each other,
176 !MESSAGE or all absolute paths).
177 !MESSAGE Apache cannot build without these libraries!
178 !MESSAGE 
179 !ERROR Need apr and apr-iconv alongside apr-util to build!
180 !ENDIF
181
182
183 all: buildall checkall
184
185 # To help win32 pick up the locations where they don't fall in the usual
186 # path locations.  This may not be completely effective for USESLN/USEDSP
187 # oriented builds, just yet
188 #
189 LIB=$(APR_PATH)\$(ARCHOSPATH);$(APR_PATH)\$(LIBSOSPATH);$(API_PATH)\$(ARCHPATH);$(API_PATH)\$(LIBSPATH);$(APU_PATH)\$(ARCHPATH);$(APU_PATH)\$(LIBSPATH);$(LIB)
190 INCLUDE=$(APR_PATH)\include;$(API_PATH)\include;$(INCLUDE)
191
192 !IF $(USEMAK) == 1
193
194 clean:
195         $(MAKE) $(MAKEOPT) -f Makefile.win ARCH="$(ARCH)" \
196                 CTARGET=CLEAN buildall
197
198 buildall:
199         cd $(APR_PATH)
200          $(MAKE) $(MAKEOPT) -f apr.mak         CFG="apr - $(ARCH)" RECURSE=0 $(CTARGET)
201          $(MAKE) $(MAKEOPT) -f libapr.mak      CFG="libapr - $(ARCH)" RECURSE=0 $(CTARGET)
202          cd build
203           $(MAKE) $(MAKEOPT) -f aprapp.mak    CFG="aprapp - $(ARCH)" RECURSE=0 $(CTARGET)
204           $(MAKE) $(MAKEOPT) -f libaprapp.mak CFG="libaprapp - $(ARCH)" RECURSE=0 $(CTARGET)
205          cd ..
206         cd $(API_PATH)
207          $(MAKE) $(MAKEOPT) -f apriconv.mak    CFG="apriconv - $(ARCH)" RECURSE=0 $(CTARGET)
208          $(MAKE) $(MAKEOPT) -f libapriconv.mak CFG="libapriconv - $(ARCH)" RECURSE=0 $(CTARGET)
209 !IF "$(CTARGET)" == "CLEAN"
210          $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
211                 BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
212 !ELSE
213          cd ccs
214           $(MAKE) $(MAKEOPT) -f Makefile.win all \
215                 BUILD_MODE="$(ARCH)" BIND_MODE=shared
216          cd ..\ces
217           $(MAKE) $(MAKEOPT) -f Makefile.win all \
218                 BUILD_MODE="$(ARCH)" BIND_MODE=shared
219          cd ..
220 !ENDIF
221         cd $(APU_PATH)
222          $(MAKE) $(MAKEOPT) $(SSLOPT) $(XMLOPT) -f aprutil.mak CFG="aprutil - $(ARCH)" RECURSE=0 $(CTARGET)
223          $(MAKE) $(MAKEOPT) $(SSLOPT) $(XMLOPT) -f libaprutil.mak CFG="libaprutil - $(ARCH)" RECURSE=0 $(CTARGET)
224         cd ldap
225          $(MAKE) $(MAKEOPT) -f apr_ldap.mak    CFG="apr_ldap - $(ARCH)" RECURSE=0 $(CTARGET)
226         cd ..
227         cd dbd
228           for %d in (odbc $(DBD_LIST)) do \
229             $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - $(ARCH)" RECURSE=0 $(CTARGET)
230         cd ..
231         cd dbm
232           for %d in ($(DBM_LIST) x) do if not %d == x \
233             $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - $(ARCH)" RECURSE=0 $(CTARGET)
234         cd ..
235         cd crypto
236           for %d in ($(CRYPTO_LIST) x) do if not %d == x \
237             $(MAKE) $(MAKEOPT) $(SSLOPT) -f apr_crypto_%d.mak CFG="apr_crypto_%d - $(ARCH)" RECURSE=0 $(CTARGET)
238         cd ..
239
240 !ELSEIF $(USESLN) == 1
241
242 clean:
243         -for %d in (odbc $(DBD_LIST)) do \
244           devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_dbd_%d
245         -for %d in ($(DBM_LIST) x) do if not %d == x \
246           devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_dbm_%d
247         -for %d in ($(CRYPTO_LIST) x) do if not %d == x \
248           devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_crypto_%d
249         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_ldap
250         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libaprutil
251         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project aprutil
252         cd $(API_PATH)
253           -$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
254                 BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
255         cd $(APU_PATH)
256         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libapriconv
257         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apriconv
258         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libaprapp
259         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project aprapp
260         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libapr
261         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr
262
263 buildall:
264         devenv aprutil.sln /useenv /build "$(SLNARCH)" /project aprapp
265         devenv aprutil.sln /useenv /build "$(SLNARCH)" /project libaprapp
266         devenv aprutil.sln /useenv /build "$(SLNARCH)" /project aprutil
267         devenv aprutil.sln /useenv /build "$(SLNARCH)" /project libaprutil
268         devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_ldap
269         for %d in (odbc $(DBD_LIST)) do \
270           devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_dbd_%d
271         for %d in ($(DBM_LIST) x) do if not %d == x \
272           devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_dbm_%d
273         for %d in ($(CRYPTO_LIST) x) do if not %d == x \
274           devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_crypto_%d
275
276 !ELSE
277 #       $(USEDSP) == 1
278
279 clean:
280         -for %d in (odbc $(DBD_LIST)) do \
281           msdev aprutil.dsw /USEENV /MAKE "apr_dbd_%d - $(ARCH)" /CLEAN
282         -for %d in ($(DBM_LIST) x) do if not %d == x \
283           msdev aprutil.dsw /USEENV /MAKE "apr_dbm_%d - $(ARCH)" /CLEAN
284         -for %d in ($(CRYPTO_LIST) x) do if not %d == x \
285           msdev aprutil.dsw /USEENV /MAKE "apr_crypto_%d - $(ARCH)" /CLEAN
286         -msdev aprutil.dsw /USEENV /MAKE "apr_ldap - $(ARCH)" /CLEAN
287         -msdev aprutil.dsw /USEENV /MAKE "libaprutil - $(ARCH)" /CLEAN
288         -msdev aprutil.dsw /USEENV /MAKE "aprutil - $(ARCH)" /CLEAN
289         cd $(API_PATH)
290          $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
291                 BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
292         cd $(APU_PATH)
293         -msdev aprutil.dsw /USEENV /MAKE "libapriconv - $(ARCH)" /CLEAN
294         -msdev aprutil.dsw /USEENV /MAKE "apriconv - $(ARCH)" /CLEAN
295         -msdev aprutil.dsw /USEENV /MAKE "libaprapp - $(ARCH)" /CLEAN
296         -msdev aprutil.dsw /USEENV /MAKE "aprapp - $(ARCH)" /CLEAN
297         -msdev aprutil.dsw /USEENV /MAKE "libapr - $(ARCH)" /CLEAN
298         -msdev aprutil.dsw /USEENV /MAKE "apr - $(ARCH)" /CLEAN
299
300 buildall:
301         @msdev aprutil.dsw /USEENV /MAKE "aprapp - $(ARCH)"
302         @msdev aprutil.dsw /USEENV /MAKE "aprutil - $(ARCH)"
303         @msdev aprutil.dsw /USEENV /MAKE "libaprapp - $(ARCH)"
304         @msdev aprutil.dsw /USEENV /MAKE "libaprutil - $(ARCH)"
305         @msdev aprutil.dsw /USEENV /MAKE "apr_ldap - $(ARCH)"
306         @for %d in (odbc $(DBD_LIST)) do \
307           msdev aprutil.dsw /USEENV /MAKE "apr_dbd_%d - $(ARCH)"
308         @for %d in ($(DBM_LIST) x) do if not %d == x \
309           msdev aprutil.dsw /USEENV /MAKE "apr_dbm_%d - $(ARCH)"
310         @for %d in ($(CRYPTO_LIST) x) do if not %d == x \
311           msdev aprutil.dsw /USEENV /MAKE "apr_crypto_%d - $(ARCH)"
312
313 !ENDIF
314
315
316 checkapr:
317         cd $(APR_PATH)\test
318          $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
319                 OUTDIR=$(LIBSOSPATH) check
320          $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
321                 OUTDIR=$(ARCHOSPATH) check
322          cd ..
323         cd $(APU_PATH)
324
325 checkapu:
326         cd $(APU_PATH)
327         cd test
328                  $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
329                 OUTDIR=$(LIBSPATH) APROUTDIR=$(LIBSOSPATH) \
330                 APR_PATH=..\$(APR_PATH) API_PATH=..\$(API_PATH) check
331          $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
332                 OUTDIR=$(ARCHPATH) APROUTDIR=$(ARCHOSPATH) \
333                 APR_PATH=..\$(APR_PATH) API_PATH=..\$(API_PATH) check
334         cd ..
335
336 checkall: checkapr checkapu
337
338
339 install:
340         echo Y >.y
341         echo A >.A
342         @if NOT EXIST "$(PREFIX)\." mkdir "$(PREFIX)"
343         @if NOT EXIST "$(PREFIX)\bin\." mkdir "$(PREFIX)\bin"
344         @if NOT EXIST "$(PREFIX)\bin\iconv\." mkdir "$(PREFIX)\bin\iconv"
345         @if NOT EXIST "$(PREFIX)\include\." mkdir "$(PREFIX)\include"
346         @if NOT EXIST "$(PREFIX)\lib\." mkdir "$(PREFIX)\lib"
347         copy CHANGES "$(PREFIX)\CHANGES.txt" <.y
348         copy LICENSE "$(PREFIX)\LICENSE.txt" <.y
349         copy NOTICE  "$(PREFIX)\NOTICE.txt"  <.y
350         xcopy $(APR_PATH)\include\*.h           "$(PREFIX)\include\" /d < .a
351         xcopy $(APU_PATH)\include\*.h           "$(PREFIX)\include\" /d < .a
352         copy $(APR_PATH)\$(LIBSOSPATH)\apr-1.lib        "$(PREFIX)\lib\" <.y
353         copy $(APR_PATH)\$(LIBSOSPATH)\apr-1.pdb        "$(PREFIX)\lib\" <.y
354         copy $(APU_PATH)\$(LIBSPATH)\aprutil-1.lib      "$(PREFIX)\lib\" <.y
355         copy $(APU_PATH)\$(LIBSPATH)\aprutil-1.pdb      "$(PREFIX)\lib\" <.y
356         copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.lib     "$(PREFIX)\lib\" <.y
357         copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.exp     "$(PREFIX)\lib\" <.y
358         copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.lib   "$(PREFIX)\lib\" <.y
359         copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.exp   "$(PREFIX)\lib\" <.y
360         copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.dll     "$(PREFIX)\bin\" <.y
361         copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.pdb     "$(PREFIX)\bin\" <.y
362         copy $(API_PATH)\$(ARCHPATH)\libapriconv-1.dll  "$(PREFIX)\bin\" <.y
363         copy $(API_PATH)\$(ARCHPATH)\libapriconv-1.pdb  "$(PREFIX)\bin\" <.y
364         copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.dll   "$(PREFIX)\bin\" <.y
365         copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.pdb   "$(PREFIX)\bin\" <.y
366         copy $(APU_PATH)\ldap\$(ARCHPATH)\apr_ldap-1.dll "$(PREFIX)\bin\" <.y
367         copy $(APU_PATH)\ldap\$(ARCHPATH)\apr_ldap-1.pdb "$(PREFIX)\bin\" <.y
368         for %d in (odbc $(DBD_LIST)) do ( \
369           copy $(APU_PATH)\dbd\$(ARCHPATH)\apr_dbd_%d-1.dll "$(PREFIX)\bin\" <.y && \
370           copy $(APU_PATH)\dbd\$(ARCHPATH)\apr_dbd_%d-1.pdb "$(PREFIX)\bin\" <.y \
371         )
372         for %d in ($(DBM_LIST) x) do if not %d == x ( \
373           copy $(APU_PATH)\dbm\$(ARCHPATH)\apr_dbm_%d-1.dll "$(PREFIX)\bin\" <.y && \
374           copy $(APU_PATH)\dbm\$(ARCHPATH)\apr_dbm_%d-1.pdb "$(PREFIX)\bin\" <.y \
375         )
376         for %d in ($(CRYPTO_LIST) x) do if not %d == x ( \
377           copy $(APU_PATH)\crypto\$(ARCHPATH)\apr_crypto_%d-1.dll "$(PREFIX)\bin\" <.y && \
378           copy $(APU_PATH)\crypto\$(ARCHPATH)\apr_crypto_%d-1.pdb "$(PREFIX)\bin\" <.y \
379         )
380         xcopy $(API_PATH)\$(ARCHPATH)\iconv\*.so  "$(PREFIX)\bin\iconv\" /d < .a
381         xcopy $(API_PATH)\$(ARCHPATH)\iconv\*.pdb "$(PREFIX)\bin\iconv\" /d < .a
382         del .y
383         del .a
384