]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/apr-util/Makefile.win
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.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 # For example;
55 #
56 #   nmake -f Makefile.win PREFIX=C:\APR buildall checkall installall clean
57 #
58
59 !IF EXIST("aprutil.sln") && ([devenv /help > NUL 2>&1] == 0) \
60     && !defined(USEMAK) && !defined(USEDSW)
61 USESLN=1
62 USEMAK=0
63 USEDSW=0
64 !ELSEIF EXIST("aprutil.mak") && !defined(USEDSW)
65 USESLN=0
66 USEMAK=1
67 USEDSW=0
68 !ELSE
69 USESLN=0
70 USEMAK=0
71 USEDSW=1
72 !ENDIF
73
74 PREFIX=..\apr-dist
75
76 !IF [$(COMSPEC) /c cl /nologo /? \
77         | $(SystemRoot)\System32\find.exe "x64" >NUL ] == 0
78 ARCH=x64 Release
79 !ELSE
80 ARCH=Win32 Release
81 !ENDIF
82
83 APR_PATH=..\apr
84 API_PATH=..\apr-iconv
85 APU_PATH=..\apr-util
86
87 !MESSAGE ARCH        = $(ARCH)
88 !MESSAGE APR_PATH    = $(APR_PATH)
89 !MESSAGE API_PATH    = $(API_PATH)  (apr-iconv)
90 !MESSAGE APU_PATH    = $(APU_PATH)  (apr-util)
91 !MESSAGE PREFIX      = $(PREFIX)  (install path)
92 !MESSAGE DBD_LIST    = $(DBD_LIST)
93 !MESSAGE DBM_LIST    = $(DBM_LIST)
94 !MESSAGE CRYPTO_LIST = $(CRYPTO_LIST)
95
96 # Utility and Translation things, nothing here for the user
97 #
98 !IF "$(ARCH)" == "Win32 Release"
99 SLNARCH=Release|Win32
100 ARCHPATH=Release
101 LIBSPATH=LibR
102 ARCHOSPATH=Release
103 LIBSOSPATH=LibR
104 !ELSEIF "$(ARCH)" == "Win32 Debug"
105 SLNARCH=Debug|Win32
106 ARCHPATH=Debug
107 LIBSPATH=LibD
108 ARCHOSPATH=Debug
109 LIBSOSPATH=LibD
110 !ELSEIF "$(ARCH)" == "Win32 Release9x"
111 SLNARCH=Release9x|Win32
112 ARCHPATH=Release
113 LIBSPATH=LibR
114 ARCHOSPATH=9x\Release
115 LIBSOSPATH=9x\LibR
116 !ELSEIF "$(ARCH)" == "Win32 Debug9x"
117 SLNARCH=Debug9x|Win32
118 ARCHPATH=Debug
119 LIBSPATH=LibD
120 ARCHOSPATH=9x\Debug
121 LIBSOSPATH=9x\LibD
122 !ELSEIF "$(ARCH)" == "x64 Release"
123 SLNARCH=Release|x64
124 ARCHPATH=x64\Release
125 LIBSPATH=x64\LibR
126 ARCHOSPATH=x64\Release
127 LIBSOSPATH=x64\LibR
128 !ELSEIF "$(ARCH)" == "x64 Debug"
129 SLNARCH=Debug|x64
130 ARCHPATH=x64\Debug
131 LIBSPATH=x64\LibD
132 ARCHOSPATH=x64\Debug
133 LIBSOSPATH=x64\LibD
134 !ENDIF
135
136 !IFNDEF MAKEOPT
137 # Only default the behavior if MAKEOPT= is omitted
138 !IFDEF _NMAKE_VER
139 # Microsoft NMake options
140 MAKEOPT=-nologo
141 !ELSEIF "$(MAKE)" == "make"
142 # Borland make options?  Not really supported (yet)
143 MAKEOPT=-s -N
144 !ENDIF
145 !ENDIF
146
147
148 # Sanity Checks
149 #
150 !IF !EXIST("$(APR_PATH)\apr.dsp") || !EXIST("$(API_PATH)\apriconv.dsp") \
151  || !EXIST("$(APU_PATH)\aprutil.dsp")
152 !MESSAGE Please check out or download and unpack the Apache Portability Runtime
153 !MESSAGE sources (apr, apr-iconv and apr-util) under a single parent dir,
154 !MESSAGE or provide APR_PATH, API_PATH and APU_PATH (all relative to each other,
155 !MESSAGE or all absolute paths).
156 !MESSAGE Apache cannot build without these libraries!
157 !MESSAGE 
158 !ERROR Need apr and apr-iconv alongside apr-util to build!
159 !ENDIF
160
161
162 all: buildall checkall
163
164 # To help win32 pick up the locations where they don't fall in the usual
165 # path locations.  This may not be completely effective for USESLN/USEDSP
166 # oriented builds, just yet
167 #
168 LIB=$(APR_PATH)\$(ARCHOSPATH);$(APR_PATH)\$(LIBSOSPATH);$(API_PATH)\$(ARCHPATH);$(API_PATH)\$(LIBSPATH);$(APU_PATH)\$(ARCHPATH);$(APU_PATH)\$(LIBSPATH);$(LIB)
169 INCLUDE=$(APR_PATH)\include;$(API_PATH)\include;$(INCLUDE)
170
171 !IF $(USEMAK) == 1
172
173 clean:
174         $(MAKE) $(MAKEOPT) -f Makefile.win ARCH="$(ARCH)" \
175                 CTARGET=CLEAN buildall
176
177 buildall:
178         cd $(APR_PATH)
179          $(MAKE) $(MAKEOPT) -f apr.mak         CFG="apr - $(ARCH)" RECURSE=0 $(CTARGET)
180          $(MAKE) $(MAKEOPT) -f libapr.mak      CFG="libapr - $(ARCH)" RECURSE=0 $(CTARGET)
181          cd build
182           $(MAKE) $(MAKEOPT) -f aprapp.mak    CFG="aprapp - $(ARCH)" RECURSE=0 $(CTARGET)
183           $(MAKE) $(MAKEOPT) -f libaprapp.mak CFG="libaprapp - $(ARCH)" RECURSE=0 $(CTARGET)
184          cd ..
185         cd $(API_PATH)
186          $(MAKE) $(MAKEOPT) -f apriconv.mak    CFG="apriconv - $(ARCH)" RECURSE=0 $(CTARGET)
187          $(MAKE) $(MAKEOPT) -f libapriconv.mak CFG="libapriconv - $(ARCH)" RECURSE=0 $(CTARGET)
188 !IF "$(CTARGET)" == "CLEAN"
189          $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
190                 BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
191 !ELSE
192          cd ccs
193           $(MAKE) $(MAKEOPT) -f Makefile.win all \
194                 BUILD_MODE="$(ARCH)" BIND_MODE=shared
195          cd ..\ces
196           $(MAKE) $(MAKEOPT) -f Makefile.win all \
197                 BUILD_MODE="$(ARCH)" BIND_MODE=shared
198          cd ..
199 !ENDIF
200         cd $(APU_PATH)\xml\expat\lib
201          $(MAKE) $(MAKEOPT) -f xml.mak         CFG="xml - $(ARCH)" RECURSE=0 $(CTARGET)
202         cd ..\..\..
203          $(MAKE) $(MAKEOPT) -f aprutil.mak     CFG="aprutil - $(ARCH)" RECURSE=0 $(CTARGET)
204          $(MAKE) $(MAKEOPT) -f libaprutil.mak  CFG="libaprutil - $(ARCH)" RECURSE=0 $(CTARGET)
205         cd ldap
206          $(MAKE) $(MAKEOPT) -f apr_ldap.mak    CFG="apr_ldap - $(ARCH)" RECURSE=0 $(CTARGET)
207         cd ..
208         cd dbd
209           for %d in (odbc $(DBD_LIST)) do \
210             $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - $(ARCH)" RECURSE=0 $(CTARGET)
211         cd ..
212         cd dbm
213           for %d in ($(DBM_LIST) x) do if not %d == x \
214             $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - $(ARCH)" RECURSE=0 $(CTARGET)
215         cd ..
216         cd crypto
217           for %d in ($(CRYPTO_LIST) x) do if not %d == x \
218             $(MAKE) $(MAKEOPT) -f apr_crypto_%d.mak CFG="apr_crypto_%d - $(ARCH)" RECURSE=0 $(CTARGET)
219         cd ..
220
221 !ELSEIF $(USESLN) == 1
222
223 clean:
224         -for %d in (odbc $(DBD_LIST)) do \
225           devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_dbd_%d
226         -for %d in ($(DBM_LIST) x) do if not %d == x \
227           devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_dbm_%d
228         -for %d in ($(CRYPTO_LIST) x) do if not %d == x \
229           devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_crypto_%d
230         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_ldap
231         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libaprutil
232         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project aprutil
233         cd $(API_PATH)
234           -$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
235                 BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
236         cd $(APU_PATH)
237         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libapriconv
238         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apriconv
239         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libaprapp
240         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project aprapp
241         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libapr
242         -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr
243
244 buildall:
245         devenv aprutil.sln /useenv /build "$(SLNARCH)" /project aprapp
246         devenv aprutil.sln /useenv /build "$(SLNARCH)" /project libaprapp
247         devenv aprutil.sln /useenv /build "$(SLNARCH)" /project aprutil
248         devenv aprutil.sln /useenv /build "$(SLNARCH)" /project libaprutil
249         devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_ldap
250         for %d in (odbc $(DBD_LIST)) do \
251           devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_dbd_%d
252         for %d in ($(DBM_LIST) x) do if not %d == x \
253           devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_dbm_%d
254         for %d in ($(CRYPTO_LIST) x) do if not %d == x \
255           devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_crypto_%d
256
257 !ELSE
258 #       $(USEDSP) == 1
259
260 clean:
261         -for %d in (odbc $(DBD_LIST)) do \
262           msdev aprutil.dsw /USEENV /MAKE "apr_dbd_%d - $(ARCH)" /CLEAN
263         -for %d in ($(DBM_LIST) x) do if not %d == x \
264           msdev aprutil.dsw /USEENV /MAKE "apr_dbm_%d - $(ARCH)" /CLEAN
265         -for %d in ($(CRYPTO_LIST) x) do if not %d == x \
266           msdev aprutil.dsw /USEENV /MAKE "apr_crypto_%d - $(ARCH)" /CLEAN
267         -msdev aprutil.dsw /USEENV /MAKE "apr_ldap - $(ARCH)" /CLEAN
268         -msdev aprutil.dsw /USEENV /MAKE "libaprutil - $(ARCH)" /CLEAN
269         -msdev aprutil.dsw /USEENV /MAKE "aprutil - $(ARCH)" /CLEAN
270         cd $(API_PATH)
271          $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
272                 BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
273         cd $(APU_PATH)
274         -msdev aprutil.dsw /USEENV /MAKE "libapriconv - $(ARCH)" /CLEAN
275         -msdev aprutil.dsw /USEENV /MAKE "apriconv - $(ARCH)" /CLEAN
276         -msdev aprutil.dsw /USEENV /MAKE "libaprapp - $(ARCH)" /CLEAN
277         -msdev aprutil.dsw /USEENV /MAKE "aprapp - $(ARCH)" /CLEAN
278         -msdev aprutil.dsw /USEENV /MAKE "libapr - $(ARCH)" /CLEAN
279         -msdev aprutil.dsw /USEENV /MAKE "apr - $(ARCH)" /CLEAN
280
281 buildall:
282         @msdev aprutil.dsw /USEENV /MAKE "aprapp - $(ARCH)"
283         @msdev aprutil.dsw /USEENV /MAKE "aprutil - $(ARCH)"
284         @msdev aprutil.dsw /USEENV /MAKE "libaprapp - $(ARCH)"
285         @msdev aprutil.dsw /USEENV /MAKE "libaprutil - $(ARCH)"
286         @msdev aprutil.dsw /USEENV /MAKE "apr_ldap - $(ARCH)"
287         @for %d in (odbc $(DBD_LIST)) do \
288           msdev aprutil.dsw /USEENV /MAKE "apr_dbd_%d - $(ARCH)"
289         @for %d in ($(DBM_LIST) x) do if not %d == x \
290           msdev aprutil.dsw /USEENV /MAKE "apr_dbm_%d - $(ARCH)"
291         @for %d in ($(CRYPTO_LIST) x) do if not %d == x \
292           msdev aprutil.dsw /USEENV /MAKE "apr_crypto_%d - $(ARCH)"
293
294 !ENDIF
295
296
297 checkapr:
298         cd $(APR_PATH)\test
299          $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
300                 OUTDIR=$(LIBSOSPATH) check
301          $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
302                 OUTDIR=$(ARCHOSPATH) check
303          cd ..
304         cd $(APU_PATH)
305
306 checkapu:
307         cd $(APU_PATH)
308         cd test
309          $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
310                 OUTDIR=$(LIBSPATH) APROUTDIR=$(LIBSOSPATH) \
311                 APR_PATH=..\$(APR_PATH) API_PATH=..\$(API_PATH) check
312          $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
313                 OUTDIR=$(ARCHPATH) APROUTDIR=$(ARCHOSPATH) \
314                 APR_PATH=..\$(APR_PATH) API_PATH=..\$(API_PATH) check
315         cd ..
316
317 checkall: checkapr checkapu
318
319
320 install:
321         echo Y >.y
322         echo A >.A
323         @if NOT EXIST "$(PREFIX)\." mkdir "$(PREFIX)"
324         @if NOT EXIST "$(PREFIX)\bin\." mkdir "$(PREFIX)\bin"
325         @if NOT EXIST "$(PREFIX)\bin\iconv\." mkdir "$(PREFIX)\bin\iconv"
326         @if NOT EXIST "$(PREFIX)\include\." mkdir "$(PREFIX)\include"
327         @if NOT EXIST "$(PREFIX)\lib\." mkdir "$(PREFIX)\lib"
328         copy CHANGES "$(PREFIX)\CHANGES.txt" <.y
329         copy LICENSE "$(PREFIX)\LICENSE.txt" <.y
330         copy NOTICE  "$(PREFIX)\NOTICE.txt"  <.y
331         xcopy $(APR_PATH)\include\*.h           "$(PREFIX)\include\" /d < .a
332         xcopy $(APU_PATH)\include\*.h           "$(PREFIX)\include\" /d < .a
333         copy $(APR_PATH)\$(LIBSOSPATH)\apr-1.lib        "$(PREFIX)\lib\" <.y
334         copy $(APR_PATH)\$(LIBSOSPATH)\apr-1.pdb        "$(PREFIX)\lib\" <.y
335         copy $(APU_PATH)\$(LIBSPATH)\aprutil-1.lib      "$(PREFIX)\lib\" <.y
336         copy $(APU_PATH)\$(LIBSPATH)\aprutil-1.pdb      "$(PREFIX)\lib\" <.y
337         copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.lib     "$(PREFIX)\lib\" <.y
338         copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.exp     "$(PREFIX)\lib\" <.y
339         copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.lib   "$(PREFIX)\lib\" <.y
340         copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.exp   "$(PREFIX)\lib\" <.y
341         copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.dll     "$(PREFIX)\bin\" <.y
342         copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.pdb     "$(PREFIX)\bin\" <.y
343         copy $(API_PATH)\$(ARCHPATH)\libapriconv-1.dll  "$(PREFIX)\bin\" <.y
344         copy $(API_PATH)\$(ARCHPATH)\libapriconv-1.pdb  "$(PREFIX)\bin\" <.y
345         copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.dll   "$(PREFIX)\bin\" <.y
346         copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.pdb   "$(PREFIX)\bin\" <.y
347         copy $(APU_PATH)\ldap\$(ARCHPATH)\apr_ldap-1.dll "$(PREFIX)\bin\" <.y
348         copy $(APU_PATH)\ldap\$(ARCHPATH)\apr_ldap-1.pdb "$(PREFIX)\bin\" <.y
349         for %d in (odbc $(DBD_LIST)) do ( \
350           copy $(APU_PATH)\dbd\$(ARCHPATH)\apr_dbd_%d-1.dll "$(PREFIX)\bin\" <.y && \
351           copy $(APU_PATH)\dbd\$(ARCHPATH)\apr_dbd_%d-1.pdb "$(PREFIX)\bin\" <.y \
352         )
353         for %d in ($(DBM_LIST) x) do if not %d == x ( \
354           copy $(APU_PATH)\dbm\$(ARCHPATH)\apr_dbm_%d-1.dll "$(PREFIX)\bin\" <.y && \
355           copy $(APU_PATH)\dbm\$(ARCHPATH)\apr_dbm_%d-1.pdb "$(PREFIX)\bin\" <.y \
356         )
357         for %d in ($(CRYPTO_LIST) x) do if not %d == x ( \
358           copy $(APU_PATH)\crypto\$(ARCHPATH)\apr_crypto_%d-1.dll "$(PREFIX)\bin\" <.y && \
359           copy $(APU_PATH)\crypto\$(ARCHPATH)\apr_crypto_%d-1.pdb "$(PREFIX)\bin\" <.y \
360         )
361         xcopy $(API_PATH)\$(ARCHPATH)\iconv\*.so  "$(PREFIX)\bin\iconv\" /d < .a
362         xcopy $(API_PATH)\$(ARCHPATH)\iconv\*.pdb "$(PREFIX)\bin\iconv\" /d < .a
363         del .y
364         del .a
365