1 # Makefile for Windows NT and Windows 95/98/2000
4 # _apacher - build Apache in Release mode
5 # _apached - build Apache in Debug mode
6 # installr - build and install a Release build
7 # installd - build and install a Debug build
8 # clean - remove (most) generated files
9 # _cleanr - remove (most) files generated by a Release build
10 # _cleand - remove (most) files generated by a Debug build
12 # The default installation directory is \Apache. This can be changed
13 # with the INSTDIR macro, for example:
15 # nmake /f Makefile.win INSTDIR="d:\Program Files\Apache" installr
17 # Note: this does *NOT* change the compiled in default "server root"
19 !IF "$(INSTDIR)" == ""
21 !MESSAGE Using default install directory \Apache
25 # Only default the behavior if MAKEOPT= is omitted
26 !IF "$(MAKE)" == "NMAKE"
27 # Microsoft NMake options
29 !ELSEIF "($MAKE)" == "make"
30 # Borland make options? Not really supported (yet)
38 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build
41 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build
44 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
47 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build _install
50 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
53 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET=CLEAN _build
56 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
57 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET=CLEAN _build
60 echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
62 # aprlibdll creates the dynamic libapr.dll from the static library project apr.dsp
63 $(MAKE) $(MAKEOPT) -f apr.mak CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
64 $(MAKE) $(MAKEOPT) -f libapr.mak CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
67 # libaprutil creates the dynamic libaprutil.dll from the static library project aprutil.dsp
68 $(MAKE) $(MAKEOPT) -f aprutil.mak CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
69 $(MAKE) $(MAKEOPT) -f libaprutil.mak CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
72 $(MAKE) $(MAKEOPT) -f libexpat.mak CFG="libexpat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
75 $(MAKE) $(MAKEOPT) -f dftables.mak CFG="dftables - Win32 $(LONG)" RECURSE=0 $(CTARGET)
76 $(MAKE) $(MAKEOPT) -f pcre.mak CFG="pcre - Win32 $(LONG)" RECURSE=0 $(CTARGET)
77 $(MAKE) $(MAKEOPT) -f pcreposix.mak CFG="pcreposix - Win32 $(LONG)" RECURSE=0 $(CTARGET)
80 $(MAKE) $(MAKEOPT) -f gen_uri_delims.mak CFG="gen_uri_delims - Win32 $(LONG)" RECURSE=0 $(CTARGET)
81 $(MAKE) $(MAKEOPT) -f gen_test_char.mak CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
83 -del Core$(SHORT)\buildmark.obj
84 # libhttpd creates the dynamic libhttpd.dll from the static library project httpd
85 $(MAKE) $(MAKEOPT) -f httpd.mak CFG="httpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
86 $(MAKE) $(MAKEOPT) -f libhttpd.mak CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
87 $(MAKE) $(MAKEOPT) -f Apache.mak CFG="Apache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
89 $(MAKE) $(MAKEOPT) -f mod_auth_anon.mak CFG="mod_auth_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
90 $(MAKE) $(MAKEOPT) -f mod_auth_dbm.mak CFG="mod_auth_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
91 $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
94 $(MAKE) $(MAKEOPT) -f mod_file_cache.mak CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
97 $(MAKE) $(MAKEOPT) -f mod_dav.mak CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
100 $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
102 cd modules\generators
103 # $(MAKE) $(MAKEOPT) -f mod_info.mak CFG"=mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
104 $(MAKE) $(MAKEOPT) -f mod_status.mak CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
107 $(MAKE) $(MAKEOPT) -f mod_rewrite.mak CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
108 $(MAKE) $(MAKEOPT) -f mod_speling.mak CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
111 $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
112 $(MAKE) $(MAKEOPT) -f mod_expires.mak CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
113 $(MAKE) $(MAKEOPT) -f mod_headers.mak CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
114 $(MAKE) $(MAKEOPT) -f mod_usertrack.mak CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
117 # $(MAKE) $(MAKEOPT) -f mod_proxy.mak CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
120 $(MAKE) $(MAKEOPT) -f ab.mak CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
121 $(MAKE) $(MAKEOPT) -f htpasswd.mak CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
122 $(MAKE) $(MAKEOPT) -f htdigest.mak CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
123 $(MAKE) $(MAKEOPT) -f logresolve.mak CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
124 $(MAKE) $(MAKEOPT) -f rotatelogs.mak CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
129 -mkdir "$(INSTDIR)\bin"
130 -mkdir "$(INSTDIR)\cgi-bin"
131 -mkdir "$(INSTDIR)\conf"
132 -mkdir "$(INSTDIR)\htdocs"
133 -mkdir "$(INSTDIR)\htdocs\manual"
134 -mkdir "$(INSTDIR)\icons"
135 -mkdir "$(INSTDIR)\include"
136 -mkdir "$(INSTDIR)\include\xml"
137 -mkdir "$(INSTDIR)\include\pcre"
138 -mkdir "$(INSTDIR)\lib"
139 -mkdir "$(INSTDIR)\libexec"
140 -mkdir "$(INSTDIR)\logs"
141 -mkdir "$(INSTDIR)\modules"
142 # -mkdir "$(INSTDIR)\proxy"
143 copy $(LONG)\Apache.exe "$(INSTDIR)"
144 copy $(LONG)\libhttpd.dll "$(INSTDIR)"
145 copy srclib\apr\$(LONG)\libapr.dll "$(INSTDIR)"
146 copy srclib\apr-util\$(LONG)\libaprutil.dll "$(INSTDIR)"
147 copy srclib\expat-lite\$(LONG)\libexpat.dll "$(INSTDIR)"
148 copy modules\aaa\$(LONG)\mod_auth_anon.so "$(INSTDIR)\modules"
149 copy modules\aaa\$(LONG)\mod_auth_dbm.so "$(INSTDIR)\modules"
150 copy modules\aaa\$(LONG)\mod_auth_digest.so "$(INSTDIR)\modules"
151 copy modules\cache\$(LONG)\mod_file_cache.so "$(INSTDIR)\modules"
152 copy modules\dav\fs\$(LONG)\mod_dav_fs.so "$(INSTDIR)\modules"
153 copy modules\dav\main\$(LONG)\mod_dav.so "$(INSTDIR)\modules"
154 # copy modules\generators\$(LONG)\mod_info.so "$(INSTDIR)\modules"
155 copy modules\generators\$(LONG)\mod_status.so "$(INSTDIR)\modules"
156 copy modules\mappers\$(LONG)\mod_rewrite.so "$(INSTDIR)\modules"
157 copy modules\mappers\$(LONG)\mod_speling.so "$(INSTDIR)\modules"
158 copy modules\metadata\$(LONG)\mod_cern_meta.so "$(INSTDIR)\modules"
159 copy modules\metadata\$(LONG)\mod_expires.so "$(INSTDIR)\modules"
160 copy modules\metadata\$(LONG)\mod_headers.so "$(INSTDIR)\modules"
161 copy modules\metadata\$(LONG)\mod_usertrack.so "$(INSTDIR)\modules"
162 # copy modules\proxy\$(LONG)\mod_proxy.so "$(INSTDIR)\modules"
163 copy support\$(LONG)\ab.exe "$(INSTDIR)\bin"
164 copy support\$(LONG)\htpasswd.exe "$(INSTDIR)\bin"
165 copy support\$(LONG)\htdigest.exe "$(INSTDIR)\bin"
166 copy support\$(LONG)\logresolve.exe "$(INSTDIR)\bin"
167 copy support\$(LONG)\rotatelogs.exe "$(INSTDIR)\bin"
168 copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl"
169 xcopy docs\docroot "$(INSTDIR)\htdocs" /d < <<
172 xcopy docs\manual "$(INSTDIR)\htdocs\manual" /s /d < <<
175 xcopy include\*.h "$(INSTDIR)\include" /d < <<
178 xcopy srclib\apr\include\*.h "$(INSTDIR)\include" /d < <<
181 xcopy srclib\apr-util\include\*.h "$(INSTDIR)\include" /d < <<
184 xcopy srclib\expat-lite\*.h "$(INSTDIR)\include\xml" /d < <<
187 xcopy srclib\pcre\*.h "$(INSTDIR)\include\pcre" /d < <<
190 xcopy docs\icons "$(INSTDIR)\icons" /s /d < <<
193 copy srclib\apr\Lib$(SHORT)\apr.lib "$(INSTDIR)\lib"
194 copy srclib\apr-util\Lib$(SHORT)\aprutil.lib "$(INSTDIR)\lib"
195 copy srclib\pcre\Lib$(SHORT)\pcre.lib "$(INSTDIR)\lib"
196 copy srclib\pcre\Lib$(SHORT)\pcreposix.lib "$(INSTDIR)\lib"
197 copy srclib\apr\$(LONG)\libapr.lib "$(INSTDIR)\libexec"
198 copy srclib\apr\$(LONG)\libapr.exp "$(INSTDIR)\libexec"
199 copy srclib\apr-util\$(LONG)\libaprutil.lib "$(INSTDIR)\libexec"
200 copy srclib\apr-util\$(LONG)\libaprutil.exp "$(INSTDIR)\libexec"
201 copy srclib\expat-lite\$(LONG)\libexpat.lib "$(INSTDIR)\libexec"
202 copy srclib\expat-lite\$(LONG)\libexpat.exp "$(INSTDIR)\libexec"
203 copy $(LONG)\libhttpd.exp "$(INSTDIR)\libexec"
204 copy $(LONG)\libhttpd.lib "$(INSTDIR)\libexec"
205 copy modules\dav\main\$(LONG)\mod_dav.exp "$(INSTDIR)\libexec"
206 copy modules\dav\main\$(LONG)\mod_dav.lib "$(INSTDIR)\libexec"
207 copy docs\conf\magic "$(INSTDIR)\conf\magic.default"
208 if not exist "$(INSTDIR)\conf\magic" \
209 copy "$(INSTDIR)\conf\magic.default" "$(INSTDIR)\conf\magic"
210 copy docs\conf\mime.types "$(INSTDIR)\conf\mime.types.default"
211 if not exist "$(INSTDIR)\conf\mime.types" \
212 copy "$(INSTDIR)\conf\mime.types.default" "$(INSTDIR)\conf\mime.types"
213 awk -f << docs\conf\httpd-win.conf "$(INSTDIR)\conf\httpd.default.conf" "$(INSTDIR)"
217 serverroot = ARGV[3];
218 gsub( /\\/, "/", serverroot );
219 while ( ( getline < srcfl ) > 0 ) {
220 gsub( /@@ServerRoot@@/, serverroot );
225 if not exist "$(INSTDIR)\conf\httpd.conf" \
226 copy "$(INSTDIR)\conf\httpd.default.conf" "$(INSTDIR)\conf\httpd.conf"
227 awk -f << support\dbmmanage >"$(INSTDIR)\bin\dbmmanage.pl"
228 { if ( $$0 !~ /^#.*-lsdbm/) {
229 gsub( /AnyDBM_File::ISA = qw\(.*\)/, "AnyDBM_File::ISA = qw(SDBM_File)" );