# Makefile for Windows NT and Windows 95/98/2000 # Targets are: # build - build flood # install - install a flood build # clean - remove (most) generated files # # The following install defaults may be customized; # # Option Default # SRCLIB $(MAKEDIR)\..\..\httpd-2.0\srclib # APRPATH $(SRCLIB)\apr # APRUTILPATH $(APRPATH)\..\apr-util # REGEXPATH $(SRCLIB)\pcre # OPENSSLPATH $(SRCLIB)\openssl # # For example; # # nmake /f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr # # 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: build !IF "$(SRCLIB)" == "" SRCLIB=$(MAKEDIR)\..\..\httpd-2.0\srclib !MESSAGE Using default SRCLIB path $(SRCLIB) !ENDIF !IF "$(APRPATH)" == "" APRPATH=$(SRCLIB)\apr !MESSAGE Using default APRPATH $(APRPATH) !ENDIF !IF "$(APRUTILPATH)" == "" APRUTILPATH=$(APRPATH)\..\apr-util !MESSAGE Using default APRUTILPATH path $(APRUTILPATH) !ENDIF !IF "$(REGEXPATH)" == "" REGEXPATH=$(SRCLIB)\pcre !MESSAGE Using default REGEXPATH $(REGEXPATH) !ENDIF !IF "$(OPENSSLPATH)" == "" OPENSSLPATH=$(SRCLIB)\openssl !MESSAGE Using default OPENSSLPATH $(OPENSSLPATH) !ENDIF !IF !EXIST("$(APRPATH)") !MESSAGE Please check out or download and unpack the Apache Portability Runtime !MESSAGE sources (apr and apr-util) into your $(INSTDIR)\srclib directory. !MESSAGE flood cannot build without these libraries! !MESSAGE !ERROR Need $(APRPATH) !ENDIF !IF !EXIST("$(APRUTILPATH)") !MESSAGE Please check out or download and unpack the Apache Portability Runtime !MESSAGE sources (apr and apr-util) into your $(INSTDIR)\srclib directory. !MESSAGE flood cannot build without these libraries! !MESSAGE !ERROR Need $(APRUTILPATH) !ENDIF !IF !EXIST("$(REGEXPATH)") !MESSAGE Please check out or download and unpack the pcre regex directory. !MESSAGE One solution is the Apache 2.0 srclib/pcre distribution. !MESSAGE flood cannot build without these libraries! !MESSAGE !ERROR Need $(REGEXPATH) !ENDIF !IF !EXIST("$(OPENSSLPATH)") !IF EXIST("ssl.discovered") [del ssl.discovered] [del config.h] !ENDIF HAVE_SSL=0 !ELSE !IF EXIST("ssl.discovered") [echo $(OPENSSLPATH) > ssl.discovered] [del config.h] !ENDIF !IFDEF DEBUG SSLBIN=out32dll.dbg !ELSE SSLBIN=out32dll !ENDIF HAVE_SSL=1 !ENDIF !IFDEF DEBUG SHORT=D LONG=Debug !ELSE SHORT=R LONG=Release !ENDIF floodenv.bat: Makefile.win echo @echo off>floodenv.bat echo set SRCLIB=$(SRCLIB)>>floodenv.bat echo set APRPATH=$(APRPATH)>>floodenv.bat echo set APRUTILPATH=$(APRUTILPATH)>>floodenv.bat echo set OPENSSLPATH=$(OPENSSLPATH)>>floodenv.bat echo set REGEXPATH=$(REGEXPATH)>>floodenv.bat echo set SSLBIN=$(SSLBIN)>>floodenv.bat regex.h: $(REGEXPATH)\pcreposix.h copy "$(REGEXPATH)\pcreposix.h" regex.h < << Y << # Yup, we are our own dependency, if this inline script changes config.h: Makefile.win floodenv.bat config.h.in regex.h -awk -f < config.h { sub( /@prngrand@/, "1" ); sub( /@prngrand48@/, "0" ); sub( /@prngrandom@/, "0" ); sub( /@hasstrtoll@/, "0" ); sub( /@hasstrtoq@/, "0" ); sub( /@flood_has_openssl@/, "$(HAVE_SSL)" ); sub( /@flood_has_devrand@/, "0" ); sub( /@CAPATH@/, "certs" ); print $$0; } << configure: config.h !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 !IF EXIST("flood.mak") clean: -floodenv.bat $(MAKE) $(MAKEOPT) -f flood.mak CFG="flood - Win32 $(LONG)" RECURSE=0 CLEAN del config.h floodenv.bat regex.h build: config.h floodenv.bat $(MAKE) $(MAKEOPT) -f flood.mak CFG="flood - Win32 $(LONG)" RECURSE=0 !ELSEIF EXIST("flood.sln") clean: -floodenv.bat devenv flood.sln /useenv /clean $(LONG) /project flood del config.h floodenv.bat regex.h build: config.h floodenv.bat devenv flood.sln /useenv /build $(LONG) /project flood !ELSE clean: -floodenv.bat msdev flood.dsw /USEENV /MAKE \ "flood - Win32 $(LONG)" /CLEAN del config.h floodenv.bat regex.h build: config.h floodenv.bat msdev flood.dsw /USEENV /MAKE \ "flood - Win32 $(LONG)" !ENDIF install: echo Y >.y echo A >.a -mkdir "$(INSTDIR)" -mkdir "$(INSTDIR)\bin" -mkdir "$(INSTDIR)\certs" copy CHANGES "$(INSTDIR)\CHANGES.txt" <.y copy CONFIG "$(INSTDIR)\CONFIG.txt" <.y copy DESIGN "$(INSTDIR)\DESIGN.txt" <.y copy LICENSE "$(INSTDIR)\LICENSE.txt" <.y copy $(LONG)\flood.exe "$(INSTDIR)\bin" <.y !IF EXIST("$(OPENSSLPATH)") copy $(OPENSSLPATH)\$(SSLBIN)\libeay32.dll "$(INSTDIR)\bin" <.y copy $(OPENSSLPATH)\$(SSLBIN)\ssleay32.dll "$(INSTDIR)\bin" <.y xcopy $(OPENSSLPATH)\certs "$(INSTDIR)\certs" < .a type << >> "$(INSTDIR)\README.txt" This binary distribution includes cryptographic software written by Eric Young (eay@cryptsoft.com), software written by Tim Hudson (tjh@cryptsoft.com), and software developed by the OpenSSL Project for use in the OpenSSL Toolkit . << -awk -f <> "$(INSTDIR)\LICENSE.txt" BEGIN { print ""; print "For the libeay32.dll and ssleay32.dll components:"; print ""; while ( getline > 0 ) { print $$0; } } << copy << + $(OPENSSLPATH)\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt" <.y Apache flood Limited OpenSSL Distribution This binary distribution includes the minimal components of OpenSSL required to support flood (details are listed in OPENSSL-README.txt.) For the complete list of CHANGES to this and later versions of OpenSSL, please refer to the definative source, , or see the CHANGES file in the full binary or source distribution package from . These OpenSSL binaries were built for distribution from the U.S. without support for the patented encryption methods IDEA, MDC-2 or RC5. -------------------------------------------------------------------------------- << copy << + $(OPENSSLPATH)\README "$(INSTDIR)\OPENSSL-README.txt" <.y Apache flood Limited OpenSSL Distribution This binary installation of OpenSSL is a limited distribution of the documents OPENSSL-LICENSE.txt, OPENSSL-NEWS.txt and OPENSSL-README.txt, and the binaries libeay32.dll ssleay32.dll These are the minimal libraries and tools required to use flood with HTTPS support for SSL v2/v3 and TLS v1. No library link files, headers or sources are distributed with this binary distribution. Please refer to the site for complete source or binary distributions. These OpenSSL binaries were built for distribution from the U.S. without support for the patented encryption methods IDEA, MDC-2 or RC5. The Apache Projects only support the binary distribution of these files and development of the flood program. We cannot provide support assistance for using or configuring the OpenSSL package or these modules. Please refer all installation and configuration questions to the appropriate forum, such as the user supported lists, the Apache HTTP Server user's list or the OpenSSL support page. -------------------------------------------------------------------------------- << !ENDIF del .a .y