Makefile.win revision 269847
1314817Sngie# Makefile.win for Win32 APR alone
2272343Sngie#
3272343Sngie# Targets are:
4272343Sngie#
5272343Sngie#     buildall - compile everything
6272343Sngie#     checkall - run APR regression tests
7272343Sngie#     install  - compile everything
8272343Sngie#     clean    - mop up everything
9272343Sngie#
10272343Sngie# You can override the build mechanism, choose only one;
11272343Sngie#
12272343Sngie#     USEMAK=1 - compile from exported make files
13272343Sngie#     USEDSW=1 - compile from .dsw / .dsp VC6 projects
14272343Sngie#     USESLN=1 - compile from converted .sln / .vcproj VC7+ files
15272343Sngie#
16272343Sngie# Define ARCH to your desired preference (your PATH must point
17272343Sngie# to the correct compiler tools!)  Choose only one;
18272343Sngie#
19272343Sngie#     ARCH="Win32 Release"
20272343Sngie#     ARCH="Win32 Debug"
21272343Sngie#     ARCH="Win32 Release9x"
22272343Sngie#     ARCH="Win32 Debug9x"
23272343Sngie#     ARCH="x64 Release"
24272343Sngie#     ARCH="x64 Debug"
25272343Sngie#
26272343Sngie# For example;
27272343Sngie#
28272343Sngie#   nmake -f Makefile.win PREFIX=C:\APR buildall checkall install clean
29272343Sngie#
30272343Sngie
31272343Sngie!IF EXIST("apr.sln") && ([devenv /help > NUL 2>&1] == 0) \
32272343Sngie    && !defined(USEMAK) && !defined(USEDSW)
33314817SngieUSESLN=1
34272343SngieUSEMAK=0
35272343SngieUSEDSW=0
36272343Sngie!ELSEIF EXIST("apr.mak") && !defined(USEDSW)
37272343SngieUSESLN=0
38272343SngieUSEMAK=1
39272343SngieUSEDSW=0
40272343Sngie!ELSE
41272343SngieUSESLN=0
42272343SngieUSEMAK=0
43272343SngieUSEDSW=1
44272343Sngie!ENDIF
45272343Sngie
46272343SngiePREFIX=..\apr-dist
47272343Sngie
48272343Sngie!IF [$(COMSPEC) /c cl /nologo /? \
49314817Sngie	| $(SystemRoot)\System32\find.exe "x64" >NUL ] == 0
50272343SngieARCH=x64 Release
51272343Sngie!ELSE
52272343SngieARCH=Win32 Release
53272343Sngie!ENDIF
54272343Sngie
55272343Sngie!MESSAGE ARCH        = $(ARCH)
56272343Sngie!MESSAGE PREFIX      = $(PREFIX)  (install path)
57272343Sngie
58272343Sngie
59272343Sngie# Utility and Translation things, nothing here for the user
60272343Sngie#
61272343Sngie!IF "$(ARCH)" == "Win32 Release"
62272343SngieSLNARCH=Release|Win32
63272343SngieARCHOSPATH=Release
64272343SngieLIBSOSPATH=LibR
65272343Sngie!ELSEIF "$(ARCH)" == "Win32 Debug"
66272343SngieSLNARCH=Debug|Win32
67272343SngieARCHOSPATH=Debug
68272343SngieLIBSOSPATH=LibD
69272343Sngie!ELSEIF "$(ARCH)" == "Win32 Release9x"
70272343SngieSLNARCH=Release9x|Win32
71272343SngieARCHOSPATH=9x\Release
72272343SngieLIBSOSPATH=9x\LibR
73272343Sngie!ELSEIF "$(ARCH)" == "Win32 Debug9x"
74272343SngieSLNARCH=Debug9x|Win32
75272343SngieARCHOSPATH=9x\Debug
76272343SngieLIBSOSPATH=9x\LibD
77272343Sngie!ELSEIF "$(ARCH)" == "x64 Release"
78272343SngieSLNARCH=Release|x64
79272343SngieARCHOSPATH=x64\Release
80272343SngieLIBSOSPATH=x64\LibR
81272343Sngie!ELSEIF "$(ARCH)" == "x64 Debug"
82272343SngieSLNARCH=Debug|x64
83272343SngieARCHOSPATH=x64\Debug
84272343SngieLIBSOSPATH=x64\LibD
85272343Sngie!ENDIF
86272343Sngie
87272343Sngie!IFNDEF MAKEOPT
88272343Sngie# Only default the behavior if MAKEOPT= is omitted
89272343Sngie!IFDEF _NMAKE_VER
90272343Sngie# Microsoft NMake options
91272343SngieMAKEOPT=-nologo
92272343Sngie!ELSEIF "$(MAKE)" == "make"
93272343Sngie# Borland make options?  Not really supported (yet)
94272343SngieMAKEOPT=-s -N
95272343Sngie!ENDIF
96272343Sngie!ENDIF
97272343Sngie
98272343Sngie
99272343Sngieall: buildall checkall
100272343Sngie
101272343Sngie!IF $(USEMAK) == 1
102272343Sngie
103272343Sngieclean:
104272343Sngie	$(MAKE) $(MAKEOPT) -f Makefile.win ARCH="$(ARCH)" \
105272343Sngie		CTARGET=CLEAN buildall
106272343Sngie
107272343Sngiebuildall:
108272343Sngie	$(MAKE) $(MAKEOPT) -f apr.mak         CFG="apr - $(ARCH)" RECURSE=0 $(CTARGET)
109272343Sngie	$(MAKE) $(MAKEOPT) -f libapr.mak      CFG="libapr - $(ARCH)" RECURSE=0 $(CTARGET)
110272343Sngie	cd build
111272343Sngie	 $(MAKE) $(MAKEOPT) -f aprapp.mak     CFG="aprapp - $(ARCH)" RECURSE=0 $(CTARGET)
112272343Sngie	 $(MAKE) $(MAKEOPT) -f libaprapp.mak  CFG="libaprapp - $(ARCH)" RECURSE=0 $(CTARGET)
113272343Sngie	cd ..
114272343Sngie
115272343Sngie!ELSEIF $(USESLN) == 1
116272343Sngie
117272343Sngieclean:
118272343Sngie	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project libaprapp
119272343Sngie	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project libapr
120272343Sngie	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project aprapp
121272343Sngie	-devenv apr.sln /useenv /clean "$(SLNARCH)" /project apr
122272343Sngie
123272343Sngiebuildall:
124272343Sngie	devenv apr.sln /useenv /build "$(SLNARCH)" /project apr
125272343Sngie	devenv apr.sln /useenv /build "$(SLNARCH)" /project aprapp
126272343Sngie	devenv apr.sln /useenv /build "$(SLNARCH)" /project libapr
127272343Sngie	devenv apr.sln /useenv /build "$(SLNARCH)" /project libaprapp
128272343Sngie
129272343Sngie!ELSE
130272343Sngie#	$(USEDSP) == 1
131272343Sngie
132272343Sngieclean:
133272343Sngie	-msdev apr.dsw /USEENV /MAKE "libaprapp - $(ARCH)" /CLEAN
134272343Sngie	-msdev apr.dsw /USEENV /MAKE "libapr - $(ARCH)" /CLEAN
135272343Sngie	-msdev apr.dsw /USEENV /MAKE "aprapp - $(ARCH)" /CLEAN
136272343Sngie	-msdev apr.dsw /USEENV /MAKE "apr - $(ARCH)" /CLEAN
137272343Sngie
138272343Sngiebuildall:
139272343Sngie	@msdev apr.dsw /USEENV /MAKE "apr - $(ARCH)"
140272343Sngie	@msdev apr.dsw /USEENV /MAKE "aprapp - $(ARCH)"
141272343Sngie	@msdev apr.dsw /USEENV /MAKE "libapr - $(ARCH)"
142272343Sngie	@msdev apr.dsw /USEENV /MAKE "libaprapp - $(ARCH)"
143272343Sngie
144272343Sngie!ENDIF
145272343Sngie
146272343Sngie
147272343Sngiecheckapr:
148272343Sngie	cd test
149272343Sngie	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
150272343Sngie		OUTDIR=$(LIBSOSPATH) check
151272343Sngie	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
152272343Sngie		OUTDIR=$(ARCHOSPATH) check
153272343Sngie	 cd ..
154272343Sngie
155272343Sngiecheckall: checkapr
156272343Sngie
157272343Sngie
158272343Sngieinstall:
159272343Sngie	echo Y >.y
160272343Sngie	echo A >.A
161272343Sngie	@if NOT EXIST "$(PREFIX)\."		mkdir "$(PREFIX)"
162272343Sngie	@if NOT EXIST "$(PREFIX)\bin\."		mkdir "$(PREFIX)\bin"
163272343Sngie	@if NOT EXIST "$(PREFIX)\include\."	mkdir "$(PREFIX)\include"
164272343Sngie	@if NOT EXIST "$(PREFIX)\lib\."		mkdir "$(PREFIX)\lib"
165272343Sngie	copy CHANGES "$(PREFIX)\APR-CHANGES.txt" <.y
166272343Sngie	copy LICENSE "$(PREFIX)\APR-LICENSE.txt" <.y
167272343Sngie	copy NOTICE  "$(PREFIX)\APR-NOTICE.txt"  <.y
168272343Sngie	xcopy include\*.h		"$(PREFIX)\include\" /d < .a
169272343Sngie	copy $(LIBSOSPATH)\apr-1.lib		"$(PREFIX)\lib\" <.y
170272343Sngie	copy $(LIBSOSPATH)\apr-1.pdb		"$(PREFIX)\lib\" <.y
171272343Sngie	copy $(LIBSOSPATH)\aprapp-1.lib		"$(PREFIX)\lib\" <.y
172272343Sngie	copy $(LIBSOSPATH)\aprapp-1.pdb		"$(PREFIX)\lib\" <.y
173272343Sngie	copy $(ARCHOSPATH)\libaprapp-1.lib	"$(PREFIX)\lib\" <.y
174272343Sngie	copy $(ARCHOSPATH)\libaprapp-1.pdb	"$(PREFIX)\lib\" <.y
175272343Sngie	copy $(ARCHOSPATH)\libapr-1.lib		"$(PREFIX)\lib\" <.y
176272343Sngie	copy $(ARCHOSPATH)\libapr-1.exp		"$(PREFIX)\lib\" <.y
177272343Sngie	copy $(ARCHOSPATH)\libapr-1.dll		"$(PREFIX)\bin\" <.y
178272343Sngie	copy $(ARCHOSPATH)\libapr-1.pdb		"$(PREFIX)\bin\" <.y
179272343Sngie	del .y
180272343Sngie	del .a
181272343Sngie
182272343Sngie