1251875Speter# Makefile.win for Win32 APR alone
2251875Speter#
3251875Speter# Targets are:
4251875Speter#
5251875Speter#     buildall - compile everything
6251875Speter#     checkall - run APR regression tests
7251875Speter#     install  - compile everything
8251875Speter#     clean    - mop up everything
9251875Speter#
10269847Speter# You can override the build mechanism, choose only one;
11251875Speter#
12251875Speter#     USEMAK=1 - compile from exported make files
13251875Speter#     USEDSW=1 - compile from .dsw / .dsp VC6 projects
14251875Speter#     USESLN=1 - compile from converted .sln / .vcproj VC7+ files
15251875Speter#
16251875Speter# Define ARCH to your desired preference (your PATH must point
17251875Speter# to the correct compiler tools!)  Choose only one;
18251875Speter#
19251875Speter#     ARCH="Win32 Release"
20251875Speter#     ARCH="Win32 Debug"
21251875Speter#     ARCH="Win32 Release9x"
22251875Speter#     ARCH="Win32 Debug9x"
23251875Speter#     ARCH="x64 Release"
24251875Speter#     ARCH="x64 Debug"
25251875Speter#
26251875Speter# For example;
27251875Speter#
28253734Speter#   nmake -f Makefile.win PREFIX=C:\APR buildall checkall install clean
29251875Speter#
30251875Speter
31251875Speter!IF EXIST("apr.sln") && ([devenv /help > NUL 2>&1] == 0) \
32251875Speter    && !defined(USEMAK) && !defined(USEDSW)
33251875SpeterUSESLN=1
34251875SpeterUSEMAK=0
35251875SpeterUSEDSW=0
36251875Speter!ELSEIF EXIST("apr.mak") && !defined(USEDSW)
37251875SpeterUSESLN=0
38251875SpeterUSEMAK=1
39251875SpeterUSEDSW=0
40251875Speter!ELSE
41251875SpeterUSESLN=0
42251875SpeterUSEMAK=0
43251875SpeterUSEDSW=1
44251875Speter!ENDIF
45251875Speter
46251875SpeterPREFIX=..\apr-dist
47251875Speter
48251875Speter!IF [$(COMSPEC) /c cl /nologo /? \
49251875Speter	| $(SystemRoot)\System32\find.exe "x64" >NUL ] == 0
50251875SpeterARCH=x64 Release
51251875Speter!ELSE
52251875SpeterARCH=Win32 Release
53251875Speter!ENDIF
54251875Speter
55251875Speter!MESSAGE ARCH        = $(ARCH)
56251875Speter!MESSAGE PREFIX      = $(PREFIX)  (install path)
57251875Speter
58251875Speter
59251875Speter# Utility and Translation things, nothing here for the user
60251875Speter#
61251875Speter!IF "$(ARCH)" == "Win32 Release"
62251875SpeterSLNARCH=Release|Win32
63251875SpeterARCHOSPATH=Release
64251875SpeterLIBSOSPATH=LibR
65251875Speter!ELSEIF "$(ARCH)" == "Win32 Debug"
66251875SpeterSLNARCH=Debug|Win32
67251875SpeterARCHOSPATH=Debug
68251875SpeterLIBSOSPATH=LibD
69251875Speter!ELSEIF "$(ARCH)" == "Win32 Release9x"
70251875SpeterSLNARCH=Release9x|Win32
71251875SpeterARCHOSPATH=9x\Release
72251875SpeterLIBSOSPATH=9x\LibR
73251875Speter!ELSEIF "$(ARCH)" == "Win32 Debug9x"
74251875SpeterSLNARCH=Debug9x|Win32
75251875SpeterARCHOSPATH=9x\Debug
76251875SpeterLIBSOSPATH=9x\LibD
77251875Speter!ELSEIF "$(ARCH)" == "x64 Release"
78251875SpeterSLNARCH=Release|x64
79251875SpeterARCHOSPATH=x64\Release
80251875SpeterLIBSOSPATH=x64\LibR
81251875Speter!ELSEIF "$(ARCH)" == "x64 Debug"
82251875SpeterSLNARCH=Debug|x64
83251875SpeterARCHOSPATH=x64\Debug
84251875SpeterLIBSOSPATH=x64\LibD
85251875Speter!ENDIF
86251875Speter
87251875Speter!IFNDEF MAKEOPT
88251875Speter# Only default the behavior if MAKEOPT= is omitted
89251875Speter!IFDEF _NMAKE_VER
90251875Speter# Microsoft NMake options
91251875SpeterMAKEOPT=-nologo
92251875Speter!ELSEIF "$(MAKE)" == "make"
93251875Speter# Borland make options?  Not really supported (yet)
94251875SpeterMAKEOPT=-s -N
95251875Speter!ENDIF
96251875Speter!ENDIF
97251875Speter
98251875Speter
99251875Speterall: buildall checkall
100251875Speter
101251875Speter!IF $(USEMAK) == 1
102251875Speter
103251875Speterclean:
104251875Speter	$(MAKE) $(MAKEOPT) -f Makefile.win ARCH="$(ARCH)" \
105251875Speter		CTARGET=CLEAN buildall
106251875Speter
107251875Speterbuildall:
108251875Speter	$(MAKE) $(MAKEOPT) -f apr.mak         CFG="apr - $(ARCH)" RECURSE=0 $(CTARGET)
109251875Speter	$(MAKE) $(MAKEOPT) -f libapr.mak      CFG="libapr - $(ARCH)" RECURSE=0 $(CTARGET)
110251875Speter	cd build
111251875Speter	 $(MAKE) $(MAKEOPT) -f aprapp.mak     CFG="aprapp - $(ARCH)" RECURSE=0 $(CTARGET)
112251875Speter	 $(MAKE) $(MAKEOPT) -f libaprapp.mak  CFG="libaprapp - $(ARCH)" RECURSE=0 $(CTARGET)
113251875Speter	cd ..
114251875Speter
115251875Speter!ELSEIF $(USESLN) == 1
116251875Speter
117251875Speterclean:
118251875Speter	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project libaprapp
119251875Speter	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project libapr
120251875Speter	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project aprapp
121251875Speter	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project apr
122251875Speter
123251875Speterbuildall:
124251875Speter	devenv apr.sln /useenv /build "$(SLNARCH)" /project apr
125251875Speter	devenv apr.sln /useenv /build "$(SLNARCH)" /project aprapp
126251875Speter	devenv apr.sln /useenv /build "$(SLNARCH)" /project libapr
127251875Speter	devenv apr.sln /useenv /build "$(SLNARCH)" /project libaprapp
128251875Speter
129251875Speter!ELSE
130251875Speter#	$(USEDSP) == 1
131251875Speter
132251875Speterclean:
133251875Speter	-msdev apr.dsw /USEENV /MAKE "libaprapp - $(ARCH)" /CLEAN
134251875Speter	-msdev apr.dsw /USEENV /MAKE "libapr - $(ARCH)" /CLEAN
135251875Speter	-msdev apr.dsw /USEENV /MAKE "aprapp - $(ARCH)" /CLEAN
136251875Speter	-msdev apr.dsw /USEENV /MAKE "apr - $(ARCH)" /CLEAN
137251875Speter
138251875Speterbuildall:
139251875Speter	@msdev apr.dsw /USEENV /MAKE "apr - $(ARCH)"
140251875Speter	@msdev apr.dsw /USEENV /MAKE "aprapp - $(ARCH)"
141251875Speter	@msdev apr.dsw /USEENV /MAKE "libapr - $(ARCH)"
142251875Speter	@msdev apr.dsw /USEENV /MAKE "libaprapp - $(ARCH)"
143251875Speter
144251875Speter!ENDIF
145251875Speter
146251875Speter
147251875Spetercheckapr:
148251875Speter	cd test
149251875Speter	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
150251875Speter		OUTDIR=$(LIBSOSPATH) check
151251875Speter	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
152251875Speter		OUTDIR=$(ARCHOSPATH) check
153251875Speter	 cd ..
154251875Speter
155251875Spetercheckall: checkapr
156251875Speter
157251875Speter
158251875Speterinstall:
159251875Speter	echo Y >.y
160251875Speter	echo A >.A
161251875Speter	@if NOT EXIST "$(PREFIX)\."		mkdir "$(PREFIX)"
162251875Speter	@if NOT EXIST "$(PREFIX)\bin\."		mkdir "$(PREFIX)\bin"
163251875Speter	@if NOT EXIST "$(PREFIX)\include\."	mkdir "$(PREFIX)\include"
164251875Speter	@if NOT EXIST "$(PREFIX)\lib\."		mkdir "$(PREFIX)\lib"
165251875Speter	copy CHANGES "$(PREFIX)\APR-CHANGES.txt" <.y
166251875Speter	copy LICENSE "$(PREFIX)\APR-LICENSE.txt" <.y
167251875Speter	copy NOTICE  "$(PREFIX)\APR-NOTICE.txt"  <.y
168251875Speter	xcopy include\*.h		"$(PREFIX)\include\" /d < .a
169251875Speter	copy $(LIBSOSPATH)\apr-1.lib		"$(PREFIX)\lib\" <.y
170251875Speter	copy $(LIBSOSPATH)\apr-1.pdb		"$(PREFIX)\lib\" <.y
171251875Speter	copy $(LIBSOSPATH)\aprapp-1.lib		"$(PREFIX)\lib\" <.y
172251875Speter	copy $(LIBSOSPATH)\aprapp-1.pdb		"$(PREFIX)\lib\" <.y
173251875Speter	copy $(ARCHOSPATH)\libaprapp-1.lib	"$(PREFIX)\lib\" <.y
174251875Speter	copy $(ARCHOSPATH)\libaprapp-1.pdb	"$(PREFIX)\lib\" <.y
175251875Speter	copy $(ARCHOSPATH)\libapr-1.lib		"$(PREFIX)\lib\" <.y
176251875Speter	copy $(ARCHOSPATH)\libapr-1.exp		"$(PREFIX)\lib\" <.y
177251875Speter	copy $(ARCHOSPATH)\libapr-1.dll		"$(PREFIX)\bin\" <.y
178251875Speter	copy $(ARCHOSPATH)\libapr-1.pdb		"$(PREFIX)\bin\" <.y
179251875Speter	del .y
180251875Speter	del .a
181251875Speter
182