# 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.nt 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 

!IF "$(MAKE)" == "NMAKE"
# Microsoft NMake options
MAKEOPT=-nologo
!ELSEIF "$(MAKE)" == "make"
# Borland make options 
# Borland build of Apache is highly experimental and unsupported.
MAKEOPT=-s -N
!ELSE
!MESSAGE Warning: unrecognized build command "$(MAKE)"
!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:	_cleanr _cleand
	$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _installdll

installdll:
	$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _installdll


_build:
#	echo LONG $(LONG) SHORT $(SHORT) x
	cd os\win32
	 $(MAKE) $(MAKEOPT) -f ApacheOS.mak CFG="ApacheOS - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	cd ..\..
	cd regex
	 $(MAKE) $(MAKEOPT) -f regex.mak CFG="regex - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	cd ..
	cd ap
	 $(MAKE) $(MAKEOPT) -f ap.mak CFG="ap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	cd ..
	cd support
	 $(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 lib/expat-lite
	 $(MAKE) $(MAKEOPT) -f xmltok.mak CFG="xmltok - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f xmlparse.mak CFG="xmlparse - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	cd ../..
	cd lib/sdbm
	 $(MAKE) $(MAKEOPT) -f sdbm.mak CFG="sdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	cd ../..
	cd main
	 $(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
	 $(MAKE) $(MAKEOPT) -f ApacheCore.mak CFG="ApacheCore - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f Apache.mak CFG="Apache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	cd os\win32
	 set CFG=ApacheModuleStatus - Win32 $(LONG)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleStatus.mak CFG="ApacheModuleStatus - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleInfo.mak CFG="ApacheModuleInfo - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleAuthAnon.mak CFG="ApacheModuleAuthAnon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleDigest.mak CFG="ApacheModuleDigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleCERNMeta.mak CFG="ApacheModuleCERNMeta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleExpires.mak CFG="ApacheModuleExpires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleHeaders.mak CFG="ApacheModuleHeaders - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleSpeling.mak CFG="ApacheModuleSpeling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleUserTrack.mak CFG="ApacheModuleUserTrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleRewrite.mak CFG="ApacheModuleRewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleAuthDigest.mak CFG="ApacheModuleAuthDigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	 $(MAKE) $(MAKEOPT) -f ApacheModuleAuthDBM.mak CFG="ApacheModuleAuthDBM - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	cd ..\..
	cd modules\proxy
	 $(MAKE) $(MAKEOPT) -f ApacheModuleProxy.mak CFG="ApacheModuleProxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	cd ..\..

_install:
	-mkdir $(INSTDIR)
	-mkdir $(INSTDIR)\modules
	-mkdir $(INSTDIR)\logs
	-mkdir $(INSTDIR)\conf
	-mkdir $(INSTDIR)\bin
	copy Apache$(SHORT)\Apache.exe $(INSTDIR)
	copy Core$(SHORT)\ApacheCore.dll $(INSTDIR)
	copy lib\expat-lite\$(LONG)\xmltok.dll $(INSTDIR)
	copy lib\expat-lite\$(LONG)\xmlparse.dll $(INSTDIR)
	copy os\win32\ApacheModuleStatus$(SHORT)\ApacheModuleStatus.dll $(INSTDIR)\modules
	copy os\win32\ApacheModuleInfo$(SHORT)\ApacheModuleInfo.dll $(INSTDIR)\modules
	copy os\win32\ApacheModuleAuthAnon$(SHORT)\ApacheModuleAuthAnon.dll $(INSTDIR)\modules
	copy os\win32\ApacheModuleDigest$(SHORT)\ApacheModuleDigest.dll $(INSTDIR)\modules
	copy os\win32\ApacheModuleCERNMeta$(SHORT)\ApacheModuleCERNMeta.dll $(INSTDIR)\modules
	copy os\win32\ApacheModuleExpires$(SHORT)\ApacheModuleExpires.dll $(INSTDIR)\modules
	copy os\win32\ApacheModuleHeaders$(SHORT)\ApacheModuleHeaders.dll $(INSTDIR)\modules
	copy os\win32\ApacheModuleRewrite$(SHORT)\ApacheModuleRewrite.dll $(INSTDIR)\modules
	copy os\win32\ApacheModuleSpeling$(SHORT)\ApacheModuleSpeling.dll $(INSTDIR)\modules
	copy os\win32\ApacheModuleUserTrack$(SHORT)\ApacheModuleUserTrack.dll $(INSTDIR)\modules
	copy os\win32\ApacheModuleAuthDigest$(SHORT)\ApacheModuleAuthDigest.dll $(INSTDIR)\modules
	copy os\win32\ApacheModuleAuthDBM$(SHORT)\ApacheModuleAuthDBM.dll $(INSTDIR)\modules
	copy modules\proxy\$(LONG)\ApacheModuleProxy.dll $(INSTDIR)\modules
	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\dbmmanage $(INSTDIR)\bin\dbmmanage.pl

_installdll:
 	cd os\win32\installer\installdll
	 $(MAKE) $(MAKEOPT) -f install.mak CFG="install - Win32 $(LONG)" RECURSE=0 $(CTARGET)
	cd ..\..\..
