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