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