# Makefile for Windows NT and Windows 95/98/2000 # Targets are: # _apacher - build Apache in Release mode # _apached - build Apache in Debug mode # installr - build and install a Release build # installd - build and install a Debug build # clean - remove (most) generated files # _cleanr - remove (most) files generated by a Release build # _cleand - remove (most) files generated by a Debug build # # The default installation directory is \Apache2.0. This can be changed # with the INSTDIR macro, for example: # # nmake /f Makefile.win INSTDIR="d:\Program Files\Apache" installr # # Note: this does *NOT* change the compiled in default "server root" # Also be aware that certain awk's will not accept backslahed names, # so the server root should be given in forward slashes (quoted), # preferably with the drive designation! default: _apacher !IF !EXIST("srclib\apr") !MESSAGE Please check out or download and unpack the Apache Portability Runtime !MESSAGE sources (apr and apr-util) into your $(INSTDIR)\srclib directory. !MESSAGE Apache cannot build without these libraries! !MESSAGE !ERROR Need $(INSTDIR)\srclib\apr !ENDIF !IF !EXIST("srclib\apr-util") !MESSAGE Please check out or download and unpack the Apache Portability Runtime !MESSAGE sources (apr and apr-util) into your $(INSTDIR)\srclib directory. !MESSAGE Apache cannot build without these libraries! !MESSAGE !ERROR Need $(INSTDIR)\srclib\apr-util !ENDIF # Note; tryssl: is only used by the msvc developer studio environment to 'fix up' # the build, since conditional dependencies aren't supported # !IF EXIST("srclib\openssl") !IF "$(LONG)" == "Debug" SSLBIN=out32dll.dbg !ELSE SSLBIN=out32dll !ENDIF tryssl: cd modules\ssl $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. cd modules\tls $(MAKE) $(MAKEOPT) -f mod_tls.mak CFG="mod_tls - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. !ELSE tryssl: echo mod_ssl and mod_tls will not build without openssl installed echo in $(INSTDIR)\srclib\openssl. They must be precompiled using echo the ms/ntdll.mak file. See INSTALL.W32 for details. !ENDIF !IF "$(INSTDIR)" == "" INSTDIR=\Apache2 !MESSAGE Using default install directory $(INSTDIR) !ENDIF !IFNDEF MAKEOPT # Only default the behavior if MAKEOPT= is omitted !IF "$(MAKE)" == "NMAKE" # Microsoft NMake options MAKEOPT=-nologo !ELSEIF "($MAKE)" == "make" # Borland make options? Not really supported (yet) MAKEOPT=-s -N !ENDIF !ENDIF _apacher: $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _apached: $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build installr: $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install installd: $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build _install _cleanr: $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build _cleand: $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET=CLEAN _build clean: $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET=CLEAN _build _build: echo Building Win32 $(LONG) targets ($(SHORT) suffixes) cd srclib\apr $(MAKE) $(MAKEOPT) -f apr.mak CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f libapr.mak CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. cd srclib\apr-util\uri $(MAKE) $(MAKEOPT) -f gen_uri_delims.mak CFG="gen_uri_delims - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\..\.. cd srclib\apr-util\xml\expat\lib $(MAKE) $(MAKEOPT) -f xml.mak CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\..\.. $(MAKE) $(MAKEOPT) -f aprutil.mak CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f libaprutil.mak CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. cd srclib\pcre $(MAKE) $(MAKEOPT) -f dftables.mak CFG="dftables - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f pcre.mak CFG="pcre - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f pcreposix.mak CFG="pcreposix - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. cd server $(MAKE) $(MAKEOPT) -f gen_test_char.mak CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd .. -del $(LONG)\buildmark.obj $(MAKE) $(MAKEOPT) -f libhttpd.mak CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f Apache.mak CFG="Apache - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd modules\aaa $(MAKE) $(MAKEOPT) -f mod_auth_anon.mak CFG="mod_auth_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f mod_auth_dbm.mak CFG="mod_auth_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. cd modules\cache $(MAKE) $(MAKEOPT) -f mod_file_cache.mak CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. cd modules\dav\main $(MAKE) $(MAKEOPT) -f mod_dav.mak CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\..\.. cd modules\dav\fs $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\..\.. cd modules\generators $(MAKE) $(MAKEOPT) -f mod_info.mak CFG"=mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f mod_status.mak CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. cd modules\mappers $(MAKE) $(MAKEOPT) -f mod_rewrite.mak CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f mod_speling.mak CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. cd modules\metadata $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f mod_expires.mak CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f mod_headers.mak CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f mod_usertrack.mak CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. # cd modules\proxy # $(MAKE) $(MAKEOPT) -f mod_proxy.mak CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET) # cd ..\.. !IF EXIST("srclib\openssl") cd modules\ssl $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. cd modules\tls $(MAKE) $(MAKEOPT) -f mod_tls.mak CFG="mod_tls - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. !ENDIF cd support $(MAKE) $(MAKEOPT) -f ab.mak CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f htpasswd.mak CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f htdigest.mak CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f logresolve.mak CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f rotatelogs.mak CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd .. cd support\win32 $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET) $(MAKE) $(MAKEOPT) -f wintty.mak CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET) cd ..\.. _install: -mkdir "$(INSTDIR)" -mkdir "$(INSTDIR)\bin" -mkdir "$(INSTDIR)\cgi-bin" -mkdir "$(INSTDIR)\conf" -mkdir "$(INSTDIR)\htdocs" -mkdir "$(INSTDIR)\htdocs\manual" -mkdir "$(INSTDIR)\icons" -mkdir "$(INSTDIR)\include" -mkdir "$(INSTDIR)\include\xml" -mkdir "$(INSTDIR)\include\pcre" -mkdir "$(INSTDIR)\lib" -mkdir "$(INSTDIR)\libexec" -mkdir "$(INSTDIR)\logs" -mkdir "$(INSTDIR)\modules" # -mkdir "$(INSTDIR)\proxy" copy $(LONG)\Apache.exe "$(INSTDIR)\bin" copy $(LONG)\libhttpd.dll "$(INSTDIR)\bin" copy srclib\apr\$(LONG)\libapr.dll "$(INSTDIR)\bin" copy srclib\apr-util\$(LONG)\libaprutil.dll "$(INSTDIR)\bin" copy modules\aaa\$(LONG)\mod_auth_anon.so "$(INSTDIR)\modules" copy modules\aaa\$(LONG)\mod_auth_dbm.so "$(INSTDIR)\modules" copy modules\aaa\$(LONG)\mod_auth_digest.so "$(INSTDIR)\modules" copy modules\cache\$(LONG)\mod_file_cache.so "$(INSTDIR)\modules" copy modules\dav\fs\$(LONG)\mod_dav_fs.so "$(INSTDIR)\modules" copy modules\dav\main\$(LONG)\mod_dav.so "$(INSTDIR)\modules" copy modules\generators\$(LONG)\mod_info.so "$(INSTDIR)\modules" copy modules\generators\$(LONG)\mod_status.so "$(INSTDIR)\modules" copy modules\mappers\$(LONG)\mod_rewrite.so "$(INSTDIR)\modules" copy modules\mappers\$(LONG)\mod_speling.so "$(INSTDIR)\modules" copy modules\metadata\$(LONG)\mod_cern_meta.so "$(INSTDIR)\modules" copy modules\metadata\$(LONG)\mod_expires.so "$(INSTDIR)\modules" copy modules\metadata\$(LONG)\mod_headers.so "$(INSTDIR)\modules" copy modules\metadata\$(LONG)\mod_usertrack.so "$(INSTDIR)\modules" # copy modules\proxy\$(LONG)\mod_proxy.so "$(INSTDIR)\modules" !IF EXIST("srclib\openssl") -copy modules\ssl\$(LONG)\mod_ssl.so "$(INSTDIR)\modules" -copy modules\tls\$(LONG)\mod_tls.so "$(INSTDIR)\modules" -copy srclib\openssl\$(SSLBIN)\openssl.exe "$(INSTDIR)\bin" -copy srclib\openssl\$(SSLBIN)\libeay32.dll "$(INSTDIR)\bin" -copy srclib\openssl\$(SSLBIN)\ssleay32.dll "$(INSTDIR)\bin" !ENDIF copy support\$(LONG)\ "$(INSTDIR)\bin" copy support\$(LONG)\ab.exe "$(INSTDIR)\bin" copy support\$(LONG)\htpasswd.exe "$(INSTDIR)\bin" copy support\$(LONG)\htdigest.exe "$(INSTDIR)\bin" copy support\$(LONG)\logresolve.exe "$(INSTDIR)\bin" copy support\$(LONG)\rotatelogs.exe "$(INSTDIR)\bin" copy support\win32\$(LONG)\ApacheMonitor.exe "$(INSTDIR)\bin" copy support\win32\$(LONG)\wintty.exe "$(INSTDIR)\bin" copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" -awk -f < dstfl; getline < srcfl; } while ( ( getline < srcfl ) > 0 ) { print $$0 > dstfl; } } << copy docs\cgi-examples\test-cgi.bat "$(INSTDIR)\cgi-bin" xcopy docs\docroot "$(INSTDIR)\htdocs" /d < << A << xcopy docs\manual "$(INSTDIR)\htdocs\manual" /s /d < << A << xcopy include\*.h "$(INSTDIR)\include" /d < << A << xcopy srclib\apr\include\*.h "$(INSTDIR)\include" /d < << A << xcopy srclib\apr-util\include\*.h "$(INSTDIR)\include" /d < << A << xcopy srclib\pcre\*.h "$(INSTDIR)\include\pcre" /d < << A << xcopy docs\icons "$(INSTDIR)\icons" /s /d < << A << copy srclib\apr\Lib$(SHORT)\apr.lib "$(INSTDIR)\lib" copy srclib\apr-util\Lib$(SHORT)\aprutil.lib "$(INSTDIR)\lib" copy srclib\pcre\Lib$(SHORT)\pcre.lib "$(INSTDIR)\lib" copy srclib\pcre\Lib$(SHORT)\pcreposix.lib "$(INSTDIR)\lib" copy srclib\apr\$(LONG)\libapr.lib "$(INSTDIR)\libexec" copy srclib\apr\$(LONG)\libapr.exp "$(INSTDIR)\libexec" copy srclib\apr-util\$(LONG)\libaprutil.lib "$(INSTDIR)\libexec" copy srclib\apr-util\$(LONG)\libaprutil.exp "$(INSTDIR)\libexec" copy $(LONG)\libhttpd.exp "$(INSTDIR)\libexec" copy $(LONG)\libhttpd.lib "$(INSTDIR)\libexec" copy modules\dav\main\$(LONG)\mod_dav.exp "$(INSTDIR)\libexec" copy modules\dav\main\$(LONG)\mod_dav.lib "$(INSTDIR)\libexec" copy docs\conf\magic "$(INSTDIR)\conf\magic.default" if not exist "$(INSTDIR)\conf\magic" \ copy "$(INSTDIR)\conf\magic.default" "$(INSTDIR)\conf\magic" copy docs\conf\mime.types "$(INSTDIR)\conf\mime.types.default" if not exist "$(INSTDIR)\conf\mime.types" \ copy "$(INSTDIR)\conf\mime.types.default" "$(INSTDIR)\conf\mime.types" copy docs\conf\httpd-win.conf "$(INSTDIR)\conf\httpd.default.conf" -awk -f < 0 ) { gsub( /@@ServerRoot@@/, serverroot ); print $$0 > dstfl; } } << if not exist "$(INSTDIR)\conf\httpd.conf" \ copy "$(INSTDIR)\conf\httpd.default.conf" "$(INSTDIR)\conf\httpd.conf" awk -f <"$(INSTDIR)\bin\dbmmanage.pl" { if ( $$0 ~ /^BEGIN { @AnyDBM_File::/ ) { sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); } if ( $$0 !~ /^#!@perlbin@/ ) print $$0; } <<