Makefile.win revision 251875
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 mechansim, 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 installall 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