| # 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 \Apache. 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" |
| |
| !IF "$(INSTDIR)" == "" |
| INSTDIR=\Apache |
| !MESSAGE Using default install directory \Apache |
| !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 |
| |
| default: _apacher |
| |
| _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 |
| # aprlibdll creates the dynamic aprlib.dll from the static library project aprlib.dsp |
| $(MAKE) $(MAKEOPT) -f aprlib.mak CFG="aprlib - Win32 $(LONG)" RECURSE=0 $(CTARGET) |
| $(MAKE) $(MAKEOPT) -f aprlibdll.mak CFG="aprlibdll - Win32 $(LONG)" RECURSE=0 $(CTARGET) |
| cd ..\.. |
| cd srclib\apr-util |
| # aprutildll creates the dynamic apr-util.dll from the static library project aprutil.dsp |
| $(MAKE) $(MAKEOPT) -f aprutil.mak CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET) |
| $(MAKE) $(MAKEOPT) -f aprutildll.mak CFG="aprutildll - Win32 $(LONG)" RECURSE=0 $(CTARGET) |
| cd ..\.. |
| cd srclib\expat-lite |
| $(MAKE) $(MAKEOPT) -f expatlib.mak CFG="expatlib - 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 srclib\sdbm |
| $(MAKE) $(MAKEOPT) -f sdbmlib.mak CFG="sdbmlib - Win32 $(LONG)" RECURSE=0 $(CTARGET) |
| cd ..\.. |
| cd server |
| $(MAKE) $(MAKEOPT) -f gen_uri_delims.mak CFG="gen_uri_delims - Win32 $(LONG)" RECURSE=0 $(CTARGET) |
| $(MAKE) $(MAKEOPT) -f gen_test_char.mak CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET) |
| cd .. |
| -del Core$(SHORT)\buildmark.obj |
| # ApacheCoreDll creates the dynamic ApacheCore.dll from the static library project ApacheCore |
| $(MAKE) $(MAKEOPT) -f ApacheCore.mak CFG="ApacheCore - Win32 $(LONG)" RECURSE=0 $(CTARGET) |
| $(MAKE) $(MAKEOPT) -f ApacheCoreDll.mak CFG="ApacheCoreDll - 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 ..\.. |
| 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 .. |
| |
| _install: |
| -mkdir $(INSTDIR) |
| -mkdir $(INSTDIR)\bin |
| -mkdir $(INSTDIR)\conf |
| -mkdir $(INSTDIR)\logs |
| -mkdir $(INSTDIR)\modules |
| -mkdir $(INSTDIR)\htdocs |
| -mkdir $(INSTDIR)\htdocs\manual |
| copy Apache$(SHORT)\Apache.exe $(INSTDIR) |
| copy Core$(SHORT)\ApacheCore.dll $(INSTDIR) |
| copy srclib\apr\$(LONG)\aprlib.dll $(INSTDIR) |
| copy srclib\apr-util\$(LONG)\apr-util.dll $(INSTDIR) |
| copy srclib\expat-lite\$(LONG)\expatlib.dll $(INSTDIR) |
| copy modules\aaa\mod_auth_anon$(SHORT)\mod_auth_anon.dll $(INSTDIR)\modules |
| copy modules\aaa\mod_auth_dbm$(SHORT)\mod_auth_dbm.dll $(INSTDIR)\modules |
| copy modules\aaa\mod_auth_digest$(SHORT)\mod_auth_digest.dll $(INSTDIR)\modules |
| copy modules\cache\mod_file_cache$(SHORT)\mod_file_cache.dll $(INSTDIR)\modules |
| copy modules\dav\fs\mod_dav_fs$(SHORT)\mod_dav_fs.dll $(INSTDIR)\modules |
| copy modules\dav\main\mod_dav$(SHORT)\mod_dav.dll $(INSTDIR)\modules |
| # copy modules\generators\mod_info$(SHORT)\mod_info.dll $(INSTDIR)\modules |
| copy modules\generators\mod_status$(SHORT)\mod_status.dll $(INSTDIR)\modules |
| copy modules\mappers\mod_rewrite$(SHORT)\mod_rewrite.dll $(INSTDIR)\modules |
| copy modules\mappers\mod_speling$(SHORT)\mod_speling.dll $(INSTDIR)\modules |
| copy modules\metadata\mod_cern_meta$(SHORT)\mod_cern_meta.dll $(INSTDIR)\modules |
| copy modules\metadata\mod_expires$(SHORT)\mod_expires.dll $(INSTDIR)\modules |
| copy modules\metadata\mod_headers$(SHORT)\mod_headers.dll $(INSTDIR)\modules |
| copy modules\metadata\mod_usertrack$(SHORT)\mod_usertrack.dll $(INSTDIR)\modules |
| # copy modules\proxy\mod_proxy$(SHORT)\mod_proxy.dll $(INSTDIR)\modules |
| 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 |
| if not exist $(INSTDIR)\conf\magic copy docs\conf\magic $(INSTDIR)\conf |
| copy docs\conf\magic $(INSTDIR)\conf\magic-default |
| if not exist $(INSTDIR)\conf\mime.types copy docs\conf\mime.types $(INSTDIR)\conf |
| copy docs\conf\mime.types $(INSTDIR)\conf\mime.types-default |
| cd docs\docroot |
| for %%a in (*.*) do if not exist $(INSTDIR)\htdocs\%%a copy %%a $(INSTDIR)\htdocs |
| cd ..\.. |
| xcopy docs\manual $(INSTDIR)\htdocs\manual /s |
| perl << |
| |
| my $$serverroot = '$(INSTDIR)'; |
| $$serverroot =~ s|\\|\/|; |
| open(IN, '< docs\conf\httpd-win.conf') |
| || die 'Source httpd-win.conf not found in docs\conf'; |
| open(OUT, '> $(INSTDIR)\conf\httpd.conf-default') |
| || die 'Create file $(INSTDIR)\conf\httpd.conf-default failed'; |
| while (<IN>) { |
| while (s|\@\@ServerRoot\@\@|$$serverroot|) {} |
| print OUT $_; |
| } |
| print 'Installed httpd.conf-default in $(INSTDIR)\conf' . "\n"; |
| close (OUT); |
| seek(IN, 0, SEEK_SET); |
| if (open(OUT, '< $(INSTDIR)\conf\httpd.conf')) { |
| print 'Existing $(INSTDIR)\conf\httpd.conf preserved' . "\n"; |
| close(OUT); close(IN); exit; |
| } |
| open(OUT, '> $(INSTDIR)\conf\httpd.conf') |
| || die 'Create file $(INSTDIR)\conf\httpd.conf failed'; |
| while (<IN>) { |
| while (s|\@\@ServerRoot\@\@|$$serverroot|) {} |
| print OUT $_; |
| } |
| print 'Installed httpd.conf in $(INSTDIR)\conf' . "\n"; |
| close(OUT); close(IN); |
| << |