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