1# Makefile.win for Win32 APR alone
2#
3# Targets are:
4#
5#     buildall - compile everything
6#     checkall - run APR 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# For example;
27#
28#   nmake -f Makefile.win PREFIX=C:\APR buildall checkall install clean
29#
30
31!IF EXIST("apr.sln") && ([devenv /help > NUL 2>&1] == 0) \
32    && !defined(USEMAK) && !defined(USEDSW)
33USESLN=1
34USEMAK=0
35USEDSW=0
36!ELSEIF EXIST("apr.mak") && !defined(USEDSW)
37USESLN=0
38USEMAK=1
39USEDSW=0
40!ELSE
41USESLN=0
42USEMAK=0
43USEDSW=1
44!ENDIF
45
46PREFIX=..\apr-dist
47
48!IF [$(COMSPEC) /c cl /nologo /? \
49	| $(SystemRoot)\System32\find.exe "x64" >NUL ] == 0
50ARCH=x64 Release
51!ELSE
52ARCH=Win32 Release
53!ENDIF
54
55!MESSAGE ARCH        = $(ARCH)
56!MESSAGE PREFIX      = $(PREFIX)  (install path)
57
58
59# Utility and Translation things, nothing here for the user
60#
61!IF "$(ARCH)" == "Win32 Release"
62SLNARCH=Release|Win32
63ARCHOSPATH=Release
64LIBSOSPATH=LibR
65!ELSEIF "$(ARCH)" == "Win32 Debug"
66SLNARCH=Debug|Win32
67ARCHOSPATH=Debug
68LIBSOSPATH=LibD
69!ELSEIF "$(ARCH)" == "Win32 Release9x"
70SLNARCH=Release9x|Win32
71ARCHOSPATH=9x\Release
72LIBSOSPATH=9x\LibR
73!ELSEIF "$(ARCH)" == "Win32 Debug9x"
74SLNARCH=Debug9x|Win32
75ARCHOSPATH=9x\Debug
76LIBSOSPATH=9x\LibD
77!ELSEIF "$(ARCH)" == "x64 Release"
78SLNARCH=Release|x64
79ARCHOSPATH=x64\Release
80LIBSOSPATH=x64\LibR
81!ELSEIF "$(ARCH)" == "x64 Debug"
82SLNARCH=Debug|x64
83ARCHOSPATH=x64\Debug
84LIBSOSPATH=x64\LibD
85!ENDIF
86
87!IFNDEF MAKEOPT
88# Only default the behavior if MAKEOPT= is omitted
89!IFDEF _NMAKE_VER
90# Microsoft NMake options
91MAKEOPT=-nologo
92!ELSEIF "$(MAKE)" == "make"
93# Borland make options?  Not really supported (yet)
94MAKEOPT=-s -N
95!ENDIF
96!ENDIF
97
98
99all: buildall checkall
100
101!IF $(USEMAK) == 1
102
103clean:
104	$(MAKE) $(MAKEOPT) -f Makefile.win ARCH="$(ARCH)" \
105		CTARGET=CLEAN buildall
106
107buildall:
108	$(MAKE) $(MAKEOPT) -f apr.mak         CFG="apr - $(ARCH)" RECURSE=0 $(CTARGET)
109	$(MAKE) $(MAKEOPT) -f libapr.mak      CFG="libapr - $(ARCH)" RECURSE=0 $(CTARGET)
110	cd build
111	 $(MAKE) $(MAKEOPT) -f aprapp.mak     CFG="aprapp - $(ARCH)" RECURSE=0 $(CTARGET)
112	 $(MAKE) $(MAKEOPT) -f libaprapp.mak  CFG="libaprapp - $(ARCH)" RECURSE=0 $(CTARGET)
113	cd ..
114
115!ELSEIF $(USESLN) == 1
116
117clean:
118	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project libaprapp
119	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project libapr
120	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project aprapp
121	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project apr
122
123buildall:
124	devenv apr.sln /useenv /build "$(SLNARCH)" /project apr
125	devenv apr.sln /useenv /build "$(SLNARCH)" /project aprapp
126	devenv apr.sln /useenv /build "$(SLNARCH)" /project libapr
127	devenv apr.sln /useenv /build "$(SLNARCH)" /project libaprapp
128
129!ELSE
130#	$(USEDSP) == 1
131
132clean:
133	-msdev apr.dsw /USEENV /MAKE "libaprapp - $(ARCH)" /CLEAN
134	-msdev apr.dsw /USEENV /MAKE "libapr - $(ARCH)" /CLEAN
135	-msdev apr.dsw /USEENV /MAKE "aprapp - $(ARCH)" /CLEAN
136	-msdev apr.dsw /USEENV /MAKE "apr - $(ARCH)" /CLEAN
137
138buildall:
139	@msdev apr.dsw /USEENV /MAKE "apr - $(ARCH)"
140	@msdev apr.dsw /USEENV /MAKE "aprapp - $(ARCH)"
141	@msdev apr.dsw /USEENV /MAKE "libapr - $(ARCH)"
142	@msdev apr.dsw /USEENV /MAKE "libaprapp - $(ARCH)"
143
144!ENDIF
145
146
147checkapr:
148	cd test
149	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
150		OUTDIR=$(LIBSOSPATH) check
151	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
152		OUTDIR=$(ARCHOSPATH) check
153	 cd ..
154
155checkall: checkapr
156
157
158install:
159	echo Y >.y
160	echo A >.A
161	@if NOT EXIST "$(PREFIX)\."		mkdir "$(PREFIX)"
162	@if NOT EXIST "$(PREFIX)\bin\."		mkdir "$(PREFIX)\bin"
163	@if NOT EXIST "$(PREFIX)\include\."	mkdir "$(PREFIX)\include"
164	@if NOT EXIST "$(PREFIX)\lib\."		mkdir "$(PREFIX)\lib"
165	copy CHANGES "$(PREFIX)\APR-CHANGES.txt" <.y
166	copy LICENSE "$(PREFIX)\APR-LICENSE.txt" <.y
167	copy NOTICE  "$(PREFIX)\APR-NOTICE.txt"  <.y
168	xcopy include\*.h		"$(PREFIX)\include\" /d < .a
169	copy $(LIBSOSPATH)\apr-1.lib		"$(PREFIX)\lib\" <.y
170	copy $(LIBSOSPATH)\apr-1.pdb		"$(PREFIX)\lib\" <.y
171	copy $(LIBSOSPATH)\aprapp-1.lib		"$(PREFIX)\lib\" <.y
172	copy $(LIBSOSPATH)\aprapp-1.pdb		"$(PREFIX)\lib\" <.y
173	copy $(ARCHOSPATH)\libaprapp-1.lib	"$(PREFIX)\lib\" <.y
174	copy $(ARCHOSPATH)\libaprapp-1.pdb	"$(PREFIX)\lib\" <.y
175	copy $(ARCHOSPATH)\libapr-1.lib		"$(PREFIX)\lib\" <.y
176	copy $(ARCHOSPATH)\libapr-1.exp		"$(PREFIX)\lib\" <.y
177	copy $(ARCHOSPATH)\libapr-1.dll		"$(PREFIX)\bin\" <.y
178	copy $(ARCHOSPATH)\libapr-1.pdb		"$(PREFIX)\bin\" <.y
179	del .y
180	del .a
181
182