Makefile.win revision 251876
1251876Speter# Makefile.win for Win32 APR + APR-iconv + APR-util
2251876Speter#
3251876Speter# Targets are:
4251876Speter#
5251876Speter#     buildall - compile everything
6251876Speter#     checkall - run APR + APR-util regression tests
7251876Speter#     install  - compile everything
8251876Speter#     clean    - mop up everything
9251876Speter#
10251876Speter# You can override the build mechansim, choose only one;
11251876Speter#
12251876Speter#     USEMAK=1 - compile from exported make files
13251876Speter#     USEDSW=1 - compile from .dsw / .dsp VC6 projects
14251876Speter#     USESLN=1 - compile from converted .sln / .vcproj VC7+ files
15251876Speter#
16251876Speter# Define ARCH to your desired preference (your PATH must point
17251876Speter# to the correct compiler tools!)  Choose only one;
18251876Speter#
19251876Speter#     ARCH="Win32 Release"
20251876Speter#     ARCH="Win32 Debug"
21251876Speter#     ARCH="Win32 Release9x"
22251876Speter#     ARCH="Win32 Debug9x"
23251876Speter#     ARCH="x64 Release"
24251876Speter#     ARCH="x64 Debug"
25251876Speter#
26251876Speter# Provide the APR_PATH, API_PATH and APU_PATH entirely relative 
27251876Speter# to one another!  At this time, building the libraries themselves
28251876Speter# is only expected to work if the defaults (../apr, ../apr-iconv 
29251876Speter# and ../apr-util) are used, or if they are built with USEMAK=1.
30251876Speter#
31251876Speter#     APR_PATH=..\apr-1.3.0
32251876Speter#     API_PATH=..\apr-iconv-1.3.0
33251876Speter#     APU_PATH=..\apr-util-1.3.0
34251876Speter#
35251876Speter# Provide a DBD_LIST argument after configuring LIB and INCLUDE with
36251876Speter# the SDK paths of the corresponding client support libraries.
37251876Speter# ODBC is always built on Windows, so it does not get included in DBD_LIST
38251876Speter# Note that at this time, none of these are supported on win32, per say.
39251876Speter#
40251876Speter#     DBD_LIST="sqlite3 pgsql oracle mysql freetds"
41251876Speter#
42251876Speter# Provide a DBM_LIST argument after configuring LIB and INCLUDE with
43251876Speter# the SDK paths of the corresponding database support libraries.  Right
44251876Speter# now only db has been configured, gdbm and ndbm require additional study.
45251876Speter# Note that at this time, none of these are supported on win32, per say.
46251876Speter#
47251876Speter#     DBM_LIST="db gdbm"
48251876Speter#
49251876Speter# Provide a CRYPTO_LIST argument after configuring LIB and INCLUDE with
50251876Speter# the SDK paths of the corresponding cryptographic support libraries.
51251876Speter#
52251876Speter#     CRYPTO_LIST="nss openssl"
53251876Speter#
54251876Speter# For example;
55251876Speter#
56251876Speter#   nmake -f Makefile.win PREFIX=C:\APR buildall checkall installall clean
57251876Speter#
58251876Speter
59251876Speter!IF EXIST("aprutil.sln") && ([devenv /help > NUL 2>&1] == 0) \
60251876Speter    && !defined(USEMAK) && !defined(USEDSW)
61251876SpeterUSESLN=1
62251876SpeterUSEMAK=0
63251876SpeterUSEDSW=0
64251876Speter!ELSEIF EXIST("aprutil.mak") && !defined(USEDSW)
65251876SpeterUSESLN=0
66251876SpeterUSEMAK=1
67251876SpeterUSEDSW=0
68251876Speter!ELSE
69251876SpeterUSESLN=0
70251876SpeterUSEMAK=0
71251876SpeterUSEDSW=1
72251876Speter!ENDIF
73251876Speter
74251876SpeterPREFIX=..\apr-dist
75251876Speter
76251876Speter!IF [$(COMSPEC) /c cl /nologo /? \
77251876Speter	| $(SystemRoot)\System32\find.exe "x64" >NUL ] == 0
78251876SpeterARCH=x64 Release
79251876Speter!ELSE
80251876SpeterARCH=Win32 Release
81251876Speter!ENDIF
82251876Speter
83251876SpeterAPR_PATH=..\apr
84251876SpeterAPI_PATH=..\apr-iconv
85251876SpeterAPU_PATH=..\apr-util
86251876Speter
87251876Speter!MESSAGE ARCH        = $(ARCH)
88251876Speter!MESSAGE APR_PATH    = $(APR_PATH)
89251876Speter!MESSAGE API_PATH    = $(API_PATH)  (apr-iconv)
90251876Speter!MESSAGE APU_PATH    = $(APU_PATH)  (apr-util)
91251876Speter!MESSAGE PREFIX      = $(PREFIX)  (install path)
92251876Speter!MESSAGE DBD_LIST    = $(DBD_LIST)
93251876Speter!MESSAGE DBM_LIST    = $(DBM_LIST)
94251876Speter!MESSAGE CRYPTO_LIST = $(CRYPTO_LIST)
95251876Speter
96251876Speter# Utility and Translation things, nothing here for the user
97251876Speter#
98251876Speter!IF "$(ARCH)" == "Win32 Release"
99251876SpeterSLNARCH=Release|Win32
100251876SpeterARCHPATH=Release
101251876SpeterLIBSPATH=LibR
102251876SpeterARCHOSPATH=Release
103251876SpeterLIBSOSPATH=LibR
104251876Speter!ELSEIF "$(ARCH)" == "Win32 Debug"
105251876SpeterSLNARCH=Debug|Win32
106251876SpeterARCHPATH=Debug
107251876SpeterLIBSPATH=LibD
108251876SpeterARCHOSPATH=Debug
109251876SpeterLIBSOSPATH=LibD
110251876Speter!ELSEIF "$(ARCH)" == "Win32 Release9x"
111251876SpeterSLNARCH=Release9x|Win32
112251876SpeterARCHPATH=Release
113251876SpeterLIBSPATH=LibR
114251876SpeterARCHOSPATH=9x\Release
115251876SpeterLIBSOSPATH=9x\LibR
116251876Speter!ELSEIF "$(ARCH)" == "Win32 Debug9x"
117251876SpeterSLNARCH=Debug9x|Win32
118251876SpeterARCHPATH=Debug
119251876SpeterLIBSPATH=LibD
120251876SpeterARCHOSPATH=9x\Debug
121251876SpeterLIBSOSPATH=9x\LibD
122251876Speter!ELSEIF "$(ARCH)" == "x64 Release"
123251876SpeterSLNARCH=Release|x64
124251876SpeterARCHPATH=x64\Release
125251876SpeterLIBSPATH=x64\LibR
126251876SpeterARCHOSPATH=x64\Release
127251876SpeterLIBSOSPATH=x64\LibR
128251876Speter!ELSEIF "$(ARCH)" == "x64 Debug"
129251876SpeterSLNARCH=Debug|x64
130251876SpeterARCHPATH=x64\Debug
131251876SpeterLIBSPATH=x64\LibD
132251876SpeterARCHOSPATH=x64\Debug
133251876SpeterLIBSOSPATH=x64\LibD
134251876Speter!ENDIF
135251876Speter
136251876Speter!IFNDEF MAKEOPT
137251876Speter# Only default the behavior if MAKEOPT= is omitted
138251876Speter!IFDEF _NMAKE_VER
139251876Speter# Microsoft NMake options
140251876SpeterMAKEOPT=-nologo
141251876Speter!ELSEIF "$(MAKE)" == "make"
142251876Speter# Borland make options?  Not really supported (yet)
143251876SpeterMAKEOPT=-s -N
144251876Speter!ENDIF
145251876Speter!ENDIF
146251876Speter
147251876Speter
148251876Speter# Sanity Checks
149251876Speter#
150251876Speter!IF !EXIST("$(APR_PATH)\apr.dsp") || !EXIST("$(API_PATH)\apriconv.dsp") \
151251876Speter || !EXIST("$(APU_PATH)\aprutil.dsp")
152251876Speter!MESSAGE Please check out or download and unpack the Apache Portability Runtime
153251876Speter!MESSAGE sources (apr, apr-iconv and apr-util) under a single parent dir,
154251876Speter!MESSAGE or provide APR_PATH, API_PATH and APU_PATH (all relative to each other,
155251876Speter!MESSAGE or all absolute paths).
156251876Speter!MESSAGE Apache cannot build without these libraries!
157251876Speter!MESSAGE 
158251876Speter!ERROR Need apr and apr-iconv alongside apr-util to build!
159251876Speter!ENDIF
160251876Speter
161251876Speter
162251876Speterall: buildall checkall
163251876Speter
164251876Speter# To help win32 pick up the locations where they don't fall in the usual
165251876Speter# path locations.  This may not be completely effective for USESLN/USEDSP
166251876Speter# oriented builds, just yet
167251876Speter#
168251876SpeterLIB=$(APR_PATH)\$(ARCHOSPATH);$(APR_PATH)\$(LIBSOSPATH);$(API_PATH)\$(ARCHPATH);$(API_PATH)\$(LIBSPATH);$(APU_PATH)\$(ARCHPATH);$(APU_PATH)\$(LIBSPATH);$(LIB)
169251876SpeterINCLUDE=$(APR_PATH)\include;$(API_PATH)\include;$(INCLUDE)
170251876Speter
171251876Speter!IF $(USEMAK) == 1
172251876Speter
173251876Speterclean:
174251876Speter	$(MAKE) $(MAKEOPT) -f Makefile.win ARCH="$(ARCH)" \
175251876Speter		CTARGET=CLEAN buildall
176251876Speter
177251876Speterbuildall:
178251876Speter	cd $(APR_PATH)
179251876Speter	 $(MAKE) $(MAKEOPT) -f apr.mak         CFG="apr - $(ARCH)" RECURSE=0 $(CTARGET)
180251876Speter	 $(MAKE) $(MAKEOPT) -f libapr.mak      CFG="libapr - $(ARCH)" RECURSE=0 $(CTARGET)
181251876Speter	 cd build
182251876Speter	  $(MAKE) $(MAKEOPT) -f aprapp.mak    CFG="aprapp - $(ARCH)" RECURSE=0 $(CTARGET)
183251876Speter	  $(MAKE) $(MAKEOPT) -f libaprapp.mak CFG="libaprapp - $(ARCH)" RECURSE=0 $(CTARGET)
184251876Speter	 cd ..
185251876Speter	cd $(API_PATH)
186251876Speter	 $(MAKE) $(MAKEOPT) -f apriconv.mak    CFG="apriconv - $(ARCH)" RECURSE=0 $(CTARGET)
187251876Speter	 $(MAKE) $(MAKEOPT) -f libapriconv.mak CFG="libapriconv - $(ARCH)" RECURSE=0 $(CTARGET)
188251876Speter!IF "$(CTARGET)" == "CLEAN"
189251876Speter	 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
190251876Speter		BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
191251876Speter!ELSE
192251876Speter	 cd ccs
193251876Speter	  $(MAKE) $(MAKEOPT) -f Makefile.win all \
194251876Speter		BUILD_MODE="$(ARCH)" BIND_MODE=shared
195251876Speter	 cd ..\ces
196251876Speter	  $(MAKE) $(MAKEOPT) -f Makefile.win all \
197251876Speter		BUILD_MODE="$(ARCH)" BIND_MODE=shared
198251876Speter	 cd ..
199251876Speter!ENDIF
200251876Speter	cd $(APU_PATH)\xml\expat\lib
201251876Speter	 $(MAKE) $(MAKEOPT) -f xml.mak         CFG="xml - $(ARCH)" RECURSE=0 $(CTARGET)
202251876Speter	cd ..\..\..
203251876Speter	 $(MAKE) $(MAKEOPT) -f aprutil.mak     CFG="aprutil - $(ARCH)" RECURSE=0 $(CTARGET)
204251876Speter	 $(MAKE) $(MAKEOPT) -f libaprutil.mak  CFG="libaprutil - $(ARCH)" RECURSE=0 $(CTARGET)
205251876Speter	cd ldap
206251876Speter	 $(MAKE) $(MAKEOPT) -f apr_ldap.mak    CFG="apr_ldap - $(ARCH)" RECURSE=0 $(CTARGET)
207251876Speter	cd ..
208251876Speter	cd dbd
209251876Speter	  for %d in (odbc $(DBD_LIST)) do \
210251876Speter	    $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - $(ARCH)" RECURSE=0 $(CTARGET)
211251876Speter	cd ..
212251876Speter	cd dbm
213251876Speter	  for %d in ($(DBM_LIST) x) do if not %d == x \
214251876Speter	    $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - $(ARCH)" RECURSE=0 $(CTARGET)
215251876Speter	cd ..
216251876Speter	cd crypto
217251876Speter	  for %d in ($(CRYPTO_LIST) x) do if not %d == x \
218251876Speter	    $(MAKE) $(MAKEOPT) -f apr_crypto_%d.mak CFG="apr_crypto_%d - $(ARCH)" RECURSE=0 $(CTARGET)
219251876Speter	cd ..
220251876Speter
221251876Speter!ELSEIF $(USESLN) == 1
222251876Speter
223251876Speterclean:
224251876Speter	-for %d in (odbc $(DBD_LIST)) do \
225251876Speter	  devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_dbd_%d
226251876Speter	-for %d in ($(DBM_LIST) x) do if not %d == x \
227251876Speter	  devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_dbm_%d
228251876Speter	-for %d in ($(CRYPTO_LIST) x) do if not %d == x \
229251876Speter	  devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_crypto_%d
230251876Speter	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_ldap
231251876Speter	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libaprutil
232251876Speter	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project aprutil
233251876Speter	cd $(API_PATH)
234251876Speter	  -$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
235251876Speter		BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
236251876Speter	cd $(APU_PATH)
237251876Speter	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libapriconv
238251876Speter	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apriconv
239251876Speter	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libaprapp
240251876Speter	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project aprapp
241251876Speter	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libapr
242251876Speter	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr
243251876Speter
244251876Speterbuildall:
245251876Speter	devenv aprutil.sln /useenv /build "$(SLNARCH)" /project aprapp
246251876Speter	devenv aprutil.sln /useenv /build "$(SLNARCH)" /project libaprapp
247251876Speter	devenv aprutil.sln /useenv /build "$(SLNARCH)" /project aprutil
248251876Speter	devenv aprutil.sln /useenv /build "$(SLNARCH)" /project libaprutil
249251876Speter	devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_ldap
250251876Speter	for %d in (odbc $(DBD_LIST)) do \
251251876Speter	  devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_dbd_%d
252251876Speter	for %d in ($(DBM_LIST) x) do if not %d == x \
253251876Speter	  devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_dbm_%d
254251876Speter	for %d in ($(CRYPTO_LIST) x) do if not %d == x \
255251876Speter	  devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_crypto_%d
256251876Speter
257251876Speter!ELSE
258251876Speter#	$(USEDSP) == 1
259251876Speter
260251876Speterclean:
261251876Speter	-for %d in (odbc $(DBD_LIST)) do \
262251876Speter	  msdev aprutil.dsw /USEENV /MAKE "apr_dbd_%d - $(ARCH)" /CLEAN
263251876Speter	-for %d in ($(DBM_LIST) x) do if not %d == x \
264251876Speter	  msdev aprutil.dsw /USEENV /MAKE "apr_dbm_%d - $(ARCH)" /CLEAN
265251876Speter	-for %d in ($(CRYPTO_LIST) x) do if not %d == x \
266251876Speter	  msdev aprutil.dsw /USEENV /MAKE "apr_crypto_%d - $(ARCH)" /CLEAN
267251876Speter	-msdev aprutil.dsw /USEENV /MAKE "apr_ldap - $(ARCH)" /CLEAN
268251876Speter	-msdev aprutil.dsw /USEENV /MAKE "libaprutil - $(ARCH)" /CLEAN
269251876Speter	-msdev aprutil.dsw /USEENV /MAKE "aprutil - $(ARCH)" /CLEAN
270251876Speter	cd $(API_PATH)
271251876Speter	 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
272251876Speter		BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
273251876Speter	cd $(APU_PATH)
274251876Speter	-msdev aprutil.dsw /USEENV /MAKE "libapriconv - $(ARCH)" /CLEAN
275251876Speter	-msdev aprutil.dsw /USEENV /MAKE "apriconv - $(ARCH)" /CLEAN
276251876Speter	-msdev aprutil.dsw /USEENV /MAKE "libaprapp - $(ARCH)" /CLEAN
277251876Speter	-msdev aprutil.dsw /USEENV /MAKE "aprapp - $(ARCH)" /CLEAN
278251876Speter	-msdev aprutil.dsw /USEENV /MAKE "libapr - $(ARCH)" /CLEAN
279251876Speter	-msdev aprutil.dsw /USEENV /MAKE "apr - $(ARCH)" /CLEAN
280251876Speter
281251876Speterbuildall:
282251876Speter	@msdev aprutil.dsw /USEENV /MAKE "aprapp - $(ARCH)"
283251876Speter	@msdev aprutil.dsw /USEENV /MAKE "aprutil - $(ARCH)"
284251876Speter	@msdev aprutil.dsw /USEENV /MAKE "libaprapp - $(ARCH)"
285251876Speter	@msdev aprutil.dsw /USEENV /MAKE "libaprutil - $(ARCH)"
286251876Speter	@msdev aprutil.dsw /USEENV /MAKE "apr_ldap - $(ARCH)"
287251876Speter	@for %d in (odbc $(DBD_LIST)) do \
288251876Speter	  msdev aprutil.dsw /USEENV /MAKE "apr_dbd_%d - $(ARCH)"
289251876Speter	@for %d in ($(DBM_LIST) x) do if not %d == x \
290251876Speter	  msdev aprutil.dsw /USEENV /MAKE "apr_dbm_%d - $(ARCH)"
291251876Speter	@for %d in ($(CRYPTO_LIST) x) do if not %d == x \
292251876Speter	  msdev aprutil.dsw /USEENV /MAKE "apr_crypto_%d - $(ARCH)"
293251876Speter
294251876Speter!ENDIF
295251876Speter
296251876Speter
297251876Spetercheckapr:
298251876Speter	cd $(APR_PATH)\test
299251876Speter	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
300251876Speter		OUTDIR=$(LIBSOSPATH) check
301251876Speter	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
302251876Speter		OUTDIR=$(ARCHOSPATH) check
303251876Speter	 cd ..
304251876Speter	cd $(APU_PATH)
305251876Speter
306251876Spetercheckapu:
307251876Speter	cd $(APU_PATH)
308251876Speter	cd test
309251876Speter	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
310251876Speter		OUTDIR=$(LIBSPATH) APROUTDIR=$(LIBSOSPATH) \
311251876Speter		APR_PATH=..\$(APR_PATH) API_PATH=..\$(API_PATH) check
312251876Speter	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
313251876Speter		OUTDIR=$(ARCHPATH) APROUTDIR=$(ARCHOSPATH) \
314251876Speter		APR_PATH=..\$(APR_PATH) API_PATH=..\$(API_PATH) check
315251876Speter	cd ..
316251876Speter
317251876Spetercheckall: checkapr checkapu
318251876Speter
319251876Speter
320251876Speterinstall:
321251876Speter	echo Y >.y
322251876Speter	echo A >.A
323251876Speter	@if NOT EXIST "$(PREFIX)\." mkdir "$(PREFIX)"
324251876Speter	@if NOT EXIST "$(PREFIX)\bin\." mkdir "$(PREFIX)\bin"
325251876Speter	@if NOT EXIST "$(PREFIX)\bin\iconv\." mkdir "$(PREFIX)\bin\iconv"
326251876Speter	@if NOT EXIST "$(PREFIX)\include\." mkdir "$(PREFIX)\include"
327251876Speter	@if NOT EXIST "$(PREFIX)\lib\." mkdir "$(PREFIX)\lib"
328251876Speter	copy CHANGES "$(PREFIX)\CHANGES.txt" <.y
329251876Speter	copy LICENSE "$(PREFIX)\LICENSE.txt" <.y
330251876Speter	copy NOTICE  "$(PREFIX)\NOTICE.txt"  <.y
331251876Speter	xcopy $(APR_PATH)\include\*.h		"$(PREFIX)\include\" /d < .a
332251876Speter	xcopy $(APU_PATH)\include\*.h		"$(PREFIX)\include\" /d < .a
333251876Speter	copy $(APR_PATH)\$(LIBSOSPATH)\apr-1.lib	"$(PREFIX)\lib\" <.y
334251876Speter	copy $(APR_PATH)\$(LIBSOSPATH)\apr-1.pdb	"$(PREFIX)\lib\" <.y
335251876Speter	copy $(APU_PATH)\$(LIBSPATH)\aprutil-1.lib	"$(PREFIX)\lib\" <.y
336251876Speter	copy $(APU_PATH)\$(LIBSPATH)\aprutil-1.pdb	"$(PREFIX)\lib\" <.y
337251876Speter	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.lib	"$(PREFIX)\lib\" <.y
338251876Speter	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.exp	"$(PREFIX)\lib\" <.y
339251876Speter	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.lib	"$(PREFIX)\lib\" <.y
340251876Speter	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.exp	"$(PREFIX)\lib\" <.y
341251876Speter	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.dll	"$(PREFIX)\bin\" <.y
342251876Speter	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.pdb	"$(PREFIX)\bin\" <.y
343251876Speter	copy $(API_PATH)\$(ARCHPATH)\libapriconv-1.dll	"$(PREFIX)\bin\" <.y
344251876Speter	copy $(API_PATH)\$(ARCHPATH)\libapriconv-1.pdb	"$(PREFIX)\bin\" <.y
345251876Speter	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.dll	"$(PREFIX)\bin\" <.y
346251876Speter	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.pdb	"$(PREFIX)\bin\" <.y
347251876Speter	copy $(APU_PATH)\ldap\$(ARCHPATH)\apr_ldap-1.dll "$(PREFIX)\bin\" <.y
348251876Speter	copy $(APU_PATH)\ldap\$(ARCHPATH)\apr_ldap-1.pdb "$(PREFIX)\bin\" <.y
349251876Speter	for %d in (odbc $(DBD_LIST)) do ( \
350251876Speter	  copy $(APU_PATH)\dbd\$(ARCHPATH)\apr_dbd_%d-1.dll "$(PREFIX)\bin\" <.y && \
351251876Speter	  copy $(APU_PATH)\dbd\$(ARCHPATH)\apr_dbd_%d-1.pdb "$(PREFIX)\bin\" <.y \
352251876Speter	)
353251876Speter	for %d in ($(DBM_LIST) x) do if not %d == x ( \
354251876Speter	  copy $(APU_PATH)\dbm\$(ARCHPATH)\apr_dbm_%d-1.dll "$(PREFIX)\bin\" <.y && \
355251876Speter	  copy $(APU_PATH)\dbm\$(ARCHPATH)\apr_dbm_%d-1.pdb "$(PREFIX)\bin\" <.y \
356251876Speter	)
357251876Speter	for %d in ($(CRYPTO_LIST) x) do if not %d == x ( \
358251876Speter	  copy $(APU_PATH)\crypto\$(ARCHPATH)\apr_crypto_%d-1.dll "$(PREFIX)\bin\" <.y && \
359251876Speter	  copy $(APU_PATH)\crypto\$(ARCHPATH)\apr_crypto_%d-1.pdb "$(PREFIX)\bin\" <.y \
360251876Speter	)
361251876Speter	xcopy $(API_PATH)\$(ARCHPATH)\iconv\*.so  "$(PREFIX)\bin\iconv\" /d < .a
362251876Speter	xcopy $(API_PATH)\$(ARCHPATH)\iconv\*.pdb "$(PREFIX)\bin\iconv\" /d < .a
363251876Speter	del .y
364251876Speter	del .a
365251876Speter
366