diff --git a/iis/Makefile.win b/iis/Makefile.win new file mode 100644 index 00000000..ae6acdbb --- /dev/null +++ b/iis/Makefile.win @@ -0,0 +1,80 @@ +########################################################################### +# +# Usage: NMAKE -f Makefile.win APACHE={httpd installion dir} PCRE={pcre dir} LIBXML2={LibXML2 dir} [ LUA={Lua dir} ] +# +!IF "$(APACHE)" == "" || "$(PCRE)" == "" || "$(LIBXML2)" == "" +!ERROR NMAKE arguments: APACHE=dir PCRE=dir LIBXML2=dir are required to build mod_security2 for Windows +!ENDIF + +# Linking libraries +LIBS = $(APACHE)\lib\libapr-1.lib \ + $(APACHE)\lib\libaprutil-1.lib \ + $(PCRE)\pcre.lib \ + $(LIBXML2)\win32\bin.msvc\libxml2.lib \ + "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" \ + "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" "ws2_32.lib" + +########################################################################### +########################################################################### + +CC = CL +LINK = link.exe + +MT = mt + +DEFS = /nologo /O2 /LD /W3 /wd4244 /wd4018 -DWIN32 -DWINNT -Dinline=APR_INLINE -DAP_DECLARE_STATIC -D_MBCS -D$(VERSION) + +DLL = ModSecurityIIS.dll + +INCLUDES = -I. -I.. \ + -I$(PCRE)\include -I$(PCRE) \ + -I$(LIBXML2)\include \ + -I$(APACHE)\include \ + -I..\apache2 \ + -I..\standalone + +# Lua is optional +!IF "$(LUA)" != "" +LIBS = $(LIBS) $(LUA)\lua5.1.lib +DEFS=$(DEFS) -DWITH_LUA +INCLUDES = $(INCLUDES) -I$(LUA)\include -I$(LUA) \ +!ENDIF + +CFLAGS= -MD /Zi $(INCLUDES) $(DEFS) + +LDFLAGS = /DEF:"mymodule.def" /DEBUG /OPT:REF /OPT:ICF /MANIFEST /ManifestFile:"ModSecurityIIS.dll.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /TLBID:1 /DYNAMICBASE /NXCOMPAT + +OBJS1 = mod_security2.obj apache2_config.obj apache2_io.obj apache2_util.obj \ + re.obj re_operators.obj re_actions.obj re_tfns.obj re_variables.obj \ + msc_logging.obj msc_xml.obj msc_multipart.obj modsecurity.obj \ + msc_parsers.obj msc_util.obj msc_pcre.obj persist_dbm.obj \ + msc_reqbody.obj msc_geo.obj msc_gsb.obj msc_unicode.obj acmp.obj msc_lua.obj \ + msc_release.obj msc_crypt.obj msc_tree.obj +OBJS2 = api.obj buckets.obj config.obj filters.obj hooks.obj regex.obj server.obj +OBJS3 = main.obj moduleconfig.obj mymodule.obj + +all: $(DLL) + +dll: $(DLL) + +..\apache2\mod_security2_config.h: ..\apache2\mod_security2_config.hw + @type ..\apache2\mod_security2_config.hw > ..\apache2\modsecurity_config.h + +$(OBJS1): ..\apache2\$*.c + $(CC) $(CFLAGS) -c ..\apache2\$*.c -Fo$@ + +$(OBJS2): ..\standalone\$*.c + $(CC) $(CFLAGS) -c ..\standalone\$*.c -Fo$@ + +.cpp.obj: + $(CC) $(CFLAGS) -c $< -Fo$@ + +$(DLL): ..\apache2\mod_security2_config.h $(OBJS1) $(OBJS2) $(OBJS3) + $(LINK) $(LDFLAGS) $(OBJS1) $(OBJS2) $(OBJS3) $(LIBS) + IF EXIST $(DLL).manifest $(MT) -manifest $(DLL).manifest -outputresource:$(DLL);#1 + +clean: + del /f *.obj + del /f *.dll + del /f *.exp + del /f *.lib diff --git a/iis/ModSecurity.xml b/iis/ModSecurity.xml new file mode 100644 index 00000000..cc9c8a78 --- /dev/null +++ b/iis/ModSecurity.xml @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/iis/ModSecurityIIS.sln b/iis/ModSecurityIIS.sln new file mode 100644 index 00000000..0a45f76b --- /dev/null +++ b/iis/ModSecurityIIS.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModSecurityIIS", "ModSecurityIIS.vcxproj", "{D1F7201F-064B-48AB-868C-FED22464841C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Mixed Platforms = Release|Mixed Platforms + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D1F7201F-064B-48AB-868C-FED22464841C}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 + {D1F7201F-064B-48AB-868C-FED22464841C}.Debug|Mixed Platforms.Build.0 = Debug|x64 + {D1F7201F-064B-48AB-868C-FED22464841C}.Debug|Win32.ActiveCfg = Debug|Win32 + {D1F7201F-064B-48AB-868C-FED22464841C}.Debug|Win32.Build.0 = Debug|Win32 + {D1F7201F-064B-48AB-868C-FED22464841C}.Debug|x64.ActiveCfg = Debug|x64 + {D1F7201F-064B-48AB-868C-FED22464841C}.Debug|x64.Build.0 = Debug|x64 + {D1F7201F-064B-48AB-868C-FED22464841C}.Debug|x86.ActiveCfg = Debug|Win32 + {D1F7201F-064B-48AB-868C-FED22464841C}.Release|Mixed Platforms.ActiveCfg = Release|x64 + {D1F7201F-064B-48AB-868C-FED22464841C}.Release|Mixed Platforms.Build.0 = Release|x64 + {D1F7201F-064B-48AB-868C-FED22464841C}.Release|Win32.ActiveCfg = Release|Win32 + {D1F7201F-064B-48AB-868C-FED22464841C}.Release|Win32.Build.0 = Release|Win32 + {D1F7201F-064B-48AB-868C-FED22464841C}.Release|x64.ActiveCfg = Release|x64 + {D1F7201F-064B-48AB-868C-FED22464841C}.Release|x64.Build.0 = Release|x64 + {D1F7201F-064B-48AB-868C-FED22464841C}.Release|x86.ActiveCfg = Release|Win32 + {D1F7201F-064B-48AB-868C-FED22464841C}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/iis/ModSecurityIIS.vcxproj b/iis/ModSecurityIIS.vcxproj new file mode 100644 index 00000000..eb73dff0 --- /dev/null +++ b/iis/ModSecurityIIS.vcxproj @@ -0,0 +1,233 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {D1F7201F-064B-48AB-868C-FED22464841C} + ModSecurityIIS + ModSecurityIIS + + + + Application + + + Application + + + DynamicLibrary + + + DynamicLibrary + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + AllRules.ruleset + AllRules.ruleset + + + + + AllRules.ruleset + AllRules.ruleset + + + + + .dll + .dll + .dll + + + + Disabled + C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2;..\standalone + _MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC;VERSION_IIS + NotUsing + precomp.h + $(IntDir)$(TargetName).pch + ProgramDatabase + + + mymodule.def + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);C:\apache22\lib\libapr-1.lib;C:\apache22\lib\libaprutil-1.lib;C:\work\pcre-8.30\pcre.lib;C:\work\libxml2-2.7.7\win32\bin.msvc\libxml2.lib + + + copy /y $(TargetPath) c:\drop\$(PlatformShortName) +copy /y $(TargetDir)$(TargetName).pdb c:\drop\$(PlatformShortName) + + + + + + Disabled + C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2;..\standalone + _MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC + NotUsing + precomp.h + $(IntDir)$(TargetName).pch + ProgramDatabase + + + mymodule.def + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);libapr-1.lib;libaprutil-1.lib;pcre.lib;libxml2.lib + c:\drop\amd64 + + + copy /y $(TargetPath) c:\drop\$(PlatformShortName) +copy /y $(TargetDir)$(TargetName).pdb c:\drop\$(PlatformShortName) + + + + + + _MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC;VERSION_IIS + NotUsing + C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2;..\standalone + + + mymodule.def + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);C:\apache22\lib\libapr-1.lib;C:\apache22\lib\libaprutil-1.lib;C:\work\pcre-8.30\pcre.lib;C:\work\libxml2-2.7.7\win32\bin.msvc\libxml2.lib + + + copy /y $(TargetPath) c:\drop\$(PlatformShortName) +copy /y $(TargetDir)$(TargetName).pdb c:\drop\$(PlatformShortName) + + + + + + _MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC + NotUsing + C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2;..\standalone + + + mymodule.def + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);libapr-1.lib;libaprutil-1.lib;pcre.lib;libxml2.lib + c:\drop\amd64 + true + + + copy /y $(TargetPath) c:\drop\$(PlatformShortName) +copy /y $(TargetDir)$(TargetName).pdb c:\drop\$(PlatformShortName) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Designer + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/iis/ModSecurityIIS.vcxproj.filters b/iis/ModSecurityIIS.vcxproj.filters new file mode 100644 index 00000000..b191e9f3 --- /dev/null +++ b/iis/ModSecurityIIS.vcxproj.filters @@ -0,0 +1,191 @@ + + + + + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + Standalone + + + Standalone + + + Standalone + + + Standalone + + + Standalone + + + + Standalone + + + Standalone + + + ModSecurity + + + ModSecurity + + + + + + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + ModSecurity + + + Standalone + + + Standalone + + + ModSecurity + + + ModSecurity + + + + + + + + + + {ba9b4453-b351-4739-9f9d-3d56d6b27bbc} + + + {ba6117ea-f101-4d23-85f2-d1af0235e22a} + + + \ No newline at end of file diff --git a/iis/ModSecurityIIS/ModSecurityIIS.sln b/iis/ModSecurityIIS/ModSecurityIIS.sln new file mode 100644 index 00000000..cb4e7bed --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS.sln @@ -0,0 +1,39 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "ModSecurityIIS", "ModSecurityIIS\ModSecurityIIS.vdproj", "{3352AEF1-9F2A-47CD-9F63-658553063040}" + ProjectSection(ProjectDependencies) = postProject + {023E10BD-4FF6-4401-9A40-AED9717073F2} = {023E10BD-4FF6-4401-9A40-AED9717073F2} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "configure", "ModSecurityIIS\installer project\configure.csproj", "{023E10BD-4FF6-4401-9A40-AED9717073F2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3352AEF1-9F2A-47CD-9F63-658553063040}.Debug|x64.ActiveCfg = Debug + {3352AEF1-9F2A-47CD-9F63-658553063040}.Debug|x64.Build.0 = Debug + {3352AEF1-9F2A-47CD-9F63-658553063040}.Debug|x86.ActiveCfg = Debug + {3352AEF1-9F2A-47CD-9F63-658553063040}.Debug|x86.Build.0 = Debug + {3352AEF1-9F2A-47CD-9F63-658553063040}.Release|x64.ActiveCfg = Release + {3352AEF1-9F2A-47CD-9F63-658553063040}.Release|x64.Build.0 = Release + {3352AEF1-9F2A-47CD-9F63-658553063040}.Release|x86.ActiveCfg = Release + {3352AEF1-9F2A-47CD-9F63-658553063040}.Release|x86.Build.0 = Release + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Debug|x64.ActiveCfg = Debug|x64 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Debug|x64.Build.0 = Debug|x64 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Debug|x86.ActiveCfg = Debug|x86 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Debug|x86.Build.0 = Debug|x86 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Release|x64.ActiveCfg = Release|x64 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Release|x64.Build.0 = Release|x64 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Release|x86.ActiveCfg = Release|x86 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/iis/ModSecurityIIS/ModSecurityIIS/EULA.rtf b/iis/ModSecurityIIS/ModSecurityIIS/EULA.rtf new file mode 100644 index 00000000..8353f39f --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/EULA.rtf @@ -0,0 +1,245 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f409\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f410\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f412\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f413\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f416\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f417\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;} +{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;} +{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{ +\s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext15 \ssemihidden \sunhideused \styrsid3168183 Normal (Web);}{\*\cs16 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf2 \sbasedon10 \ssemihidden \sunhideused \styrsid3168183 Hyperlink;}{\*\cs17 \additive \rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b +\sbasedon10 \sqformat \spriority22 \styrsid3168183 Strong;}}{\*\listtable{\list\listtemplateid235441858{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;} +\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li2160 +\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li2880\jclisttab\tx2880\lin2880 } +{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc0 +\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0 +\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative +\levelspace0\levelindent0{\leveltext\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid625282538}}{\*\listoverridetable{\listoverride\listid625282538\listoverridecount0\ls1}}{\*\pgptbl +{\pgp\ipgp2\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp4\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp3\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid1197496\rsid3168183\rsid6967166\rsid9512544\rsid12742482\rsid16593896}{\mmathPr\mmathFont34\mbrkBin0 +\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Suha Can}{\operator Greg}{\creatim\yr2012\mo6\dy4\hr11\min43}{\revtim\yr2012\mo7\dy9\min41}{\version3}{\edmins2}{\nofpages4}{\nofwords1368} +{\nofchars7798}{\*\company Microsoft Corporation}{\nofcharsws9148}{\vern49273}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot9512544\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang +{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}} +\pard\plain \ltrpar\s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3168183 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 Apache License\line \line Version 2.0, January 2004\line \line }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 +HYPERLINK "http://www.apache.org/licenses/" }}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs16\ul\cf2\lang9\langfe1033\langnp9\insrsid3168183 http://www.apache.org/licenses/}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 +\af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 +\par TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +\par }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \cs17\b\lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkstart definitions}1. Definitions}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkend definitions}. +\par "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. +\par "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. +\par " +Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause +the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. +\par "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. +\par "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. +\par "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. +\par "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). +\par "Derivative Works" shall mean any work, whether in Source or Object form, that is based on +(or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that rema +in separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. +\par "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitt +e +d" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed + by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." +\par "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. +\par }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \cs17\b\lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkstart copyright}2. Grant of Copyright License}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkend copyright} +. Subject to the terms and conditions of this License, each Contributor here +by grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in +Source or Object form. +\par }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \cs17\b\lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkstart patent}3. Grant of Patent License}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkend patent} +. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) pate +nt license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by com +b +ination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated +within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. +\par }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \cs17\b\lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkstart redistribution}4. Redistribution}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkend redistribution} +. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 \hich\af0\dbch\af0\loch\f0 1.\tab}}\pard \ltrpar\s15\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar +\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin720\itap0\pararsid3168183 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 You must give any other recipients of the Work or D +erivative Works a copy of this License; and +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 \hich\af0\dbch\af0\loch\f0 2.\tab}You must cause any modified files to carry prominent notices stating that You changed the files; and +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 \hich\af0\dbch\af0\loch\f0 3.\tab}You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, tradema +rk, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 \hich\af0\dbch\af0\loch\f0 4.\tab}If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You dis +tribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distribu +t +ed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the + +NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additiona +l + attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modificat +ions, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. +\par }\pard \ltrpar\s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3168183 {\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \cs17\b\lang9\langfe1033\langnp9\insrsid3168183 +{\*\bkmkstart contributions}5. Submission of Contributions}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkend contributions}. Unless You explicitly state otherwise, any Contri +bution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the te +rms of any separate license agreement you may have executed with Licensor regarding such Contributions. +\par }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \cs17\b\lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkstart trademarks}6. Trademarks}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkend trademarks} +. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as requ +ired for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. +\par }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \cs17\b\lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkstart no-warranty}7. Disclaimer of Warranty}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkend no-warranty} +. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributo +r provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULA +R PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. +\par }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \cs17\b\lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkstart no-liability}8. Limitation of Liability}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkend no-liability} +. In no event and under no legal th +eory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indi +r +ect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfuncti +on, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. +\par }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \cs17\b\lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkstart additional}9. Accepting Warranty or Additional Liability}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang9\langfe1033\langnp9\insrsid3168183 {\*\bkmkend additional} +. While redistributing the Work or Derivative Works thereof, You may choose to + offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibilit +y +, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additiona +l liability. +\par END OF TERMS AND CONDITIONS +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid6967166 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100da7e1364a9060000a41b0000160000007468656d652f7468656d652f +7468656d65312e786d6cec594d6f1b4518be23f11f467b6f6327761a4775aad8b11b48d346b15bd4e37877bc3bcdecce6a669cd437d41e9190100571a012370e +08a8d44a5ccaaf09144191fa1778676677bd13af49d24650417b68bcb3cffbfd31efcc5ebd763f66e890084979d2f6ea976b1e2289cf039a846deff6b07f69cd +4352e124c08c27a4ed4d89f4ae6dbcffde55bcae22121304f4895cc76d2f522a5d5f5a923e2c637999a7248177632e62ace051844b81c047c037664bcbb5daea +528c69e2a104c7c0f6d6784c7d82869aa5b79133ef31784c94d40b3e1303cd9a3814061b1cd435424e659709748859db0339013f1a92fbca430c4b052fda5ead +d6efd76aded2c6d525bc9e1131b580d6a1abc1bf8c2e23080e968d4c118e0aa1f57ea37565abe06f004ccde37abd5eb7572ff81900f67db0d4ea52e6d9e8afd5 +3b39cf12c8fe9ce7ddad356b0d175fe2bf32a773abd3e9345b992e96a901d99f8d39fc5a6db5b1b9ece00dc8e29b73f84667b3db5d75f00664f1ab73f8fe95d6 +6ac3c51b50c468723087d671e9f733ee0564ccd976257c0de06b79206728c88622bbb488314fd4a25c8bf13d2efa00d04086154d909aa6648c7dc8e22e8e4782 +62ad0f5e27b8f4c62ef9726e49cb42d21734556defc3144345ccf8bd7afefdabe74fd1f18367c70f7e3a7ef8f0f8c18f969143b58d93b04cf5f2dbcffe7cfc31 +fae3e9372f1f7d518d9765fcaf3f7cf2cbcf9f5703a17c66eabcf8f2c96fcf9ebcf8ead3dfbf7b5401df147854860f694c24ba498ed03e8fc130e31557733212 +e7a31846989629369350e2046b2915fc7b2a72d037a79865d171f4e810d7837704b48f2ae0f5c93d47e14124268a5648de896207b8cb39eb7051e9851d2dabe4 +e6e12409ab858b4919b78ff16195ec2e4e9cf8f62629f4cd3c2d1dc3bb1171d4dc6338513824095148bfe307845458779752c7afbbd4175cf2b1427729ea605a +e992211d39d93423daa631c4655a6533c4dbf1cdee1dd4e1accaea2d72e822a12a30ab507e4898e3c6eb78a2705cc57288635676f80daca22a250753e197713d +a920d221611cf502226515cd2d01f69682be83a16355867d974d631729143da8e27903735e466ef1836e84e3b40a3ba04954c67e200f204531dae3aa0abecbdd +0ad1cf10079c2c0cf71d4a9c709fde0d6ed3d051699620facd4454c4f23ae14efe0ea66c8c896935d0d49d5e1dd3e4ef1a37a3d0b9ad848b6bdcd02a5f7cfdb8 +42efb7b5656fc2ee555533db271af522dcc9f6dce522a06f7f77dec293648f4041cc6f51ef9af3bbe6ecfde79bf3a27abef8963cebc2d0a0f52c62076d3376c7 +0ba7ee31656ca0a68cdc9066f096b0f7047d58d474e6c4498a53581ac14f5dc920c0c185021b1a24b8fa88aa6810e11486f6baa7998432631d4a9472098745b3 +5cc95be361f057f6a8d9d48710db392456bb3cb0cb2b7a393f6b146c8c56a139d0e682563483b30a5bb9923105db5e47585d2b75666975a39a698a8eb4c264ed +627328079717a6c162e14d186a108c42e0e55538f36bd170d8c18c04daef364679584c142e324432c201c962a4ed9e8f51dd0429cf953943b41d3619f4c1f114 +af95a4b534db379076962095c5351688cba3f72651ca33781625e076b21c59522e4e96a0a3b6d76a2e373de4e3b4ed8de19c0c3fe314a22ef51c895908974dbe +1236ed4f2d6653e5b368b672c3dc22a8c3d587f5fb9cc14e1f4885545b58463635ccab2c0558a22559fd979be0d68b32a0a21b9d4d8b953548867f4d0bf0a31b +5a321e135f95835d5ad1beb38f592be51345c4200a8ed0884dc43e86f0eb54057b022ae1bac37404fd007773dadbe695db9cb3a22bdf88199c5dc72c8d70d66e +7589e6956ce1a621153a98a7927a605ba5eec6b8f39b624afe824c29a7f1ffcc14bd9fc0edc34aa023e0c3d5b0c048574adbe342451cba501a51bf2f607030bd +03b205ee77e13524155c509bbf821ceabfb6e62c0f53d6708854fb344482c27ea42241c81eb425937da730ab677b9765c9324626a34aeacad4aa3d2287840d75 +0f5cd57bbb87224875d34db236607027f3cf7dce2a6814ea21a75c6f4e272bf65e5b03fff4e4638b198c72fbb0196872ff172a16e3c16c57b5f4863cdf7bcb86 +e817b331ab915705082b6d05adacec5f5385736eb5b663cd59bcdccc958328ce5b0c8bc54094c21d12d2ffc1fe4785cfecd70ebda10ef93ef456041f2f343348 +1bc8ea4b76f040ba41dac5110c4e76d1269366655d9b8d4eda6bf9667dc1936e21f784b3b5666789f7399d5d0c67ae38a7162fd2d999871d5fdbb585ae86c89e +2c51581ae707191318f399acfc258b8fee41a0b7e09bc18429699209be53090c33f4c0d40114bf95684837fe020000ffff0300504b0304140006000800000021 +000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484 +f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e +89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5 +001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de +0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5 +d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b79961683000000 +8a0000001c00000000000000000000000000190200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000 +2100da7e1364a9060000a41b00001600000000000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d0014000600 +0800000021000dd1909fb60000001b0100002700000000000000000000000000b30900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000ae0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9; +\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7; +\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000002079 +0935a65dcd01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/iis/ModSecurityIIS/ModSecurityIIS/ModSecurity.xml b/iis/ModSecurityIIS/ModSecurityIIS/ModSecurity.xml new file mode 100644 index 00000000..cc9c8a78 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/ModSecurity.xml @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/iis/ModSecurityIIS/ModSecurityIIS/ModSecurityIIS.vdproj b/iis/ModSecurityIIS/ModSecurityIIS/ModSecurityIIS.vdproj new file mode 100644 index 00000000..a77a2331 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/ModSecurityIIS.vdproj @@ -0,0 +1,1813 @@ +"DeployProject" +{ +"VSVersion" = "3:800" +"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:ModSecurityIIS" +"LanguageId" = "3:1033" +"CodePage" = "3:1252" +"UILanguageId" = "3:1033" +"SccProjectName" = "8:" +"SccLocalPath" = "8:" +"SccAuxPath" = "8:" +"SccProvider" = "8:" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_0593BBFCC6154162A5F7E88C4967D8E8" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_170CE3CF68BE4944BF485C45F31146A0" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_17390F12AE3C4CD7A8BFA284458C87BB" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_2422B61EFBF047FFBBE92CB70714E99C" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_2BE0B1E766C340AA82459A4828CBB4BB" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_3C92A363FD094985B629CDC36B44A3D3" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_3CE93C3FC5AC3E954253889334FBCDA8" + "OwnerKey" = "8:_6E5E037AE02FFD61B6DB08B8CD0D9911" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_51AF671FCA3544DEA3E5756B5D450275" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_5B5ADDD0F4CC408DBE22616494149521" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_6245377DC73E4285A8017758A810A975" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_6882D4568B994750A5AAD32E0C73C653" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_6969BF58501241E8A23EDD630A6ADD90" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_6E5E037AE02FFD61B6DB08B8CD0D9911" + "OwnerKey" = "8:_3C92A363FD094985B629CDC36B44A3D3" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_72B533FBDB1E48A9B44CAA948E245528" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7C2A420982404573B53BE273BC730435" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_804BB5CB74F84281874FF482E8E968A9" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_9BC99765061C4EEEB064E614C1AD82EF" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_A916EC2DF983431489489D69D523838A" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AD24111D6D7F4FE3ACF65A4A340B3C01" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B5C810AB7A8E478884463074B628D888" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_BB3C0C1507C345988554DD719126235D" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_BBF79864F88546FEB7C68EE7F5DFC52A" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_C20805AF8FC94DE9B6148EB9EF000052" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CEB23D021A2E4EEF9245EEDC143AFBA8" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DB58E622510C458A81C3B850EDFC782C" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DE7847BDBDC046F29E13230DCDD4F6E3" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_ECC9F59ECF5E4AF2B7E9A13EB821F56A" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_F00431C1D11D40A6B52E228DE6F904FF" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FF9BA3624F9349AF98F01CAE921D7D80" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_3C92A363FD094985B629CDC36B44A3D3" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_6E5E037AE02FFD61B6DB08B8CD0D9911" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\ModSecurityIIS.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.0,Profile=Client" + { + "Name" = "8:Microsoft .NET Framework 4 Client Profile (x86 and x64)" + "ProductCode" = "8:.NETFramework,Version=v4.0,Profile=Client" + } + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Visual.C++.10.0.x64" + { + "Name" = "8:Visual C++ 2010 Runtime Libraries (x64)" + "ProductCode" = "8:Microsoft.Visual.C++.10.0.x64" + } + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Visual.C++.10.0.x86" + { + "Name" = "8:Visual C++ 2010 Runtime Libraries (x86)" + "ProductCode" = "8:Microsoft.Visual.C++.10.0.x86" + } + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1" + { + "Name" = "8:Windows Installer 3.1" + "ProductCode" = "8:Microsoft.Windows.Installer.3.1" + } + } + } + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\ModSecurityIIS.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:3" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.0,Profile=Client" + { + "Name" = "8:Microsoft .NET Framework 4 Client Profile (x86 and x64)" + "ProductCode" = "8:.NETFramework,Version=v4.0,Profile=Client" + } + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Visual.C++.10.0.x64" + { + "Name" = "8:Visual C++ 2010 Runtime Libraries (x64)" + "ProductCode" = "8:Microsoft.Visual.C++.10.0.x64" + } + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Visual.C++.10.0.x86" + { + "Name" = "8:Visual C++ 2010 Runtime Libraries (x86)" + "ProductCode" = "8:Microsoft.Visual.C++.10.0.x86" + } + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1" + { + "Name" = "8:Windows Installer 3.1" + "ProductCode" = "8:Microsoft.Windows.Installer.3.1" + } + } + } + } + } + "Deployable" + { + "CustomAction" + { + "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_288AFB95ECDF41668E7C8A98BFCC59D5" + { + "Name" = "8:configure.exe" + "Condition" = "8:" + "Object" = "8:_3C92A363FD094985B629CDC36B44A3D3" + "FileType" = "3:2" + "InstallAction" = "3:4" + "Arguments" = "8:uninstall" + "EntryPoint" = "8:" + "Sequence" = "3:1" + "Identifier" = "8:_BCC26438_F2BB_4E59_A1CD_9CC1C9460947" + "InstallerClass" = "11:FALSE" + "CustomActionData" = "8:" + } + "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_A18DDEEDA7F54025A417D48572907972" + { + "Name" = "8:configure.exe" + "Condition" = "8:" + "Object" = "8:_3C92A363FD094985B629CDC36B44A3D3" + "FileType" = "3:2" + "InstallAction" = "3:1" + "Arguments" = "8:\"[TARGETDIR]\"" + "EntryPoint" = "8:" + "Sequence" = "3:1" + "Identifier" = "8:_B11B1E07_B6DC_43AD_9678_671C4D1B15A7" + "InstallerClass" = "11:FALSE" + "CustomActionData" = "8:" + } + "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_B8F3E049FAB34050978646B3CC6549F5" + { + "Name" = "8:install.vbs" + "Condition" = "8:" + "Object" = "8:_2422B61EFBF047FFBBE92CB70714E99C" + "FileType" = "3:4" + "InstallAction" = "3:1" + "Arguments" = "8:" + "EntryPoint" = "8:" + "Sequence" = "3:2" + "Identifier" = "8:_CB90C8D4_3928_4ACA_9263_454FD47BB545" + "InstallerClass" = "11:FALSE" + "CustomActionData" = "8:[TARGETDIR]" + } + "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_C9D5851C213E4B928C42AC01EEF1458A" + { + "Name" = "8:uninstall.vbs" + "Condition" = "8:" + "Object" = "8:_DB58E622510C458A81C3B850EDFC782C" + "FileType" = "3:4" + "InstallAction" = "3:4" + "Arguments" = "8:" + "EntryPoint" = "8:" + "Sequence" = "3:2" + "Identifier" = "8:_1DC83628_1D76_474B_92FD_C7C13056C010" + "InstallerClass" = "11:FALSE" + "CustomActionData" = "8:[TARGETDIR]" + } + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_147B76BCD529406A806B4AD361E520C1" + { + "Name" = "8:.NET Framework" + "Message" = "8:[VSDNETMSG]" + "FrameworkVersion" = "8:.NETFramework,Version=v4.0,Profile=Client" + "AllowLaterVersions" = "11:FALSE" + "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=131000" + } + } + } + "File" + { + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0593BBFCC6154162A5F7E88C4967D8E8" + { + "SourcePath" = "8:x86\\pcre.dll" + "TargetName" = "8:pcre.dll" + "Tag" = "8:" + "Folder" = "8:_D7AEA61DD2D746158A1F5660E4C59AB8" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_170CE3CF68BE4944BF485C45F31146A0" + { + "SourcePath" = "8:x86\\libapr-1.dll" + "TargetName" = "8:libapr-1.dll" + "Tag" = "8:" + "Folder" = "8:_D7AEA61DD2D746158A1F5660E4C59AB8" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_17390F12AE3C4CD7A8BFA284458C87BB" + { + "SourcePath" = "8:ModSecurity.xml" + "TargetName" = "8:ModSecurity.xml" + "Tag" = "8:" + "Folder" = "8:_565C3432A64049EAA7CA6E8C007B2188" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2422B61EFBF047FFBBE92CB70714E99C" + { + "SourcePath" = "8:install.vbs" + "TargetName" = "8:install.vbs" + "Tag" = "8:" + "Folder" = "8:_565C3432A64049EAA7CA6E8C007B2188" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2BE0B1E766C340AA82459A4828CBB4BB" + { + "SourcePath" = "8:D:\\README.rtf" + "TargetName" = "8:README.rtf" + "Tag" = "8:" + "Folder" = "8:_565C3432A64049EAA7CA6E8C007B2188" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3C92A363FD094985B629CDC36B44A3D3" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:configure, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86" + "ScatterAssemblies" + { + "_3C92A363FD094985B629CDC36B44A3D3" + { + "Name" = "8:configure.exe" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:installer project\\bin\\Debug\\configure.exe" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_565C3432A64049EAA7CA6E8C007B2188" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3CE93C3FC5AC3E954253889334FBCDA8" + { + "SourcePath" = "8:nativerd.dll" + "TargetName" = "8:nativerd.dll" + "Tag" = "8:" + "Folder" = "8:_565C3432A64049EAA7CA6E8C007B2188" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_51AF671FCA3544DEA3E5756B5D450275" + { + "SourcePath" = "8:x86\\ModSecurityIIS.dll" + "TargetName" = "8:ModSecurityIIS.dll" + "Tag" = "8:" + "Folder" = "8:_D7AEA61DD2D746158A1F5660E4C59AB8" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_5B5ADDD0F4CC408DBE22616494149521" + { + "SourcePath" = "8:amd64\\libxml2.dll" + "TargetName" = "8:libxml2.dll" + "Tag" = "8:" + "Folder" = "8:_4FF50879FDA54129BDEBA08F0D1FF20D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6245377DC73E4285A8017758A810A975" + { + "SourcePath" = "8:amd64\\lua5.1.dll" + "TargetName" = "8:lua5.1.dll" + "Tag" = "8:" + "Folder" = "8:_4FF50879FDA54129BDEBA08F0D1FF20D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6882D4568B994750A5AAD32E0C73C653" + { + "SourcePath" = "8:amd64\\zlib1.dll" + "TargetName" = "8:zlib1.dll" + "Tag" = "8:" + "Folder" = "8:_4FF50879FDA54129BDEBA08F0D1FF20D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6969BF58501241E8A23EDD630A6ADD90" + { + "SourcePath" = "8:x86\\mlogc.exe" + "TargetName" = "8:mlogc.exe" + "Tag" = "8:" + "Folder" = "8:_D7AEA61DD2D746158A1F5660E4C59AB8" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6E5E037AE02FFD61B6DB08B8CD0D9911" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Interop.AppHostAdminLibrary, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86" + "ScatterAssemblies" + { + "_6E5E037AE02FFD61B6DB08B8CD0D9911" + { + "Name" = "8:Interop.AppHostAdminLibrary.DLL" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Interop.AppHostAdminLibrary.DLL" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_565C3432A64049EAA7CA6E8C007B2188" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_72B533FBDB1E48A9B44CAA948E245528" + { + "SourcePath" = "8:x86\\zlib1.dll" + "TargetName" = "8:zlib1.dll" + "Tag" = "8:" + "Folder" = "8:_D7AEA61DD2D746158A1F5660E4C59AB8" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7C2A420982404573B53BE273BC730435" + { + "SourcePath" = "8:amd64\\mlogc.exe" + "TargetName" = "8:mlogc.exe" + "Tag" = "8:" + "Folder" = "8:_4FF50879FDA54129BDEBA08F0D1FF20D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_804BB5CB74F84281874FF482E8E968A9" + { + "SourcePath" = "8:x86\\libcurl.dll" + "TargetName" = "8:libcurl.dll" + "Tag" = "8:" + "Folder" = "8:_D7AEA61DD2D746158A1F5660E4C59AB8" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_95283EC7A8D94C23B95ED4C710F53A85" + { + "SourcePath" = "8:D:\\ModSecurityLogo.bmp" + "TargetName" = "8:ModSecurityLogo.bmp" + "Tag" = "8:" + "Folder" = "8:_565C3432A64049EAA7CA6E8C007B2188" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9BC99765061C4EEEB064E614C1AD82EF" + { + "SourcePath" = "8:x86\\libapriconv-1.dll" + "TargetName" = "8:libapriconv-1.dll" + "Tag" = "8:" + "Folder" = "8:_D7AEA61DD2D746158A1F5660E4C59AB8" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A916EC2DF983431489489D69D523838A" + { + "SourcePath" = "8:amd64\\libcurl.dll" + "TargetName" = "8:libcurl.dll" + "Tag" = "8:" + "Folder" = "8:_4FF50879FDA54129BDEBA08F0D1FF20D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_AD24111D6D7F4FE3ACF65A4A340B3C01" + { + "SourcePath" = "8:x86\\libxml2.dll" + "TargetName" = "8:libxml2.dll" + "Tag" = "8:" + "Folder" = "8:_D7AEA61DD2D746158A1F5660E4C59AB8" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B5C810AB7A8E478884463074B628D888" + { + "SourcePath" = "8:amd64\\libaprutil-1.dll" + "TargetName" = "8:libaprutil-1.dll" + "Tag" = "8:" + "Folder" = "8:_4FF50879FDA54129BDEBA08F0D1FF20D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_BB3C0C1507C345988554DD719126235D" + { + "SourcePath" = "8:amd64\\libapriconv-1.dll" + "TargetName" = "8:libapriconv-1.dll" + "Tag" = "8:" + "Folder" = "8:_4FF50879FDA54129BDEBA08F0D1FF20D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_BBF79864F88546FEB7C68EE7F5DFC52A" + { + "SourcePath" = "8:README.TXT" + "TargetName" = "8:README.TXT" + "Tag" = "8:" + "Folder" = "8:_565C3432A64049EAA7CA6E8C007B2188" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C20805AF8FC94DE9B6148EB9EF000052" + { + "SourcePath" = "8:x86\\libaprutil-1.dll" + "TargetName" = "8:libaprutil-1.dll" + "Tag" = "8:" + "Folder" = "8:_D7AEA61DD2D746158A1F5660E4C59AB8" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CEB23D021A2E4EEF9245EEDC143AFBA8" + { + "SourcePath" = "8:amd64\\ModSecurityIIS.dll" + "TargetName" = "8:ModSecurityIIS.dll" + "Tag" = "8:" + "Folder" = "8:_4FF50879FDA54129BDEBA08F0D1FF20D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DB58E622510C458A81C3B850EDFC782C" + { + "SourcePath" = "8:uninstall.vbs" + "TargetName" = "8:uninstall.vbs" + "Tag" = "8:" + "Folder" = "8:_565C3432A64049EAA7CA6E8C007B2188" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DE7847BDBDC046F29E13230DCDD4F6E3" + { + "SourcePath" = "8:x86\\lua5.1.dll" + "TargetName" = "8:lua5.1.dll" + "Tag" = "8:" + "Folder" = "8:_D7AEA61DD2D746158A1F5660E4C59AB8" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_ECC9F59ECF5E4AF2B7E9A13EB821F56A" + { + "SourcePath" = "8:EULA.rtf" + "TargetName" = "8:EULA.rtf" + "Tag" = "8:" + "Folder" = "8:_565C3432A64049EAA7CA6E8C007B2188" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F00431C1D11D40A6B52E228DE6F904FF" + { + "SourcePath" = "8:amd64\\pcre.dll" + "TargetName" = "8:pcre.dll" + "Tag" = "8:" + "Folder" = "8:_4FF50879FDA54129BDEBA08F0D1FF20D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FF9BA3624F9349AF98F01CAE921D7D80" + { + "SourcePath" = "8:amd64\\libapr-1.dll" + "TargetName" = "8:libapr-1.dll" + "Tag" = "8:" + "Folder" = "8:_4FF50879FDA54129BDEBA08F0D1FF20D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + } + "FileType" + { + } + "Folder" + { + "{1525181F-901A-416C-8A58-119130FE478E}:_2C5F88CA53E243FEB2EB6415E4E15F9D" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + "{3C67513D-01DD-4637-8A68-80971EB9504F}:_565C3432A64049EAA7CA6E8C007B2188" + { + "DefaultLocation" = "8:[ProgramFilesFolder]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + "{9EF0B969-E518-4E46-987F-47570745A589}:_4FF50879FDA54129BDEBA08F0D1FF20D" + { + "Name" = "8:amd64" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_3E46ACA5D6114D469C67008149BA2030" + "Folders" + { + } + } + "{9EF0B969-E518-4E46-987F-47570745A589}:_D7AEA61DD2D746158A1F5660E4C59AB8" + { + "Name" = "8:x86" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_8B184E68172E4B07BEAAB3116380C2E5" + "Folders" + { + } + } + } + } + "{1525181F-901A-416C-8A58-119130FE478E}:_BBDABB2A7D8C42A786516B2A402564C6" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "MsiBootstrapper" + { + "LangId" = "3:1033" + "RequiresElevation" = "11:FALSE" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:ModSecurity IIS" + "ProductCode" = "8:{81EE8A4A-5128-4CDB-97B2-06B147E8B4B8}" + "PackageCode" = "8:{3433BFD2-9BFD-4E4B-B50D-77D31A110C44}" + "UpgradeCode" = "8:{7B32CF94-443C-47BB-91C3-0E9D3D12DF8B}" + "AspNetVersion" = "8:4.0.30319.0" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:TRUE" + "DetectNewerInstalledVersion" = "11:TRUE" + "InstallAllUsers" = "11:TRUE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:Microsoft" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:Install ModSecurity for IIS" + "Subject" = "8:" + "ARPCONTACT" = "8:Microsoft" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:ModSecurity Module for IIS" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + "TargetPlatform" = "3:0" + "PreBuildEvent" = "8:" + "PostBuildEvent" = "8:" + "RunPostBuildEvent" = "3:0" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_08760C875F8543139CF6DE446F1F0F4D" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_681ABE93BF174EBA982CBFA693BC925F" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_985DD1FA5E55418B85FDAD78E1864975" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_348B7C9FDF8C400E88C61519EE3BB26C" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + } + "UserInterface" + { + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_03C8F8214F0D406B9B9ABB87FEDD39EB" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_09EF4C31C20240ED8FA7996D190C2E6F" + { + "Sequence" = "3:200" + "DisplayName" = "8:Installation Folder" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + "InstallAllUsersVisible" + { + "Name" = "8:InstallAllUsersVisible" + "DisplayName" = "8:#1059" + "Description" = "8:#1159" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_5FABD25B5435457CBD593E62DA6F2446" + { + "Sequence" = "3:210" + "DisplayName" = "8:License Agreement" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdLicenseDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + "EulaText" + { + "Name" = "8:EulaText" + "DisplayName" = "8:#1008" + "Description" = "8:#1108" + "Type" = "3:6" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:2" + "Value" = "8:_ECC9F59ECF5E4AF2B7E9A13EB821F56A" + "UsePlugInResources" = "11:TRUE" + } + "Sunken" + { + "Name" = "8:Sunken" + "DisplayName" = "8:#1007" + "Description" = "8:#1107" + "Type" = "3:5" + "ContextData" = "8:4;True=4;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:4" + "DefaultValue" = "3:4" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8BA5D0091E6747AFA72977D73F495172" + { + "Sequence" = "3:100" + "DisplayName" = "8:Welcome" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:2" + "Value" = "8:" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_DD04ADB466084065920D21349E63B1B4" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirm Installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_09003E2068A547849152D3D35738A00E" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4F93544D25594D488DA7E02A8A3B89E9" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progress" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_22B9B4351EA04F2098552947E2568F8D" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0772D4150F424CCEA66580B17DAC47A4" + { + "Sequence" = "3:200" + "DisplayName" = "8:Installation Folder" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0AEF617DE1764D998761CAF6CEDBE9C7" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirm Installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_5E47C2C29D55459CA3D0CE1D87849CB5" + { + "Sequence" = "3:210" + "DisplayName" = "8:License Agreement" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminLicenseDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + "EulaText" + { + "Name" = "8:EulaText" + "DisplayName" = "8:#1008" + "Description" = "8:#1108" + "Type" = "3:6" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:2" + "Value" = "8:_ECC9F59ECF5E4AF2B7E9A13EB821F56A" + "UsePlugInResources" = "11:TRUE" + } + "Sunken" + { + "Name" = "8:Sunken" + "DisplayName" = "8:#1007" + "Description" = "8:#1107" + "Type" = "3:5" + "ContextData" = "8:4;True=4;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:4" + "DefaultValue" = "3:4" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A8F89A67BEB94457BE851BF7D2B9ABB3" + { + "Sequence" = "3:100" + "DisplayName" = "8:Welcome" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:2" + "Value" = "8:Enter Copyright Warning here" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_2AAFACD0BBFF4CD59018D04F8FD4EAB1" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_486EC70432EB416CAC7249721137AF24" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CA5171C1018B44D19826935E430AC6E4" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progress" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_572FFF7B95854CC7BD606EC77C5E5B23" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_BE7223C331D7475FB0E17005927F7804" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0FE8B37FBD6348D2B550B51AE9213A02" + { + "Sequence" = "3:110" + "DisplayName" = "8:Finished" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7A153700BD224EF1A4E5E255037C70D9" + { + "Sequence" = "3:100" + "DisplayName" = "8:Read Me" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdReadmeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + "ReadmeText" + { + "Name" = "8:ReadmeText" + "DisplayName" = "8:#1010" + "Description" = "8:#1110" + "Type" = "3:6" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:2" + "Value" = "8:_2BE0B1E766C340AA82459A4828CBB4BB" + "UsePlugInResources" = "11:TRUE" + } + "Sunken" + { + "Name" = "8:Sunken" + "DisplayName" = "8:#1007" + "Description" = "8:#1107" + "Type" = "3:5" + "ContextData" = "8:4;True=4;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:4" + "DefaultValue" = "3:4" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_CA31C9E5F16A44B0B782E38B84A49FD2" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B317FC7D252F4803B2866CF882D4822A" + { + "Sequence" = "3:100" + "DisplayName" = "8:Read Me" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminReadmeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + "ReadmeText" + { + "Name" = "8:ReadmeText" + "DisplayName" = "8:#1010" + "Description" = "8:#1110" + "Type" = "3:6" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:2" + "Value" = "8:_2BE0B1E766C340AA82459A4828CBB4BB" + "UsePlugInResources" = "11:TRUE" + } + "Sunken" + { + "Name" = "8:Sunken" + "DisplayName" = "8:#1007" + "Description" = "8:#1107" + "Type" = "3:5" + "ContextData" = "8:4;True=4;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:4" + "DefaultValue" = "3:4" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F40B2723DC3E4BADBD94FFAC5683C171" + { + "Sequence" = "3:200" + "DisplayName" = "8:Finished" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_95283EC7A8D94C23B95ED4C710F53A85" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + "MergeModule" + { + } + "ProjectOutput" + { + } + } +} diff --git a/iis/ModSecurityIIS/ModSecurityIIS/ModSecurityLogo.ico b/iis/ModSecurityIIS/ModSecurityIIS/ModSecurityLogo.ico new file mode 100644 index 00000000..310ad78f Binary files /dev/null and b/iis/ModSecurityIIS/ModSecurityIIS/ModSecurityLogo.ico differ diff --git a/iis/ModSecurityIIS/ModSecurityIIS/README.TXT b/iis/ModSecurityIIS/ModSecurityIIS/README.TXT new file mode 100644 index 00000000..ca71e7e5 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/README.TXT @@ -0,0 +1,21 @@ +Please note that installing ModSecurity for IIS requires IIS to be installed and enabled. + + +After installing ModSecurity for IIS, the module will be running in all websites by default. To remove from a website add to web.config: + + + + + +To configure module in a website add to web.config: + + + + + + + + +where configFile is standard ModSecurity config file. + +Events from the module will show up in "Application" Windows log. diff --git a/iis/ModSecurityIIS/ModSecurityIIS/install.vbs b/iis/ModSecurityIIS/ModSecurityIIS/install.vbs new file mode 100644 index 00000000..0d0b9694 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/install.vbs @@ -0,0 +1,3 @@ +Set WshShell = CreateObject("WScript.Shell") + +WshShell.Exec("%windir%\system32\inetsrv\appcmd.exe install module /name:ModSecurityIIS /image:%windir%\system32\inetsrv\modsecurityiis.dll") diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/ModSecurityConfigurator.cs b/iis/ModSecurityIIS/ModSecurityIIS/installer project/ModSecurityConfigurator.cs new file mode 100644 index 00000000..f40b9b33 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/installer project/ModSecurityConfigurator.cs @@ -0,0 +1,314 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Xml; +using AppHostAdminLibrary; +using System.Runtime.InteropServices; + +namespace configure +{ + public class ModSecurityConfigurator + { + public void Install(string installDir) + { + if (installDir.EndsWith("\"")) + { + installDir = installDir.Substring(0, installDir.Length - 1); + } + + Console.WriteLine("Copying 32-bit binaries..."); + string dstpath = Environment.ExpandEnvironmentVariables("%windir%\\SysWow64"); + + if (!Directory.Exists(dstpath)) + dstpath = Environment.ExpandEnvironmentVariables("%windir%\\system32"); + + CopyBinaries(Path.Combine(installDir, "x86"), Path.Combine(dstpath, "inetsrv")); + + dstpath = Environment.ExpandEnvironmentVariables("%windir%\\SysNative"); + + if (Directory.Exists(dstpath)) + { + Console.WriteLine("Copying 64-bit binaries..."); + + CopyBinaries(Path.Combine(installDir, "amd64"), Path.Combine(dstpath, "inetsrv")); + } + + string text = Path.Combine(installDir, "ModSecurity.xml"); + string text2 = null; + IntPtr zero = IntPtr.Zero; + try + { + bool flag = false; + if (Wow64Redirection.IsWow64Process(new IntPtr(-1), out flag) && flag) + { + Wow64Redirection.Wow64DisableWow64FsRedirection(out zero); + } + if (!File.Exists(text)) + { + throw new FileNotFoundException("The specified schema file does not exist", text); + } + Console.WriteLine("Installing schema file: " + text); + text2 = Path.Combine(Environment.ExpandEnvironmentVariables("%windir%\\system32\\inetsrv\\config\\schema\\"), Path.GetFileName(text)); + if (!text2.Equals(text, StringComparison.InvariantCultureIgnoreCase)) + { + File.Copy(text, text2, true); + Console.WriteLine("Installed schema file: " + text2); + } + else + { + Console.WriteLine("Schema file is already in the destination location."); + } + } + finally + { + if (IntPtr.Zero != zero) + { + Wow64Redirection.Wow64RevertWow64FsRedirection(zero); + } + } + SectionList configurationSections = GetConfigurationSections(text2); + RegisterConfigurationSections(configurationSections, false); + Console.WriteLine("Finished"); + } + + /* add specific cleanup logic here (basically mirror install) + * No need to clean Program Files or other aspects of install, just revert the things you manually modified in Install() */ + public void Uninstall() + { + } + + private SectionList GetConfigurationSections(string schemaPath) + { + XmlDocument xmlDocument = new XmlDocument(); + xmlDocument.Load(schemaPath); + SectionList sectionList = new SectionList(); + XmlElement documentElement = xmlDocument.DocumentElement; + foreach (XmlNode xmlNode in documentElement.ChildNodes) + { + if (xmlNode.LocalName.Equals("sectionSchema", StringComparison.InvariantCultureIgnoreCase)) + { + sectionList.Add(new SectionDefinition(xmlNode.Attributes["name"].Value)); + } + } + return sectionList; + } + + private static SectionList GetConfigurationSections(string sectionGroupName, IAppHostSectionGroup sectionGroup) + { + SectionList sectionList = new SectionList(); + string text = string.IsNullOrEmpty(sectionGroupName) ? sectionGroup.Name : (sectionGroupName + "/" + sectionGroup.Name); + for (uint num = 0u; num < sectionGroup.Count; num += 1u) + { + IAppHostSectionGroup sectionGroup2 = sectionGroup[num]; + SectionList configurationSections = GetConfigurationSections(text, sectionGroup2); + sectionList.AddRange(configurationSections); + } + IAppHostSectionDefinitionCollection sections = sectionGroup.Sections; + for (uint num2 = 0u; num2 < sections.Count; num2 += 1u) + { + IAppHostSectionDefinition appHostSectionDefinition = sections[num2]; + sectionList.Add(new SectionDefinition(string.IsNullOrEmpty(text) ? appHostSectionDefinition.Name : (text + "/" + appHostSectionDefinition.Name), (AllowDefinition)Enum.Parse(typeof(AllowDefinition), appHostSectionDefinition.AllowDefinition, true), (OverrideModeDefault)Enum.Parse(typeof(OverrideModeDefault), appHostSectionDefinition.OverrideModeDefault, true), appHostSectionDefinition.Type)); + } + return sectionList; + } + + private static bool RegisterConfigSection(IAppHostWritableAdminManager adminManager, SectionDefinition sectionDefinition, string sectionName, IAppHostSectionGroup sectionGroup, bool remove) + { + string text = null; + string sectionName2 = sectionName; + int num = sectionName.IndexOf('/'); + if (num >= 0) + { + text = sectionName.Substring(0, num); + sectionName2 = sectionName.Substring(num + 1, sectionName.Length - num - 1); + } + if (text != null) + { + uint count = sectionGroup.Count; + for (uint num2 = 0u; num2 < count; num2 += 1u) + { + IAppHostSectionGroup appHostSectionGroup = sectionGroup[num2]; + if (appHostSectionGroup.Name.Equals(text, StringComparison.InvariantCultureIgnoreCase)) + { + return RegisterConfigSection(adminManager, sectionDefinition, sectionName2, appHostSectionGroup, remove); + } + } + if (remove) + { + return false; + } + IAppHostSectionGroup sectionGroup2 = sectionGroup.AddSectionGroup(text); + return RegisterConfigSection(adminManager, sectionDefinition, sectionName2, sectionGroup2, remove); + } + else + { + IAppHostSectionDefinitionCollection sections = sectionGroup.Sections; + bool flag = false; + uint count2 = sections.Count; + for (uint num3 = 0u; num3 < count2; num3 += 1u) + { + IAppHostSectionDefinition appHostSectionDefinition = sections[num3]; + if (appHostSectionDefinition.Name.Equals(sectionName, StringComparison.InvariantCultureIgnoreCase)) + { + flag = true; + break; + } + } + if (!flag) + { + if (remove) + { + return false; + } + IAppHostSectionDefinition appHostSectionDefinition2 = sections.AddSection(sectionName); + appHostSectionDefinition2.OverrideModeDefault = sectionDefinition.OverrideModeDefault.ToString(); + appHostSectionDefinition2.AllowDefinition = sectionDefinition.AllowDefinition.ToString(); + appHostSectionDefinition2.Type = sectionDefinition.Type; + return true; + } + else + { + if (remove) + { + try + { + IAppHostElement adminSection = adminManager.GetAdminSection(sectionName, "MACHINE/WEBROOT/APPHOST"); + adminSection.Clear(); + } + catch (Exception) + { + } + sections.DeleteSection(sectionName); + return true; + } + return false; + } + } + } + + private void RegisterConfigurationSections(SectionList sectionList, bool remove) + { + IAppHostWritableAdminManager appHostWritableAdminManager = new AppHostWritableAdminManagerClass(); + appHostWritableAdminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"; + IAppHostConfigManager configManager = appHostWritableAdminManager.ConfigManager; + IAppHostConfigFile configFile = configManager.GetConfigFile("MACHINE/WEBROOT/APPHOST"); + IAppHostSectionGroup rootSectionGroup = configFile.RootSectionGroup; + foreach (SectionDefinition current in sectionList) + { + if (RegisterConfigSection(appHostWritableAdminManager, current, current.Name, rootSectionGroup, remove)) + { + if (remove) + { + Console.WriteLine("Unregistered section: " + current.Name); + } + else + { + Console.WriteLine("Registered section: " + current.Name); + } + } + else + { + if (remove) + { + Console.WriteLine("Section not currently registered, ignoring: " + current.Name); + } + else + { + Console.WriteLine("Section already registered, ignoring: " + current.Name); + } + } + } + appHostWritableAdminManager.CommitChanges(); + } + + internal class Wow64Redirection + { + [DllImport("Kernel32.dll", CharSet = CharSet.Auto)] + public static extern bool IsWow64Process(IntPtr hProcess, out bool isWow64); + [DllImport("Kernel32.dll", CharSet = CharSet.Auto)] + public static extern bool Wow64DisableWow64FsRedirection(out IntPtr oldValue); + [DllImport("Kernel32.dll", CharSet = CharSet.Auto)] + public static extern bool Wow64RevertWow64FsRedirection(IntPtr oldValue); + } + + private void CopyBinaries(string srcpath, string dstpath) + { + string[] files = { "libapr-1.dll", "libapriconv-1.dll", "libaprutil-1.dll", + "libxml2.dll", "lua5.1.dll", "pcre.dll", "zlib1.dll", "ModSecurityIIS.dll" }; + + foreach (string s in files) + File.Copy(Path.Combine(srcpath, s), Path.Combine(dstpath, s), true); + } + + public enum AllowDefinition + { + MachineOnly, + MachineToWebRoot, + MachineToApplication, + AppHostOnly, + Everywhere + } + + public enum OverrideModeDefault + { + Allow, + Deny + } + + public class SectionDefinition + { + public const AllowDefinition DefaultAllowDefinition = AllowDefinition.Everywhere; + public const OverrideModeDefault DefaultOverrideModeDefault = OverrideModeDefault.Allow; + private string name; + private AllowDefinition allowDefinition; + private OverrideModeDefault overrideModeDefault; + private string type; + public string Name + { + get + { + return this.name; + } + } + public AllowDefinition AllowDefinition + { + get + { + return this.allowDefinition; + } + } + public OverrideModeDefault OverrideModeDefault + { + get + { + return this.overrideModeDefault; + } + } + public string Type + { + get + { + return this.type; + } + set + { + this.type = value; + } + } + public SectionDefinition(string sectionName) + : this(sectionName, AllowDefinition.Everywhere, OverrideModeDefault.Allow, null) + { + } + public SectionDefinition(string sectionName, AllowDefinition allowDefinition, OverrideModeDefault overrideModeDefault, string type) + { + this.name = sectionName; + this.allowDefinition = allowDefinition; + this.overrideModeDefault = overrideModeDefault; + this.type = type; + } + } + + internal class SectionList : List {} + } +} diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/ModSecurityIIS Installer.sln b/iis/ModSecurityIIS/ModSecurityIIS/installer project/ModSecurityIIS Installer.sln new file mode 100644 index 00000000..12bb6309 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/installer project/ModSecurityIIS Installer.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModSecurityIIS Installer", "ModSecurityIIS Installer.csproj", "{023E10BD-4FF6-4401-9A40-AED9717073F2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Debug|x64.ActiveCfg = Debug|x64 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Debug|x64.Build.0 = Debug|x64 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Debug|x86.ActiveCfg = Debug|x86 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Debug|x86.Build.0 = Debug|x86 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Release|x64.ActiveCfg = Release|x64 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Release|x64.Build.0 = Release|x64 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Release|x86.ActiveCfg = Release|x86 + {023E10BD-4FF6-4401-9A40-AED9717073F2}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/Program.cs b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Program.cs new file mode 100644 index 00000000..e0eef02b --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Program.cs @@ -0,0 +1,26 @@ +using System; + +namespace configure +{ + public class Program + { + static void Main(string[] args) + { + ModSecurityConfigurator configurator = new ModSecurityConfigurator(); + + if (args.Length > 0) + { + if (args[0].Equals("uninstall", StringComparison.InvariantCultureIgnoreCase)) + configurator.Uninstall(); + else + { + configurator.Install(args[0]); + } + } + else + { + Console.WriteLine("configure.exe | uninstall"); + } + } + } +} diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/AssemblyInfo.cs b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..bf9f1ea0 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("configure")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("configure")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("320c5ce4-6089-4bb4-a9d2-ea68f9894a88")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Resources.Designer.cs b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Resources.Designer.cs new file mode 100644 index 00000000..dd9bce07 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.269 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace configure.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("configure.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap ModSecurityLogo { + get { + object obj = ResourceManager.GetObject("ModSecurityLogo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Resources.resx b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Resources.resx new file mode 100644 index 00000000..2d3701a1 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\ModSecurityLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Settings.Designer.cs b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Settings.Designer.cs new file mode 100644 index 00000000..5f60258e --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.269 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace configure.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Settings.settings b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Settings.settings new file mode 100644 index 00000000..abf36c5d --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/Resources/ModSecurityLogo.png b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Resources/ModSecurityLogo.png new file mode 100644 index 00000000..db104db5 Binary files /dev/null and b/iis/ModSecurityIIS/ModSecurityIIS/installer project/Resources/ModSecurityLogo.png differ diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/app.config b/iis/ModSecurityIIS/ModSecurityIIS/installer project/app.config new file mode 100644 index 00000000..8494f728 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/installer project/app.config @@ -0,0 +1,3 @@ + + + diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/configure.csproj b/iis/ModSecurityIIS/ModSecurityIIS/installer project/configure.csproj new file mode 100644 index 00000000..3e38209d --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/installer project/configure.csproj @@ -0,0 +1,163 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {023E10BD-4FF6-4401-9A40-AED9717073F2} + WinExe + Properties + configure + configure + v2.0 + + + 512 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + bin\Debug\ModSecurityIIS Installer.exe.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + bin\Release\ModSecurityIIS Installer.exe.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + false + + + + configure.Program + + + true + + + + + + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + {598F9C7D-D2D7-4980-B234-F1E753CD9FD9} + 1 + 0 + 0 + tlbimp + False + True + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/iis/ModSecurityIIS/ModSecurityIIS/installer project/configure.csproj.user b/iis/ModSecurityIIS/ModSecurityIIS/installer project/configure.csproj.user new file mode 100644 index 00000000..1f4a1d77 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/installer project/configure.csproj.user @@ -0,0 +1,13 @@ + + + + publish\ + + + + + + en-US + false + + \ No newline at end of file diff --git a/iis/ModSecurityIIS/ModSecurityIIS/uninstall.vbs b/iis/ModSecurityIIS/ModSecurityIIS/uninstall.vbs new file mode 100644 index 00000000..77c06795 --- /dev/null +++ b/iis/ModSecurityIIS/ModSecurityIIS/uninstall.vbs @@ -0,0 +1,3 @@ +Set WshShell = CreateObject("WScript.Shell") + +WshShell.Exec("%windir%\system32\inetsrv\appcmd.exe uninstall module ModSecurityIIS") \ No newline at end of file diff --git a/iis/main.cpp b/iis/main.cpp new file mode 100644 index 00000000..3fdc986b --- /dev/null +++ b/iis/main.cpp @@ -0,0 +1,88 @@ +#define WIN32_LEAN_AND_MEAN + +#undef inline +#define inline inline + +// IIS7 Server API header file +#include "httpserv.h" + +// Project header files +#include "mymodule.h" +#include "mymodulefactory.h" + +// Global server instance +IHttpServer * g_pHttpServer = NULL; + +// Global module context id +PVOID g_pModuleContext = NULL; + +// The RegisterModule entrypoint implementation. +// This method is called by the server when the module DLL is +// loaded in order to create the module factory, +// and register for server events. +HRESULT +__stdcall +RegisterModule( + DWORD dwServerVersion, + IHttpModuleRegistrationInfo * pModuleInfo, + IHttpServer * pHttpServer +) +{ + HRESULT hr = S_OK; + CMyHttpModuleFactory * pFactory = NULL; + //IHttpModuleRegistrationInfo2 * pModuleInfo2; + + if ( pModuleInfo == NULL || pHttpServer == NULL ) + { + hr = HRESULT_FROM_WIN32( ERROR_INVALID_PARAMETER ); + goto Finished; + } + + /*hr = HttpGetExtendedInterface( g_pGlobalInfo, + pModuleInfo, + &pModuleInfo2 ); + if ( FAILED ( hr ) ) + { + goto Finished; + }*/ + + // step 1: save the IHttpServer and the module context id for future use + // + g_pModuleContext = pModuleInfo->GetId(); + g_pHttpServer = pHttpServer; + + // step 2: create the module factory + // + pFactory = new CMyHttpModuleFactory(); + if ( pFactory == NULL ) + { + hr = HRESULT_FROM_WIN32( ERROR_NOT_ENOUGH_MEMORY ); + goto Finished; + } + + // step 3: register for server events + // + hr = pModuleInfo->SetRequestNotifications( pFactory, /* module factory */ + RQ_BEGIN_REQUEST | RQ_SEND_RESPONSE /* server event mask */, + RQ_END_REQUEST /* server post event mask */); + if ( FAILED( hr ) ) + { + goto Finished; + } + + hr = pModuleInfo->SetPriorityForRequestNotification(RQ_BEGIN_REQUEST, PRIORITY_ALIAS_FIRST); + hr = pModuleInfo->SetPriorityForRequestNotification(RQ_SEND_RESPONSE, PRIORITY_ALIAS_LAST); // reverted! + //hr = pModuleInfo2->SetPriorityForPostRequestNotification(RQ_END_REQUEST, PRIORITY_ALIAS_LAST); + + pFactory = NULL; + +Finished: + +/* if ( pFactory != NULL ) + { + delete pFactory; + pFactory = NULL; + } */ + + return hr; +} diff --git a/iis/moduleconfig.cpp b/iis/moduleconfig.cpp new file mode 100644 index 00000000..e5d81971 --- /dev/null +++ b/iis/moduleconfig.cpp @@ -0,0 +1,640 @@ +#define WIN32_LEAN_AND_MEAN + +#undef inline +#define inline inline + +// IIS7 Server API header file +#include "httpserv.h" + +// Project header files +#include "mymodule.h" +#include "mymodulefactory.h" +#include "moduleconfig.h" + +HRESULT +MODSECURITY_STORED_CONTEXT::Initialize( + IHttpContext * pW3Context, + IAppHostConfigException ** ppException +) +{ + HRESULT hr = S_OK; + IAppHostAdminManager *pAdminManager = NULL; + IAppHostElement *pSessionTrackingElement = NULL; + IAppHostPropertyException *pPropertyException = NULL; + + PCWSTR pszConfigPath = pW3Context->GetMetadata()->GetMetaPath(); + BSTR bstrUrlPath = SysAllocString( pszConfigPath ); + + pAdminManager = g_pHttpServer->GetAdminManager(); + + if ( ( FAILED( hr ) ) || ( pAdminManager == NULL ) ) + { + hr = E_UNEXPECTED; + goto Failure; + } + + // Get a handle to the section: + hr = pAdminManager->GetAdminSection( + MODSECURITY_SECTION, + bstrUrlPath, + &pSessionTrackingElement ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + if ( pSessionTrackingElement == NULL ) + { + hr = E_UNEXPECTED; + goto Failure; + } + + // Get the property object for the 'enabled' attribute: + hr = GetBooleanPropertyValue( + pSessionTrackingElement, + MODSECURITY_SECTION_ENABLED, + &pPropertyException, + &m_bIsEnabled); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + // If there is a config failure, we cannot continue execution: + if ( pPropertyException != NULL ) + { + + ppException = ( IAppHostConfigException** ) &pPropertyException; + goto Failure; + } + + if ( m_bIsEnabled == FALSE ) + { + // There is no point in reading any more of the config associated with the session + // tracking section, since this feature is not enabled for the current URL + goto Failure; + } + + // Get the property object for the 'configfile' attribute: + hr = GetStringPropertyValue( + pSessionTrackingElement, + MODSECURITY_SECTION_CONFIGFILE, + &pPropertyException, + &m_pszPath); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + // If there is a config failure, we cannot continue execution: + if ( pPropertyException != NULL ) + { + + ppException = ( IAppHostConfigException** ) &pPropertyException; + goto Failure; + } + +Failure: + SysFreeString( bstrUrlPath ); + return hr; +} + +HRESULT +MODSECURITY_STORED_CONTEXT::GetBooleanPropertyValue( + IAppHostElement* pElement, + WCHAR* pszPropertyName, + IAppHostPropertyException** pException, + BOOL* pBoolValue ) +{ + HRESULT hr = S_OK; + IAppHostProperty *pProperty = NULL; + VARIANT vPropertyValue; + + if ( + ( pElement == NULL ) || + ( pszPropertyName == NULL ) || + ( pException == NULL ) || + ( pBoolValue == NULL ) + ) + { + hr = E_INVALIDARG; + goto Failure; + } + + // Get the property object for the BOOLEAN attribute: + hr = pElement->GetPropertyByName( + pszPropertyName, + &pProperty ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + if ( pProperty == NULL ) + { + hr = E_UNEXPECTED; + goto Failure; + } + + // Get the attribute value: + VariantInit( &vPropertyValue ); + + hr = pProperty->get_Value( &vPropertyValue ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + // See it there is an exception that might be due to the actual value in the + // config not meeting validation criteria + *pException = NULL; + + hr = pProperty->get_Exception( pException ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + // No need to continue if we got an exception... + if ( ( *pException ) != NULL ) + { + goto Failure; + } + + // Finally, get the value: + *pBoolValue = ( vPropertyValue.boolVal == VARIANT_TRUE ) ? TRUE : FALSE; + + +Failure: + VariantClear( &vPropertyValue ); + + if ( pProperty != NULL ) + { + pProperty->Release(); + pProperty = NULL; + } + + return hr; +} + +HRESULT +MODSECURITY_STORED_CONTEXT::GetDWORDPropertyValue( + IAppHostElement* pElement, + WCHAR* pszPropertyName, + IAppHostPropertyException** pException, + DWORD* pnValue ) +{ + HRESULT hr = S_OK; + IAppHostProperty *pProperty = NULL; + VARIANT vPropertyValue; + + if ( + ( pElement == NULL ) || + ( pszPropertyName == NULL ) || + ( pException == NULL ) || + ( pnValue == NULL ) + ) + { + hr = E_INVALIDARG; + goto Failure; + } + + // Get the property object for the INT attribute: + hr = pElement->GetPropertyByName( + pszPropertyName, + &pProperty ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + if ( pProperty == NULL ) + { + hr = E_UNEXPECTED; + goto Failure; + } + + // Get the attribute value: + VariantInit( &vPropertyValue ); + + hr = pProperty->get_Value( &vPropertyValue ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + // See it there is an exception that might be due to the actual value in the + // config not meeting validation criteria + *pException = NULL; + + hr = pProperty->get_Exception( pException ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + // No need to continue if we got an exception... + if ( ( *pException ) != NULL ) + { + goto Failure; + } + + // Finally, get the value: + *pnValue = vPropertyValue.ulVal; + +Failure: + VariantClear( &vPropertyValue ); + + if ( pProperty != NULL ) + { + pProperty->Release(); + pProperty = NULL; + } + + return hr; +} + +HRESULT +MODSECURITY_STORED_CONTEXT::GetTimeSpanPropertyValue( + IAppHostElement* pElement, + WCHAR* pszPropertyName, + IAppHostPropertyException** pException, + ULONGLONG* pnValue ) +{ + HRESULT hr = S_OK; + IAppHostProperty *pProperty = NULL; + VARIANT vPropertyValue; + + if ( + ( pElement == NULL ) || + ( pszPropertyName == NULL ) || + ( pException == NULL ) || + ( pnValue == NULL ) + ) + { + hr = E_INVALIDARG; + goto Failure; + } + + // Get the property object for the INT attribute: + hr = pElement->GetPropertyByName( + pszPropertyName, + &pProperty ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + if ( pProperty == NULL ) + { + hr = E_UNEXPECTED; + goto Failure; + } + + // Get the attribute value: + VariantInit( &vPropertyValue ); + + hr = pProperty->get_Value( &vPropertyValue ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + // See it there is an exception that might be due to the actual value in the + // config not meeting validation criteria + *pException = NULL; + + hr = pProperty->get_Exception( pException ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + // No need to continue if we got an exception... + if ( ( *pException ) != NULL ) + { + goto Failure; + } + + // Finally, get the value: + *pnValue = vPropertyValue.ullVal; + +Failure: + VariantClear( &vPropertyValue ); + + if ( pProperty != NULL ) + { + pProperty->Release(); + pProperty = NULL; + } + + return hr; +} + +HRESULT +MODSECURITY_STORED_CONTEXT::GetStringPropertyValue( + IAppHostElement* pElement, + WCHAR* pszPropertyName, + IAppHostPropertyException** pException, + WCHAR** ppszValue ) +{ + HRESULT hr = S_OK; + IAppHostProperty *pProperty = NULL; + DWORD dwLength; + VARIANT vPropertyValue; + + if ( + ( pElement == NULL ) || + ( pszPropertyName == NULL ) || + ( pException == NULL ) || + ( ppszValue == NULL ) + ) + { + hr = E_INVALIDARG; + goto Failure; + } + + *ppszValue = NULL; + + // Get the property object for the string attribute: + hr = pElement->GetPropertyByName( + pszPropertyName, + &pProperty ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + if ( pProperty == NULL ) + { + hr = E_UNEXPECTED; + goto Failure; + } + + // Get the attribute value: + VariantInit( &vPropertyValue ); + + hr = pProperty->get_Value( &vPropertyValue ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + // See it there is an exception that might be due to the actual value in the + // config not meeting validation criteria + *pException = NULL; + + hr = pProperty->get_Exception( pException ); + + if ( FAILED( hr ) ) + { + goto Failure; + } + + // No need to continue if we got an exception... + if ( ( *pException ) != NULL ) + { + goto Failure; + } + + // Finally, get the value: + dwLength = SysStringLen( vPropertyValue.bstrVal ); + *ppszValue = new WCHAR[ dwLength + 1 ]; + + if ( (*ppszValue) == NULL ) + { + hr = E_OUTOFMEMORY; + goto Failure; + } + + wcsncpy( + *ppszValue, + vPropertyValue.bstrVal, + dwLength ); + + (*ppszValue)[ dwLength ] = L'\0'; + +Failure: + VariantClear( &vPropertyValue ); + + if ( pProperty != NULL ) + { + pProperty->Release(); + pProperty = NULL; + } + + return hr; +} + +MODSECURITY_STORED_CONTEXT::~MODSECURITY_STORED_CONTEXT() +{ + if ( m_pszPath != NULL ) + { + delete [] m_pszPath; + m_pszPath = NULL; + } +} + +MODSECURITY_STORED_CONTEXT::MODSECURITY_STORED_CONTEXT(): + m_bIsEnabled ( FALSE ), + m_pszPath( NULL ), + m_Config( NULL ), + m_dwLastCheck( 0 ) +{ + m_LastChange.dwLowDateTime = 0; + m_LastChange.dwHighDateTime = 0; +} + +DWORD +MODSECURITY_STORED_CONTEXT::GlobalWideCharToMultiByte( + WCHAR* pSource, + DWORD dwLengthSource, + CHAR** ppszDestination, + USHORT* pdwLengthDestination ) +{ + DWORD dwResult = NULL; + DWORD dwCount = 0; + + if ( + ( pSource == NULL ) || + ( ppszDestination == NULL ) || + ( pdwLengthDestination == NULL ) + ) + { + dwResult = ERROR_INVALID_PARAMETER; + goto Exit; + } + + // Initialize result length + *pdwLengthDestination = 0; + *ppszDestination = NULL; + + dwCount = WideCharToMultiByte( + CP_ACP, + 0, + pSource, + dwLengthSource + 1, + *ppszDestination, + 0, + NULL, + NULL ); + + if ( 0 == dwCount ) + { + dwResult = GetLastError (); + + if ( dwResult == 0 ) + { + dwResult = ERROR_INVALID_DATA; + } + + goto Exit; + } + + *ppszDestination = new CHAR[ dwCount + 1 ]; + + if ( NULL == ( *ppszDestination ) ) + { + dwResult = ERROR_OUTOFMEMORY; + goto Exit; + } + + // Make sure the memory is 'clean': + SecureZeroMemory( + ( *ppszDestination ), + ( dwCount + 1 ) * sizeof ( CHAR ) ); + + if ( + 0 == WideCharToMultiByte( + CP_ACP, + 0, + pSource, + dwLengthSource + 1, + *ppszDestination, + dwCount, + NULL, + NULL ) + ) + { + dwResult = GetLastError(); + + goto Exit; + } + + *pdwLengthDestination = ( USHORT )dwCount; + +Exit: + if ( dwResult != 0 ) + { + // Make sure we do the proper cleanup in the error case: + if ( pdwLengthDestination != NULL ) + { + *pdwLengthDestination = 0; + } + + if ( ppszDestination != NULL ) + { + if ( ( *ppszDestination ) != NULL ) + { + delete [] ( *ppszDestination ); + ( *ppszDestination ) = NULL; + } + } + } + + return dwResult; +} + +HRESULT +MODSECURITY_STORED_CONTEXT::GetConfig( + IHttpContext * pContext, + MODSECURITY_STORED_CONTEXT ** ppModuleConfig +) +{ + HRESULT hr = S_OK; + MODSECURITY_STORED_CONTEXT * pModuleConfig = NULL; + IHttpModuleContextContainer * pMetadataContainer = NULL; + IAppHostConfigException * pException = NULL; + + pMetadataContainer = pContext->GetMetadata()->GetModuleContextContainer(); + + if ( pMetadataContainer == NULL ) + { + hr = E_UNEXPECTED; + return hr; + } + + pModuleConfig = (MODSECURITY_STORED_CONTEXT *)pMetadataContainer->GetModuleContext( g_pModuleContext ); + if ( pModuleConfig != NULL ) + { + // + // We found stored data for this module for the metadata + // object which is different for unique configuration path + // + *ppModuleConfig = pModuleConfig; + return S_OK; + } + + // + // If we reach here, that means this is first request or first + // request after a configuration change IIS core will throw stored context away + // if a change notification arrives for this metadata path + // + pModuleConfig = new MODSECURITY_STORED_CONTEXT(); + if ( pModuleConfig == NULL ) + { + return E_OUTOFMEMORY; + } + + // + // Read module configuration data and store in MODSECURITY_STORED_CONTEXT + // + hr = pModuleConfig->Initialize( pContext, &pException ); + if ( FAILED( hr ) || pException != NULL ) + { + pModuleConfig->CleanupStoredContext(); + + pModuleConfig = NULL; + hr = E_UNEXPECTED; + + return hr; + } + + // + // Store MODSECURITY_STORED_CONTEXT data as metadata stored context + // + hr = pMetadataContainer->SetModuleContext( pModuleConfig, + g_pModuleContext ); + if ( FAILED( hr ) ) + { + pModuleConfig->CleanupStoredContext(); + pModuleConfig = NULL; + + // + // It is possible that some other thread stored context before this thread + // could do. Check returned hr and return context stored by other thread + // + if ( hr == HRESULT_FROM_WIN32( ERROR_ALREADY_ASSIGNED ) ) + { + *ppModuleConfig = (MODSECURITY_STORED_CONTEXT *)pMetadataContainer->GetModuleContext( g_pModuleContext ); + return S_OK; + } + } + + *ppModuleConfig = pModuleConfig; + return hr; +} diff --git a/iis/moduleconfig.h b/iis/moduleconfig.h new file mode 100644 index 00000000..09528299 --- /dev/null +++ b/iis/moduleconfig.h @@ -0,0 +1,91 @@ +#pragma once + +#define MODSECURITY_SECTION L"system.webServer/ModSecurity" +#define MODSECURITY_SECTION_ENABLED L"enabled" +#define MODSECURITY_SECTION_CONFIGFILE L"configFile" + +extern IHttpServer * g_pHttpServer; + +extern PVOID g_pModuleContext; + +class MODSECURITY_STORED_CONTEXT : public IHttpStoredContext +{ + public: + MODSECURITY_STORED_CONTEXT(); + ~MODSECURITY_STORED_CONTEXT(); + + static + HRESULT + GetConfig( + IHttpContext * pContext, + MODSECURITY_STORED_CONTEXT ** ppModuleConfig + ); + + // virtual + VOID + CleanupStoredContext( + VOID + ) + { + delete this; + } + + BOOL GetIsEnabled() + { + return m_bIsEnabled; + } + + WCHAR* GetPath() + { + return m_pszPath; + } + + HRESULT + Initialize( + IHttpContext * pW3Context, + IAppHostConfigException ** ppException + ); + + DWORD + GlobalWideCharToMultiByte( + WCHAR* pSource, + DWORD dwLengthSource, + CHAR** ppszDestination, + USHORT* pdwLengthDestination ); + + void* m_Config; + DWORD m_dwLastCheck; + FILETIME m_LastChange; + +private: + HRESULT + GetBooleanPropertyValue( + IAppHostElement* pElement, + WCHAR* pszPropertyName, + IAppHostPropertyException** pException, + BOOL* pBoolValue ); + + HRESULT + GetDWORDPropertyValue( + IAppHostElement* pElement, + WCHAR* pszPropertyName, + IAppHostPropertyException** pException, + DWORD* pnValue ); + + HRESULT + GetTimeSpanPropertyValue( + IAppHostElement* pElement, + WCHAR* pszPropertyName, + IAppHostPropertyException** pException, + ULONGLONG* pnValue ); + + HRESULT + GetStringPropertyValue( + IAppHostElement* pElement, + WCHAR* pszPropertyName, + IAppHostPropertyException** pException, + WCHAR** ppszValue ); + + BOOL m_bIsEnabled; + WCHAR* m_pszPath; +}; diff --git a/iis/mymodule.cpp b/iis/mymodule.cpp new file mode 100644 index 00000000..4421e5b3 --- /dev/null +++ b/iis/mymodule.cpp @@ -0,0 +1,1186 @@ +#define WIN32_LEAN_AND_MEAN + +#undef inline +#define inline inline + +// IIS7 Server API header file +#include +#include +#include +#include "httpserv.h" + +// Project header files +#include "mymodule.h" +#include "mymodulefactory.h" + +#include "api.h" +#include "moduleconfig.h" + + +class REQUEST_STORED_CONTEXT : public IHttpStoredContext +{ + public: + REQUEST_STORED_CONTEXT() + { + m_pConnRec = NULL; + m_pRequestRec = NULL; + m_pHttpContext = NULL; + m_pProvider = NULL; + m_pResponseBuffer = NULL; + m_pResponseLength = 0; + m_pResponsePosition = 0; + } + + ~REQUEST_STORED_CONTEXT() + { + FinishRequest(); + } + + // virtual + VOID + CleanupStoredContext( + VOID + ) + { + FinishRequest(); + delete this; + } + + void FinishRequest() + { + if(m_pRequestRec != NULL) + { + modsecFinishRequest(m_pRequestRec); + m_pRequestRec = NULL; + m_pConnRec = NULL; + } + } + + conn_rec *m_pConnRec; + request_rec *m_pRequestRec; + IHttpContext *m_pHttpContext; + IHttpEventProvider *m_pProvider; + char *m_pResponseBuffer; + unsigned int m_pResponseLength; + unsigned int m_pResponsePosition; +}; + +//---------------------------------------------------------------------------- + +char *ZeroTerminate(const char *str, size_t len, apr_pool_t *pool) +{ + char *_n = (char *)apr_palloc(pool, len + 1); + + memcpy(_n, str, len); + + _n[len] = 0; + + return _n; +} + +//---------------------------------------------------------------------------- +// FUNCTION: ConvertUTF16ToUTF8 +// DESC: Converts Unicode UTF-16 (Windows default) text to Unicode UTF-8. +//---------------------------------------------------------------------------- + +char *ConvertUTF16ToUTF8( __in const WCHAR * pszTextUTF16, size_t cchUTF16, apr_pool_t *pool ) +{ + // + // Special case of NULL or empty input string + // + if ( (pszTextUTF16 == NULL) || (*pszTextUTF16 == L'\0') || cchUTF16 == 0 ) + { + // Return empty string + return ""; + } + + // + // Get size of destination UTF-8 buffer, in CHAR's (= bytes) + // + int cbUTF8 = ::WideCharToMultiByte( + CP_UTF8, // convert to UTF-8 + 0, // specify conversion behavior + pszTextUTF16, // source UTF-16 string + static_cast( cchUTF16 ), // total source string length, in WCHAR's, + NULL, // unused - no conversion required in this step + 0, // request buffer size + NULL, NULL // unused + ); + + if ( cbUTF8 == 0 ) + { + return ""; + } + + // + // Allocate destination buffer for UTF-8 string + // + + int cchUTF8 = cbUTF8; // sizeof(CHAR) = 1 byte + + char *pszUTF8 = (char *)apr_palloc(pool, cchUTF8 + 1 ); + + // + // Do the conversion from UTF-16 to UTF-8 + // + int result = ::WideCharToMultiByte( + CP_UTF8, // convert to UTF-8 + 0, // specify conversion behavior + pszTextUTF16, // source UTF-16 string + static_cast( cchUTF16 ), // total source string length, in WCHAR's, + // including end-of-string \0 + pszUTF8, // destination buffer + cbUTF8, // destination buffer size, in bytes + NULL, NULL // unused + ); + + if ( result == 0 ) + { + return ""; + } + + pszUTF8[cchUTF8] = 0; + + return pszUTF8; +} + +void Log(void *obj, int level, char *str) +{ + CMyHttpModule *mod = (CMyHttpModule *)obj; + WORD logcat = EVENTLOG_INFORMATION_TYPE; + + level &= APLOG_LEVELMASK; + + if(level <= APLOG_ERR) + logcat = EVENTLOG_ERROR_TYPE; + + if(level == APLOG_WARNING || strstr(str, "Warning.") != NULL) + logcat = EVENTLOG_WARNING_TYPE; + + mod->WriteEventViewerLog(str, logcat); +} + +#define NOTE_IIS "iis-tx-context" + +void StoreIISContext(request_rec *r, REQUEST_STORED_CONTEXT *rsc) +{ + apr_table_setn(r->notes, NOTE_IIS, (const char *)rsc); +} + +REQUEST_STORED_CONTEXT *RetrieveIISContext(request_rec *r) +{ + REQUEST_STORED_CONTEXT *msr = NULL; + request_rec *rx = NULL; + + /* Look in the current request first. */ + msr = (REQUEST_STORED_CONTEXT *)apr_table_get(r->notes, NOTE_IIS); + if (msr != NULL) { + //msr->r = r; + return msr; + } + + /* If this is a subrequest then look in the main request. */ + if (r->main != NULL) { + msr = (REQUEST_STORED_CONTEXT *)apr_table_get(r->main->notes, NOTE_IIS); + if (msr != NULL) { + //msr->r = r; + return msr; + } + } + + /* If the request was redirected then look in the previous requests. */ + rx = r->prev; + while(rx != NULL) { + msr = (REQUEST_STORED_CONTEXT *)apr_table_get(rx->notes, NOTE_IIS); + if (msr != NULL) { + //msr->r = r; + return msr; + } + rx = rx->prev; + } + + return NULL; +} + +HRESULT CMyHttpModule::ReadFileChunk(HTTP_DATA_CHUNK *chunk, char *buf) +{ + OVERLAPPED ovl; + DWORD dwDataStartOffset; + DWORD bytesTotal = 0; + BYTE * pIoBuffer = NULL; + HANDLE hIoEvent = INVALID_HANDLE_VALUE; + HRESULT hr = S_OK; + + pIoBuffer = (BYTE *)VirtualAlloc(NULL, + 1, + MEM_COMMIT | MEM_RESERVE, + PAGE_READWRITE); + if (pIoBuffer == NULL) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + goto Done; + } + + hIoEvent = CreateEvent(NULL, // security attr + FALSE, // manual reset + FALSE, // initial state + NULL); // name + if (hIoEvent == NULL) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + goto Done; + } + + while(bytesTotal < chunk->FromFileHandle.ByteRange.Length.QuadPart) + { + DWORD bytesRead = 0; + int was_eof = 0; + ULONGLONG offset = chunk->FromFileHandle.ByteRange.StartingOffset.QuadPart + bytesTotal; + + ZeroMemory(&ovl, sizeof ovl); + ovl.hEvent = hIoEvent; + ovl.Offset = (DWORD)offset; + dwDataStartOffset = ovl.Offset & (m_dwPageSize - 1); + ovl.Offset &= ~(m_dwPageSize - 1); + ovl.OffsetHigh = offset >> 32; + + if (!ReadFile(chunk->FromFileHandle.FileHandle, + pIoBuffer, + m_dwPageSize, + &bytesRead, + &ovl)) + { + DWORD dwErr = GetLastError(); + + switch (dwErr) + { + case ERROR_IO_PENDING: + // + // GetOverlappedResult can return without waiting for the + // event thus leaving it signalled and causing problems + // with future use of that event handle, so just wait ourselves + // + WaitForSingleObject(ovl.hEvent, INFINITE); // == WAIT_OBJECT_0); + + if (!GetOverlappedResult( + chunk->FromFileHandle.FileHandle, + &ovl, + &bytesRead, + TRUE)) + { + dwErr = GetLastError(); + switch(dwErr) + { + case ERROR_HANDLE_EOF: + was_eof = 1; + break; + + default: + hr = HRESULT_FROM_WIN32(dwErr); + goto Done; + } + } + + break; + + case ERROR_HANDLE_EOF: + was_eof = 1; + break; + + default: + hr = HRESULT_FROM_WIN32(dwErr); + goto Done; + } + } + + bytesRead -= dwDataStartOffset; + + if (bytesRead > chunk->FromFileHandle.ByteRange.Length.QuadPart) + { + bytesRead = (DWORD)chunk->FromFileHandle.ByteRange.Length.QuadPart; + } + + memcpy(buf, pIoBuffer, bytesRead); + + buf += bytesRead; + bytesTotal += bytesRead; + + if(was_eof != 0) + chunk->FromFileHandle.ByteRange.Length.QuadPart = bytesTotal; + } + +Done: + if(NULL != pIoBuffer) + { + VirtualFree(pIoBuffer, 0, MEM_RELEASE); + } + + if(INVALID_HANDLE_VALUE != hIoEvent) + { + CloseHandle(hIoEvent); + } + + return hr; +} + +REQUEST_NOTIFICATION_STATUS +CMyHttpModule::OnSendResponse( + IN IHttpContext * pHttpContext, + IN ISendResponseProvider * pResponseProvider +) +{ + REQUEST_STORED_CONTEXT *rsc = NULL; + + rsc = (REQUEST_STORED_CONTEXT *)pHttpContext->GetModuleContextContainer()->GetModuleContext(g_pModuleContext); + + if(rsc == NULL || rsc->m_pRequestRec == NULL || rsc->m_pResponseBuffer != NULL) + { + goto Exit; + } + + HRESULT hr = S_OK; + IHttpResponse *pHttpResponse = NULL; + HTTP_RESPONSE *pRawHttpResponse = NULL; + HTTP_BYTE_RANGE *pFileByteRange = NULL; + HTTP_DATA_CHUNK *pSourceDataChunk = NULL; + LARGE_INTEGER lFileSize; + REQUEST_NOTIFICATION_STATUS ret = RQ_NOTIFICATION_CONTINUE; + ULONG ulTotalLength = 0; + DWORD c, bytesRead; + request_rec *r = rsc->m_pRequestRec; + + pHttpResponse = pHttpContext->GetResponse(); + pRawHttpResponse = pHttpResponse->GetRawHttpResponse(); + + // here we must add handling of chunked response + // apparently IIS 7 calls this handler once per chunk + // see: http://stackoverflow.com/questions/4385249/how-to-buffer-and-process-chunked-data-before-sending-headers-in-iis7-native-mod + + if(pRawHttpResponse->EntityChunkCount == 0) + goto Exit; + + // here we must transfer response headers + // + USHORT ctcch = 0; + char *ct = (char *)pHttpResponse->GetHeader(HttpHeaderContentType, &ctcch); + char *ctz = ZeroTerminate(ct, ctcch, r->pool); + + // assume HTML if content type not set + // without this output filter would not buffer response and processing would hang + // this needs further investigation (it did not repro on debug build) + // + if(ctz[0] == 0) + ctz = "text/html"; + + r->content_type = ctz; + +#define _TRANSHEADER(id,str) if(pRawHttpResponse->Headers.KnownHeaders[id].pRawValue != NULL) \ + {\ + apr_table_setn(r->headers_out, str, \ + ZeroTerminate(pRawHttpResponse->Headers.KnownHeaders[id].pRawValue, pRawHttpResponse->Headers.KnownHeaders[id].RawValueLength, r->pool)); \ + } + + _TRANSHEADER(HttpHeaderCacheControl, "Cache-Control"); + _TRANSHEADER(HttpHeaderConnection, "Connection"); + _TRANSHEADER(HttpHeaderDate, "Date"); + _TRANSHEADER(HttpHeaderKeepAlive, "Keep-Alive"); + _TRANSHEADER(HttpHeaderPragma, "Pragma"); + _TRANSHEADER(HttpHeaderTrailer, "Trailer"); + _TRANSHEADER(HttpHeaderTransferEncoding, "Transfer-Encoding"); + _TRANSHEADER(HttpHeaderUpgrade, "Upgrade"); + _TRANSHEADER(HttpHeaderVia, "Via"); + _TRANSHEADER(HttpHeaderWarning, "Warning"); + _TRANSHEADER(HttpHeaderAllow, "Allow"); + _TRANSHEADER(HttpHeaderContentLength, "Content-Length"); + _TRANSHEADER(HttpHeaderContentType, "Content-Type"); + _TRANSHEADER(HttpHeaderContentEncoding, "Content-Encoding"); + _TRANSHEADER(HttpHeaderContentLanguage, "Content-Language"); + _TRANSHEADER(HttpHeaderContentLocation, "Content-Location"); + _TRANSHEADER(HttpHeaderContentMd5, "Content-Md5"); + _TRANSHEADER(HttpHeaderContentRange, "Content-Range"); + _TRANSHEADER(HttpHeaderExpires, "Expires"); + _TRANSHEADER(HttpHeaderLastModified, "Last-Modified"); + _TRANSHEADER(HttpHeaderAcceptRanges, "Accept-Ranges"); + _TRANSHEADER(HttpHeaderAge, "Age"); + _TRANSHEADER(HttpHeaderEtag, "Etag"); + _TRANSHEADER(HttpHeaderLocation, "Location"); + _TRANSHEADER(HttpHeaderProxyAuthenticate, "Proxy-Authenticate"); + _TRANSHEADER(HttpHeaderRetryAfter, "Retry-After"); + _TRANSHEADER(HttpHeaderServer, "Server"); + _TRANSHEADER(HttpHeaderSetCookie, "Set-Cookie"); + _TRANSHEADER(HttpHeaderVary, "Vary"); + _TRANSHEADER(HttpHeaderWwwAuthenticate, "Www-Authenticate"); + +#undef _TRANSHEADER + + for(int i = 0; i < pRawHttpResponse->Headers.UnknownHeaderCount; i++) + { + apr_table_setn(r->headers_out, + ZeroTerminate(pRawHttpResponse->Headers.pUnknownHeaders[i].pName, pRawHttpResponse->Headers.pUnknownHeaders[i].NameLength, r->pool), + ZeroTerminate(pRawHttpResponse->Headers.pUnknownHeaders[i].pRawValue, pRawHttpResponse->Headers.pUnknownHeaders[i].RawValueLength, r->pool)); + } + + r->content_encoding = apr_table_get(r->headers_out, "Content-Encoding"); + //r->content_type = apr_table_get(r->headers_out, "Content-Type"); -- already set above + + const char *lng = apr_table_get(r->headers_out, "Content-Languages"); + + if(lng != NULL) + { + r->content_languages = apr_array_make(r->pool, 1, sizeof(const char *)); + + *(const char **)apr_array_push(r->content_languages) = lng; + } + + // Disable kernel caching for this response + // Probably we don't have to do it for ModSecurity + + //pHttpContext->GetResponse()->DisableKernelCache( + // IISCacheEvents::HTTPSYS_CACHEABLE::HANDLER_HTTPSYS_UNFRIENDLY); + + for(c = 0; c < pRawHttpResponse->EntityChunkCount; c++ ) + { + pSourceDataChunk = &pRawHttpResponse->pEntityChunks[ c ]; + + switch( pSourceDataChunk->DataChunkType ) + { + case HttpDataChunkFromMemory: + ulTotalLength += pSourceDataChunk->FromMemory.BufferLength; + break; + case HttpDataChunkFromFileHandle: + pFileByteRange = &pSourceDataChunk->FromFileHandle.ByteRange; + // + // File chunks may contain by ranges with unspecified length + // (HTTP_BYTE_RANGE_TO_EOF). In order to send parts of such a chunk, + // its necessary to know when the chunk is finished, and + // we need to move to the next chunk. + // + if ( pFileByteRange->Length.QuadPart == HTTP_BYTE_RANGE_TO_EOF) + { + if ( GetFileType( pSourceDataChunk->FromFileHandle.FileHandle ) == + FILE_TYPE_DISK ) + { + if ( !GetFileSizeEx( pSourceDataChunk->FromFileHandle.FileHandle, + &lFileSize ) ) + { + DWORD dwError = GetLastError(); + hr = HRESULT_FROM_WIN32(dwError); + goto Finished; + } + + // put the resolved file length in the chunk, replacing + // HTTP_BYTE_RANGE_TO_EOF + pFileByteRange->Length.QuadPart = + lFileSize.QuadPart - pFileByteRange->StartingOffset.QuadPart; + } + else + { + hr = HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + goto Finished; + } + } + + ulTotalLength += pFileByteRange->Length.QuadPart; + break; + default: + // TBD: consider implementing HttpDataChunkFromFragmentCache, + // and HttpDataChunkFromFragmentCacheEx + hr = HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + goto Finished; + } + } + + rsc->m_pResponseBuffer = (char *)apr_palloc(rsc->m_pRequestRec->pool, ulTotalLength); + + ulTotalLength = 0; + + for(c = 0; c < pRawHttpResponse->EntityChunkCount; c++ ) + { + pSourceDataChunk = &pRawHttpResponse->pEntityChunks[ c ]; + + switch( pSourceDataChunk->DataChunkType ) + { + case HttpDataChunkFromMemory: + memcpy(rsc->m_pResponseBuffer + ulTotalLength, pSourceDataChunk->FromMemory.pBuffer, pSourceDataChunk->FromMemory.BufferLength); + ulTotalLength += pSourceDataChunk->FromMemory.BufferLength; + break; + case HttpDataChunkFromFileHandle: + pFileByteRange = &pSourceDataChunk->FromFileHandle.ByteRange; + + if(ReadFileChunk(pSourceDataChunk, rsc->m_pResponseBuffer + ulTotalLength) != S_OK) + { + DWORD dwErr = GetLastError(); + + hr = HRESULT_FROM_WIN32(dwErr); + } + + ulTotalLength += pFileByteRange->Length.QuadPart; + break; + default: + // TBD: consider implementing HttpDataChunkFromFragmentCache, + // and HttpDataChunkFromFragmentCacheEx + hr = HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + goto Finished; + } + } + + rsc->m_pResponseLength = ulTotalLength; + + // + // If there's no content-length set, we need to set it to avoid chunked transfer mode + // We can only do it if there is it's the only response to be sent. + // + + DWORD dwFlags = pResponseProvider->GetFlags(); + + if (pResponseProvider->GetHeadersBeingSent() && + (dwFlags & HTTP_SEND_RESPONSE_FLAG_MORE_DATA) == 0 && + pHttpContext->GetResponse()->GetHeader(HttpHeaderContentLength) == NULL) + { + CHAR szLength[21]; //Max length for a 64 bit int is 20 + + ZeroMemory(szLength, sizeof(szLength)); + + hr = StringCchPrintfA( + szLength, + sizeof(szLength) / sizeof(CHAR) - 1, "%d", + ulTotalLength); + + if(FAILED(hr)) + { + goto Finished; + } + + hr = pHttpContext->GetResponse()->SetHeader( + HttpHeaderContentLength, + szLength, + (USHORT)strlen(szLength), + TRUE); + + if(FAILED(hr)) + { + goto Finished; + } + } + +Finished: + + int status = modsecProcessResponse(rsc->m_pRequestRec); + + // the logic here is temporary, needs clarification + // + if(status != 0 && status != -1) + { + pHttpContext->GetResponse()->Clear(); + pHttpContext->GetResponse()->SetStatus(status, "ModSecurity Action"); + pHttpContext->SetRequestHandled(); + + rsc->FinishRequest(); + + return RQ_NOTIFICATION_FINISH_REQUEST; + } +Exit: + // temporary hack, in reality OnSendRequest theoretically could possibly come before OnEndRequest + // + if(rsc != NULL) + rsc->FinishRequest(); + + return RQ_NOTIFICATION_CONTINUE; +} + +REQUEST_NOTIFICATION_STATUS +CMyHttpModule::OnPostEndRequest( + IN IHttpContext * pHttpContext, + IN IHttpEventProvider * pProvider +) +{ + REQUEST_STORED_CONTEXT *rsc = NULL; + + rsc = (REQUEST_STORED_CONTEXT *)pHttpContext->GetModuleContextContainer()->GetModuleContext(g_pModuleContext); + + // only finish request if OnSendResponse have been called already + // + if(rsc != NULL && rsc->m_pResponseBuffer != NULL) + { + rsc->FinishRequest(); + } + + return RQ_NOTIFICATION_CONTINUE; +} + +REQUEST_NOTIFICATION_STATUS +CMyHttpModule::OnBeginRequest( + IN IHttpContext * pHttpContext, + IN IHttpEventProvider * pProvider +) +{ + HRESULT hr = S_OK; + IHttpRequest* pRequest = NULL; + MODSECURITY_STORED_CONTEXT* pConfig = NULL; + + UNREFERENCED_PARAMETER ( pProvider ); + + if ( pHttpContext == NULL ) + { + hr = E_UNEXPECTED; + goto Finished; + } + + pRequest = pHttpContext->GetRequest(); + + if ( pRequest == NULL ) + { + hr = E_UNEXPECTED; + goto Finished; + } + + hr = MODSECURITY_STORED_CONTEXT::GetConfig(pHttpContext, &pConfig ); + + if ( FAILED( hr ) ) + { + //hr = E_UNEXPECTED; + hr = S_OK; + goto Finished; + } + + // If module is disabled, dont go any further + // + if( pConfig->GetIsEnabled() == false ) + { + goto Finished; + } + + // every 3 seconds we check for changes in config file + // + DWORD ctime = GetTickCount(); + + if(pConfig->m_Config == NULL || (ctime - pConfig->m_dwLastCheck) > 3000) + { + char *path; + USHORT pathlen; + + hr = pConfig->GlobalWideCharToMultiByte(pConfig->GetPath(), wcslen(pConfig->GetPath()), &path, &pathlen); + + if ( FAILED( hr ) ) + { + hr = E_UNEXPECTED; + goto Finished; + } + + WIN32_FILE_ATTRIBUTE_DATA fdata; + BOOL ret; + + ret = GetFileAttributesEx(path, GetFileExInfoStandard, &fdata); + + pConfig->m_dwLastCheck = ctime; + + if(ret == 0 || pConfig->m_LastChange.dwLowDateTime != fdata.ftLastWriteTime.dwLowDateTime || + pConfig->m_LastChange.dwHighDateTime != fdata.ftLastWriteTime.dwHighDateTime) + { + pConfig->m_LastChange.dwLowDateTime = fdata.ftLastWriteTime.dwLowDateTime; + pConfig->m_LastChange.dwHighDateTime = fdata.ftLastWriteTime.dwHighDateTime; + + pConfig->m_Config = modsecGetDefaultConfig(); + + if(path[0] != 0) + { + const char * err = modsecProcessConfig((directory_config *)pConfig->m_Config, path); + + if(err != NULL) + { + WriteEventViewerLog(err, EVENTLOG_ERROR_TYPE); + } + } + + delete path; + } + } + + conn_rec *c; + request_rec *r; + + c = modsecNewConnection(); + + modsecProcessConnection(c); + + r = modsecNewRequest(c, (directory_config *)pConfig->m_Config); + + REQUEST_STORED_CONTEXT *rsc = new REQUEST_STORED_CONTEXT(); + + rsc->m_pConnRec = c; + rsc->m_pRequestRec = r; + rsc->m_pHttpContext = pHttpContext; + rsc->m_pProvider = pProvider; + + pHttpContext->GetModuleContextContainer()->SetModuleContext(rsc, g_pModuleContext); + + StoreIISContext(r, rsc); + + HTTP_REQUEST *req = pRequest->GetRawHttpRequest(); + + r->hostname = ConvertUTF16ToUTF8(req->CookedUrl.pHost, req->CookedUrl.HostLength, r->pool); + r->path_info = ConvertUTF16ToUTF8(req->CookedUrl.pAbsPath, req->CookedUrl.AbsPathLength, r->pool); + + if(r->hostname == NULL) + { + if(req->Headers.KnownHeaders[HttpHeaderHost].pRawValue != NULL) + r->hostname = ZeroTerminate(req->Headers.KnownHeaders[HttpHeaderHost].pRawValue, + req->Headers.KnownHeaders[HttpHeaderHost].RawValueLength, r->pool); + } + + int port = 0; + char *port_str = NULL; + + if(r->hostname != NULL) + { + int k = 0; + char *ptr = (char *)r->hostname; + + while(*ptr != 0 && *ptr != ':') + ptr++; + + if(*ptr == ':') + { + *ptr = 0; + port_str = ptr + 1; + port = atoi(port_str); + } + } + + if(req->CookedUrl.pQueryString != NULL) + r->args = ConvertUTF16ToUTF8(req->CookedUrl.pQueryString + 1, req->CookedUrl.QueryStringLength - 1, r->pool); + +#define _TRANSHEADER(id,str) if(req->Headers.KnownHeaders[id].pRawValue != NULL) \ + {\ + apr_table_setn(r->headers_in, str, \ + ZeroTerminate(req->Headers.KnownHeaders[id].pRawValue, req->Headers.KnownHeaders[id].RawValueLength, r->pool)); \ + } + + _TRANSHEADER(HttpHeaderCacheControl, "Cache-Control"); + _TRANSHEADER(HttpHeaderConnection, "Connection"); + _TRANSHEADER(HttpHeaderDate, "Date"); + _TRANSHEADER(HttpHeaderKeepAlive, "Keep-Alive"); + _TRANSHEADER(HttpHeaderPragma, "Pragma"); + _TRANSHEADER(HttpHeaderTrailer, "Trailer"); + _TRANSHEADER(HttpHeaderTransferEncoding, "Transfer-Encoding"); + _TRANSHEADER(HttpHeaderUpgrade, "Upgrade"); + _TRANSHEADER(HttpHeaderVia, "Via"); + _TRANSHEADER(HttpHeaderWarning, "Warning"); + _TRANSHEADER(HttpHeaderAllow, "Allow"); + _TRANSHEADER(HttpHeaderContentLength, "Content-Length"); + _TRANSHEADER(HttpHeaderContentType, "Content-Type"); + _TRANSHEADER(HttpHeaderContentEncoding, "Content-Encoding"); + _TRANSHEADER(HttpHeaderContentLanguage, "Content-Language"); + _TRANSHEADER(HttpHeaderContentLocation, "Content-Location"); + _TRANSHEADER(HttpHeaderContentMd5, "Content-Md5"); + _TRANSHEADER(HttpHeaderContentRange, "Content-Range"); + _TRANSHEADER(HttpHeaderExpires, "Expires"); + _TRANSHEADER(HttpHeaderLastModified, "Last-Modified"); + _TRANSHEADER(HttpHeaderAccept, "Accept"); + _TRANSHEADER(HttpHeaderAcceptCharset, "Accept-Charset"); + _TRANSHEADER(HttpHeaderAcceptEncoding, "Accept-Encoding"); + _TRANSHEADER(HttpHeaderAcceptLanguage, "Accept-Language"); + _TRANSHEADER(HttpHeaderAuthorization, "Authorization"); + _TRANSHEADER(HttpHeaderCookie, "Cookie"); + _TRANSHEADER(HttpHeaderExpect, "Expect"); + _TRANSHEADER(HttpHeaderFrom, "From"); + _TRANSHEADER(HttpHeaderHost, "Host"); + _TRANSHEADER(HttpHeaderIfMatch, "If-Match"); + _TRANSHEADER(HttpHeaderIfModifiedSince, "If-Modified-Since"); + _TRANSHEADER(HttpHeaderIfNoneMatch, "If-None-Match"); + _TRANSHEADER(HttpHeaderIfRange, "If-Range"); + _TRANSHEADER(HttpHeaderIfUnmodifiedSince, "If-Unmodified-Since"); + _TRANSHEADER(HttpHeaderMaxForwards, "Max-Forwards"); + _TRANSHEADER(HttpHeaderProxyAuthorization, "Proxy-Authorization"); + _TRANSHEADER(HttpHeaderReferer, "Referer"); + _TRANSHEADER(HttpHeaderRange, "Range"); + _TRANSHEADER(HttpHeaderTe, "TE"); + _TRANSHEADER(HttpHeaderTranslate, "Translate"); + _TRANSHEADER(HttpHeaderUserAgent, "User-Agent"); + +#undef _TRANSHEADER + + for(int i = 0; i < req->Headers.UnknownHeaderCount; i++) + { + apr_table_setn(r->headers_in, + ZeroTerminate(req->Headers.pUnknownHeaders[i].pName, req->Headers.pUnknownHeaders[i].NameLength, r->pool), + ZeroTerminate(req->Headers.pUnknownHeaders[i].pRawValue, req->Headers.pUnknownHeaders[i].RawValueLength, r->pool)); + } + + r->content_encoding = apr_table_get(r->headers_in, "Content-Encoding"); + r->content_type = apr_table_get(r->headers_in, "Content-Type"); + + const char *lng = apr_table_get(r->headers_in, "Content-Languages"); + + if(lng != NULL) + { + r->content_languages = apr_array_make(r->pool, 1, sizeof(const char *)); + + *(const char **)apr_array_push(r->content_languages) = lng; + } + + switch(req->Verb) + { + case HttpVerbUnparsed: + case HttpVerbUnknown: + case HttpVerbInvalid: + case HttpVerbTRACK: // used by Microsoft Cluster Server for a non-logged trace + case HttpVerbSEARCH: + default: + r->method = "INVALID"; + r->method_number = M_INVALID; + break; + case HttpVerbOPTIONS: + r->method = "OPTIONS"; + r->method_number = M_OPTIONS; + break; + case HttpVerbGET: + case HttpVerbHEAD: + r->method = "GET"; + r->method_number = M_GET; + break; + case HttpVerbPOST: + r->method = "POST"; + r->method_number = M_POST; + break; + case HttpVerbPUT: + r->method = "PUT"; + r->method_number = M_PUT; + break; + case HttpVerbDELETE: + r->method = "DELETE"; + r->method_number = M_DELETE; + break; + case HttpVerbTRACE: + r->method = "TRACE"; + r->method_number = M_TRACE; + break; + case HttpVerbCONNECT: + r->method = "CONNECT"; + r->method_number = M_CONNECT; + break; + case HttpVerbMOVE: + r->method = "MOVE"; + r->method_number = M_MOVE; + break; + case HttpVerbCOPY: + r->method = "COPY"; + r->method_number = M_COPY; + break; + case HttpVerbPROPFIND: + r->method = "PROPFIND"; + r->method_number = M_PROPFIND; + break; + case HttpVerbPROPPATCH: + r->method = "PROPPATCH"; + r->method_number = M_PROPPATCH; + break; + case HttpVerbMKCOL: + r->method = "MKCOL"; + r->method_number = M_MKCOL; + break; + case HttpVerbLOCK: + r->method = "LOCK"; + r->method_number = M_LOCK; + break; + case HttpVerbUNLOCK: + r->method = "UNLOCK"; + r->method_number = M_UNLOCK; + break; + } + + if(HTTP_EQUAL_VERSION(req->Version, 0, 9)) + r->protocol = "HTTP/0.9"; + else if(HTTP_EQUAL_VERSION(req->Version, 1, 0)) + r->protocol = "HTTP/1.0"; + else + r->protocol = "HTTP/1.1"; + + r->request_time = apr_time_now(); + + r->parsed_uri.scheme = "http"; + r->parsed_uri.path = r->path_info; + r->parsed_uri.hostname = (char *)r->hostname; + r->parsed_uri.is_initialized = 1; + r->parsed_uri.port = port; + r->parsed_uri.port_str = port_str; + r->parsed_uri.query = r->args; + r->parsed_uri.dns_looked_up = 0; + r->parsed_uri.dns_resolved = 0; + r->parsed_uri.password = NULL; + r->parsed_uri.user = NULL; + r->parsed_uri.fragment = NULL; + + r->unparsed_uri = ZeroTerminate(req->pRawUrl, req->RawUrlLength, r->pool); + r->uri = r->unparsed_uri; + + r->the_request = (char *)apr_palloc(r->pool, strlen(r->method) + 1 + req->RawUrlLength + 1 + strlen(r->protocol) + 1); + + strcpy(r->the_request, r->method); + strcat(r->the_request, " "); + strcat(r->the_request, r->uri); + strcat(r->the_request, " "); + strcat(r->the_request, r->protocol); + + HTTP_REQUEST_ID httpRequestID; + char *pszValue = (char *)apr_palloc(r->pool, 24); + + httpRequestID = pRequest->GetRawHttpRequest()->RequestId; + + _ui64toa(httpRequestID, pszValue, 10); + + apr_table_setn(r->subprocess_env, "UNIQUE_ID", pszValue); + + int status = modsecProcessRequest(r); + + if(status != DECLINED) + { + pHttpContext->GetResponse()->SetStatus(status, "ModSecurity Action"); + pHttpContext->SetRequestHandled(); + + return RQ_NOTIFICATION_FINISH_REQUEST; + } + +Finished: + + if ( FAILED( hr ) ) + { + return RQ_NOTIFICATION_FINISH_REQUEST; + } + return RQ_NOTIFICATION_CONTINUE; +} + +apr_status_t ReadBodyCallback(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos) +{ + REQUEST_STORED_CONTEXT *rsc = RetrieveIISContext(r); + + *readcnt = 0; + + if(rsc == NULL) + { + *is_eos = 1; + return APR_SUCCESS; + } + + IHttpContext *pHttpContext = rsc->m_pHttpContext; + IHttpRequest *pRequest = pHttpContext->GetRequest(); + + if(pRequest->GetRemainingEntityBytes() == 0) + { + *is_eos = 1; + return APR_SUCCESS; + } + + HRESULT hr = pRequest->ReadEntityBody(buf, length, false, (DWORD *)readcnt, NULL); + + if (FAILED(hr)) + { + // End of data is okay. + if (ERROR_HANDLE_EOF != (hr & 0x0000FFFF)) + { + // Set the error status. + rsc->m_pProvider->SetErrorStatus( hr ); + } + + *is_eos = 1; + } + + return APR_SUCCESS; +} + +apr_status_t WriteBodyCallback(request_rec *r, char *buf, unsigned int length) +{ + REQUEST_STORED_CONTEXT *rsc = RetrieveIISContext(r); + + if(rsc == NULL || rsc->m_pRequestRec == NULL) + return APR_SUCCESS; + + IHttpContext *pHttpContext = rsc->m_pHttpContext; + IHttpRequest *pHttpRequest = pHttpContext->GetRequest(); + + CHAR szLength[21]; //Max length for a 64 bit int is 20 + + ZeroMemory(szLength, sizeof(szLength)); + + HRESULT hr = StringCchPrintfA( + szLength, + sizeof(szLength) / sizeof(CHAR) - 1, "%d", + length); + + if(FAILED(hr)) + { + // not possible + } + + hr = pHttpRequest->SetHeader( + HttpHeaderContentLength, + szLength, + (USHORT)strlen(szLength), + TRUE); + + if(FAILED(hr)) + { + // possible, but there's nothing we can do + } + + // since we clean the APR pool at the end of OnSendRequest, we must get IIS-managed memory chunk + // + void *reqbuf = pHttpContext->AllocateRequestMemory(length); + + memcpy(reqbuf, buf, length); + + pHttpRequest->InsertEntityBody(reqbuf, length); + + return APR_SUCCESS; +} + +apr_status_t ReadResponseCallback(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos) +{ + REQUEST_STORED_CONTEXT *rsc = RetrieveIISContext(r); + + *readcnt = 0; + + if(rsc == NULL || rsc->m_pResponseBuffer == NULL) + { + *is_eos = 1; + return APR_SUCCESS; + } + + unsigned int size = length; + + if(size > rsc->m_pResponseLength - rsc->m_pResponsePosition) + size = rsc->m_pResponseLength - rsc->m_pResponsePosition; + + memcpy(buf, rsc->m_pResponseBuffer + rsc->m_pResponsePosition, size); + + *readcnt = size; + rsc->m_pResponsePosition += size; + + if(rsc->m_pResponsePosition >= rsc->m_pResponseLength) + *is_eos = 1; + + return APR_SUCCESS; +} + +apr_status_t WriteResponseCallback(request_rec *r, char *buf, unsigned int length) +{ + REQUEST_STORED_CONTEXT *rsc = RetrieveIISContext(r); + + if(rsc == NULL || rsc->m_pRequestRec == NULL || rsc->m_pResponseBuffer == NULL) + return APR_SUCCESS; + + IHttpContext *pHttpContext = rsc->m_pHttpContext; + IHttpResponse *pHttpResponse = pHttpContext->GetResponse(); + HTTP_RESPONSE *pRawHttpResponse = pHttpResponse->GetRawHttpResponse(); + HTTP_DATA_CHUNK *pDataChunk = (HTTP_DATA_CHUNK *)apr_palloc(rsc->m_pRequestRec->pool, sizeof(HTTP_DATA_CHUNK)); + + pRawHttpResponse->EntityChunkCount = 0; + + // since we clean the APR pool at the end of OnSendRequest, we must get IIS-managed memory chunk + // + void *reqbuf = pHttpContext->AllocateRequestMemory(length); + + memcpy(reqbuf, buf, length); + + pDataChunk->DataChunkType = HttpDataChunkFromMemory; + pDataChunk->FromMemory.pBuffer = reqbuf; + pDataChunk->FromMemory.BufferLength = length; + + CHAR szLength[21]; //Max length for a 64 bit int is 20 + + ZeroMemory(szLength, sizeof(szLength)); + + HRESULT hr = StringCchPrintfA( + szLength, + sizeof(szLength) / sizeof(CHAR) - 1, "%d", + length); + + if(FAILED(hr)) + { + // not possible + } + + hr = pHttpResponse->SetHeader( + HttpHeaderContentLength, + szLength, + (USHORT)strlen(szLength), + TRUE); + + if(FAILED(hr)) + { + // possible, but there's nothing we can do + } + + pHttpResponse->WriteEntityChunkByReference(pDataChunk); + + return APR_SUCCESS; +} + + +CMyHttpModule::CMyHttpModule() +{ + // Open a handle to the Event Viewer. + m_hEventLog = RegisterEventSource( NULL, "ModSecurity" ); + + SYSTEM_INFO sysInfo; + + GetSystemInfo(&sysInfo); + m_dwPageSize = sysInfo.dwPageSize; + + modsecSetLogHook(this, Log); + + modsecSetReadBody(ReadBodyCallback); + modsecSetReadResponse(ReadResponseCallback); + modsecSetWriteBody(WriteBodyCallback); + modsecSetWriteResponse(WriteResponseCallback); + + server_rec *s = modsecInit(); + char *compname = (char *)malloc(128); + DWORD size = 128; + + GetComputerName(compname, &size); + + s->server_hostname = compname; + + modsecStartConfig(); + + modsecFinalizeConfig(); + + modsecInitProcess(); +} + +CMyHttpModule::~CMyHttpModule() +{ + // ModSecurity registers APR pool cleanups, which interfere with APR pool tear down process + // this causes crashes and since we are exiting the process here, so this is a temporary solution + // + //modsecTerminate(); + + //WriteEventViewerLog("Module deleted."); + + // Test whether the handle for the Event Viewer is open. + if (NULL != m_hEventLog) + { + // Close the handle to the Event Viewer. + DeregisterEventSource( m_hEventLog ); + m_hEventLog = NULL; + } +} + +void CMyHttpModule::Dispose() +{ +} + +BOOL CMyHttpModule::WriteEventViewerLog(LPCSTR szNotification, WORD category) +{ + // Test whether the handle for the Event Viewer is open. + if (NULL != m_hEventLog) + { + // Write any strings to the Event Viewer and return. + return ReportEvent( + m_hEventLog, + category, 0, 0, + NULL, 1, 0, &szNotification, NULL ); + } + return FALSE; +} diff --git a/iis/mymodule.def b/iis/mymodule.def new file mode 100644 index 00000000..cb37d10b --- /dev/null +++ b/iis/mymodule.def @@ -0,0 +1,4 @@ +LIBRARY "ModSecurityIIS" + +EXPORTS + RegisterModule diff --git a/iis/mymodule.h b/iis/mymodule.h new file mode 100644 index 00000000..04fbf982 --- /dev/null +++ b/iis/mymodule.h @@ -0,0 +1,42 @@ +#ifndef __MY_MODULE_H__ +#define __MY_MODULE_H__ + +// The module implementation. +// This class is responsible for implementing the +// module functionality for each of the server events +// that it registers for. +class CMyHttpModule : public CHttpModule +{ +public: + HANDLE m_hEventLog; + DWORD m_dwPageSize; + + REQUEST_NOTIFICATION_STATUS + OnBeginRequest( + IN IHttpContext * pHttpContext, + IN IHttpEventProvider * pProvider + ); + + REQUEST_NOTIFICATION_STATUS + OnSendResponse( + IN IHttpContext * pHttpContext, + IN ISendResponseProvider * pProvider + ); + + REQUEST_NOTIFICATION_STATUS + OnPostEndRequest( + IN IHttpContext * pHttpContext, + IN IHttpEventProvider * pProvider + ); + + HRESULT ReadFileChunk(HTTP_DATA_CHUNK *chunk, char *buf); + + CMyHttpModule(); + ~CMyHttpModule(); + + void Dispose(); + + BOOL WriteEventViewerLog(LPCSTR szNotification, WORD category = EVENTLOG_INFORMATION_TYPE); +}; + +#endif diff --git a/iis/mymodulefactory.h b/iis/mymodulefactory.h new file mode 100644 index 00000000..ee868467 --- /dev/null +++ b/iis/mymodulefactory.h @@ -0,0 +1,65 @@ +#ifndef __MODULE_FACTORY_H__ +#define __MODULE_FACTORY_H__ + +// Factory class for CMyHttpModule. +// This class is responsible for creating instances +// of CMyHttpModule for each request. +class CMyHttpModuleFactory : public IHttpModuleFactory +{ + CMyHttpModule * m_pModule; + +public: + CMyHttpModuleFactory() + { + m_pModule = NULL; + } + + virtual + HRESULT + GetHttpModule( + OUT CHttpModule **ppModule, + IN IModuleAllocator * + ) + { + HRESULT hr = S_OK; + + if ( ppModule == NULL ) + { + hr = HRESULT_FROM_WIN32( ERROR_INVALID_PARAMETER ); + goto Finished; + } + + if(m_pModule == NULL) + { + m_pModule = new CMyHttpModule(); + + if ( m_pModule == NULL ) + { + hr = HRESULT_FROM_WIN32( ERROR_NOT_ENOUGH_MEMORY ); + goto Finished; + } + } + + *ppModule = m_pModule; + + Finished: + + return hr; + } + + virtual + void + Terminate() + { + if ( m_pModule != NULL ) + { + //m_pModule->WriteEventViewerLog("Module terminated."); + delete m_pModule; + m_pModule = NULL; + } + + delete this; + } +}; + +#endif diff --git a/iis/readme.htm b/iis/readme.htm new file mode 100644 index 00000000..02cb92f8 --- /dev/null +++ b/iis/readme.htm @@ -0,0 +1,320 @@ + + + + Creating a Native Module for IIS7 + + +

+ Creating a Native Module for IIS7

+

+ To extend the server, IIS7 provides a new (C++) native core server API, which replaces + ISAPI filter and extension API from previous IIS releases. The new API features + object-oriented development with an intuitive object model, provides more control + over request processing, and uses simpler design patterns to help you write robust + code. Please visit Developing a Native Module for IIS7 for more information about this sample.
+
+ NOTE: The IIS7 native (C++) server API is declared in the Platform + SDK httpserv.h header file.  You must obtain this SDK + and register it with Visual Studio in order to compile this module.

+

+ A native module is a Windows DLL that contains an the following:

+
    +
  1. RegisterModule exported function.  This function is responsible + for creating a module factory, and registering the module for one or more server + events.
    +
    + + This function is implemented in main.cpp.
    +
    +
  2. +
  3. Implementation of the module class inheriting from the CHttpModule + base class.  This class is provides the main functionality of your module. +
    +
    + + This class is declared in mymodule.h, with method implementations + in mymodule.cpp.
    +
    +
  4. +
  5. Implementation of the module factory class implementing the IHttpModuleFactory + interface.  The class is responsible for creating instances of your module.
    +
    + + This class is declared and implemented in mymodulefactory.h.
+

+ 0. Prerequisites

+

+ In order to compile + the module, you will need to install the Windows Platform SDK that contains the + required IIS header files.  +
+
+ After installing the SDK
, you will need to register + the SDK with Visual Studio 2005.  You + can do this via Start > Programs > Microsoft + Windows SDK > Visual Studio Registration > Register Windows SDK Directories + with Visual Studio.

+

+ 1. Implement RegisterModule entrypoint

+

+ A native module must export the RegisterModule function.  This function will + be invoked by the server when the module DLL is loaded, so that your DLL can register + for the required server events, and provide a mechanism for the server to create + instances of your module class.
+
+ __stdcall +
+ HRESULT RegisterModule( DWORD dwServerVersion, IHttpModuleRegistrationInfo + * pModuleInfo, IHttpServer * pHttpServer );
+
+
+ This function is implemented for you in the main.cpp source file.  + +
+
+ It does the following:

+
    +
  1. Create module factory.  This is an instance + of your CMyModuleFactory class that implements + the IHttpModuleFactory inteface:
    +
    + + // step 2: create module factory
    + pFactory = new CMyHttpModuleFactory();

    +
  2. +
  3. Register module factory for desired server events.  This registers + the module factory for one or more server events that occur during request processing.  + The server will use the factory to create an instance of your module class for each + request, and call the appropriate event handler method on your module instance for + each of the requested events:
    +
    + + + // step 3: register for server events +
    + // TODO: register for more server events here +
    +
    hr = pModuleInfo->SetRequestNotifications( pFactory,
    + /* module factory */ +
    +
                          +                      RQ_ACQUIRE_REQUEST_STATE, + /* server event mask */
    +                         +                    0 + /* server post event mask */ );
    +
    + + The server event mask is a bit mask of one or more request processing event names + declared in +
    + httpserv.h:
    +
    +
    // +
    + // Request deterministic notifications +
    + // +
    +
    + // request is beginning
    +
    + #define RQ_BEGIN_REQUEST 0x00000001 +
    + // request is being authenticated +
    +
    #define RQ_AUTHENTICATE_REQUEST 0x00000002 +
    + // request is being authorized +
    + #define RQ_AUTHORIZE_REQUEST 0x00000004 +
    + // satisfy request from cache +
    + #define RQ_RESOLVE_REQUEST_CACHE 0x00000008 +
    + // map handler for request +
    + #define RQ_MAP_REQUEST_HANDLER 0x00000010 +
    + // acquire request state +
    + #define RQ_ACQUIRE_REQUEST_STATE 0x00000020 +
    + // pre-execute handler +
    + #define RQ_PRE_EXECUTE_REQUEST_HANDLER 0x00000040 +
    + // execute handler +
    + #define RQ_EXECUTE_REQUEST_HANDLER 0x00000080 +
    + // release request state +
    + #define RQ_RELEASE_REQUEST_STATE 0x00000100 +
    + // update cache +
    + #define RQ_UPDATE_REQUEST_CACHE 0x00000200 +
    + // log request +
    + #define RQ_LOG_REQUEST 0x00000400 +
    + // end request +
    + #define RQ_END_REQUEST 0x00000800 +
    +
    + // +
    + // Request non-deterministic notifications +
    + //
    +
    +
    + // custom notification +
    + #define RQ_CUSTOM_NOTIFICATION 0x10000000 +
    + // send response +
    + #define RQ_SEND_RESPONSE 0x20000000 +
    + // read entity +
    + #define RQ_READ_ENTITY 0x40000000 +
    + // map a url to a physical path +
    + #define RQ_MAP_PATH 0x80000000
    +
    + + The post event mask is a bit mask of the same events, allowing to subscribe + to the post events for each of the specified events.
    +
    +
    +
  4. +
+

+

+

+ 2. Implement module factory class

+

+ The server requires a module factory class in order to obtain instances of your + module.  The factory class must implement the IHttpModuleFactory interface + declared in the httpserv.h Windows SDK header file.
+
+ This factory is implemented for you in the mymodulefactory.h header + file.
+
+
The GetHttpModule method of the factory class is called at the beginning of + each request in order to obtain an instance of your module.  The typical implementation + simply returns a new instance of your module class:
+
+ class CMyHttpModuleFactory : public IHttpModuleFactory +
+ { +
+ public: +
+     virtual HRESULT GetHttpModule( OUT CHttpModule **ppModule, IN IModuleAllocator + * ) +
+     { 
+         ...
+         pModule = new CMyHttpModule(); 
+         ...
+         *ppModule = pModule; 
+         ...
+     } 
+
+     virtual void Terminate() { }
+ }

+

+ The Terminate method of the factory class is called during the + shutdown of the worker process, before your module DLL is unloaded.  It typically + releases any resources you may have initialized inside the RegisterModule + function.

+

+ 3. Implement module class

+

+ The module class inherits from the CHttpModule base class, which + defines an event handler method for each of the server events discussed earlier.  + When the server executes each event during the processing of a request, it will + invoke the associated event handler method on each of the module instances that + have registered for that event. 
+
+ This class is declared in the mymodule.h header file, and its event + handler methods are implemented in the mymodule.cpp source file.
+
+ In order to provide processing for each server event, the module class MUST override + the corresponding method.  The signature of each event handler method is the + following:
+
+ REQUEST_NOTIFICATION_STATUS + On<EVENT NAME>( + IN IHttpContext * pHttpContext, + IN OUT IHttpEventProvider * pProvider + ); +
+
+
+ + Where <EVENT NAME> is one of the server events we listed earlier.  For + example, the module in this project initially overrides only the OnAcquireRequestState method since we register only for the RQ_ACQUIRE_REQUEST_STATE event:
+
+ class CMyHttpModule : public + CHttpModule +
+ { +
+ public: +
+
+     // Implementation of the AcquireRequestState + event handler method. +
+     REQUEST_NOTIFICATION_STATUS OnAcquireRequestState( IN IHttpContext + * pHttpContext, IN OUT IHttpEventProvider * pProvider ); +
+
+     // TODO: override additional event handler + methods below. +
+ };

+
+ The implementation of this method provides the module functionality desired for + processing the request in the appropriate pipeline stage.  This project provides + a dummy implementation in the mymodule.cpp source file.

+

+ 4. Deploy the module to the server

+

+ After you have compiled your module, you need to deploy it on the server.  + You can do that by compiling the module, and then copying IIS7NativeModule.dll + (and the IIS7NativeModule.pdb debugging symbols file if desired) + to any location on the machine running IIS7.
+
+ You can install your module on the server by running the following command from an Elevated command line prompt:
+
+ %systemroot%\system32\inetsrv\APPCMD.EXE install module /name:MyModule /image:<FULL + PATH TO DLL>
+
+ Where <FULL_PATH_TO_DLL> is the full path to the module DLL + file.
+
+ You can also install your module using the IIS7 Administration Tool. After installation, + your module will be loaded and enabled in all application pools on the server.  + To learn ore about installing modules, and selecting modules to execute on your + server and for specific applications, please visit www.iis.net.

+

+ Congratulations!

+

+ You have succesfully built and deployed your own IIS7 module.  To learn more + about building IIS7 modules, and to download sample modules, be sure to visit www.iis.net.

+ + \ No newline at end of file diff --git a/iis/winbuild/CMakeLists.txt b/iis/winbuild/CMakeLists.txt new file mode 100644 index 00000000..bfb037f5 --- /dev/null +++ b/iis/winbuild/CMakeLists.txt @@ -0,0 +1,863 @@ +# cURL/libcurl CMake script +# by Tetetest and Sukender (Benoit Neil) + +# TODO: +# The output .so file lacks the soname number which we currently have within the lib/Makefile.am file +# Add full (4 or 5 libs) SSL support +# Add INSTALL target (EXTRA_DIST variables in Makefile.am may be moved to Makefile.inc so that CMake/CPack is aware of what's to include). +# Add CTests(?) +# Check on all possible platforms +# Test with as many configurations possible (With or without any option) +# Create scripts that help keeping the CMake build system up to date (to reduce maintenance). According to Tetetest: +# - lists of headers that 'configure' checks for; +# - curl-specific tests (the ones that are in m4/curl-*.m4 files); +# - (most obvious thing:) curl version numbers. +# Add documentation subproject +# +# To check: +# (From Daniel Stenberg) The cmake build selected to run gcc with -fPIC on my box while the plain configure script did not. +# (From Daniel Stenberg) The gcc command line use neither -g nor any -O options. As a developer, I also treasure our configure scripts's --enable-debug option that sets a long range of "picky" compiler options. +cmake_minimum_required(VERSION 2.6.2 FATAL_ERROR) +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}") +include(Utilities) + +project( CURL C ) + +file (READ ${CURL_SOURCE_DIR}/include/curl/curlver.h CURL_VERSION_H_CONTENTS) +string (REGEX MATCH "LIBCURL_VERSION_MAJOR[ \t]+([0-9]+)" + LIBCURL_VERSION_MJ ${CURL_VERSION_H_CONTENTS}) +string (REGEX MATCH "([0-9]+)" + LIBCURL_VERSION_MJ ${LIBCURL_VERSION_MJ}) +string (REGEX MATCH + "LIBCURL_VERSION_MINOR[ \t]+([0-9]+)" + LIBCURL_VERSION_MI ${CURL_VERSION_H_CONTENTS}) +string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_MI ${LIBCURL_VERSION_MI}) +string (REGEX MATCH + "LIBCURL_VERSION_PATCH[ \t]+([0-9]+)" + LIBCURL_VERSION_PT ${CURL_VERSION_H_CONTENTS}) +string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_PT ${LIBCURL_VERSION_PT}) +set (CURL_MAJOR_VERSION ${LIBCURL_VERSION_MJ}) +set (CURL_MINOR_VERSION ${LIBCURL_VERSION_MI}) +set (CURL_PATCH_VERSION ${LIBCURL_VERSION_PT}) + +include_regular_expression("^.*$") # Sukender: Is it necessary? + +# Setup package meta-data +# SET(PACKAGE "curl") +set(CURL_VERSION ${CURL_MAJOR_VERSION}.${CURL_MINOR_VERSION}.${CURL_PATCH_VERSION}) +message(STATUS "curl version=[${CURL_VERSION}]") +# SET(PACKAGE_TARNAME "curl") +# SET(PACKAGE_NAME "curl") +# SET(PACKAGE_VERSION "-") +# SET(PACKAGE_STRING "curl-") +# SET(PACKAGE_BUGREPORT "a suitable curl mailing list => http://curl.haxx.se/mail/") +set(OPERATING_SYSTEM "${CMAKE_SYSTEM_NAME}") +set(OS "\"${CMAKE_SYSTEM_NAME}\"") + +include_directories(${PROJECT_BINARY_DIR}/include/curl) +include_directories( ${CURL_SOURCE_DIR}/include ) + +if(WIN32) + set(NATIVE_WINDOWS ON) +endif() + +option(BUILD_CURL_EXE "Set to ON to build cURL executable." ON) +option(BUILD_CURL_TESTS "Set to ON to build cURL tests." ON) +option(CURL_STATICLIB "Set to ON to build libcurl with static linking." OFF) +option(CURL_USE_ARES "Set to ON to enable c-ares support" OFF) +# initialize CURL_LIBS +set(CURL_LIBS "") + +if(CURL_USE_ARES) + set(USE_ARES ${CURL_USE_ARES}) + find_package(CARES REQUIRED) + list(APPEND CURL_LIBS ${CARES_LIBRARY} ) + set(CURL_LIBS ${CURL_LIBS} ${CARES_LIBRARY}) +endif() + +option(BUILD_DASHBOARD_REPORTS "Set to ON to activate reporting of cURL builds here http://www.cdash.org/CDashPublic/index.php?project=CURL" OFF) +if(BUILD_DASHBOARD_REPORTS) + #INCLUDE(Dart) + include(CTest) +endif(BUILD_DASHBOARD_REPORTS) + +if(MSVC) + option(BUILD_RELEASE_DEBUG_DIRS "Set OFF to build each configuration to a separate directory" OFF) + mark_as_advanced(BUILD_RELEASE_DEBUG_DIRS) +endif() + +option(CURL_HIDDEN_SYMBOLS "Set to ON to hide libcurl internal symbols (=hide all symbols that aren't officially external)." ON) +mark_as_advanced(CURL_HIDDEN_SYMBOLS) + +# IF(WIN32) +# OPTION(CURL_WINDOWS_SSPI "Use windows libraries to allow NTLM authentication without openssl" ON) +# MARK_AS_ADVANCED(CURL_WINDOWS_SSPI) +# ENDIF() + +option(HTTP_ONLY "disables all protocols except HTTP (This overrides all CURL_DISABLE_* options)" OFF) +mark_as_advanced(HTTP_ONLY) +option(CURL_DISABLE_FTP "disables FTP" OFF) +mark_as_advanced(CURL_DISABLE_FTP) +option(CURL_DISABLE_LDAP "disables LDAP" OFF) +mark_as_advanced(CURL_DISABLE_LDAP) +option(CURL_DISABLE_TELNET "disables Telnet" OFF) +mark_as_advanced(CURL_DISABLE_TELNET) +option(CURL_DISABLE_DICT "disables DICT" OFF) +mark_as_advanced(CURL_DISABLE_DICT) +option(CURL_DISABLE_FILE "disables FILE" OFF) +mark_as_advanced(CURL_DISABLE_FILE) +option(CURL_DISABLE_TFTP "disables TFTP" OFF) +mark_as_advanced(CURL_DISABLE_TFTP) +option(CURL_DISABLE_HTTP "disables HTTP" OFF) +mark_as_advanced(CURL_DISABLE_HTTP) + +option(CURL_DISABLE_LDAPS "to disable LDAPS" OFF) +mark_as_advanced(CURL_DISABLE_LDAPS) +if(WIN32) + set(CURL_DEFAULT_DISABLE_LDAP OFF) + # some windows compilers do not have wldap32 + if( NOT HAVE_WLDAP32) + set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE) + message(STATUS "wldap32 not found CURL_DISABLE_LDAP set ON") + option(CURL_LDAP_WIN "Use Windows LDAP implementation" OFF) + else() + option(CURL_LDAP_WIN "Use Windows LDAP implementation" ON) + endif() + mark_as_advanced(CURL_LDAP_WIN) +endif() + +if(HTTP_ONLY) + set(CURL_DISABLE_FTP ON) + set(CURL_DISABLE_LDAP ON) + set(CURL_DISABLE_TELNET ON) + set(CURL_DISABLE_DICT ON) + set(CURL_DISABLE_FILE ON) + set(CURL_DISABLE_TFTP ON) +endif() + +option(CURL_DISABLE_COOKIES "to disable cookies support" OFF) +mark_as_advanced(CURL_DISABLE_COOKIES) + +option(CURL_DISABLE_CRYPTO_AUTH "to disable cryptographic authentication" OFF) +mark_as_advanced(CURL_DISABLE_CRYPTO_AUTH) +option(CURL_DISABLE_VERBOSE_STRINGS "to disable verbose strings" OFF) +mark_as_advanced(CURL_DISABLE_VERBOSE_STRINGS) +option(DISABLED_THREADSAFE "Set to explicitly specify we don't want to use thread-safe functions" OFF) +mark_as_advanced(DISABLED_THREADSAFE) +option(ENABLE_IPV6 "Define if you want to enable IPv6 support" OFF) +mark_as_advanced(ENABLE_IPV6) + +if(WIN32) + list_spaces_append_once(CMAKE_C_STANDARD_LIBRARIES wsock32.lib ws2_32.lib) # bufferoverflowu.lib + if(CURL_DISABLE_LDAP) + # Remove wldap32.lib from space-separated list + string(REPLACE " " ";" _LIST ${CMAKE_C_STANDARD_LIBRARIES}) + list(REMOVE_ITEM _LIST "wldap32.lib") + to_list_spaces(_LIST CMAKE_C_STANDARD_LIBRARIES) + else() + # Append wldap32.lib + list_spaces_append_once(CMAKE_C_STANDARD_LIBRARIES wldap32.lib) + endif() + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES}" CACHE STRING "" FORCE) +endif() + + +# We need ansi c-flags, especially on HP +set(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}") +set(CMAKE_REQUIRED_FLAGS ${CMAKE_ANSI_CFLAGS}) + +# Disable warnings on Borland to avoid changing 3rd party code. +if(BORLAND) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w-") +endif(BORLAND) + +# If we are on AIX, do the _ALL_SOURCE magic +if(${CMAKE_SYSTEM_NAME} MATCHES AIX) + set(_ALL_SOURCE 1) +endif(${CMAKE_SYSTEM_NAME} MATCHES AIX) + +# Include all the necessary files for macros +include (CheckFunctionExists) +include (CheckIncludeFile) +include (CheckIncludeFiles) +include (CheckLibraryExists) +include (CheckSymbolExists) +include (CheckTypeSize) + +# On windows preload settings +if(WIN32) + include(${CMAKE_CURRENT_SOURCE_DIR}/CMake/Platforms/WindowsCache.cmake) +endif(WIN32) + +# This macro checks if the symbol exists in the library and if it +# does, it prepends library to the list. +macro(CHECK_LIBRARY_EXISTS_CONCAT LIBRARY SYMBOL VARIABLE) + check_library_exists("${LIBRARY};${CURL_LIBS}" ${SYMBOL} "${CMAKE_LIBRARY_PATH}" + ${VARIABLE}) + if(${VARIABLE}) + set(CURL_LIBS ${LIBRARY} ${CURL_LIBS}) + endif(${VARIABLE}) +endmacro(CHECK_LIBRARY_EXISTS_CONCAT) + +# Check for all needed libraries +check_library_exists_concat("dl" dlopen HAVE_LIBDL) +check_library_exists_concat("socket" connect HAVE_LIBSOCKET) +check_library_exists("c" gethostbyname "" NOT_NEED_LIBNSL) + +# Yellowtab Zeta needs different libraries than BeOS 5. +if(BEOS) + set(NOT_NEED_LIBNSL 1) + check_library_exists_concat("bind" gethostbyname HAVE_LIBBIND) + check_library_exists_concat("bnetapi" closesocket HAVE_LIBBNETAPI) +endif(BEOS) + +if(NOT NOT_NEED_LIBNSL) + check_library_exists_concat("nsl" gethostbyname HAVE_LIBNSL) +endif(NOT NOT_NEED_LIBNSL) + +check_library_exists_concat("ws2_32" getch HAVE_LIBWS2_32) +check_library_exists_concat("winmm" getch HAVE_LIBWINMM) +check_library_exists("wldap32" cldap_open "" HAVE_WLDAP32) + +# IF(NOT CURL_SPECIAL_LIBZ) +# CHECK_LIBRARY_EXISTS_CONCAT("z" inflateEnd HAVE_LIBZ) +# ENDIF(NOT CURL_SPECIAL_LIBZ) + +# Check for idn +check_library_exists_concat("idn" idna_to_ascii_lz HAVE_LIBIDN) + +# Check for LDAP +check_library_exists_concat("ldap" ldap_init HAVE_LIBLDAP) +# if(NOT HAVE_LIBLDAP) +# SET(CURL_DISABLE_LDAP ON) +# endif(NOT HAVE_LIBLDAP) + +# Check for symbol dlopen (same as HAVE_LIBDL) +check_library_exists("${CURL_LIBS}" dlopen "" HAVE_DLOPEN) + +# For other tests to use the same libraries +set(CMAKE_REQUIRED_LIBRARIES ${CURL_LIBS}) + +option(CURL_ZLIB "Set to ON to enable building cURL with zlib support." ON) +set(HAVE_LIBZ OFF) +set(HAVE_ZLIB_H OFF) +set(HAVE_ZLIB OFF) +if(CURL_ZLIB) # AND CURL_CONFIG_HAS_BEEN_RUN_BEFORE + find_package(ZLIB QUIET) + if(ZLIB_FOUND) + set(HAVE_ZLIB_H ON) + set(HAVE_ZLIB ON) + set(HAVE_LIBZ ON) + endif() +endif() + +option(CMAKE_USE_OPENSSL "Use OpenSSL code. Experimental" ON) +mark_as_advanced(CMAKE_USE_OPENSSL) +if(CMAKE_USE_OPENSSL) + if(WIN32) + find_package(OpenSSL) + if(OPENSSL_FOUND) + set(USE_SSLEAY TRUE) + set(USE_OPENSSL TRUE) + list(APPEND CURL_LIBS ${OPENSSL_LIBRARIES} ) + else() + set(CMAKE_USE_OPENSSL FALSE) + message(STATUS "OpenSSL NOT Found, disabling CMAKE_USE_OPENSSL") + endif() + else(WIN32) + check_library_exists_concat("crypto" CRYPTO_lock HAVE_LIBCRYPTO) + check_library_exists_concat("ssl" SSL_connect HAVE_LIBSSL) + endif(WIN32) +endif(CMAKE_USE_OPENSSL) + +# If we have features.h, then do the _BSD_SOURCE magic +check_include_file("features.h" HAVE_FEATURES_H) + +# Check if header file exists and add it to the list. +macro(CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE) + check_include_files("${CURL_INCLUDES};${FILE}" ${VARIABLE}) + if(${VARIABLE}) + set(CURL_INCLUDES ${CURL_INCLUDES} ${FILE}) + set(CURL_TEST_DEFINES "${CURL_TEST_DEFINES} -D${VARIABLE}") + endif(${VARIABLE}) +endmacro(CHECK_INCLUDE_FILE_CONCAT) + + +# Check for header files +if(NOT UNIX) + check_include_file_concat("ws2tcpip.h" HAVE_WS2TCPIP_H) + check_include_file_concat("winsock2.h" HAVE_WINSOCK2_H) +endif(NOT UNIX) +check_include_file_concat("stdio.h" HAVE_STDIO_H) +if(NOT UNIX) + check_include_file_concat("windows.h" HAVE_WINDOWS_H) + check_include_file_concat("winsock.h" HAVE_WINSOCK_H) +endif(NOT UNIX) + +check_include_file_concat("inttypes.h" HAVE_INTTYPES_H) +check_include_file_concat("sys/filio.h" HAVE_SYS_FILIO_H) +check_include_file_concat("sys/ioctl.h" HAVE_SYS_IOCTL_H) +check_include_file_concat("sys/param.h" HAVE_SYS_PARAM_H) +check_include_file_concat("sys/poll.h" HAVE_SYS_POLL_H) +check_include_file_concat("sys/resource.h" HAVE_SYS_RESOURCE_H) +check_include_file_concat("sys/select.h" HAVE_SYS_SELECT_H) +check_include_file_concat("sys/socket.h" HAVE_SYS_SOCKET_H) +check_include_file_concat("sys/sockio.h" HAVE_SYS_SOCKIO_H) +check_include_file_concat("sys/stat.h" HAVE_SYS_STAT_H) +check_include_file_concat("sys/time.h" HAVE_SYS_TIME_H) +check_include_file_concat("sys/types.h" HAVE_SYS_TYPES_H) +check_include_file_concat("sys/uio.h" HAVE_SYS_UIO_H) +check_include_file_concat("sys/un.h" HAVE_SYS_UN_H) +check_include_file_concat("sys/utime.h" HAVE_SYS_UTIME_H) +check_include_file_concat("alloca.h" HAVE_ALLOCA_H) +check_include_file_concat("arpa/inet.h" HAVE_ARPA_INET_H) +check_include_file_concat("arpa/tftp.h" HAVE_ARPA_TFTP_H) +check_include_file_concat("assert.h" HAVE_ASSERT_H) +check_include_file_concat("crypto.h" HAVE_CRYPTO_H) +check_include_file_concat("des.h" HAVE_DES_H) +check_include_file_concat("err.h" HAVE_ERR_H) +check_include_file_concat("errno.h" HAVE_ERRNO_H) +check_include_file_concat("fcntl.h" HAVE_FCNTL_H) +check_include_file_concat("gssapi/gssapi.h" HAVE_GSSAPI_GSSAPI_H) +check_include_file_concat("gssapi/gssapi_generic.h" HAVE_GSSAPI_GSSAPI_GENERIC_H) +check_include_file_concat("gssapi/gssapi_krb5.h" HAVE_GSSAPI_GSSAPI_KRB5_H) +check_include_file_concat("idn-free.h" HAVE_IDN_FREE_H) +check_include_file_concat("ifaddrs.h" HAVE_IFADDRS_H) +check_include_file_concat("io.h" HAVE_IO_H) +check_include_file_concat("krb.h" HAVE_KRB_H) +check_include_file_concat("libgen.h" HAVE_LIBGEN_H) +check_include_file_concat("libssh2.h" HAVE_LIBSSH2_H) +check_include_file_concat("limits.h" HAVE_LIMITS_H) +check_include_file_concat("locale.h" HAVE_LOCALE_H) +check_include_file_concat("net/if.h" HAVE_NET_IF_H) +check_include_file_concat("netdb.h" HAVE_NETDB_H) +check_include_file_concat("netinet/in.h" HAVE_NETINET_IN_H) +check_include_file_concat("netinet/tcp.h" HAVE_NETINET_TCP_H) +check_include_file_concat("openssl/crypto.h" HAVE_OPENSSL_CRYPTO_H) +check_include_file_concat("openssl/engine.h" HAVE_OPENSSL_ENGINE_H) +check_include_file_concat("openssl/err.h" HAVE_OPENSSL_ERR_H) +check_include_file_concat("openssl/pem.h" HAVE_OPENSSL_PEM_H) +check_include_file_concat("openssl/pkcs12.h" HAVE_OPENSSL_PKCS12_H) +check_include_file_concat("openssl/rsa.h" HAVE_OPENSSL_RSA_H) +check_include_file_concat("openssl/ssl.h" HAVE_OPENSSL_SSL_H) +check_include_file_concat("openssl/x509.h" HAVE_OPENSSL_X509_H) +check_include_file_concat("pem.h" HAVE_PEM_H) +check_include_file_concat("poll.h" HAVE_POLL_H) +check_include_file_concat("pwd.h" HAVE_PWD_H) +check_include_file_concat("rsa.h" HAVE_RSA_H) +check_include_file_concat("setjmp.h" HAVE_SETJMP_H) +check_include_file_concat("sgtty.h" HAVE_SGTTY_H) +check_include_file_concat("signal.h" HAVE_SIGNAL_H) +check_include_file_concat("ssl.h" HAVE_SSL_H) +check_include_file_concat("stdbool.h" HAVE_STDBOOL_H) +check_include_file_concat("stdint.h" HAVE_STDINT_H) +check_include_file_concat("stdio.h" HAVE_STDIO_H) +check_include_file_concat("stdlib.h" HAVE_STDLIB_H) +check_include_file_concat("string.h" HAVE_STRING_H) +check_include_file_concat("strings.h" HAVE_STRINGS_H) +check_include_file_concat("stropts.h" HAVE_STROPTS_H) +check_include_file_concat("termio.h" HAVE_TERMIO_H) +check_include_file_concat("termios.h" HAVE_TERMIOS_H) +check_include_file_concat("time.h" HAVE_TIME_H) +check_include_file_concat("tld.h" HAVE_TLD_H) +check_include_file_concat("unistd.h" HAVE_UNISTD_H) +check_include_file_concat("utime.h" HAVE_UTIME_H) +check_include_file_concat("x509.h" HAVE_X509_H) + +check_include_file_concat("process.h" HAVE_PROCESS_H) +check_include_file_concat("stddef.h" HAVE_STDDEF_H) +check_include_file_concat("dlfcn.h" HAVE_DLFCN_H) +check_include_file_concat("malloc.h" HAVE_MALLOC_H) +check_include_file_concat("memory.h" HAVE_MEMORY_H) +check_include_file_concat("ldap.h" HAVE_LDAP_H) +check_include_file_concat("netinet/if_ether.h" HAVE_NETINET_IF_ETHER_H) +check_include_file_concat("stdint.h" HAVE_STDINT_H) +check_include_file_concat("sockio.h" HAVE_SOCKIO_H) +check_include_file_concat("sys/utsname.h" HAVE_SYS_UTSNAME_H) +check_include_file_concat("idna.h" HAVE_IDNA_H) + +if(CMAKE_USE_OPENSSL) + check_include_file_concat("openssl/rand.h" HAVE_OPENSSL_RAND_H) +endif(CMAKE_USE_OPENSSL) + +if(NOT HAVE_LDAP_H) + message(STATUS "LDAP_H not found CURL_DISABLE_LDAP set ON") + set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE) +endif() + + +check_type_size(size_t SIZEOF_SIZE_T) +check_type_size(ssize_t SIZEOF_SSIZE_T) +check_type_size("long long" SIZEOF_LONG_LONG) +check_type_size("long" SIZEOF_LONG) +check_type_size("short" SIZEOF_SHORT) +check_type_size("int" SIZEOF_INT) +check_type_size("__int64" SIZEOF___INT64) +check_type_size("long double" SIZEOF_LONG_DOUBLE) +check_type_size("time_t" SIZEOF_TIME_T) +if(NOT HAVE_SIZEOF_SSIZE_T) + if(SIZEOF_LONG EQUAL SIZEOF_SIZE_T) + set(ssize_t long) + endif(SIZEOF_LONG EQUAL SIZEOF_SIZE_T) + if(NOT ssize_t AND SIZEOF___INT64 EQUAL SIZEOF_SIZE_T) + set(ssize_t __int64) + endif(NOT ssize_t AND SIZEOF___INT64 EQUAL SIZEOF_SIZE_T) +endif(NOT HAVE_SIZEOF_SSIZE_T) + +# Different sizeofs, etc. + +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL + +set(CURL_SIZEOF_LONG ${SIZEOF_LONG}) + +if(SIZEOF_LONG EQUAL 8) + set(CURL_TYPEOF_CURL_OFF_T long) + set(CURL_SIZEOF_CURL_OFF_T 8) + set(CURL_FORMAT_CURL_OFF_T "ld") + set(CURL_FORMAT_CURL_OFF_TU "lu") + set(CURL_FORMAT_OFF_T "%ld") + set(CURL_SUFFIX_CURL_OFF_T L) + set(CURL_SUFFIX_CURL_OFF_TU LU) +endif(SIZEOF_LONG EQUAL 8) + +if(SIZEOF_LONG_LONG EQUAL 8) + set(CURL_TYPEOF_CURL_OFF_T "long long") + set(CURL_SIZEOF_CURL_OFF_T 8) + set(CURL_FORMAT_CURL_OFF_T "lld") + set(CURL_FORMAT_CURL_OFF_TU "llu") + set(CURL_FORMAT_OFF_T "%lld") + set(CURL_SUFFIX_CURL_OFF_T LL) + set(CURL_SUFFIX_CURL_OFF_TU LLU) +endif(SIZEOF_LONG_LONG EQUAL 8) + +if(NOT CURL_TYPEOF_CURL_OFF_T) + set(CURL_TYPEOF_CURL_OFF_T ${ssize_t}) + set(CURL_SIZEOF_CURL_OFF_T ${SIZEOF_SSIZE_T}) + # TODO: need adjustment here. + set(CURL_FORMAT_CURL_OFF_T "ld") + set(CURL_FORMAT_CURL_OFF_TU "lu") + set(CURL_FORMAT_OFF_T "%ld") + set(CURL_SUFFIX_CURL_OFF_T L) + set(CURL_SUFFIX_CURL_OFF_TU LU) +endif(NOT CURL_TYPEOF_CURL_OFF_T) + +if(HAVE_SIZEOF_LONG_LONG) + set(HAVE_LONGLONG 1) + set(HAVE_LL 1) +endif(HAVE_SIZEOF_LONG_LONG) + +find_file(RANDOM_FILE urandom /dev) +mark_as_advanced(RANDOM_FILE) + +# Check for some functions that are used +check_symbol_exists(basename "${CURL_INCLUDES}" HAVE_BASENAME) +check_symbol_exists(socket "${CURL_INCLUDES}" HAVE_SOCKET) +check_symbol_exists(poll "${CURL_INCLUDES}" HAVE_POLL) +check_symbol_exists(select "${CURL_INCLUDES}" HAVE_SELECT) +check_symbol_exists(strdup "${CURL_INCLUDES}" HAVE_STRDUP) +check_symbol_exists(strstr "${CURL_INCLUDES}" HAVE_STRSTR) +check_symbol_exists(strtok_r "${CURL_INCLUDES}" HAVE_STRTOK_R) +check_symbol_exists(strftime "${CURL_INCLUDES}" HAVE_STRFTIME) +check_symbol_exists(uname "${CURL_INCLUDES}" HAVE_UNAME) +check_symbol_exists(strcasecmp "${CURL_INCLUDES}" HAVE_STRCASECMP) +check_symbol_exists(stricmp "${CURL_INCLUDES}" HAVE_STRICMP) +check_symbol_exists(strcmpi "${CURL_INCLUDES}" HAVE_STRCMPI) +check_symbol_exists(strncmpi "${CURL_INCLUDES}" HAVE_STRNCMPI) +check_symbol_exists(alarm "${CURL_INCLUDES}" HAVE_ALARM) +if(NOT HAVE_STRNCMPI) + set(HAVE_STRCMPI) +endif(NOT HAVE_STRNCMPI) +check_symbol_exists(gethostbyaddr "${CURL_INCLUDES}" HAVE_GETHOSTBYADDR) +check_symbol_exists(gethostbyaddr_r "${CURL_INCLUDES}" HAVE_GETHOSTBYADDR_R) +check_symbol_exists(gettimeofday "${CURL_INCLUDES}" HAVE_GETTIMEOFDAY) +check_symbol_exists(inet_addr "${CURL_INCLUDES}" HAVE_INET_ADDR) +check_symbol_exists(inet_ntoa "${CURL_INCLUDES}" HAVE_INET_NTOA) +check_symbol_exists(inet_ntoa_r "${CURL_INCLUDES}" HAVE_INET_NTOA_R) +check_symbol_exists(tcsetattr "${CURL_INCLUDES}" HAVE_TCSETATTR) +check_symbol_exists(tcgetattr "${CURL_INCLUDES}" HAVE_TCGETATTR) +check_symbol_exists(perror "${CURL_INCLUDES}" HAVE_PERROR) +check_symbol_exists(closesocket "${CURL_INCLUDES}" HAVE_CLOSESOCKET) +check_symbol_exists(setvbuf "${CURL_INCLUDES}" HAVE_SETVBUF) +check_symbol_exists(sigsetjmp "${CURL_INCLUDES}" HAVE_SIGSETJMP) +check_symbol_exists(getpass_r "${CURL_INCLUDES}" HAVE_GETPASS_R) +check_symbol_exists(strlcat "${CURL_INCLUDES}" HAVE_STRLCAT) +check_symbol_exists(getpwuid "${CURL_INCLUDES}" HAVE_GETPWUID) +check_symbol_exists(geteuid "${CURL_INCLUDES}" HAVE_GETEUID) +check_symbol_exists(utime "${CURL_INCLUDES}" HAVE_UTIME) +if(CMAKE_USE_OPENSSL) + check_symbol_exists(RAND_status "${CURL_INCLUDES}" HAVE_RAND_STATUS) + check_symbol_exists(RAND_screen "${CURL_INCLUDES}" HAVE_RAND_SCREEN) + check_symbol_exists(RAND_egd "${CURL_INCLUDES}" HAVE_RAND_EGD) + check_symbol_exists(CRYPTO_cleanup_all_ex_data "${CURL_INCLUDES}" + HAVE_CRYPTO_CLEANUP_ALL_EX_DATA) + if(HAVE_LIBCRYPTO AND HAVE_LIBSSL) + set(USE_OPENSSL 1) + set(USE_SSLEAY 1) + endif(HAVE_LIBCRYPTO AND HAVE_LIBSSL) +endif(CMAKE_USE_OPENSSL) +check_symbol_exists(gmtime_r "${CURL_INCLUDES}" HAVE_GMTIME_R) +check_symbol_exists(localtime_r "${CURL_INCLUDES}" HAVE_LOCALTIME_R) + +check_symbol_exists(gethostbyname "${CURL_INCLUDES}" HAVE_GETHOSTBYNAME) +check_symbol_exists(gethostbyname_r "${CURL_INCLUDES}" HAVE_GETHOSTBYNAME_R) + +check_symbol_exists(signal "${CURL_INCLUDES}" HAVE_SIGNAL_FUNC) +check_symbol_exists(SIGALRM "${CURL_INCLUDES}" HAVE_SIGNAL_MACRO) +if(HAVE_SIGNAL_FUNC AND HAVE_SIGNAL_MACRO) + set(HAVE_SIGNAL 1) +endif(HAVE_SIGNAL_FUNC AND HAVE_SIGNAL_MACRO) +check_symbol_exists(uname "${CURL_INCLUDES}" HAVE_UNAME) +check_symbol_exists(strtoll "${CURL_INCLUDES}" HAVE_STRTOLL) +check_symbol_exists(_strtoi64 "${CURL_INCLUDES}" HAVE__STRTOI64) +check_symbol_exists(strerror_r "${CURL_INCLUDES}" HAVE_STRERROR_R) +check_symbol_exists(siginterrupt "${CURL_INCLUDES}" HAVE_SIGINTERRUPT) +check_symbol_exists(perror "${CURL_INCLUDES}" HAVE_PERROR) +check_symbol_exists(fork "${CURL_INCLUDES}" HAVE_FORK) +check_symbol_exists(freeaddrinfo "${CURL_INCLUDES}" HAVE_FREEADDRINFO) +check_symbol_exists(freeifaddrs "${CURL_INCLUDES}" HAVE_FREEIFADDRS) +check_symbol_exists(pipe "${CURL_INCLUDES}" HAVE_PIPE) +check_symbol_exists(ftruncate "${CURL_INCLUDES}" HAVE_FTRUNCATE) +check_symbol_exists(getprotobyname "${CURL_INCLUDES}" HAVE_GETPROTOBYNAME) +check_symbol_exists(getrlimit "${CURL_INCLUDES}" HAVE_GETRLIMIT) +check_symbol_exists(idn_free "${CURL_INCLUDES}" HAVE_IDN_FREE) +check_symbol_exists(idna_strerror "${CURL_INCLUDES}" HAVE_IDNA_STRERROR) +check_symbol_exists(tld_strerror "${CURL_INCLUDES}" HAVE_TLD_STRERROR) +check_symbol_exists(setlocale "${CURL_INCLUDES}" HAVE_SETLOCALE) +check_symbol_exists(setrlimit "${CURL_INCLUDES}" HAVE_SETRLIMIT) +check_symbol_exists(fcntl "${CURL_INCLUDES}" HAVE_FCNTL) +check_symbol_exists(ioctl "${CURL_INCLUDES}" HAVE_IOCTL) +check_symbol_exists(setsockopt "${CURL_INCLUDES}" HAVE_SETSOCKOPT) + +# symbol exists in win32, but function does not. +check_function_exists(inet_pton HAVE_INET_PTON) + +# sigaction and sigsetjmp are special. Use special mechanism for +# detecting those, but only if previous attempt failed. +if(HAVE_SIGNAL_H) + check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION) +endif(HAVE_SIGNAL_H) + +if(NOT HAVE_SIGSETJMP) + if(HAVE_SETJMP_H) + check_symbol_exists(sigsetjmp "setjmp.h" HAVE_MACRO_SIGSETJMP) + if(HAVE_MACRO_SIGSETJMP) + set(HAVE_SIGSETJMP 1) + endif(HAVE_MACRO_SIGSETJMP) + endif(HAVE_SETJMP_H) +endif(NOT HAVE_SIGSETJMP) + +# If there is no stricmp(), do not allow LDAP to parse URLs +if(NOT HAVE_STRICMP) + set(HAVE_LDAP_URL_PARSE 1) +endif(NOT HAVE_STRICMP) + +# For other curl specific tests, use this macro. +macro(CURL_INTERNAL_TEST CURL_TEST) + if("${CURL_TEST}" MATCHES "^${CURL_TEST}$") + set(MACRO_CHECK_FUNCTION_DEFINITIONS + "-D${CURL_TEST} ${CURL_TEST_DEFINES} ${CMAKE_REQUIRED_FLAGS}") + if(CMAKE_REQUIRED_LIBRARIES) + set(CURL_TEST_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + endif(CMAKE_REQUIRED_LIBRARIES) + + message(STATUS "Performing Curl Test ${CURL_TEST}") + try_compile(${CURL_TEST} + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/CMake/CurlTests.c + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} + "${CURL_TEST_ADD_LIBRARIES}" + OUTPUT_VARIABLE OUTPUT) + if(${CURL_TEST}) + set(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}") + message(STATUS "Performing Curl Test ${CURL_TEST} - Success") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Performing Curl Test ${CURL_TEST} passed with the following output:\n" + "${OUTPUT}\n") + else(${CURL_TEST}) + message(STATUS "Performing Curl Test ${CURL_TEST} - Failed") + set(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Performing Curl Test ${CURL_TEST} failed with the following output:\n" + "${OUTPUT}\n") + endif(${CURL_TEST}) + endif("${CURL_TEST}" MATCHES "^${CURL_TEST}$") +endmacro(CURL_INTERNAL_TEST) + +macro(CURL_INTERNAL_TEST_RUN CURL_TEST) + if("${CURL_TEST}_COMPILE" MATCHES "^${CURL_TEST}_COMPILE$") + set(MACRO_CHECK_FUNCTION_DEFINITIONS + "-D${CURL_TEST} ${CMAKE_REQUIRED_FLAGS}") + if(CMAKE_REQUIRED_LIBRARIES) + set(CURL_TEST_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + endif(CMAKE_REQUIRED_LIBRARIES) + + message(STATUS "Performing Curl Test ${CURL_TEST}") + try_run(${CURL_TEST} ${CURL_TEST}_COMPILE + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/CMake/CurlTests.c + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} + "${CURL_TEST_ADD_LIBRARIES}" + OUTPUT_VARIABLE OUTPUT) + if(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) + set(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}") + message(STATUS "Performing Curl Test ${CURL_TEST} - Success") + else(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) + message(STATUS "Performing Curl Test ${CURL_TEST} - Failed") + set(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}") + file(APPEND "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" + "Performing Curl Test ${CURL_TEST} failed with the following output:\n" + "${OUTPUT}") + if(${CURL_TEST}_COMPILE) + file(APPEND + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" + "There was a problem running this test\n") + endif(${CURL_TEST}_COMPILE) + file(APPEND "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" + "\n\n") + endif(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) + endif("${CURL_TEST}_COMPILE" MATCHES "^${CURL_TEST}_COMPILE$") +endmacro(CURL_INTERNAL_TEST_RUN) + +# Do curl specific tests +foreach(CURL_TEST + HAVE_FCNTL_O_NONBLOCK + HAVE_IOCTLSOCKET + HAVE_IOCTLSOCKET_CAMEL + HAVE_IOCTLSOCKET_CAMEL_FIONBIO + HAVE_IOCTLSOCKET_FIONBIO + HAVE_IOCTL_FIONBIO + HAVE_IOCTL_SIOCGIFADDR + HAVE_SETSOCKOPT_SO_NONBLOCK + HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID + TIME_WITH_SYS_TIME + HAVE_O_NONBLOCK + HAVE_GETHOSTBYADDR_R_5 + HAVE_GETHOSTBYADDR_R_7 + HAVE_GETHOSTBYADDR_R_8 + HAVE_GETHOSTBYADDR_R_5_REENTRANT + HAVE_GETHOSTBYADDR_R_7_REENTRANT + HAVE_GETHOSTBYADDR_R_8_REENTRANT + HAVE_GETHOSTBYNAME_R_3 + HAVE_GETHOSTBYNAME_R_5 + HAVE_GETHOSTBYNAME_R_6 + HAVE_GETHOSTBYNAME_R_3_REENTRANT + HAVE_GETHOSTBYNAME_R_5_REENTRANT + HAVE_GETHOSTBYNAME_R_6_REENTRANT + HAVE_SOCKLEN_T + HAVE_IN_ADDR_T + HAVE_BOOL_T + STDC_HEADERS + RETSIGTYPE_TEST + HAVE_INET_NTOA_R_DECL + HAVE_INET_NTOA_R_DECL_REENTRANT + HAVE_GETADDRINFO + HAVE_FILE_OFFSET_BITS + ) + curl_internal_test(${CURL_TEST}) +endforeach(CURL_TEST) +if(HAVE_FILE_OFFSET_BITS) + set(_FILE_OFFSET_BITS 64) +endif(HAVE_FILE_OFFSET_BITS) +foreach(CURL_TEST + HAVE_GLIBC_STRERROR_R + HAVE_POSIX_STRERROR_R + ) + curl_internal_test_run(${CURL_TEST}) +endforeach(CURL_TEST) + +# Check for reentrant +foreach(CURL_TEST + HAVE_GETHOSTBYADDR_R_5 + HAVE_GETHOSTBYADDR_R_7 + HAVE_GETHOSTBYADDR_R_8 + HAVE_GETHOSTBYNAME_R_3 + HAVE_GETHOSTBYNAME_R_5 + HAVE_GETHOSTBYNAME_R_6 + HAVE_INET_NTOA_R_DECL_REENTRANT) + if(NOT ${CURL_TEST}) + if(${CURL_TEST}_REENTRANT) + set(NEED_REENTRANT 1) + endif(${CURL_TEST}_REENTRANT) + endif(NOT ${CURL_TEST}) +endforeach(CURL_TEST) + +if(NEED_REENTRANT) + foreach(CURL_TEST + HAVE_GETHOSTBYADDR_R_5 + HAVE_GETHOSTBYADDR_R_7 + HAVE_GETHOSTBYADDR_R_8 + HAVE_GETHOSTBYNAME_R_3 + HAVE_GETHOSTBYNAME_R_5 + HAVE_GETHOSTBYNAME_R_6) + set(${CURL_TEST} 0) + if(${CURL_TEST}_REENTRANT) + set(${CURL_TEST} 1) + endif(${CURL_TEST}_REENTRANT) + endforeach(CURL_TEST) +endif(NEED_REENTRANT) + +if(HAVE_INET_NTOA_R_DECL_REENTRANT) + set(HAVE_INET_NTOA_R_DECL 1) + set(NEED_REENTRANT 1) +endif(HAVE_INET_NTOA_R_DECL_REENTRANT) + +# Some other minor tests + +if(NOT HAVE_IN_ADDR_T) + set(in_addr_t "unsigned long") +endif(NOT HAVE_IN_ADDR_T) + +# Fix libz / zlib.h + +if(NOT CURL_SPECIAL_LIBZ) + if(NOT HAVE_LIBZ) + set(HAVE_ZLIB_H 0) + endif(NOT HAVE_LIBZ) + + if(NOT HAVE_ZLIB_H) + set(HAVE_LIBZ 0) + endif(NOT HAVE_ZLIB_H) +endif(NOT CURL_SPECIAL_LIBZ) + +if(_FILE_OFFSET_BITS) + set(_FILE_OFFSET_BITS 64) +endif(_FILE_OFFSET_BITS) +set(CMAKE_REQUIRED_FLAGS "-D_FILE_OFFSET_BITS=64") +set(CMAKE_EXTRA_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/curl/curl.h") +check_type_size("curl_off_t" SIZEOF_CURL_OFF_T) +set(CMAKE_EXTRA_INCLUDE_FILES) +set(CMAKE_REQUIRED_FLAGS) + + +# Check for nonblocking +set(HAVE_DISABLED_NONBLOCKING 1) +if(HAVE_FIONBIO OR + HAVE_IOCTLSOCKET OR + HAVE_IOCTLSOCKET_CASE OR + HAVE_O_NONBLOCK) + set(HAVE_DISABLED_NONBLOCKING) +endif(HAVE_FIONBIO OR + HAVE_IOCTLSOCKET OR + HAVE_IOCTLSOCKET_CASE OR + HAVE_O_NONBLOCK) + +if(RETSIGTYPE_TEST) + set(RETSIGTYPE void) +else(RETSIGTYPE_TEST) + set(RETSIGTYPE int) +endif(RETSIGTYPE_TEST) + +if(CMAKE_COMPILER_IS_GNUCC AND APPLE) + include(CheckCCompilerFlag) + check_c_compiler_flag(-Wno-long-double HAVE_C_FLAG_Wno_long_double) + if(HAVE_C_FLAG_Wno_long_double) + # The Mac version of GCC warns about use of long double. Disable it. + get_source_file_property(MPRINTF_COMPILE_FLAGS mprintf.c COMPILE_FLAGS) + if(MPRINTF_COMPILE_FLAGS) + set(MPRINTF_COMPILE_FLAGS "${MPRINTF_COMPILE_FLAGS} -Wno-long-double") + else(MPRINTF_COMPILE_FLAGS) + set(MPRINTF_COMPILE_FLAGS "-Wno-long-double") + endif(MPRINTF_COMPILE_FLAGS) + set_source_files_properties(mprintf.c PROPERTIES + COMPILE_FLAGS ${MPRINTF_COMPILE_FLAGS}) + endif(HAVE_C_FLAG_Wno_long_double) +endif(CMAKE_COMPILER_IS_GNUCC AND APPLE) + +if(HAVE_SOCKLEN_T) + set(CURL_TYPEOF_CURL_SOCKLEN_T "socklen_t") + if(WIN32) + set(CMAKE_EXTRA_INCLUDE_FILES "winsock2.h;ws2tcpip.h") + elseif(HAVE_SYS_SOCKET_H) + set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h") + endif() + check_type_size("socklen_t" CURL_SIZEOF_CURL_SOCKLEN_T) + set(CMAKE_EXTRA_INCLUDE_FILES) + if(NOT HAVE_CURL_SIZEOF_CURL_SOCKLEN_T) + message(FATAL_ERROR + "Check for sizeof socklen_t failed, see CMakeFiles/CMakerror.log") + endif() +else() + set(CURL_TYPEOF_CURL_SOCKLEN_T int) + set(CURL_SIZEOF_CURL_SOCKLEN_T ${SIZEOF_INT}) +endif() + +include(CMake/OtherTests.cmake) + +add_definitions(-DHAVE_CONFIG_H) + +# For windows, do not allow the compiler to use default target (Vista). +if(WIN32) + add_definitions(-D_WIN32_WINNT=0x0501) +endif(WIN32) + +if(MSVC) + add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) +endif(MSVC) + +# Sets up the dependencies (zlib, OpenSSL, etc.) of a cURL subproject according to options. +# TODO This is far to be complete! +function(SETUP_CURL_DEPENDENCIES TARGET_NAME) + if(CURL_ZLIB AND ZLIB_FOUND) + include_directories(${ZLIB_INCLUDE_DIR}) + endif() + if(CURL_ZLIB AND ZLIB_FOUND) + target_link_libraries(${TARGET_NAME} ${ZLIB_LIBRARIES}) + #ADD_DEFINITIONS( -DHAVE_ZLIB_H -DHAVE_ZLIB -DHAVE_LIBZ ) + endif() + + if(CMAKE_USE_OPENSSL AND OPENSSL_FOUND) + include_directories(${OPENSSL_INCLUDE_DIR}) + endif() + if(CMAKE_USE_OPENSSL AND CURL_CONFIG_HAS_BEEN_RUN_BEFORE) + target_link_libraries(${TARGET_NAME} ${OPENSSL_LIBRARIES}) + #ADD_DEFINITIONS( -DUSE_SSLEAY ) + endif() +endfunction() + +# Ugly (but functional) way to include "Makefile.inc" by transforming it (= regenerate it). +function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE) + file(READ ${INPUT_FILE} MAKEFILE_INC_TEXT) + string(REPLACE "$(top_srcdir)" "\${CURL_SOURCE_DIR}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) + string(REPLACE "$(top_builddir)" "\${CURL_BINARY_DIR}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) + + string(REGEX REPLACE "\\\\\n" "§!§" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) + string(REGEX REPLACE "([a-zA-Z_][a-zA-Z0-9_]*)[\t ]*=[\t ]*([^\n]*)" "SET(\\1 \\2)" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) + string(REPLACE "§!§" "\n" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) + + string(REGEX REPLACE "\\$\\(([a-zA-Z_][a-zA-Z0-9_]*)\\)" "\${\\1}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) # Replace $() with ${} + string(REGEX REPLACE "@([a-zA-Z_][a-zA-Z0-9_]*)@" "\${\\1}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) # Replace @@ with ${}, even if that may not be read by CMake scripts. + file(WRITE ${OUTPUT_FILE} ${MAKEFILE_INC_TEXT}) + +endfunction() + +add_subdirectory(lib) +if(BUILD_CURL_EXE) + add_subdirectory(src) +endif() +if(BUILD_CURL_TESTS) + add_subdirectory(tests) +endif() + +# This needs to be run very last so other parts of the scripts can take advantage of this. +if(NOT CURL_CONFIG_HAS_BEEN_RUN_BEFORE) + set(CURL_CONFIG_HAS_BEEN_RUN_BEFORE 1 CACHE INTERNAL "Flag to track whether this is the first time running CMake or if CMake has been configured before") +endif() + +# Installation. +# First, install generated curlbuild.h +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/curl/curlbuild.h" + DESTINATION include/curl ) +# Next, install other headers excluding curlbuild.h +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/curl" + DESTINATION include + FILES_MATCHING PATTERN "*.h" + PATTERN "curlbuild.h" EXCLUDE) diff --git a/iis/winbuild/Makefile.win b/iis/winbuild/Makefile.win new file mode 100644 index 00000000..73a5462a --- /dev/null +++ b/iis/winbuild/Makefile.win @@ -0,0 +1,57 @@ +########################################################################### +### You Will need to modify the following variables for your system +########################################################################### +########################################################################### + +# Path to Apache httpd installation +BASE = C:\Apache22 + +# Paths to required libraries +PCRE = C:\work\pcre-8.30 +CURL = C:\work\curl-7.24.0 + +# Linking libraries +LIBS = $(BASE)\lib\libapr-1.lib \ + $(BASE)\lib\libaprutil-1.lib \ + $(PCRE)\pcre.lib \ + $(CURL)\libcurl_imp.lib \ + wsock32.lib + +########################################################################### +########################################################################### + +CC = cL + +MT = mt + +DEFS = /nologo /O2 /W3 -DWIN32 -DWINNT -Dinline=APR_INLINE -D_CONSOLE + +EXE = mlogc.exe + +INCLUDES = -I. -I..\apache2 \ + -I$(PCRE)\include -I$(PCRE) \ + -I$(CURL)\include -I$(CURL) \ + -I$(BASE)\include + +CFLAGS= -MT $(INCLUDES) $(DEFS) + +LDFLAGS = + +OBJS = mlogc.obj + +all: $(EXE) + +.c.obj: + $(CC) $(CFLAGS) -c $< -Fo$@ + +.cpp.obj: + $(CC) $(CFLAGS) -c $< -Fo$@ + +$(EXE): $(OBJS) + $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) /link /NODEFAULTLIB:MSVCRT.lib /subsystem:console + +install: $(EXE) + copy $(EXE) $(BASE)\bin + +clean: + del $(OBJS) $(EXE) *.dll *.lib *.pdb *.idb *.ilk *.exp *.res *.rc *.bin *.manifest diff --git a/iis/winbuild/VCVarsQueryRegistry.bat b/iis/winbuild/VCVarsQueryRegistry.bat new file mode 100644 index 00000000..c925743b --- /dev/null +++ b/iis/winbuild/VCVarsQueryRegistry.bat @@ -0,0 +1,224 @@ +@call :GetWindowsSdkDir +@call :GetVSInstallDir +@call :GetVCInstallDir +@call :GetFSharpInstallDir +@if "%1"=="32bit" ( + @call :GetFrameworkDir32 + @call :GetFrameworkVer32 +) +@if "%2"=="64bit" ( + @call :GetFrameworkDir64 + @call :GetFrameworkVer64 +) +@SET Framework35Version=v3.5 + +@goto end + +@REM ----------------------------------------------------------------------- +:GetWindowsSdkDir +@set WindowsSdkDir= +@call :GetWindowsSdkDirHelper HKLM > nul 2>&1 +@if errorlevel 1 call :GetWindowsSdkDirHelper HKCU > nul 2>&1 +@if errorlevel 1 set WindowsSdkDir=%VCINSTALLDIR%\PlatformSDK\ +@exit /B 0 + +:GetWindowsSdkDirHelper +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A" /v "InstallationFolder"') DO ( + @if "%%i"=="InstallationFolder" ( + @SET "WindowsSdkDir=%%k" + ) +) +@if "%WindowsSdkDir%"=="" exit /B 1 +@exit /B 0 + +@REM ----------------------------------------------------------------------- +:GetVSInstallDir +@set VSINSTALLDIR= +@call :GetVSInstallDirHelper32 HKLM > nul 2>&1 +@if errorlevel 1 call :GetVSInstallDirHelper32 HKCU > nul 2>&1 +@if errorlevel 1 call :GetVSInstallDirHelper64 HKLM > nul 2>&1 +@if errorlevel 1 call :GetVSInstallDirHelper64 HKCU > nul 2>&1 +@exit /B 0 + +:GetVSInstallDirHelper32 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "10.0"') DO ( + @if "%%i"=="10.0" ( + @SET "VSINSTALLDIR=%%k" + ) +) +@if "%VSINSTALLDIR%"=="" exit /B 1 +@exit /B 0 + +:GetVSInstallDirHelper64 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7" /v "10.0"') DO ( + @if "%%i"=="10.0" ( + @SET "VSINSTALLDIR=%%k" + ) +) +@if "%VSINSTALLDIR%"=="" exit /B 1 +@exit /B 0 + +@REM ----------------------------------------------------------------------- +:GetVCInstallDir +@set VCINSTALLDIR= +@call :GetVCInstallDirHelper32 HKLM > nul 2>&1 +@if errorlevel 1 call :GetVCInstallDirHelper32 HKCU > nul 2>&1 +@if errorlevel 1 call :GetVCInstallDirHelper64 HKLM > nul 2>&1 +@if errorlevel 1 call :GetVCInstallDirHelper64 HKCU > nul 2>&1 +@exit /B 0 + +:GetVCInstallDirHelper32 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VC7" /v "10.0"') DO ( + @if "%%i"=="10.0" ( + @SET "VCINSTALLDIR=%%k" + ) +) +@if "%VCINSTALLDIR%"=="" exit /B 1 +@exit /B 0 + +:GetVCInstallDirHelper64 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7" /v "10.0"') DO ( + @if "%%i"=="10.0" ( + @SET "VCINSTALLDIR=%%k" + ) +) +@if "%VCINSTALLDIR%"=="" exit /B 1 +@exit /B 0 + +@REM ----------------------------------------------------------------------- +:GetFSharpInstallDir +@set FSHARPINSTALLDIR= +@call :GetFSharpInstallDirHelper32 HKLM > nul 2>&1 +@if errorlevel 1 call :GetFSharpInstallDirHelper32 HKCU > nul 2>&1 +@if errorlevel 1 call :GetFSharpInstallDirHelper64 HKLM > nul 2>&1 +@if errorlevel 1 call :GetFSharpInstallDirHelper64 HKCU > nul 2>&1 +@exit /B 0 + +:GetFSharpInstallDirHelper32 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\10.0\Setup\F#" /v "ProductDir"') DO ( + @if "%%i"=="ProductDir" ( + @SET "FSHARPINSTALLDIR=%%k" + ) +) +@if "%FSHARPINSTALLDIR%"=="" exit /B 1 +@exit /B 0 + +:GetFSharpInstallDirHelper64 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Setup\F#" /v "ProductDir"') DO ( + @if "%%i"=="ProductDir" ( + @SET "FSHARPINSTALLDIR=%%k" + ) +) +@if "%FSHARPINSTALLDIR%"=="" exit /B 1 +@exit /B 0 + +@REM ----------------------------------------------------------------------- +:GetFrameworkDir32 +@set FrameworkDir32= +@call :GetFrameworkDir32Helper32 HKLM > nul 2>&1 +@if errorlevel 1 call :GetFrameworkDir32Helper32 HKCU > nul 2>&1 +@if errorlevel 1 call :GetFrameworkDir32Helper64 HKLM > nul 2>&1 +@if errorlevel 1 call :GetFrameworkDir32Helper64 HKCU > nul 2>&1 +@exit /B 0 + +:GetFrameworkDir32Helper32 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VC7" /v "FrameworkDir32"') DO ( + @if "%%i"=="FrameworkDir32" ( + @SET "FrameworkDIR32=%%k" + ) +) +@if "%FrameworkDir32%"=="" exit /B 1 +@exit /B 0 + +:GetFrameworkDir32Helper64 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7" /v "FrameworkDir32"') DO ( + @if "%%i"=="FrameworkDir32" ( + @SET "FrameworkDIR32=%%k" + ) +) +@if "%FrameworkDIR32%"=="" exit /B 1 +@exit /B 0 + +@REM ----------------------------------------------------------------------- +:GetFrameworkDir64 +@set FrameworkDir64= +@call :GetFrameworkDir64Helper32 HKLM > nul 2>&1 +@if errorlevel 1 call :GetFrameworkDir64Helper32 HKCU > nul 2>&1 +@if errorlevel 1 call :GetFrameworkDir64Helper64 HKLM > nul 2>&1 +@if errorlevel 1 call :GetFrameworkDir64Helper64 HKCU > nul 2>&1 +@exit /B 0 + +:GetFrameworkDir64Helper32 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VC7" /v "FrameworkDir64"') DO ( + @if "%%i"=="FrameworkDir64" ( + @SET "FrameworkDIR64=%%k" + ) +) +@if "%FrameworkDIR64%"=="" exit /B 1 +@exit /B 0 + +:GetFrameworkDir64Helper64 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7" /v "FrameworkDir64"') DO ( + @if "%%i"=="FrameworkDir64" ( + @SET "FrameworkDIR64=%%k" + ) +) +@if "%FrameworkDIR64%"=="" exit /B 1 +@exit /B 0 + +@REM ----------------------------------------------------------------------- +:GetFrameworkVer32 +@set FrameworkVer32= +@call :GetFrameworkVer32Helper32 HKLM > nul 2>&1 +@if errorlevel 1 call :GetFrameworkVer32Helper32 HKCU > nul 2>&1 +@if errorlevel 1 call :GetFrameworkVer32Helper64 HKLM > nul 2>&1 +@if errorlevel 1 call :GetFrameworkVer32Helper64 HKCU > nul 2>&1 +@exit /B 0 + +:GetFrameworkVer32Helper32 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VC7" /v "FrameworkVer32"') DO ( + @if "%%i"=="FrameworkVer32" ( + @SET "FrameworkVersion32=%%k" + ) +) +@if "%FrameworkVersion32%"=="" exit /B 1 +@exit /B 0 + +:GetFrameworkVer32Helper64 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7" /v "FrameworkVer32"') DO ( + @if "%%i"=="FrameworkVer32" ( + @SET "FrameworkVersion32=%%k" + ) +) +@if "%FrameworkVersion32%"=="" exit /B 1 +@exit /B 0 + +@REM ----------------------------------------------------------------------- +:GetFrameworkVer64 +@set FrameworkVer64= +@call :GetFrameworkVer64Helper32 HKLM > nul 2>&1 +@if errorlevel 1 call :GetFrameworkVer64Helper32 HKCU > nul 2>&1 +@if errorlevel 1 call :GetFrameworkVer64Helper64 HKLM > nul 2>&1 +@if errorlevel 1 call :GetFrameworkVer64Helper64 HKCU > nul 2>&1 +@exit /B 0 + +:GetFrameworkVer64Helper32 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VC7" /v "FrameworkVer64"') DO ( + @if "%%i"=="FrameworkVer64" ( + @SET "FrameworkVersion64=%%k" + ) +) +@if "%FrameworkVersion64%"=="" exit /B 1 +@exit /B 0 + +:GetFrameworkVer64Helper64 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7" /v "FrameworkVer64"') DO ( + @if "%%i"=="FrameworkVer64" ( + @SET "FrameworkVersion64=%%k" + ) +) +@if "%FrameworkVersion64%"=="" exit /B 1 +@exit /B 0 + +@REM ----------------------------------------------------------------------- +:end diff --git a/iis/winbuild/apr.mak b/iis/winbuild/apr.mak new file mode 100644 index 00000000..e8de5690 --- /dev/null +++ b/iis/winbuild/apr.mak @@ -0,0 +1,1779 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on apr.dsp +!IF "$(CFG)" == "" +CFG=apr - Win32 Release +!MESSAGE No configuration specified. Defaulting to apr - Win32 Release. +!ENDIF + +!IF "$(CFG)" != "apr - Win32 Release" && "$(CFG)" != "apr - Win32 Debug" && "$(CFG)" != "apr - Win32 Release9x" && "$(CFG)" != "apr - Win32 Debug9x" && "$(CFG)" != "apr - x64 Release" && "$(CFG)" != "apr - x64 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "apr.mak" CFG="apr - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "apr - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "apr - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "apr - Win32 Release9x" (based on "Win32 (x86) Static Library") +!MESSAGE "apr - Win32 Debug9x" (based on "Win32 (x86) Static Library") +!MESSAGE "apr - x64 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "apr - x64 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "apr - Win32 Release" + +OUTDIR=.\LibR +INTDIR=.\LibR +# Begin Custom Macros +OutDir=.\LibR +# End Custom Macros + +ALL : "$(OUTDIR)\apr-1.lib" + + +CLEAN : + -@erase "$(INTDIR)\apr-1.idb" + -@erase "$(INTDIR)\apr-1.pdb" + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\apr-1.lib" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-1" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\apr.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" +LIB32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" + +"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "apr - Win32 Debug" + +OUTDIR=.\LibD +INTDIR=.\LibD +# Begin Custom Macros +OutDir=.\LibD +# End Custom Macros + +ALL : ".\include\apr.h" "$(OUTDIR)\apr-1.lib" + + +CLEAN : + -@erase "$(INTDIR)\apr-1.idb" + -@erase "$(INTDIR)\apr-1.pdb" + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\apr-1.lib" + -@erase ".\include\apr.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-1" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\apr.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" +LIB32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" + +"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "apr - Win32 Release9x" + +OUTDIR=.\9x\LibR +INTDIR=.\9x\LibR +# Begin Custom Macros +OutDir=.\9x\LibR +# End Custom Macros + +ALL : ".\include\apr.h" "$(OUTDIR)\apr-1.lib" + + +CLEAN : + -@erase "$(INTDIR)\apr-1.idb" + -@erase "$(INTDIR)\apr-1.pdb" + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\apr-1.lib" + -@erase ".\include\apr.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-1" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\apr.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" +LIB32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" + +"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" + +OUTDIR=.\9x\LibD +INTDIR=.\9x\LibD +# Begin Custom Macros +OutDir=.\9x\LibD +# End Custom Macros + +ALL : ".\include\apr.h" "$(OUTDIR)\apr-1.lib" + + +CLEAN : + -@erase "$(INTDIR)\apr-1.idb" + -@erase "$(INTDIR)\apr-1.pdb" + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\apr-1.lib" + -@erase ".\include\apr.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-1" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\apr.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" +LIB32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" + +"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "apr - x64 Release" + +OUTDIR=.\x64\LibR +INTDIR=.\x64\LibR +# Begin Custom Macros +OutDir=.\x64\LibR +# End Custom Macros + +ALL : ".\include\apr.h" "$(OUTDIR)\apr-1.lib" + + +CLEAN : + -@erase "$(INTDIR)\apr-1.idb" + -@erase "$(INTDIR)\apr-1.pdb" + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\apr-1.lib" + -@erase ".\include\apr.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /D "WIN64" /D "_WIN64" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-1" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\apr.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" +LIB32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" + +"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "apr - x64 Debug" + +OUTDIR=.\x64\LibD +INTDIR=.\x64\LibD +# Begin Custom Macros +OutDir=.\x64\LibD +# End Custom Macros + +ALL : ".\include\apr.h" "$(OUTDIR)\apr-1.lib" + + +CLEAN : + -@erase "$(INTDIR)\apr-1.idb" + -@erase "$(INTDIR)\apr-1.pdb" + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\apr-1.lib" + -@erase ".\include\apr.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /D "WIN64" /D "_WIN64" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-1" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\apr.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" +LIB32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" + +"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("apr.dep") +!INCLUDE "apr.dep" +!ELSE +!MESSAGE Warning: cannot find "apr.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "apr - Win32 Release" || "$(CFG)" == "apr - Win32 Debug" || "$(CFG)" == "apr - Win32 Release9x" || "$(CFG)" == "apr - Win32 Debug9x" || "$(CFG)" == "apr - x64 Release" || "$(CFG)" == "apr - x64 Debug" +SOURCE=.\atomic\win32\apr_atomic.c + +"$(INTDIR)\apr_atomic.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dso\win32\dso.c + +"$(INTDIR)\dso.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\buffer.c + +"$(INTDIR)\buffer.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\copy.c + +"$(INTDIR)\copy.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\dir.c + +"$(INTDIR)\dir.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\fileacc.c + +"$(INTDIR)\fileacc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\filedup.c + +"$(INTDIR)\filedup.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\filepath.c + +"$(INTDIR)\filepath.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\filepath_util.c + +"$(INTDIR)\filepath_util.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\filestat.c + +"$(INTDIR)\filestat.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\filesys.c + +"$(INTDIR)\filesys.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\flock.c + +"$(INTDIR)\flock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\fullrw.c + +"$(INTDIR)\fullrw.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\mktemp.c + +"$(INTDIR)\mktemp.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\open.c + +"$(INTDIR)\open.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\pipe.c + +"$(INTDIR)\pipe.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\readwrite.c + +"$(INTDIR)\readwrite.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\seek.c + +"$(INTDIR)\seek.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\tempdir.c + +"$(INTDIR)\tempdir.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\locks\win32\proc_mutex.c + +"$(INTDIR)\proc_mutex.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\locks\win32\thread_cond.c + +"$(INTDIR)\thread_cond.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\locks\win32\thread_mutex.c + +"$(INTDIR)\thread_mutex.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\locks\win32\thread_rwlock.c + +"$(INTDIR)\thread_rwlock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\memory\unix\apr_pools.c + +"$(INTDIR)\apr_pools.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\apr_app.c +SOURCE=.\misc\win32\charset.c + +"$(INTDIR)\charset.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\env.c + +"$(INTDIR)\env.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\unix\errorcodes.c + +"$(INTDIR)\errorcodes.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\unix\getopt.c + +"$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\internal.c + +"$(INTDIR)\internal.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\misc.c + +"$(INTDIR)\misc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\unix\otherchild.c + +"$(INTDIR)\otherchild.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\rand.c + +"$(INTDIR)\rand.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\start.c + +"$(INTDIR)\start.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\utf8.c + +"$(INTDIR)\utf8.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\unix\version.c + +"$(INTDIR)\version.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\mmap\unix\common.c + +"$(INTDIR)\common.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\mmap\win32\mmap.c + +"$(INTDIR)\mmap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\unix\inet_ntop.c + +"$(INTDIR)\inet_ntop.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\unix\inet_pton.c + +"$(INTDIR)\inet_pton.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\unix\multicast.c + +"$(INTDIR)\multicast.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\win32\sendrecv.c + +"$(INTDIR)\sendrecv.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\unix\sockaddr.c + +"$(INTDIR)\sockaddr.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\unix\socket_util.c + +"$(INTDIR)\socket_util.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\win32\sockets.c + +"$(INTDIR)\sockets.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\win32\sockopt.c + +"$(INTDIR)\sockopt.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\passwd\apr_getpass.c + +"$(INTDIR)\apr_getpass.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\poll\unix\poll.c + +"$(INTDIR)\poll.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\poll\unix\pollcb.c + +"$(INTDIR)\pollcb.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\poll\unix\pollset.c + +"$(INTDIR)\pollset.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\poll\unix\select.c + +"$(INTDIR)\select.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\random\unix\apr_random.c + +"$(INTDIR)\apr_random.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\random\unix\sha2.c + +"$(INTDIR)\sha2.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\random\unix\sha2_glue.c + +"$(INTDIR)\sha2_glue.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\shmem\win32\shm.c + +"$(INTDIR)\shm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_cpystrn.c + +"$(INTDIR)\apr_cpystrn.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_fnmatch.c + +"$(INTDIR)\apr_fnmatch.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_snprintf.c + +"$(INTDIR)\apr_snprintf.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_strings.c + +"$(INTDIR)\apr_strings.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_strnatcmp.c + +"$(INTDIR)\apr_strnatcmp.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_strtok.c + +"$(INTDIR)\apr_strtok.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\tables\apr_hash.c + +"$(INTDIR)\apr_hash.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\tables\apr_tables.c + +"$(INTDIR)\apr_tables.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\threadproc\win32\proc.c + +"$(INTDIR)\proc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\threadproc\win32\signals.c + +"$(INTDIR)\signals.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\threadproc\win32\thread.c + +"$(INTDIR)\thread.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\threadproc\win32\threadpriv.c + +"$(INTDIR)\threadpriv.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\time\win32\time.c + +"$(INTDIR)\time.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\time\win32\timestr.c + +"$(INTDIR)\timestr.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\user\win32\groupinfo.c + +"$(INTDIR)\groupinfo.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\user\win32\userinfo.c + +"$(INTDIR)\userinfo.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\include\apr.hw + +!IF "$(CFG)" == "apr - Win32 Release" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "apr - Win32 Debug" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "apr - Win32 Release9x" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "apr - x64 Release" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "apr - x64 Debug" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ENDIF + + +!ENDIF + diff --git a/iis/winbuild/aprutil.mak b/iis/winbuild/aprutil.mak new file mode 100644 index 00000000..e14c0725 --- /dev/null +++ b/iis/winbuild/aprutil.mak @@ -0,0 +1,1472 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on aprutil.dsp +!IF "$(CFG)" == "" +CFG=aprutil - Win32 Release +!MESSAGE No configuration specified. Defaulting to aprutil - Win32 Release. +!ENDIF + +!IF "$(CFG)" != "aprutil - Win32 Release" && "$(CFG)" != "aprutil - Win32 Debug" && "$(CFG)" != "aprutil - x64 Release" && "$(CFG)" != "aprutil - x64 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "aprutil.mak" CFG="aprutil - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "aprutil - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "aprutil - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "aprutil - x64 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "aprutil - x64 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "aprutil - Win32 Release" + +OUTDIR=.\LibR +INTDIR=.\LibR +# Begin Custom Macros +OutDir=.\LibR +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\aprutil-1.lib" + +!ELSE + +ALL : "xml - Win32 Release" "apriconv - Win32 Release" "$(OUTDIR)\aprutil-1.lib" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"apriconv - Win32 ReleaseCLEAN" "xml - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\apr_base64.obj" + -@erase "$(INTDIR)\apr_brigade.obj" + -@erase "$(INTDIR)\apr_buckets.obj" + -@erase "$(INTDIR)\apr_buckets_alloc.obj" + -@erase "$(INTDIR)\apr_buckets_eos.obj" + -@erase "$(INTDIR)\apr_buckets_file.obj" + -@erase "$(INTDIR)\apr_buckets_flush.obj" + -@erase "$(INTDIR)\apr_buckets_heap.obj" + -@erase "$(INTDIR)\apr_buckets_mmap.obj" + -@erase "$(INTDIR)\apr_buckets_pipe.obj" + -@erase "$(INTDIR)\apr_buckets_pool.obj" + -@erase "$(INTDIR)\apr_buckets_refcount.obj" + -@erase "$(INTDIR)\apr_buckets_simple.obj" + -@erase "$(INTDIR)\apr_buckets_socket.obj" + -@erase "$(INTDIR)\apr_crypto.obj" + -@erase "$(INTDIR)\apr_date.obj" + -@erase "$(INTDIR)\apr_dbd.obj" + -@erase "$(INTDIR)\apr_dbd_freetds.obj" + -@erase "$(INTDIR)\apr_dbd_mysql.obj" + -@erase "$(INTDIR)\apr_dbd_odbc.obj" + -@erase "$(INTDIR)\apr_dbd_oracle.obj" + -@erase "$(INTDIR)\apr_dbd_pgsql.obj" + -@erase "$(INTDIR)\apr_dbd_sqlite2.obj" + -@erase "$(INTDIR)\apr_dbd_sqlite3.obj" + -@erase "$(INTDIR)\apr_dbm.obj" + -@erase "$(INTDIR)\apr_dbm_berkeleydb.obj" + -@erase "$(INTDIR)\apr_dbm_gdbm.obj" + -@erase "$(INTDIR)\apr_dbm_sdbm.obj" + -@erase "$(INTDIR)\apr_hooks.obj" + -@erase "$(INTDIR)\apr_ldap_init.obj" + -@erase "$(INTDIR)\apr_ldap_option.obj" + -@erase "$(INTDIR)\apr_ldap_rebind.obj" + -@erase "$(INTDIR)\apr_ldap_stub.obj" + -@erase "$(INTDIR)\apr_ldap_url.obj" + -@erase "$(INTDIR)\apr_md4.obj" + -@erase "$(INTDIR)\apr_md5.obj" + -@erase "$(INTDIR)\apr_memcache.obj" + -@erase "$(INTDIR)\apr_queue.obj" + -@erase "$(INTDIR)\apr_reslist.obj" + -@erase "$(INTDIR)\apr_rmm.obj" + -@erase "$(INTDIR)\apr_sha1.obj" + -@erase "$(INTDIR)\apr_strmatch.obj" + -@erase "$(INTDIR)\apr_thread_pool.obj" + -@erase "$(INTDIR)\apr_uri.obj" + -@erase "$(INTDIR)\apr_xml.obj" + -@erase "$(INTDIR)\aprutil-1.idb" + -@erase "$(INTDIR)\aprutil-1.pdb" + -@erase "$(INTDIR)\apu_dso.obj" + -@erase "$(INTDIR)\apu_version.obj" + -@erase "$(INTDIR)\getuuid.obj" + -@erase "$(INTDIR)\sdbm.obj" + -@erase "$(INTDIR)\sdbm_hash.obj" + -@erase "$(INTDIR)\sdbm_lock.obj" + -@erase "$(INTDIR)\sdbm_pair.obj" + -@erase "$(INTDIR)\uuid.obj" + -@erase "$(INTDIR)\xlate.obj" + -@erase "$(OUTDIR)\aprutil-1.lib" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "HAVE_SQL_H" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprutil-1" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\aprutil.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprutil-1.lib" +LIB32_OBJS= \ + "$(INTDIR)\apr_brigade.obj" \ + "$(INTDIR)\apr_buckets.obj" \ + "$(INTDIR)\apr_buckets_alloc.obj" \ + "$(INTDIR)\apr_buckets_eos.obj" \ + "$(INTDIR)\apr_buckets_file.obj" \ + "$(INTDIR)\apr_buckets_flush.obj" \ + "$(INTDIR)\apr_buckets_heap.obj" \ + "$(INTDIR)\apr_buckets_mmap.obj" \ + "$(INTDIR)\apr_buckets_pipe.obj" \ + "$(INTDIR)\apr_buckets_pool.obj" \ + "$(INTDIR)\apr_buckets_refcount.obj" \ + "$(INTDIR)\apr_buckets_simple.obj" \ + "$(INTDIR)\apr_buckets_socket.obj" \ + "$(INTDIR)\apr_crypto.obj" \ + "$(INTDIR)\apr_md4.obj" \ + "$(INTDIR)\apr_md5.obj" \ + "$(INTDIR)\apr_sha1.obj" \ + "$(INTDIR)\getuuid.obj" \ + "$(INTDIR)\uuid.obj" \ + "$(INTDIR)\apr_dbd.obj" \ + "$(INTDIR)\apr_dbd_freetds.obj" \ + "$(INTDIR)\apr_dbd_mysql.obj" \ + "$(INTDIR)\apr_dbd_odbc.obj" \ + "$(INTDIR)\apr_dbd_oracle.obj" \ + "$(INTDIR)\apr_dbd_pgsql.obj" \ + "$(INTDIR)\apr_dbd_sqlite2.obj" \ + "$(INTDIR)\apr_dbd_sqlite3.obj" \ + "$(INTDIR)\apr_dbm.obj" \ + "$(INTDIR)\apr_dbm_berkeleydb.obj" \ + "$(INTDIR)\apr_dbm_gdbm.obj" \ + "$(INTDIR)\apr_dbm_sdbm.obj" \ + "$(INTDIR)\apr_base64.obj" \ + "$(INTDIR)\apr_hooks.obj" \ + "$(INTDIR)\apr_ldap_init.obj" \ + "$(INTDIR)\apr_ldap_option.obj" \ + "$(INTDIR)\apr_ldap_rebind.obj" \ + "$(INTDIR)\apr_ldap_stub.obj" \ + "$(INTDIR)\apr_ldap_url.obj" \ + "$(INTDIR)\apr_memcache.obj" \ + "$(INTDIR)\apr_date.obj" \ + "$(INTDIR)\apu_dso.obj" \ + "$(INTDIR)\apr_queue.obj" \ + "$(INTDIR)\apr_reslist.obj" \ + "$(INTDIR)\apr_rmm.obj" \ + "$(INTDIR)\apr_thread_pool.obj" \ + "$(INTDIR)\apu_version.obj" \ + "$(INTDIR)\sdbm.obj" \ + "$(INTDIR)\sdbm_hash.obj" \ + "$(INTDIR)\sdbm_lock.obj" \ + "$(INTDIR)\sdbm_pair.obj" \ + "$(INTDIR)\apr_strmatch.obj" \ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ + "..\apr-iconv\LibR\apriconv-1.lib" \ + ".\xml\expat\lib\LibR\xml.lib" + +"$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "aprutil - Win32 Debug" + +OUTDIR=.\LibD +INTDIR=.\LibD +# Begin Custom Macros +OutDir=.\LibD +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib" + +!ELSE + +ALL : "xml - Win32 Debug" "apriconv - Win32 Debug" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"apriconv - Win32 DebugCLEAN" "xml - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\apr_base64.obj" + -@erase "$(INTDIR)\apr_brigade.obj" + -@erase "$(INTDIR)\apr_buckets.obj" + -@erase "$(INTDIR)\apr_buckets_alloc.obj" + -@erase "$(INTDIR)\apr_buckets_eos.obj" + -@erase "$(INTDIR)\apr_buckets_file.obj" + -@erase "$(INTDIR)\apr_buckets_flush.obj" + -@erase "$(INTDIR)\apr_buckets_heap.obj" + -@erase "$(INTDIR)\apr_buckets_mmap.obj" + -@erase "$(INTDIR)\apr_buckets_pipe.obj" + -@erase "$(INTDIR)\apr_buckets_pool.obj" + -@erase "$(INTDIR)\apr_buckets_refcount.obj" + -@erase "$(INTDIR)\apr_buckets_simple.obj" + -@erase "$(INTDIR)\apr_buckets_socket.obj" + -@erase "$(INTDIR)\apr_crypto.obj" + -@erase "$(INTDIR)\apr_date.obj" + -@erase "$(INTDIR)\apr_dbd.obj" + -@erase "$(INTDIR)\apr_dbd_freetds.obj" + -@erase "$(INTDIR)\apr_dbd_mysql.obj" + -@erase "$(INTDIR)\apr_dbd_odbc.obj" + -@erase "$(INTDIR)\apr_dbd_oracle.obj" + -@erase "$(INTDIR)\apr_dbd_pgsql.obj" + -@erase "$(INTDIR)\apr_dbd_sqlite2.obj" + -@erase "$(INTDIR)\apr_dbd_sqlite3.obj" + -@erase "$(INTDIR)\apr_dbm.obj" + -@erase "$(INTDIR)\apr_dbm_berkeleydb.obj" + -@erase "$(INTDIR)\apr_dbm_gdbm.obj" + -@erase "$(INTDIR)\apr_dbm_sdbm.obj" + -@erase "$(INTDIR)\apr_hooks.obj" + -@erase "$(INTDIR)\apr_ldap_init.obj" + -@erase "$(INTDIR)\apr_ldap_option.obj" + -@erase "$(INTDIR)\apr_ldap_rebind.obj" + -@erase "$(INTDIR)\apr_ldap_stub.obj" + -@erase "$(INTDIR)\apr_ldap_url.obj" + -@erase "$(INTDIR)\apr_md4.obj" + -@erase "$(INTDIR)\apr_md5.obj" + -@erase "$(INTDIR)\apr_memcache.obj" + -@erase "$(INTDIR)\apr_queue.obj" + -@erase "$(INTDIR)\apr_reslist.obj" + -@erase "$(INTDIR)\apr_rmm.obj" + -@erase "$(INTDIR)\apr_sha1.obj" + -@erase "$(INTDIR)\apr_strmatch.obj" + -@erase "$(INTDIR)\apr_thread_pool.obj" + -@erase "$(INTDIR)\apr_uri.obj" + -@erase "$(INTDIR)\apr_xml.obj" + -@erase "$(INTDIR)\aprutil-1.idb" + -@erase "$(INTDIR)\aprutil-1.pdb" + -@erase "$(INTDIR)\apu_dso.obj" + -@erase "$(INTDIR)\apu_version.obj" + -@erase "$(INTDIR)\getuuid.obj" + -@erase "$(INTDIR)\sdbm.obj" + -@erase "$(INTDIR)\sdbm_hash.obj" + -@erase "$(INTDIR)\sdbm_lock.obj" + -@erase "$(INTDIR)\sdbm_pair.obj" + -@erase "$(INTDIR)\uuid.obj" + -@erase "$(INTDIR)\xlate.obj" + -@erase "$(OUTDIR)\aprutil-1.lib" + -@erase ".\include\apr_ldap.h" + -@erase ".\include\apu.h" + -@erase ".\include\apu_want.h" + -@erase ".\include\private\apu_config.h" + -@erase ".\include\private\apu_select_dbm.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "HAVE_SQL_H" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprutil-1" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\aprutil.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprutil-1.lib" +LIB32_OBJS= \ + "$(INTDIR)\apr_brigade.obj" \ + "$(INTDIR)\apr_buckets.obj" \ + "$(INTDIR)\apr_buckets_alloc.obj" \ + "$(INTDIR)\apr_buckets_eos.obj" \ + "$(INTDIR)\apr_buckets_file.obj" \ + "$(INTDIR)\apr_buckets_flush.obj" \ + "$(INTDIR)\apr_buckets_heap.obj" \ + "$(INTDIR)\apr_buckets_mmap.obj" \ + "$(INTDIR)\apr_buckets_pipe.obj" \ + "$(INTDIR)\apr_buckets_pool.obj" \ + "$(INTDIR)\apr_buckets_refcount.obj" \ + "$(INTDIR)\apr_buckets_simple.obj" \ + "$(INTDIR)\apr_buckets_socket.obj" \ + "$(INTDIR)\apr_crypto.obj" \ + "$(INTDIR)\apr_md4.obj" \ + "$(INTDIR)\apr_md5.obj" \ + "$(INTDIR)\apr_sha1.obj" \ + "$(INTDIR)\getuuid.obj" \ + "$(INTDIR)\uuid.obj" \ + "$(INTDIR)\apr_dbd.obj" \ + "$(INTDIR)\apr_dbd_freetds.obj" \ + "$(INTDIR)\apr_dbd_mysql.obj" \ + "$(INTDIR)\apr_dbd_odbc.obj" \ + "$(INTDIR)\apr_dbd_oracle.obj" \ + "$(INTDIR)\apr_dbd_pgsql.obj" \ + "$(INTDIR)\apr_dbd_sqlite2.obj" \ + "$(INTDIR)\apr_dbd_sqlite3.obj" \ + "$(INTDIR)\apr_dbm.obj" \ + "$(INTDIR)\apr_dbm_berkeleydb.obj" \ + "$(INTDIR)\apr_dbm_gdbm.obj" \ + "$(INTDIR)\apr_dbm_sdbm.obj" \ + "$(INTDIR)\apr_base64.obj" \ + "$(INTDIR)\apr_hooks.obj" \ + "$(INTDIR)\apr_ldap_init.obj" \ + "$(INTDIR)\apr_ldap_option.obj" \ + "$(INTDIR)\apr_ldap_rebind.obj" \ + "$(INTDIR)\apr_ldap_stub.obj" \ + "$(INTDIR)\apr_ldap_url.obj" \ + "$(INTDIR)\apr_memcache.obj" \ + "$(INTDIR)\apr_date.obj" \ + "$(INTDIR)\apu_dso.obj" \ + "$(INTDIR)\apr_queue.obj" \ + "$(INTDIR)\apr_reslist.obj" \ + "$(INTDIR)\apr_rmm.obj" \ + "$(INTDIR)\apr_thread_pool.obj" \ + "$(INTDIR)\apu_version.obj" \ + "$(INTDIR)\sdbm.obj" \ + "$(INTDIR)\sdbm_hash.obj" \ + "$(INTDIR)\sdbm_lock.obj" \ + "$(INTDIR)\sdbm_pair.obj" \ + "$(INTDIR)\apr_strmatch.obj" \ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ + "..\apr-iconv\LibD\apriconv-1.lib" \ + ".\xml\expat\lib\LibD\xml.lib" + +"$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "aprutil - x64 Release" + +OUTDIR=.\x64\LibR +INTDIR=.\x64\LibR +# Begin Custom Macros +OutDir=.\x64\LibR +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib" + +!ELSE + +ALL : "xml - x64 Release" "apriconv - x64 Release" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"apriconv - x64 ReleaseCLEAN" "xml - x64 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\apr_base64.obj" + -@erase "$(INTDIR)\apr_brigade.obj" + -@erase "$(INTDIR)\apr_buckets.obj" + -@erase "$(INTDIR)\apr_buckets_alloc.obj" + -@erase "$(INTDIR)\apr_buckets_eos.obj" + -@erase "$(INTDIR)\apr_buckets_file.obj" + -@erase "$(INTDIR)\apr_buckets_flush.obj" + -@erase "$(INTDIR)\apr_buckets_heap.obj" + -@erase "$(INTDIR)\apr_buckets_mmap.obj" + -@erase "$(INTDIR)\apr_buckets_pipe.obj" + -@erase "$(INTDIR)\apr_buckets_pool.obj" + -@erase "$(INTDIR)\apr_buckets_refcount.obj" + -@erase "$(INTDIR)\apr_buckets_simple.obj" + -@erase "$(INTDIR)\apr_buckets_socket.obj" + -@erase "$(INTDIR)\apr_crypto.obj" + -@erase "$(INTDIR)\apr_date.obj" + -@erase "$(INTDIR)\apr_dbd.obj" + -@erase "$(INTDIR)\apr_dbd_freetds.obj" + -@erase "$(INTDIR)\apr_dbd_mysql.obj" + -@erase "$(INTDIR)\apr_dbd_odbc.obj" + -@erase "$(INTDIR)\apr_dbd_oracle.obj" + -@erase "$(INTDIR)\apr_dbd_pgsql.obj" + -@erase "$(INTDIR)\apr_dbd_sqlite2.obj" + -@erase "$(INTDIR)\apr_dbd_sqlite3.obj" + -@erase "$(INTDIR)\apr_dbm.obj" + -@erase "$(INTDIR)\apr_dbm_berkeleydb.obj" + -@erase "$(INTDIR)\apr_dbm_gdbm.obj" + -@erase "$(INTDIR)\apr_dbm_sdbm.obj" + -@erase "$(INTDIR)\apr_hooks.obj" + -@erase "$(INTDIR)\apr_ldap_init.obj" + -@erase "$(INTDIR)\apr_ldap_option.obj" + -@erase "$(INTDIR)\apr_ldap_rebind.obj" + -@erase "$(INTDIR)\apr_ldap_stub.obj" + -@erase "$(INTDIR)\apr_ldap_url.obj" + -@erase "$(INTDIR)\apr_md4.obj" + -@erase "$(INTDIR)\apr_md5.obj" + -@erase "$(INTDIR)\apr_memcache.obj" + -@erase "$(INTDIR)\apr_queue.obj" + -@erase "$(INTDIR)\apr_reslist.obj" + -@erase "$(INTDIR)\apr_rmm.obj" + -@erase "$(INTDIR)\apr_sha1.obj" + -@erase "$(INTDIR)\apr_strmatch.obj" + -@erase "$(INTDIR)\apr_thread_pool.obj" + -@erase "$(INTDIR)\apr_uri.obj" + -@erase "$(INTDIR)\apr_xml.obj" + -@erase "$(INTDIR)\aprutil-1.idb" + -@erase "$(INTDIR)\aprutil-1.pdb" + -@erase "$(INTDIR)\apu_dso.obj" + -@erase "$(INTDIR)\apu_version.obj" + -@erase "$(INTDIR)\getuuid.obj" + -@erase "$(INTDIR)\sdbm.obj" + -@erase "$(INTDIR)\sdbm_hash.obj" + -@erase "$(INTDIR)\sdbm_lock.obj" + -@erase "$(INTDIR)\sdbm_pair.obj" + -@erase "$(INTDIR)\uuid.obj" + -@erase "$(INTDIR)\xlate.obj" + -@erase "$(OUTDIR)\aprutil-1.lib" + -@erase ".\include\apr_ldap.h" + -@erase ".\include\apu.h" + -@erase ".\include\apu_want.h" + -@erase ".\include\private\apu_config.h" + -@erase ".\include\private\apu_select_dbm.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "HAVE_SQL_H" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprutil-1" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\aprutil.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprutil-1.lib" +LIB32_OBJS= \ + "$(INTDIR)\apr_brigade.obj" \ + "$(INTDIR)\apr_buckets.obj" \ + "$(INTDIR)\apr_buckets_alloc.obj" \ + "$(INTDIR)\apr_buckets_eos.obj" \ + "$(INTDIR)\apr_buckets_file.obj" \ + "$(INTDIR)\apr_buckets_flush.obj" \ + "$(INTDIR)\apr_buckets_heap.obj" \ + "$(INTDIR)\apr_buckets_mmap.obj" \ + "$(INTDIR)\apr_buckets_pipe.obj" \ + "$(INTDIR)\apr_buckets_pool.obj" \ + "$(INTDIR)\apr_buckets_refcount.obj" \ + "$(INTDIR)\apr_buckets_simple.obj" \ + "$(INTDIR)\apr_buckets_socket.obj" \ + "$(INTDIR)\apr_crypto.obj" \ + "$(INTDIR)\apr_md4.obj" \ + "$(INTDIR)\apr_md5.obj" \ + "$(INTDIR)\apr_sha1.obj" \ + "$(INTDIR)\getuuid.obj" \ + "$(INTDIR)\uuid.obj" \ + "$(INTDIR)\apr_dbd.obj" \ + "$(INTDIR)\apr_dbd_freetds.obj" \ + "$(INTDIR)\apr_dbd_mysql.obj" \ + "$(INTDIR)\apr_dbd_odbc.obj" \ + "$(INTDIR)\apr_dbd_oracle.obj" \ + "$(INTDIR)\apr_dbd_pgsql.obj" \ + "$(INTDIR)\apr_dbd_sqlite2.obj" \ + "$(INTDIR)\apr_dbd_sqlite3.obj" \ + "$(INTDIR)\apr_dbm.obj" \ + "$(INTDIR)\apr_dbm_berkeleydb.obj" \ + "$(INTDIR)\apr_dbm_gdbm.obj" \ + "$(INTDIR)\apr_dbm_sdbm.obj" \ + "$(INTDIR)\apr_base64.obj" \ + "$(INTDIR)\apr_hooks.obj" \ + "$(INTDIR)\apr_ldap_init.obj" \ + "$(INTDIR)\apr_ldap_option.obj" \ + "$(INTDIR)\apr_ldap_rebind.obj" \ + "$(INTDIR)\apr_ldap_stub.obj" \ + "$(INTDIR)\apr_ldap_url.obj" \ + "$(INTDIR)\apr_memcache.obj" \ + "$(INTDIR)\apr_date.obj" \ + "$(INTDIR)\apu_dso.obj" \ + "$(INTDIR)\apr_queue.obj" \ + "$(INTDIR)\apr_reslist.obj" \ + "$(INTDIR)\apr_rmm.obj" \ + "$(INTDIR)\apr_thread_pool.obj" \ + "$(INTDIR)\apu_version.obj" \ + "$(INTDIR)\sdbm.obj" \ + "$(INTDIR)\sdbm_hash.obj" \ + "$(INTDIR)\sdbm_lock.obj" \ + "$(INTDIR)\sdbm_pair.obj" \ + "$(INTDIR)\apr_strmatch.obj" \ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ + "..\apr-iconv\x64\LibR\apriconv-1.lib" \ + ".\xml\expat\lib\x64\LibR\xml.lib" + +"$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "aprutil - x64 Debug" + +OUTDIR=.\x64\LibD +INTDIR=.\x64\LibD +# Begin Custom Macros +OutDir=.\x64\LibD +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib" + +!ELSE + +ALL : "xml - x64 Debug" "apriconv - x64 Debug" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"apriconv - x64 DebugCLEAN" "xml - x64 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\apr_base64.obj" + -@erase "$(INTDIR)\apr_brigade.obj" + -@erase "$(INTDIR)\apr_buckets.obj" + -@erase "$(INTDIR)\apr_buckets_alloc.obj" + -@erase "$(INTDIR)\apr_buckets_eos.obj" + -@erase "$(INTDIR)\apr_buckets_file.obj" + -@erase "$(INTDIR)\apr_buckets_flush.obj" + -@erase "$(INTDIR)\apr_buckets_heap.obj" + -@erase "$(INTDIR)\apr_buckets_mmap.obj" + -@erase "$(INTDIR)\apr_buckets_pipe.obj" + -@erase "$(INTDIR)\apr_buckets_pool.obj" + -@erase "$(INTDIR)\apr_buckets_refcount.obj" + -@erase "$(INTDIR)\apr_buckets_simple.obj" + -@erase "$(INTDIR)\apr_buckets_socket.obj" + -@erase "$(INTDIR)\apr_crypto.obj" + -@erase "$(INTDIR)\apr_date.obj" + -@erase "$(INTDIR)\apr_dbd.obj" + -@erase "$(INTDIR)\apr_dbd_freetds.obj" + -@erase "$(INTDIR)\apr_dbd_mysql.obj" + -@erase "$(INTDIR)\apr_dbd_odbc.obj" + -@erase "$(INTDIR)\apr_dbd_oracle.obj" + -@erase "$(INTDIR)\apr_dbd_pgsql.obj" + -@erase "$(INTDIR)\apr_dbd_sqlite2.obj" + -@erase "$(INTDIR)\apr_dbd_sqlite3.obj" + -@erase "$(INTDIR)\apr_dbm.obj" + -@erase "$(INTDIR)\apr_dbm_berkeleydb.obj" + -@erase "$(INTDIR)\apr_dbm_gdbm.obj" + -@erase "$(INTDIR)\apr_dbm_sdbm.obj" + -@erase "$(INTDIR)\apr_hooks.obj" + -@erase "$(INTDIR)\apr_ldap_init.obj" + -@erase "$(INTDIR)\apr_ldap_option.obj" + -@erase "$(INTDIR)\apr_ldap_rebind.obj" + -@erase "$(INTDIR)\apr_ldap_stub.obj" + -@erase "$(INTDIR)\apr_ldap_url.obj" + -@erase "$(INTDIR)\apr_md4.obj" + -@erase "$(INTDIR)\apr_md5.obj" + -@erase "$(INTDIR)\apr_memcache.obj" + -@erase "$(INTDIR)\apr_queue.obj" + -@erase "$(INTDIR)\apr_reslist.obj" + -@erase "$(INTDIR)\apr_rmm.obj" + -@erase "$(INTDIR)\apr_sha1.obj" + -@erase "$(INTDIR)\apr_strmatch.obj" + -@erase "$(INTDIR)\apr_thread_pool.obj" + -@erase "$(INTDIR)\apr_uri.obj" + -@erase "$(INTDIR)\apr_xml.obj" + -@erase "$(INTDIR)\aprutil-1.idb" + -@erase "$(INTDIR)\aprutil-1.pdb" + -@erase "$(INTDIR)\apu_dso.obj" + -@erase "$(INTDIR)\apu_version.obj" + -@erase "$(INTDIR)\getuuid.obj" + -@erase "$(INTDIR)\sdbm.obj" + -@erase "$(INTDIR)\sdbm_hash.obj" + -@erase "$(INTDIR)\sdbm_lock.obj" + -@erase "$(INTDIR)\sdbm_pair.obj" + -@erase "$(INTDIR)\uuid.obj" + -@erase "$(INTDIR)\xlate.obj" + -@erase "$(OUTDIR)\aprutil-1.lib" + -@erase ".\include\apr_ldap.h" + -@erase ".\include\apu.h" + -@erase ".\include\apu_want.h" + -@erase ".\include\private\apu_config.h" + -@erase ".\include\private\apu_select_dbm.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "HAVE_SQL_H" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprutil-1" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\aprutil.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprutil-1.lib" +LIB32_OBJS= \ + "$(INTDIR)\apr_brigade.obj" \ + "$(INTDIR)\apr_buckets.obj" \ + "$(INTDIR)\apr_buckets_alloc.obj" \ + "$(INTDIR)\apr_buckets_eos.obj" \ + "$(INTDIR)\apr_buckets_file.obj" \ + "$(INTDIR)\apr_buckets_flush.obj" \ + "$(INTDIR)\apr_buckets_heap.obj" \ + "$(INTDIR)\apr_buckets_mmap.obj" \ + "$(INTDIR)\apr_buckets_pipe.obj" \ + "$(INTDIR)\apr_buckets_pool.obj" \ + "$(INTDIR)\apr_buckets_refcount.obj" \ + "$(INTDIR)\apr_buckets_simple.obj" \ + "$(INTDIR)\apr_buckets_socket.obj" \ + "$(INTDIR)\apr_crypto.obj" \ + "$(INTDIR)\apr_md4.obj" \ + "$(INTDIR)\apr_md5.obj" \ + "$(INTDIR)\apr_sha1.obj" \ + "$(INTDIR)\getuuid.obj" \ + "$(INTDIR)\uuid.obj" \ + "$(INTDIR)\apr_dbd.obj" \ + "$(INTDIR)\apr_dbd_freetds.obj" \ + "$(INTDIR)\apr_dbd_mysql.obj" \ + "$(INTDIR)\apr_dbd_odbc.obj" \ + "$(INTDIR)\apr_dbd_oracle.obj" \ + "$(INTDIR)\apr_dbd_pgsql.obj" \ + "$(INTDIR)\apr_dbd_sqlite2.obj" \ + "$(INTDIR)\apr_dbd_sqlite3.obj" \ + "$(INTDIR)\apr_dbm.obj" \ + "$(INTDIR)\apr_dbm_berkeleydb.obj" \ + "$(INTDIR)\apr_dbm_gdbm.obj" \ + "$(INTDIR)\apr_dbm_sdbm.obj" \ + "$(INTDIR)\apr_base64.obj" \ + "$(INTDIR)\apr_hooks.obj" \ + "$(INTDIR)\apr_ldap_init.obj" \ + "$(INTDIR)\apr_ldap_option.obj" \ + "$(INTDIR)\apr_ldap_rebind.obj" \ + "$(INTDIR)\apr_ldap_stub.obj" \ + "$(INTDIR)\apr_ldap_url.obj" \ + "$(INTDIR)\apr_memcache.obj" \ + "$(INTDIR)\apr_date.obj" \ + "$(INTDIR)\apu_dso.obj" \ + "$(INTDIR)\apr_queue.obj" \ + "$(INTDIR)\apr_reslist.obj" \ + "$(INTDIR)\apr_rmm.obj" \ + "$(INTDIR)\apr_thread_pool.obj" \ + "$(INTDIR)\apu_version.obj" \ + "$(INTDIR)\sdbm.obj" \ + "$(INTDIR)\sdbm_hash.obj" \ + "$(INTDIR)\sdbm_lock.obj" \ + "$(INTDIR)\sdbm_pair.obj" \ + "$(INTDIR)\apr_strmatch.obj" \ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ + "..\apr-iconv\x64\LibD\apriconv-1.lib" \ + ".\xml\expat\lib\x64\LibD\xml.lib" + +"$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("aprutil.dep") +!INCLUDE "aprutil.dep" +!ELSE +!MESSAGE Warning: cannot find "aprutil.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "aprutil - Win32 Release" || "$(CFG)" == "aprutil - Win32 Debug" || "$(CFG)" == "aprutil - x64 Release" || "$(CFG)" == "aprutil - x64 Debug" +SOURCE=.\buckets\apr_brigade.c + +"$(INTDIR)\apr_brigade.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets.c + +"$(INTDIR)\apr_buckets.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_alloc.c + +"$(INTDIR)\apr_buckets_alloc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_eos.c + +"$(INTDIR)\apr_buckets_eos.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_file.c + +"$(INTDIR)\apr_buckets_file.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_flush.c + +"$(INTDIR)\apr_buckets_flush.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_heap.c + +"$(INTDIR)\apr_buckets_heap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_mmap.c + +"$(INTDIR)\apr_buckets_mmap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_pipe.c + +"$(INTDIR)\apr_buckets_pipe.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_pool.c + +"$(INTDIR)\apr_buckets_pool.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_refcount.c + +"$(INTDIR)\apr_buckets_refcount.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_simple.c + +"$(INTDIR)\apr_buckets_simple.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_socket.c + +"$(INTDIR)\apr_buckets_socket.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\apr_crypto.c + +"$(INTDIR)\apr_crypto.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\apr_md4.c + +"$(INTDIR)\apr_md4.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\apr_md5.c + +"$(INTDIR)\apr_md5.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\apr_sha1.c + +"$(INTDIR)\apr_sha1.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\getuuid.c + +"$(INTDIR)\getuuid.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\uuid.c + +"$(INTDIR)\uuid.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbd\apr_dbd.c + +"$(INTDIR)\apr_dbd.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbd\apr_dbd_freetds.c + +"$(INTDIR)\apr_dbd_freetds.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbd\apr_dbd_mysql.c + +"$(INTDIR)\apr_dbd_mysql.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbd\apr_dbd_odbc.c + +"$(INTDIR)\apr_dbd_odbc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbd\apr_dbd_oracle.c + +"$(INTDIR)\apr_dbd_oracle.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbd\apr_dbd_pgsql.c + +"$(INTDIR)\apr_dbd_pgsql.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbd\apr_dbd_sqlite2.c + +"$(INTDIR)\apr_dbd_sqlite2.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbd\apr_dbd_sqlite3.c + +"$(INTDIR)\apr_dbd_sqlite3.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\apr_dbm.c + +"$(INTDIR)\apr_dbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" ".\include\private\apu_select_dbm.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\apr_dbm_berkeleydb.c + +"$(INTDIR)\apr_dbm_berkeleydb.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu_want.h" ".\include\private\apu_config.h" ".\include\apu.h" ".\include\private\apu_select_dbm.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\apr_dbm_gdbm.c + +"$(INTDIR)\apr_dbm_gdbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" ".\include\private\apu_select_dbm.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\apr_dbm_sdbm.c + +"$(INTDIR)\apr_dbm_sdbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" ".\include\private\apu_select_dbm.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\encoding\apr_base64.c + +"$(INTDIR)\apr_base64.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\hooks\apr_hooks.c + +"$(INTDIR)\apr_hooks.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\ldap\apr_ldap_init.c + +"$(INTDIR)\apr_ldap_init.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h" ".\include\apr_ldap.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\ldap\apr_ldap_option.c + +"$(INTDIR)\apr_ldap_option.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h" ".\include\apr_ldap.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\ldap\apr_ldap_rebind.c + +"$(INTDIR)\apr_ldap_rebind.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h" ".\include\apr_ldap.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\ldap\apr_ldap_stub.c + +"$(INTDIR)\apr_ldap_stub.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h" ".\include\apr_ldap.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\ldap\apr_ldap_url.c + +"$(INTDIR)\apr_ldap_url.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\apr_ldap.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\memcache\apr_memcache.c + +"$(INTDIR)\apr_memcache.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apr_date.c + +"$(INTDIR)\apr_date.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apr_queue.c + +"$(INTDIR)\apr_queue.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apr_reslist.c + +"$(INTDIR)\apr_reslist.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apr_rmm.c + +"$(INTDIR)\apr_rmm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apr_thread_pool.c + +"$(INTDIR)\apr_thread_pool.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apu_dso.c + +"$(INTDIR)\apu_dso.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apu_version.c + +"$(INTDIR)\apu_version.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\sdbm\sdbm.c + +"$(INTDIR)\sdbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\sdbm\sdbm_hash.c + +"$(INTDIR)\sdbm_hash.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\sdbm\sdbm_lock.c + +"$(INTDIR)\sdbm_lock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\sdbm\sdbm_pair.c + +"$(INTDIR)\sdbm_pair.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strmatch\apr_strmatch.c + +"$(INTDIR)\apr_strmatch.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\uri\apr_uri.c + +"$(INTDIR)\apr_uri.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\xlate\xlate.c + +"$(INTDIR)\xlate.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\xml\apr_xml.c + +"$(INTDIR)\apr_xml.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\include\apr_ldap.hw + +!IF "$(CFG)" == "aprutil - Win32 Release" + +InputPath=.\include\apr_ldap.hw + +".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_ldap.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - Win32 Debug" + +InputPath=.\include\apr_ldap.hw + +".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_ldap.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - x64 Release" + +InputPath=.\include\apr_ldap.hw + +".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_ldap.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - x64 Debug" + +InputPath=.\include\apr_ldap.hw + +".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_ldap.h +<< + + +!ENDIF + +SOURCE=.\include\apu.hw + +!IF "$(CFG)" == "aprutil - Win32 Release" + +InputPath=.\include\apu.hw + +".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - Win32 Debug" + +InputPath=.\include\apu.hw + +".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - x64 Release" + +InputPath=.\include\apu.hw + +".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - x64 Debug" + +InputPath=.\include\apu.hw + +".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu.h +<< + + +!ENDIF + +SOURCE=.\include\private\apu_config.hw + +!IF "$(CFG)" == "aprutil - Win32 Release" + +InputPath=.\include\private\apu_config.hw + +".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_config.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - Win32 Debug" + +InputPath=.\include\private\apu_config.hw + +".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_config.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - x64 Release" + +InputPath=.\include\private\apu_config.hw + +".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_config.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - x64 Debug" + +InputPath=.\include\private\apu_config.hw + +".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_config.h +<< + + +!ENDIF + +SOURCE=.\include\private\apu_select_dbm.hw + +!IF "$(CFG)" == "aprutil - Win32 Release" + +InputPath=.\include\private\apu_select_dbm.hw + +".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_select_dbm.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - Win32 Debug" + +InputPath=.\include\private\apu_select_dbm.hw + +".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_select_dbm.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - x64 Release" + +InputPath=.\include\private\apu_select_dbm.hw + +".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_select_dbm.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - x64 Debug" + +InputPath=.\include\private\apu_select_dbm.hw + +".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_select_dbm.h +<< + + +!ENDIF + +SOURCE=.\include\apu_want.hw + +!IF "$(CFG)" == "aprutil - Win32 Release" + +InputPath=.\include\apu_want.hw + +".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu_want.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - Win32 Debug" + +InputPath=.\include\apu_want.hw + +".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu_want.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - x64 Release" + +InputPath=.\include\apu_want.hw + +".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu_want.h +<< + + +!ELSEIF "$(CFG)" == "aprutil - x64 Debug" + +InputPath=.\include\apu_want.hw + +".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu_want.h +<< + + +!ENDIF + +!IF "$(CFG)" == "aprutil - Win32 Release" + +"apriconv - Win32 Release" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - Win32 Release" + cd "..\apr-util" + +"apriconv - Win32 ReleaseCLEAN" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - Win32 Release" RECURSE=1 CLEAN + cd "..\apr-util" + +!ELSEIF "$(CFG)" == "aprutil - Win32 Debug" + +"apriconv - Win32 Debug" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - Win32 Debug" + cd "..\apr-util" + +"apriconv - Win32 DebugCLEAN" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - Win32 Debug" RECURSE=1 CLEAN + cd "..\apr-util" + +!ELSEIF "$(CFG)" == "aprutil - x64 Release" + +"apriconv - x64 Release" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - x64 Release" + cd "..\apr-util" + +"apriconv - x64 ReleaseCLEAN" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - x64 Release" RECURSE=1 CLEAN + cd "..\apr-util" + +!ELSEIF "$(CFG)" == "aprutil - x64 Debug" + +"apriconv - x64 Debug" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - x64 Debug" + cd "..\apr-util" + +"apriconv - x64 DebugCLEAN" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - x64 Debug" RECURSE=1 CLEAN + cd "..\apr-util" + +!ENDIF + +!IF "$(CFG)" == "aprutil - Win32 Release" + +"xml - Win32 Release" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Release" + cd "..\..\.." + +"xml - Win32 ReleaseCLEAN" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Release" RECURSE=1 CLEAN + cd "..\..\.." + +!ELSEIF "$(CFG)" == "aprutil - Win32 Debug" + +"xml - Win32 Debug" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Debug" + cd "..\..\.." + +"xml - Win32 DebugCLEAN" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\.." + +!ELSEIF "$(CFG)" == "aprutil - x64 Release" + +"xml - x64 Release" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Release" + cd "..\..\.." + +"xml - x64 ReleaseCLEAN" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Release" RECURSE=1 CLEAN + cd "..\..\.." + +!ELSEIF "$(CFG)" == "aprutil - x64 Debug" + +"xml - x64 Debug" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Debug" + cd "..\..\.." + +"xml - x64 DebugCLEAN" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Debug" RECURSE=1 CLEAN + cd "..\..\.." + +!ENDIF + + +!ENDIF + diff --git a/iis/winbuild/build.bat b/iis/winbuild/build.bat new file mode 100644 index 00000000..1f4abff1 --- /dev/null +++ b/iis/winbuild/build.bat @@ -0,0 +1,115 @@ +c: +set WORK=c:\work +set HTTPD=httpd-2.2.22 +set APACHE=c:\Apache22 +set PCRE=pcre-8.30 +set ZLIB=zlib-1.2.7 +set LIBXML2=libxml2-2.7.7 +set LUA=lua-5.1.5 +set CURL=curl-7.24.0 + +cd %WORK% +rmdir /s /q %APACHE% +rmdir /s /q %HTTPD% +7z.exe x %HTTPD%-win32-src.zip +fart.exe -r -i -C %WORK%\%HTTPD%\*.mak \x2Fmachine:x86 " " +fart.exe -r -i -C %WORK%\%HTTPD%\*.mk.win \x2Fmachine:x86 " " +copy /y %WORK%\libhttpd.mak %WORK%\%HTTPD% +copy /y %WORK%\mod_ssl.mak %WORK%\%HTTPD%\modules\ssl +copy /y %WORK%\apr.mak %WORK%\%HTTPD%\srclib\apr +copy /y %WORK%\libapr.mak %WORK%\%HTTPD%\srclib\apr +copy /y %WORK%\aprutil.mak %WORK%\%HTTPD%\srclib\apr-util +copy /y %WORK%\libaprutil.mak %WORK%\%HTTPD%\srclib\apr-util +copy /y %WORK%\dftables.mak %WORK%\%HTTPD%\srclib\pcre +copy /y %WORK%\pcre.mak %WORK%\%HTTPD%\srclib\pcre +cd %HTTPD% +nmake -f Makefile.win installr +SET HTTPD_BUILD=%WORK%\%HTTPD% +IF NOT DEFINED FULLBUILD pause + +cd %WORK% +rmdir /s /q %PCRE% +7z.exe x %PCRE%.zip +cd %PCRE% +CMAKE -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=True +NMAKE +IF NOT DEFINED FULLBUILD pause + +cd %WORK% +rmdir /s /q %ZLIB% +7z.exe x %ZLIB%.zip +cd %ZLIB% +nmake -f win32\Makefile.msc +SET INCLUDE=%INCLUDE%;%WORK%\%ZLIB% +SET LIB=%LIB%;%WORK%\%ZLIB% +IF NOT DEFINED FULLBUILD pause + +cd %WORK% +rmdir /s /q %LIBXML2% +7z.exe x %LIBXML2%.zip +fart.exe -r -i -C %WORK%\%LIBXML2%\win32\*.* \x2Fopt:nowin98 " " +cd %LIBXML2%\win32 +CSCRIPT configure.js iconv=no vcmanifest=yes zlib=yes +NMAKE -f Makefile.msvc +IF NOT DEFINED FULLBUILD pause + +cd %WORK% +rmdir /s /q %LUA% +7z.exe x %LUA%.zip +CD %LUA%\src +CL /Ox /arch:SSE2 /GF /GL /Gy /FD /EHsc /MD /Zi /TC /wd4005 /D "_MBCS" /D "LUA_CORE" /D "LUA_BUILD_AS_DLL" /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D "_WINDLL" /c *.c +DEL lua.obj luac.obj +LINK /DLL /LTCG /DEBUG /OUT:lua5.1.dll *.obj +IF EXIST lua5.1.dll.manifest MT -manifest lua5.1.dll.manifest -outputresource:lua5.1.dll;2 +IF NOT DEFINED FULLBUILD pause + +cd %WORK% +rmdir /s /q %CURL% +7z.exe x %CURL%.zip +copy /y CMakeLists.txt %CURL% +CD %CURL% +CMAKE -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=True -DCURL_ZLIB=True +%WORK%\fart.exe -r -C %WORK%\%CURL%\include\curl\curlbuild.h LLU ULL +NMAKE +IF NOT DEFINED FULLBUILD pause + +cd %WORK% +CD mod_security\apache2 +del *.obj *.dll *.lib +NMAKE -f Makefile.win APACHE=C:\Apache22 PCRE=%WORK%\%PCRE% LIBXML2=%WORK%\%LIBXML2% LUA=%WORK%\%LUA%\src VERSION=VERSION_IIS +cd ..\mlogc +copy /y %WORK%\Makefile.win . +nmake -f Makefile.win clean +nmake -f Makefile.win +cd ..\iis +nmake -f Makefile.win clean +NMAKE -f Makefile.win APACHE=C:\Apache22 PCRE=%WORK%\%PCRE% LIBXML2=%WORK%\%LIBXML2% LUA=%WORK%\%LUA%\src VERSION=VERSION_IIS + +cd %WORK% + +copy /y %APACHE%\bin\libapr-1.dll %DROP% +copy /y %APACHE%\bin\libapr-1.pdb %DROP% +copy /y %APACHE%\lib\libapr-1.lib %DROP% +copy /y %APACHE%\bin\libapriconv-1.dll %DROP% +copy /y %APACHE%\bin\libapriconv-1.pdb %DROP% +copy /y %APACHE%\lib\libapriconv-1.lib %DROP% +copy /y %APACHE%\bin\libaprutil-1.dll %DROP% +copy /y %APACHE%\bin\libaprutil-1.pdb %DROP% +copy /y %APACHE%\lib\libaprutil-1.lib %DROP% +copy /y %WORK%\%LIBXML2%\win32\bin.msvc\libxml2.dll %DROP% +copy /y %WORK%\%LIBXML2%\win32\bin.msvc\libxml2.lib %DROP% +copy /y %WORK%\%LUA%\src\lua5.1.dll %DROP% +copy /y %WORK%\%LUA%\src\lua5.1.pdb %DROP% +copy /y %WORK%\%LUA%\src\lua5.1.lib %DROP% +copy /y %WORK%\%PCRE%\pcre.dll %DROP% +copy /y %WORK%\%PCRE%\pcre.pdb %DROP% +copy /y %WORK%\%PCRE%\pcre.lib %DROP% +copy /y %WORK%\%ZLIB%\zlib1.dll %DROP% +copy /y %WORK%\%ZLIB%\zlib1.pdb %DROP% +copy /y %WORK%\%ZLIB%\zdll.lib %DROP% +copy /y %WORK%\%CURL%\libcurl.dll %DROP% +copy /y %WORK%\%CURL%\libcurl.pdb %DROP% +copy /y %WORK%\%CURL%\libcurl_imp.lib %DROP% +copy /y %WORK%\mod_security\mlogc\mlogc.exe %DROP% +copy /y %WORK%\mod_security\iis\modsecurityiis.dll %DROP% +copy /y %WORK%\mod_security\iis\modsecurityiis.pdb %DROP% diff --git a/iis/winbuild/build32.bat b/iis/winbuild/build32.bat new file mode 100644 index 00000000..e89f33e5 --- /dev/null +++ b/iis/winbuild/build32.bat @@ -0,0 +1,4 @@ +mkdir %DROP% +call vsvars32.bat +call init.bat +call build.bat diff --git a/iis/winbuild/build64.bat b/iis/winbuild/build64.bat new file mode 100644 index 00000000..7c50f5ae --- /dev/null +++ b/iis/winbuild/build64.bat @@ -0,0 +1,5 @@ +mkdir %DROP% +call vcvars64.bat +call init.bat +SET CL=/D "WIN64" /D "_WIN64" +call build.bat diff --git a/iis/winbuild/buildall.bat b/iis/winbuild/buildall.bat new file mode 100644 index 00000000..48ee316e --- /dev/null +++ b/iis/winbuild/buildall.bat @@ -0,0 +1,5 @@ +set FULLBUILD=1 +set DROP=c:\drop\amd64 +cmd.exe /c build64.bat +set DROP=c:\drop\x86 +cmd.exe /c build32.bat diff --git a/iis/winbuild/dftables.mak b/iis/winbuild/dftables.mak new file mode 100644 index 00000000..94428aa0 --- /dev/null +++ b/iis/winbuild/dftables.mak @@ -0,0 +1,238 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on dftables.dsp +!IF "$(CFG)" == "" +CFG=dftables - Win32 Debug +!MESSAGE No configuration specified. Defaulting to dftables - Win32 Debug. +!ENDIF + +!IF "$(CFG)" != "dftables - Win32 Release" && "$(CFG)" != "dftables - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "dftables.mak" CFG="dftables - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "dftables - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "dftables - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "dftables - Win32 Release" + +OUTDIR=. +INTDIR=.\Release +# Begin Custom Macros +OutDir=. +# End Custom Macros + +ALL : "$(OUTDIR)\dftables.exe" + + +CLEAN : + -@erase "$(INTDIR)\dftables.idb" + -@erase "$(INTDIR)\dftables.obj" + -@erase "$(OUTDIR)\dftables.exe" + +"$(INTDIR)" : + if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /O2 /D "_WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\dftables" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\dftables.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\Release\dftables.pdb" /out:"$(OUTDIR)\dftables.exe" /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\dftables.obj" + +"$(OUTDIR)\dftables.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ELSEIF "$(CFG)" == "dftables - Win32 Debug" + +OUTDIR=. +INTDIR=.\Debug +# Begin Custom Macros +OutDir=. +# End Custom Macros + +ALL : ".\pcre.h" ".\config.h" "$(OUTDIR)\dftables.exe" + + +CLEAN : + -@erase "$(INTDIR)\dftables.idb" + -@erase "$(INTDIR)\dftables.obj" + -@erase "$(OUTDIR)\Debug\dftables.pdb" + -@erase "$(OUTDIR)\dftables.exe" + -@erase ".\config.h" + -@erase ".\pcre.h" + +"$(INTDIR)" : + if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /D "_WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\dftables" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\dftables.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\Debug\dftables.pdb" /debug /out:"$(OUTDIR)\dftables.exe" +LINK32_OBJS= \ + "$(INTDIR)\dftables.obj" + +"$(OUTDIR)\dftables.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("dftables.dep") +!INCLUDE "dftables.dep" +!ELSE +!MESSAGE Warning: cannot find "dftables.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "dftables - Win32 Release" || "$(CFG)" == "dftables - Win32 Debug" +SOURCE=.\dftables.c + +"$(INTDIR)\dftables.obj" : $(SOURCE) "$(INTDIR)" ".\config.h" ".\pcre.h" + + +SOURCE=.\config.hw + +!IF "$(CFG)" == "dftables - Win32 Release" + +InputPath=.\config.hw + +".\config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\config.h +<< + + +!ELSEIF "$(CFG)" == "dftables - Win32 Debug" + +InputPath=.\config.hw + +".\config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\config.h +<< + + +!ENDIF + +SOURCE=.\maketables.c +SOURCE=.\pcre.hw + +!IF "$(CFG)" == "dftables - Win32 Release" + +InputPath=.\pcre.hw + +".\pcre.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\pcre.h +<< + + +!ELSEIF "$(CFG)" == "dftables - Win32 Debug" + +InputPath=.\pcre.hw + +".\pcre.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\pcre.h +<< + + +!ENDIF + + +!ENDIF + diff --git a/iis/winbuild/fart.exe b/iis/winbuild/fart.exe new file mode 100644 index 00000000..075563cd Binary files /dev/null and b/iis/winbuild/fart.exe differ diff --git a/iis/winbuild/howto.txt b/iis/winbuild/howto.txt new file mode 100644 index 00000000..50bbcce1 --- /dev/null +++ b/iis/winbuild/howto.txt @@ -0,0 +1,44 @@ +WARNING! + +Building ModSecurityIIS on Windows is a relatively complicated process. Understanding it requires advanced knowledge of Windows and Unix environments. +Using the same versions of libraries as listed below is strongly recommended. + +-------------------------------------- +Tested on: + +Windows 7 x64 +Vistual Studio 2010 Ultimate SP1 +IIS enabled/installed + +cmake 2.8.7 +curl 7.24.0 +apache 2.2.22 +libxml2 2.7.7 +lua 5.1.5 +pcre 8.30 +zlib 1.2.7 +7-Zip +-------------------------------------- + +1. Create working directory c:\work and drop directory c:\drop +2. Sync SVN ModSecurity branch to c:\work\mod_security +3. Copy files from c:\work\mod_security\iis\winbuild to c:\work +4. Download and install cmake (unpack to c:\work\cmake-2.8.7-win32-x86) +5. Download and install 7-Zip +6. Adjust paths in c:\work\init.bat accordingly if needed +7. Download curl, apache, libxml2, lua, pcre and zlib, place them in zip files in c:\work + +curl-7.24.0.zip +httpd-2.2.22-win32-src.zip +libxml2-2.7.7.zip +lua-5.1.5.zip +pcre-8.30.zip +zlib-1.2.7.zip + +Modify c:\work\build.bat accordingly (if other versions were used) + +8. Open cmd.exe window, go to c:\work and run buildall.bat +9. When done, the binaries should appear under c:\drop\x86 (32-bit) and c:\drop\amd64 (64-bit) +10. Open the VS ModSecurity IIS installer project +11. Copy new binaries to the installer's x86 and amd64 directories +12. Build installer from within VS diff --git a/iis/winbuild/init.bat b/iis/winbuild/init.bat new file mode 100644 index 00000000..d6810f9f --- /dev/null +++ b/iis/winbuild/init.bat @@ -0,0 +1 @@ +set PATH=%PATH%;c:\work\cmake-2.8.7-win32-x86\bin;"c:\program files\7-zip" diff --git a/iis/winbuild/libapr.mak b/iis/winbuild/libapr.mak new file mode 100644 index 00000000..90871c7b --- /dev/null +++ b/iis/winbuild/libapr.mak @@ -0,0 +1,1917 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on libapr.dsp +!IF "$(CFG)" == "" +CFG=libapr - Win32 Release +!MESSAGE No configuration specified. Defaulting to libapr - Win32 Release. +!ENDIF + +!IF "$(CFG)" != "libapr - Win32 Release" && "$(CFG)" != "libapr - Win32 Debug" && "$(CFG)" != "libapr - Win32 Release9x" && "$(CFG)" != "libapr - Win32 Debug9x" && "$(CFG)" != "libapr - x64 Release" && "$(CFG)" != "libapr - x64 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "libapr.mak" CFG="libapr - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "libapr - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "libapr - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "libapr - Win32 Release9x" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "libapr - Win32 Debug9x" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "libapr - x64 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "libapr - x64 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "libapr - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +ALL : "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)" + + +CLEAN : + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\libapr.res" + -@erase "$(INTDIR)\libapr_src.idb" + -@erase "$(INTDIR)\libapr_src.pdb" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\libapr-1.dll" + -@erase "$(OUTDIR)\libapr-1.exp" + -@erase "$(OUTDIR)\libapr-1.lib" + -@erase "$(OUTDIR)\libapr-1.pdb" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libapr.res" /i "./include" /d "NDEBUG" /d "APR_VERSION_ONLY" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" \ + "$(INTDIR)\libapr.res" + +"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\libapr-1.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libapr-1.dll" + if exist .\Release\libapr-1.dll.manifest mt.exe -manifest .\Release\libapr-1.dll.manifest -outputresource:.\Release\libapr-1.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "libapr - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +ALL : ".\include\apr.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)" + + +CLEAN : + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\libapr.res" + -@erase "$(INTDIR)\libapr_src.idb" + -@erase "$(INTDIR)\libapr_src.pdb" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\libapr-1.dll" + -@erase "$(OUTDIR)\libapr-1.exp" + -@erase "$(OUTDIR)\libapr-1.lib" + -@erase "$(OUTDIR)\libapr-1.pdb" + -@erase ".\include\apr.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libapr.res" /i "./include" /d "_DEBUG" /d "APR_VERSION_ONLY" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" +LINK32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" \ + "$(INTDIR)\libapr.res" + +"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\libapr-1.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libapr-1.dll" + if exist .\Debug\libapr-1.dll.manifest mt.exe -manifest .\Debug\libapr-1.dll.manifest -outputresource:.\Debug\libapr-1.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "libapr - Win32 Release9x" + +OUTDIR=.\9x\Release +INTDIR=.\9x\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\9x\Release +# End Custom Macros + +ALL : ".\include\apr.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)" + + +CLEAN : + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\libapr.res" + -@erase "$(INTDIR)\libapr_src.idb" + -@erase "$(INTDIR)\libapr_src.pdb" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\libapr-1.dll" + -@erase "$(OUTDIR)\libapr-1.exp" + -@erase "$(OUTDIR)\libapr-1.lib" + -@erase "$(OUTDIR)\libapr-1.pdb" + -@erase ".\include\apr.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libapr.res" /i "./include" /d "NDEBUG" /d "APR_VERSION_ONLY" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" \ + "$(INTDIR)\libapr.res" + +"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\9x\Release\libapr-1.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\9x\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libapr-1.dll" + if exist .\9x\Release\libapr-1.dll.manifest mt.exe -manifest .\9x\Release\libapr-1.dll.manifest -outputresource:.\9x\Release\libapr-1.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "libapr - Win32 Debug9x" + +OUTDIR=.\9x\Debug +INTDIR=.\9x\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\9x\Debug +# End Custom Macros + +ALL : ".\include\apr.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)" + + +CLEAN : + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\libapr.res" + -@erase "$(INTDIR)\libapr_src.idb" + -@erase "$(INTDIR)\libapr_src.pdb" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\libapr-1.dll" + -@erase "$(OUTDIR)\libapr-1.exp" + -@erase "$(OUTDIR)\libapr-1.lib" + -@erase "$(OUTDIR)\libapr-1.pdb" + -@erase ".\include\apr.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libapr.res" /i "./include" /d "_DEBUG" /d "APR_VERSION_ONLY" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" +LINK32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" \ + "$(INTDIR)\libapr.res" + +"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\9x\Debug\libapr-1.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\9x\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libapr-1.dll" + if exist .\9x\Debug\libapr-1.dll.manifest mt.exe -manifest .\9x\Debug\libapr-1.dll.manifest -outputresource:.\9x\Debug\libapr-1.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "libapr - x64 Release" + +OUTDIR=.\x64\Release +INTDIR=.\x64\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\x64\Release +# End Custom Macros + +ALL : ".\include\apr.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)" + + +CLEAN : + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\libapr.res" + -@erase "$(INTDIR)\libapr_src.idb" + -@erase "$(INTDIR)\libapr_src.pdb" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\libapr-1.dll" + -@erase "$(OUTDIR)\libapr-1.exp" + -@erase "$(OUTDIR)\libapr-1.lib" + -@erase "$(OUTDIR)\libapr-1.pdb" + -@erase ".\include\apr.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /D "WIN64" /D "_WIN64" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libapr.res" /i "./include" /d "NDEBUG" /d "APR_VERSION_ONLY" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X64 /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" \ + "$(INTDIR)\libapr.res" + +"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\x64\Release\libapr-1.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\x64\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libapr-1.dll" + if exist .\x64\Release\libapr-1.dll.manifest mt.exe -manifest .\x64\Release\libapr-1.dll.manifest -outputresource:.\x64\Release\libapr-1.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "libapr - x64 Debug" + +OUTDIR=.\x64\Debug +INTDIR=.\x64\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\x64\Debug +# End Custom Macros + +ALL : ".\include\apr.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)" + + +CLEAN : + -@erase "$(INTDIR)\apr_atomic.obj" + -@erase "$(INTDIR)\apr_cpystrn.obj" + -@erase "$(INTDIR)\apr_fnmatch.obj" + -@erase "$(INTDIR)\apr_getpass.obj" + -@erase "$(INTDIR)\apr_hash.obj" + -@erase "$(INTDIR)\apr_pools.obj" + -@erase "$(INTDIR)\apr_random.obj" + -@erase "$(INTDIR)\apr_snprintf.obj" + -@erase "$(INTDIR)\apr_strings.obj" + -@erase "$(INTDIR)\apr_strnatcmp.obj" + -@erase "$(INTDIR)\apr_strtok.obj" + -@erase "$(INTDIR)\apr_tables.obj" + -@erase "$(INTDIR)\buffer.obj" + -@erase "$(INTDIR)\charset.obj" + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\copy.obj" + -@erase "$(INTDIR)\dir.obj" + -@erase "$(INTDIR)\dso.obj" + -@erase "$(INTDIR)\env.obj" + -@erase "$(INTDIR)\errorcodes.obj" + -@erase "$(INTDIR)\fileacc.obj" + -@erase "$(INTDIR)\filedup.obj" + -@erase "$(INTDIR)\filepath.obj" + -@erase "$(INTDIR)\filepath_util.obj" + -@erase "$(INTDIR)\filestat.obj" + -@erase "$(INTDIR)\filesys.obj" + -@erase "$(INTDIR)\flock.obj" + -@erase "$(INTDIR)\fullrw.obj" + -@erase "$(INTDIR)\getopt.obj" + -@erase "$(INTDIR)\groupinfo.obj" + -@erase "$(INTDIR)\inet_ntop.obj" + -@erase "$(INTDIR)\inet_pton.obj" + -@erase "$(INTDIR)\internal.obj" + -@erase "$(INTDIR)\libapr.res" + -@erase "$(INTDIR)\libapr_src.idb" + -@erase "$(INTDIR)\libapr_src.pdb" + -@erase "$(INTDIR)\misc.obj" + -@erase "$(INTDIR)\mktemp.obj" + -@erase "$(INTDIR)\mmap.obj" + -@erase "$(INTDIR)\multicast.obj" + -@erase "$(INTDIR)\open.obj" + -@erase "$(INTDIR)\otherchild.obj" + -@erase "$(INTDIR)\pipe.obj" + -@erase "$(INTDIR)\poll.obj" + -@erase "$(INTDIR)\pollcb.obj" + -@erase "$(INTDIR)\pollset.obj" + -@erase "$(INTDIR)\proc.obj" + -@erase "$(INTDIR)\proc_mutex.obj" + -@erase "$(INTDIR)\rand.obj" + -@erase "$(INTDIR)\readwrite.obj" + -@erase "$(INTDIR)\seek.obj" + -@erase "$(INTDIR)\select.obj" + -@erase "$(INTDIR)\sendrecv.obj" + -@erase "$(INTDIR)\sha2.obj" + -@erase "$(INTDIR)\sha2_glue.obj" + -@erase "$(INTDIR)\shm.obj" + -@erase "$(INTDIR)\signals.obj" + -@erase "$(INTDIR)\sockaddr.obj" + -@erase "$(INTDIR)\socket_util.obj" + -@erase "$(INTDIR)\sockets.obj" + -@erase "$(INTDIR)\sockopt.obj" + -@erase "$(INTDIR)\start.obj" + -@erase "$(INTDIR)\tempdir.obj" + -@erase "$(INTDIR)\thread.obj" + -@erase "$(INTDIR)\thread_cond.obj" + -@erase "$(INTDIR)\thread_mutex.obj" + -@erase "$(INTDIR)\thread_rwlock.obj" + -@erase "$(INTDIR)\threadpriv.obj" + -@erase "$(INTDIR)\time.obj" + -@erase "$(INTDIR)\timestr.obj" + -@erase "$(INTDIR)\userinfo.obj" + -@erase "$(INTDIR)\utf8.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\libapr-1.dll" + -@erase "$(OUTDIR)\libapr-1.exp" + -@erase "$(OUTDIR)\libapr-1.lib" + -@erase "$(OUTDIR)\libapr-1.pdb" + -@erase ".\include\apr.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /D "WIN64" /D "_WIN64" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libapr.res" /i "./include" /d "_DEBUG" /d "APR_VERSION_ONLY" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X64 +LINK32_OBJS= \ + "$(INTDIR)\apr_atomic.obj" \ + "$(INTDIR)\dso.obj" \ + "$(INTDIR)\buffer.obj" \ + "$(INTDIR)\copy.obj" \ + "$(INTDIR)\dir.obj" \ + "$(INTDIR)\fileacc.obj" \ + "$(INTDIR)\filedup.obj" \ + "$(INTDIR)\filepath.obj" \ + "$(INTDIR)\filepath_util.obj" \ + "$(INTDIR)\filestat.obj" \ + "$(INTDIR)\filesys.obj" \ + "$(INTDIR)\flock.obj" \ + "$(INTDIR)\fullrw.obj" \ + "$(INTDIR)\mktemp.obj" \ + "$(INTDIR)\open.obj" \ + "$(INTDIR)\pipe.obj" \ + "$(INTDIR)\readwrite.obj" \ + "$(INTDIR)\seek.obj" \ + "$(INTDIR)\tempdir.obj" \ + "$(INTDIR)\proc_mutex.obj" \ + "$(INTDIR)\thread_cond.obj" \ + "$(INTDIR)\thread_mutex.obj" \ + "$(INTDIR)\thread_rwlock.obj" \ + "$(INTDIR)\apr_pools.obj" \ + "$(INTDIR)\charset.obj" \ + "$(INTDIR)\env.obj" \ + "$(INTDIR)\errorcodes.obj" \ + "$(INTDIR)\getopt.obj" \ + "$(INTDIR)\internal.obj" \ + "$(INTDIR)\misc.obj" \ + "$(INTDIR)\otherchild.obj" \ + "$(INTDIR)\rand.obj" \ + "$(INTDIR)\start.obj" \ + "$(INTDIR)\utf8.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\common.obj" \ + "$(INTDIR)\mmap.obj" \ + "$(INTDIR)\inet_ntop.obj" \ + "$(INTDIR)\inet_pton.obj" \ + "$(INTDIR)\multicast.obj" \ + "$(INTDIR)\sendrecv.obj" \ + "$(INTDIR)\sockaddr.obj" \ + "$(INTDIR)\sockets.obj" \ + "$(INTDIR)\socket_util.obj" \ + "$(INTDIR)\sockopt.obj" \ + "$(INTDIR)\apr_getpass.obj" \ + "$(INTDIR)\poll.obj" \ + "$(INTDIR)\pollcb.obj" \ + "$(INTDIR)\pollset.obj" \ + "$(INTDIR)\select.obj" \ + "$(INTDIR)\apr_random.obj" \ + "$(INTDIR)\sha2.obj" \ + "$(INTDIR)\sha2_glue.obj" \ + "$(INTDIR)\shm.obj" \ + "$(INTDIR)\apr_cpystrn.obj" \ + "$(INTDIR)\apr_fnmatch.obj" \ + "$(INTDIR)\apr_snprintf.obj" \ + "$(INTDIR)\apr_strings.obj" \ + "$(INTDIR)\apr_strnatcmp.obj" \ + "$(INTDIR)\apr_strtok.obj" \ + "$(INTDIR)\apr_hash.obj" \ + "$(INTDIR)\apr_tables.obj" \ + "$(INTDIR)\proc.obj" \ + "$(INTDIR)\signals.obj" \ + "$(INTDIR)\thread.obj" \ + "$(INTDIR)\threadpriv.obj" \ + "$(INTDIR)\time.obj" \ + "$(INTDIR)\timestr.obj" \ + "$(INTDIR)\groupinfo.obj" \ + "$(INTDIR)\userinfo.obj" \ + "$(INTDIR)\libapr.res" + +"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\x64\Debug\libapr-1.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\x64\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libapr-1.dll" + if exist .\x64\Debug\libapr-1.dll.manifest mt.exe -manifest .\x64\Debug\libapr-1.dll.manifest -outputresource:.\x64\Debug\libapr-1.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("libapr.dep") +!INCLUDE "libapr.dep" +!ELSE +!MESSAGE Warning: cannot find "libapr.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "libapr - Win32 Release" || "$(CFG)" == "libapr - Win32 Debug" || "$(CFG)" == "libapr - Win32 Release9x" || "$(CFG)" == "libapr - Win32 Debug9x" || "$(CFG)" == "libapr - x64 Release" || "$(CFG)" == "libapr - x64 Debug" +SOURCE=.\atomic\win32\apr_atomic.c + +"$(INTDIR)\apr_atomic.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dso\win32\dso.c + +"$(INTDIR)\dso.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\buffer.c + +"$(INTDIR)\buffer.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\copy.c + +"$(INTDIR)\copy.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\dir.c + +"$(INTDIR)\dir.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\fileacc.c + +"$(INTDIR)\fileacc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\filedup.c + +"$(INTDIR)\filedup.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\filepath.c + +"$(INTDIR)\filepath.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\filepath_util.c + +"$(INTDIR)\filepath_util.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\filestat.c + +"$(INTDIR)\filestat.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\filesys.c + +"$(INTDIR)\filesys.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\flock.c + +"$(INTDIR)\flock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\fullrw.c + +"$(INTDIR)\fullrw.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\mktemp.c + +"$(INTDIR)\mktemp.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\open.c + +"$(INTDIR)\open.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\pipe.c + +"$(INTDIR)\pipe.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\readwrite.c + +"$(INTDIR)\readwrite.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\win32\seek.c + +"$(INTDIR)\seek.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\file_io\unix\tempdir.c + +"$(INTDIR)\tempdir.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\locks\win32\proc_mutex.c + +"$(INTDIR)\proc_mutex.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\locks\win32\thread_cond.c + +"$(INTDIR)\thread_cond.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\locks\win32\thread_mutex.c + +"$(INTDIR)\thread_mutex.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\locks\win32\thread_rwlock.c + +"$(INTDIR)\thread_rwlock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\memory\unix\apr_pools.c + +"$(INTDIR)\apr_pools.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\apr_app.c +SOURCE=.\misc\win32\charset.c + +"$(INTDIR)\charset.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\env.c + +"$(INTDIR)\env.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\unix\errorcodes.c + +"$(INTDIR)\errorcodes.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\unix\getopt.c + +"$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\internal.c + +"$(INTDIR)\internal.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\misc.c + +"$(INTDIR)\misc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\unix\otherchild.c + +"$(INTDIR)\otherchild.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\rand.c + +"$(INTDIR)\rand.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\start.c + +"$(INTDIR)\start.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\win32\utf8.c + +"$(INTDIR)\utf8.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\unix\version.c + +"$(INTDIR)\version.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\mmap\unix\common.c + +"$(INTDIR)\common.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\mmap\win32\mmap.c + +"$(INTDIR)\mmap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\unix\inet_ntop.c + +"$(INTDIR)\inet_ntop.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\unix\inet_pton.c + +"$(INTDIR)\inet_pton.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\unix\multicast.c + +"$(INTDIR)\multicast.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\win32\sendrecv.c + +"$(INTDIR)\sendrecv.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\unix\sockaddr.c + +"$(INTDIR)\sockaddr.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\unix\socket_util.c + +"$(INTDIR)\socket_util.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\win32\sockets.c + +"$(INTDIR)\sockets.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\network_io\win32\sockopt.c + +"$(INTDIR)\sockopt.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\passwd\apr_getpass.c + +"$(INTDIR)\apr_getpass.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\poll\unix\poll.c + +"$(INTDIR)\poll.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\poll\unix\pollcb.c + +"$(INTDIR)\pollcb.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\poll\unix\pollset.c + +"$(INTDIR)\pollset.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\poll\unix\select.c + +"$(INTDIR)\select.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\random\unix\apr_random.c + +"$(INTDIR)\apr_random.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\random\unix\sha2.c + +"$(INTDIR)\sha2.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\random\unix\sha2_glue.c + +"$(INTDIR)\sha2_glue.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\shmem\win32\shm.c + +"$(INTDIR)\shm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_cpystrn.c + +"$(INTDIR)\apr_cpystrn.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_fnmatch.c + +"$(INTDIR)\apr_fnmatch.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_snprintf.c + +"$(INTDIR)\apr_snprintf.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_strings.c + +"$(INTDIR)\apr_strings.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_strnatcmp.c + +"$(INTDIR)\apr_strnatcmp.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strings\apr_strtok.c + +"$(INTDIR)\apr_strtok.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\tables\apr_hash.c + +"$(INTDIR)\apr_hash.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\tables\apr_tables.c + +"$(INTDIR)\apr_tables.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\threadproc\win32\proc.c + +"$(INTDIR)\proc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\threadproc\win32\signals.c + +"$(INTDIR)\signals.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\threadproc\win32\thread.c + +"$(INTDIR)\thread.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\threadproc\win32\threadpriv.c + +"$(INTDIR)\threadpriv.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\time\win32\time.c + +"$(INTDIR)\time.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\time\win32\timestr.c + +"$(INTDIR)\timestr.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\user\win32\groupinfo.c + +"$(INTDIR)\groupinfo.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\user\win32\userinfo.c + +"$(INTDIR)\userinfo.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\include\apr.hw + +!IF "$(CFG)" == "libapr - Win32 Release" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "libapr - Win32 Debug" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "libapr - Win32 Release9x" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "libapr - Win32 Debug9x" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "libapr - x64 Release" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "libapr - x64 Debug" + +InputPath=.\include\apr.hw + +".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ENDIF + +SOURCE=.\libapr.rc + +"$(INTDIR)\libapr.res" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" + $(RSC) $(RSC_PROJ) $(SOURCE) + + + +!ENDIF + diff --git a/iis/winbuild/libaprutil.mak b/iis/winbuild/libaprutil.mak new file mode 100644 index 00000000..83bee3db --- /dev/null +++ b/iis/winbuild/libaprutil.mak @@ -0,0 +1,1465 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on libaprutil.dsp +!IF "$(CFG)" == "" +CFG=libaprutil - Win32 Release +!MESSAGE No configuration specified. Defaulting to libaprutil - Win32 Release. +!ENDIF + +!IF "$(CFG)" != "libaprutil - Win32 Release" && "$(CFG)" != "libaprutil - Win32 Debug" && "$(CFG)" != "libaprutil - x64 Release" && "$(CFG)" != "libaprutil - x64 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "libaprutil.mak" CFG="libaprutil - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "libaprutil - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "libaprutil - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "libaprutil - x64 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "libaprutil - x64 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "libaprutil - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\include\apu_want.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "xml - Win32 Release" "libapriconv - Win32 Release" "libapr - Win32 Release" ".\include\apu_want.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libapriconv - Win32 ReleaseCLEAN" "xml - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\apr_base64.obj" + -@erase "$(INTDIR)\apr_brigade.obj" + -@erase "$(INTDIR)\apr_buckets.obj" + -@erase "$(INTDIR)\apr_buckets_alloc.obj" + -@erase "$(INTDIR)\apr_buckets_eos.obj" + -@erase "$(INTDIR)\apr_buckets_file.obj" + -@erase "$(INTDIR)\apr_buckets_flush.obj" + -@erase "$(INTDIR)\apr_buckets_heap.obj" + -@erase "$(INTDIR)\apr_buckets_mmap.obj" + -@erase "$(INTDIR)\apr_buckets_pipe.obj" + -@erase "$(INTDIR)\apr_buckets_pool.obj" + -@erase "$(INTDIR)\apr_buckets_refcount.obj" + -@erase "$(INTDIR)\apr_buckets_simple.obj" + -@erase "$(INTDIR)\apr_buckets_socket.obj" + -@erase "$(INTDIR)\apr_crypto.obj" + -@erase "$(INTDIR)\apr_date.obj" + -@erase "$(INTDIR)\apr_dbd.obj" + -@erase "$(INTDIR)\apr_dbm.obj" + -@erase "$(INTDIR)\apr_dbm_sdbm.obj" + -@erase "$(INTDIR)\apr_hooks.obj" + -@erase "$(INTDIR)\apr_ldap_stub.obj" + -@erase "$(INTDIR)\apr_ldap_url.obj" + -@erase "$(INTDIR)\apr_md4.obj" + -@erase "$(INTDIR)\apr_md5.obj" + -@erase "$(INTDIR)\apr_memcache.obj" + -@erase "$(INTDIR)\apr_queue.obj" + -@erase "$(INTDIR)\apr_reslist.obj" + -@erase "$(INTDIR)\apr_rmm.obj" + -@erase "$(INTDIR)\apr_sha1.obj" + -@erase "$(INTDIR)\apr_strmatch.obj" + -@erase "$(INTDIR)\apr_thread_pool.obj" + -@erase "$(INTDIR)\apr_uri.obj" + -@erase "$(INTDIR)\apr_xml.obj" + -@erase "$(INTDIR)\apu_dso.obj" + -@erase "$(INTDIR)\apu_version.obj" + -@erase "$(INTDIR)\getuuid.obj" + -@erase "$(INTDIR)\libaprutil.res" + -@erase "$(INTDIR)\libaprutil_src.idb" + -@erase "$(INTDIR)\libaprutil_src.pdb" + -@erase "$(INTDIR)\sdbm.obj" + -@erase "$(INTDIR)\sdbm_hash.obj" + -@erase "$(INTDIR)\sdbm_lock.obj" + -@erase "$(INTDIR)\sdbm_pair.obj" + -@erase "$(INTDIR)\uuid.obj" + -@erase "$(INTDIR)\xlate.obj" + -@erase "$(OUTDIR)\libaprutil-1.dll" + -@erase "$(OUTDIR)\libaprutil-1.exp" + -@erase "$(OUTDIR)\libaprutil-1.lib" + -@erase "$(OUTDIR)\libaprutil-1.pdb" + -@erase ".\include\apu_want.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libaprutil_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libaprutil.res" /i "./include" /i "../apr/include" /d "NDEBUG" /d "APU_VERSION_ONLY" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libaprutil.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libaprutil-1.pdb" /debug /out:"$(OUTDIR)\libaprutil-1.dll" /implib:"$(OUTDIR)\libaprutil-1.lib" /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\apr_brigade.obj" \ + "$(INTDIR)\apr_buckets.obj" \ + "$(INTDIR)\apr_buckets_alloc.obj" \ + "$(INTDIR)\apr_buckets_eos.obj" \ + "$(INTDIR)\apr_buckets_file.obj" \ + "$(INTDIR)\apr_buckets_flush.obj" \ + "$(INTDIR)\apr_buckets_heap.obj" \ + "$(INTDIR)\apr_buckets_mmap.obj" \ + "$(INTDIR)\apr_buckets_pipe.obj" \ + "$(INTDIR)\apr_buckets_pool.obj" \ + "$(INTDIR)\apr_buckets_refcount.obj" \ + "$(INTDIR)\apr_buckets_simple.obj" \ + "$(INTDIR)\apr_buckets_socket.obj" \ + "$(INTDIR)\apr_crypto.obj" \ + "$(INTDIR)\apr_md4.obj" \ + "$(INTDIR)\apr_md5.obj" \ + "$(INTDIR)\apr_sha1.obj" \ + "$(INTDIR)\getuuid.obj" \ + "$(INTDIR)\uuid.obj" \ + "$(INTDIR)\apr_dbd.obj" \ + "$(INTDIR)\apr_dbm.obj" \ + "$(INTDIR)\apr_dbm_sdbm.obj" \ + "$(INTDIR)\apr_base64.obj" \ + "$(INTDIR)\apr_hooks.obj" \ + "$(INTDIR)\apr_ldap_stub.obj" \ + "$(INTDIR)\apr_ldap_url.obj" \ + "$(INTDIR)\apr_memcache.obj" \ + "$(INTDIR)\apr_date.obj" \ + "$(INTDIR)\apu_dso.obj" \ + "$(INTDIR)\apr_queue.obj" \ + "$(INTDIR)\apr_reslist.obj" \ + "$(INTDIR)\apr_rmm.obj" \ + "$(INTDIR)\apr_thread_pool.obj" \ + "$(INTDIR)\apu_version.obj" \ + "$(INTDIR)\sdbm.obj" \ + "$(INTDIR)\sdbm_hash.obj" \ + "$(INTDIR)\sdbm_lock.obj" \ + "$(INTDIR)\sdbm_pair.obj" \ + "$(INTDIR)\apr_strmatch.obj" \ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ + "$(INTDIR)\libaprutil.res" \ + "..\apr\Release\libapr-1.lib" \ + "..\apr-iconv\Release\libapriconv-1.lib" \ + ".\xml\expat\lib\LibR\xml.lib" + +"$(OUTDIR)\libaprutil-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\libaprutil-1.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libaprutil-1.dll" + if exist .\Release\libaprutil-1.dll.manifest mt.exe -manifest .\Release\libaprutil-1.dll.manifest -outputresource:.\Release\libaprutil-1.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "libaprutil - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "xml - Win32 Debug" "libapriconv - Win32 Debug" "libapr - Win32 Debug" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libapriconv - Win32 DebugCLEAN" "xml - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\apr_base64.obj" + -@erase "$(INTDIR)\apr_brigade.obj" + -@erase "$(INTDIR)\apr_buckets.obj" + -@erase "$(INTDIR)\apr_buckets_alloc.obj" + -@erase "$(INTDIR)\apr_buckets_eos.obj" + -@erase "$(INTDIR)\apr_buckets_file.obj" + -@erase "$(INTDIR)\apr_buckets_flush.obj" + -@erase "$(INTDIR)\apr_buckets_heap.obj" + -@erase "$(INTDIR)\apr_buckets_mmap.obj" + -@erase "$(INTDIR)\apr_buckets_pipe.obj" + -@erase "$(INTDIR)\apr_buckets_pool.obj" + -@erase "$(INTDIR)\apr_buckets_refcount.obj" + -@erase "$(INTDIR)\apr_buckets_simple.obj" + -@erase "$(INTDIR)\apr_buckets_socket.obj" + -@erase "$(INTDIR)\apr_crypto.obj" + -@erase "$(INTDIR)\apr_date.obj" + -@erase "$(INTDIR)\apr_dbd.obj" + -@erase "$(INTDIR)\apr_dbm.obj" + -@erase "$(INTDIR)\apr_dbm_sdbm.obj" + -@erase "$(INTDIR)\apr_hooks.obj" + -@erase "$(INTDIR)\apr_ldap_stub.obj" + -@erase "$(INTDIR)\apr_ldap_url.obj" + -@erase "$(INTDIR)\apr_md4.obj" + -@erase "$(INTDIR)\apr_md5.obj" + -@erase "$(INTDIR)\apr_memcache.obj" + -@erase "$(INTDIR)\apr_queue.obj" + -@erase "$(INTDIR)\apr_reslist.obj" + -@erase "$(INTDIR)\apr_rmm.obj" + -@erase "$(INTDIR)\apr_sha1.obj" + -@erase "$(INTDIR)\apr_strmatch.obj" + -@erase "$(INTDIR)\apr_thread_pool.obj" + -@erase "$(INTDIR)\apr_uri.obj" + -@erase "$(INTDIR)\apr_xml.obj" + -@erase "$(INTDIR)\apu_dso.obj" + -@erase "$(INTDIR)\apu_version.obj" + -@erase "$(INTDIR)\getuuid.obj" + -@erase "$(INTDIR)\libaprutil.res" + -@erase "$(INTDIR)\libaprutil_src.idb" + -@erase "$(INTDIR)\libaprutil_src.pdb" + -@erase "$(INTDIR)\sdbm.obj" + -@erase "$(INTDIR)\sdbm_hash.obj" + -@erase "$(INTDIR)\sdbm_lock.obj" + -@erase "$(INTDIR)\sdbm_pair.obj" + -@erase "$(INTDIR)\uuid.obj" + -@erase "$(INTDIR)\xlate.obj" + -@erase "$(OUTDIR)\libaprutil-1.dll" + -@erase "$(OUTDIR)\libaprutil-1.exp" + -@erase "$(OUTDIR)\libaprutil-1.lib" + -@erase "$(OUTDIR)\libaprutil-1.pdb" + -@erase ".\include\apr_ldap.h" + -@erase ".\include\apu.h" + -@erase ".\include\apu_want.h" + -@erase ".\include\private\apu_config.h" + -@erase ".\include\private\apu_select_dbm.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libaprutil_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libaprutil.res" /i "./include" /i "../apr/include" /d "_DEBUG" /d "APU_VERSION_ONLY" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libaprutil.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libaprutil-1.pdb" /debug /out:"$(OUTDIR)\libaprutil-1.dll" /implib:"$(OUTDIR)\libaprutil-1.lib" +LINK32_OBJS= \ + "$(INTDIR)\apr_brigade.obj" \ + "$(INTDIR)\apr_buckets.obj" \ + "$(INTDIR)\apr_buckets_alloc.obj" \ + "$(INTDIR)\apr_buckets_eos.obj" \ + "$(INTDIR)\apr_buckets_file.obj" \ + "$(INTDIR)\apr_buckets_flush.obj" \ + "$(INTDIR)\apr_buckets_heap.obj" \ + "$(INTDIR)\apr_buckets_mmap.obj" \ + "$(INTDIR)\apr_buckets_pipe.obj" \ + "$(INTDIR)\apr_buckets_pool.obj" \ + "$(INTDIR)\apr_buckets_refcount.obj" \ + "$(INTDIR)\apr_buckets_simple.obj" \ + "$(INTDIR)\apr_buckets_socket.obj" \ + "$(INTDIR)\apr_crypto.obj" \ + "$(INTDIR)\apr_md4.obj" \ + "$(INTDIR)\apr_md5.obj" \ + "$(INTDIR)\apr_sha1.obj" \ + "$(INTDIR)\getuuid.obj" \ + "$(INTDIR)\uuid.obj" \ + "$(INTDIR)\apr_dbd.obj" \ + "$(INTDIR)\apr_dbm.obj" \ + "$(INTDIR)\apr_dbm_sdbm.obj" \ + "$(INTDIR)\apr_base64.obj" \ + "$(INTDIR)\apr_hooks.obj" \ + "$(INTDIR)\apr_ldap_stub.obj" \ + "$(INTDIR)\apr_ldap_url.obj" \ + "$(INTDIR)\apr_memcache.obj" \ + "$(INTDIR)\apr_date.obj" \ + "$(INTDIR)\apu_dso.obj" \ + "$(INTDIR)\apr_queue.obj" \ + "$(INTDIR)\apr_reslist.obj" \ + "$(INTDIR)\apr_rmm.obj" \ + "$(INTDIR)\apr_thread_pool.obj" \ + "$(INTDIR)\apu_version.obj" \ + "$(INTDIR)\sdbm.obj" \ + "$(INTDIR)\sdbm_hash.obj" \ + "$(INTDIR)\sdbm_lock.obj" \ + "$(INTDIR)\sdbm_pair.obj" \ + "$(INTDIR)\apr_strmatch.obj" \ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ + "$(INTDIR)\libaprutil.res" \ + "..\apr\Debug\libapr-1.lib" \ + "..\apr-iconv\Debug\libapriconv-1.lib" \ + ".\xml\expat\lib\LibD\xml.lib" + +"$(OUTDIR)\libaprutil-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\libaprutil-1.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libaprutil-1.dll" + if exist .\Debug\libaprutil-1.dll.manifest mt.exe -manifest .\Debug\libaprutil-1.dll.manifest -outputresource:.\Debug\libaprutil-1.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "libaprutil - x64 Release" + +OUTDIR=.\x64\Release +INTDIR=.\x64\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\x64\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "xml - x64 Release" "libapriconv - x64 Release" "libapr - x64 Release" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - x64 ReleaseCLEAN" "libapriconv - x64 ReleaseCLEAN" "xml - x64 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\apr_base64.obj" + -@erase "$(INTDIR)\apr_brigade.obj" + -@erase "$(INTDIR)\apr_buckets.obj" + -@erase "$(INTDIR)\apr_buckets_alloc.obj" + -@erase "$(INTDIR)\apr_buckets_eos.obj" + -@erase "$(INTDIR)\apr_buckets_file.obj" + -@erase "$(INTDIR)\apr_buckets_flush.obj" + -@erase "$(INTDIR)\apr_buckets_heap.obj" + -@erase "$(INTDIR)\apr_buckets_mmap.obj" + -@erase "$(INTDIR)\apr_buckets_pipe.obj" + -@erase "$(INTDIR)\apr_buckets_pool.obj" + -@erase "$(INTDIR)\apr_buckets_refcount.obj" + -@erase "$(INTDIR)\apr_buckets_simple.obj" + -@erase "$(INTDIR)\apr_buckets_socket.obj" + -@erase "$(INTDIR)\apr_crypto.obj" + -@erase "$(INTDIR)\apr_date.obj" + -@erase "$(INTDIR)\apr_dbd.obj" + -@erase "$(INTDIR)\apr_dbm.obj" + -@erase "$(INTDIR)\apr_dbm_sdbm.obj" + -@erase "$(INTDIR)\apr_hooks.obj" + -@erase "$(INTDIR)\apr_ldap_stub.obj" + -@erase "$(INTDIR)\apr_ldap_url.obj" + -@erase "$(INTDIR)\apr_md4.obj" + -@erase "$(INTDIR)\apr_md5.obj" + -@erase "$(INTDIR)\apr_memcache.obj" + -@erase "$(INTDIR)\apr_queue.obj" + -@erase "$(INTDIR)\apr_reslist.obj" + -@erase "$(INTDIR)\apr_rmm.obj" + -@erase "$(INTDIR)\apr_sha1.obj" + -@erase "$(INTDIR)\apr_strmatch.obj" + -@erase "$(INTDIR)\apr_thread_pool.obj" + -@erase "$(INTDIR)\apr_uri.obj" + -@erase "$(INTDIR)\apr_xml.obj" + -@erase "$(INTDIR)\apu_dso.obj" + -@erase "$(INTDIR)\apu_version.obj" + -@erase "$(INTDIR)\getuuid.obj" + -@erase "$(INTDIR)\libaprutil.res" + -@erase "$(INTDIR)\libaprutil_src.idb" + -@erase "$(INTDIR)\libaprutil_src.pdb" + -@erase "$(INTDIR)\sdbm.obj" + -@erase "$(INTDIR)\sdbm_hash.obj" + -@erase "$(INTDIR)\sdbm_lock.obj" + -@erase "$(INTDIR)\sdbm_pair.obj" + -@erase "$(INTDIR)\uuid.obj" + -@erase "$(INTDIR)\xlate.obj" + -@erase "$(OUTDIR)\libaprutil-1.dll" + -@erase "$(OUTDIR)\libaprutil-1.exp" + -@erase "$(OUTDIR)\libaprutil-1.lib" + -@erase "$(OUTDIR)\libaprutil-1.pdb" + -@erase ".\include\apr_ldap.h" + -@erase ".\include\apu.h" + -@erase ".\include\apu_want.h" + -@erase ".\include\private\apu_config.h" + -@erase ".\include\private\apu_select_dbm.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libaprutil_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libaprutil.res" /i "./include" /i "../apr/include" /d "NDEBUG" /d "APU_VERSION_ONLY" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libaprutil.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libaprutil-1.pdb" /debug /out:"$(OUTDIR)\libaprutil-1.dll" /implib:"$(OUTDIR)\libaprutil-1.lib" /MACHINE:X64 /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\apr_brigade.obj" \ + "$(INTDIR)\apr_buckets.obj" \ + "$(INTDIR)\apr_buckets_alloc.obj" \ + "$(INTDIR)\apr_buckets_eos.obj" \ + "$(INTDIR)\apr_buckets_file.obj" \ + "$(INTDIR)\apr_buckets_flush.obj" \ + "$(INTDIR)\apr_buckets_heap.obj" \ + "$(INTDIR)\apr_buckets_mmap.obj" \ + "$(INTDIR)\apr_buckets_pipe.obj" \ + "$(INTDIR)\apr_buckets_pool.obj" \ + "$(INTDIR)\apr_buckets_refcount.obj" \ + "$(INTDIR)\apr_buckets_simple.obj" \ + "$(INTDIR)\apr_buckets_socket.obj" \ + "$(INTDIR)\apr_crypto.obj" \ + "$(INTDIR)\apr_md4.obj" \ + "$(INTDIR)\apr_md5.obj" \ + "$(INTDIR)\apr_sha1.obj" \ + "$(INTDIR)\getuuid.obj" \ + "$(INTDIR)\uuid.obj" \ + "$(INTDIR)\apr_dbd.obj" \ + "$(INTDIR)\apr_dbm.obj" \ + "$(INTDIR)\apr_dbm_sdbm.obj" \ + "$(INTDIR)\apr_base64.obj" \ + "$(INTDIR)\apr_hooks.obj" \ + "$(INTDIR)\apr_ldap_stub.obj" \ + "$(INTDIR)\apr_ldap_url.obj" \ + "$(INTDIR)\apr_memcache.obj" \ + "$(INTDIR)\apr_date.obj" \ + "$(INTDIR)\apu_dso.obj" \ + "$(INTDIR)\apr_queue.obj" \ + "$(INTDIR)\apr_reslist.obj" \ + "$(INTDIR)\apr_rmm.obj" \ + "$(INTDIR)\apr_thread_pool.obj" \ + "$(INTDIR)\apu_version.obj" \ + "$(INTDIR)\sdbm.obj" \ + "$(INTDIR)\sdbm_hash.obj" \ + "$(INTDIR)\sdbm_lock.obj" \ + "$(INTDIR)\sdbm_pair.obj" \ + "$(INTDIR)\apr_strmatch.obj" \ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ + "$(INTDIR)\libaprutil.res" \ + "..\apr\x64\Release\libapr-1.lib" \ + "..\apr-iconv\x64\Release\libapriconv-1.lib" \ + ".\xml\expat\lib\x64\LibR\xml.lib" + +"$(OUTDIR)\libaprutil-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\x64\Release\libaprutil-1.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\x64\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libaprutil-1.dll" + if exist .\x64\Release\libaprutil-1.dll.manifest mt.exe -manifest .\x64\Release\libaprutil-1.dll.manifest -outputresource:.\x64\Release\libaprutil-1.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "libaprutil - x64 Debug" + +OUTDIR=.\x64\Debug +INTDIR=.\x64\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\x64\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "xml - x64 Debug" "libapriconv - x64 Debug" "libapr - x64 Debug" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - x64 DebugCLEAN" "libapriconv - x64 DebugCLEAN" "xml - x64 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\apr_base64.obj" + -@erase "$(INTDIR)\apr_brigade.obj" + -@erase "$(INTDIR)\apr_buckets.obj" + -@erase "$(INTDIR)\apr_buckets_alloc.obj" + -@erase "$(INTDIR)\apr_buckets_eos.obj" + -@erase "$(INTDIR)\apr_buckets_file.obj" + -@erase "$(INTDIR)\apr_buckets_flush.obj" + -@erase "$(INTDIR)\apr_buckets_heap.obj" + -@erase "$(INTDIR)\apr_buckets_mmap.obj" + -@erase "$(INTDIR)\apr_buckets_pipe.obj" + -@erase "$(INTDIR)\apr_buckets_pool.obj" + -@erase "$(INTDIR)\apr_buckets_refcount.obj" + -@erase "$(INTDIR)\apr_buckets_simple.obj" + -@erase "$(INTDIR)\apr_buckets_socket.obj" + -@erase "$(INTDIR)\apr_crypto.obj" + -@erase "$(INTDIR)\apr_date.obj" + -@erase "$(INTDIR)\apr_dbd.obj" + -@erase "$(INTDIR)\apr_dbm.obj" + -@erase "$(INTDIR)\apr_dbm_sdbm.obj" + -@erase "$(INTDIR)\apr_hooks.obj" + -@erase "$(INTDIR)\apr_ldap_stub.obj" + -@erase "$(INTDIR)\apr_ldap_url.obj" + -@erase "$(INTDIR)\apr_md4.obj" + -@erase "$(INTDIR)\apr_md5.obj" + -@erase "$(INTDIR)\apr_memcache.obj" + -@erase "$(INTDIR)\apr_queue.obj" + -@erase "$(INTDIR)\apr_reslist.obj" + -@erase "$(INTDIR)\apr_rmm.obj" + -@erase "$(INTDIR)\apr_sha1.obj" + -@erase "$(INTDIR)\apr_strmatch.obj" + -@erase "$(INTDIR)\apr_thread_pool.obj" + -@erase "$(INTDIR)\apr_uri.obj" + -@erase "$(INTDIR)\apr_xml.obj" + -@erase "$(INTDIR)\apu_dso.obj" + -@erase "$(INTDIR)\apu_version.obj" + -@erase "$(INTDIR)\getuuid.obj" + -@erase "$(INTDIR)\libaprutil.res" + -@erase "$(INTDIR)\libaprutil_src.idb" + -@erase "$(INTDIR)\libaprutil_src.pdb" + -@erase "$(INTDIR)\sdbm.obj" + -@erase "$(INTDIR)\sdbm_hash.obj" + -@erase "$(INTDIR)\sdbm_lock.obj" + -@erase "$(INTDIR)\sdbm_pair.obj" + -@erase "$(INTDIR)\uuid.obj" + -@erase "$(INTDIR)\xlate.obj" + -@erase "$(OUTDIR)\libaprutil-1.dll" + -@erase "$(OUTDIR)\libaprutil-1.exp" + -@erase "$(OUTDIR)\libaprutil-1.lib" + -@erase "$(OUTDIR)\libaprutil-1.pdb" + -@erase ".\include\apr_ldap.h" + -@erase ".\include\apu.h" + -@erase ".\include\apu_want.h" + -@erase ".\include\private\apu_config.h" + -@erase ".\include\private\apu_select_dbm.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libaprutil_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libaprutil.res" /i "./include" /i "../apr/include" /d "_DEBUG" /d "APU_VERSION_ONLY" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libaprutil.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libaprutil-1.pdb" /debug /out:"$(OUTDIR)\libaprutil-1.dll" /implib:"$(OUTDIR)\libaprutil-1.lib" /MACHINE:X64 +LINK32_OBJS= \ + "$(INTDIR)\apr_brigade.obj" \ + "$(INTDIR)\apr_buckets.obj" \ + "$(INTDIR)\apr_buckets_alloc.obj" \ + "$(INTDIR)\apr_buckets_eos.obj" \ + "$(INTDIR)\apr_buckets_file.obj" \ + "$(INTDIR)\apr_buckets_flush.obj" \ + "$(INTDIR)\apr_buckets_heap.obj" \ + "$(INTDIR)\apr_buckets_mmap.obj" \ + "$(INTDIR)\apr_buckets_pipe.obj" \ + "$(INTDIR)\apr_buckets_pool.obj" \ + "$(INTDIR)\apr_buckets_refcount.obj" \ + "$(INTDIR)\apr_buckets_simple.obj" \ + "$(INTDIR)\apr_buckets_socket.obj" \ + "$(INTDIR)\apr_crypto.obj" \ + "$(INTDIR)\apr_md4.obj" \ + "$(INTDIR)\apr_md5.obj" \ + "$(INTDIR)\apr_sha1.obj" \ + "$(INTDIR)\getuuid.obj" \ + "$(INTDIR)\uuid.obj" \ + "$(INTDIR)\apr_dbd.obj" \ + "$(INTDIR)\apr_dbm.obj" \ + "$(INTDIR)\apr_dbm_sdbm.obj" \ + "$(INTDIR)\apr_base64.obj" \ + "$(INTDIR)\apr_hooks.obj" \ + "$(INTDIR)\apr_ldap_stub.obj" \ + "$(INTDIR)\apr_ldap_url.obj" \ + "$(INTDIR)\apr_memcache.obj" \ + "$(INTDIR)\apr_date.obj" \ + "$(INTDIR)\apu_dso.obj" \ + "$(INTDIR)\apr_queue.obj" \ + "$(INTDIR)\apr_reslist.obj" \ + "$(INTDIR)\apr_rmm.obj" \ + "$(INTDIR)\apr_thread_pool.obj" \ + "$(INTDIR)\apu_version.obj" \ + "$(INTDIR)\sdbm.obj" \ + "$(INTDIR)\sdbm_hash.obj" \ + "$(INTDIR)\sdbm_lock.obj" \ + "$(INTDIR)\sdbm_pair.obj" \ + "$(INTDIR)\apr_strmatch.obj" \ + "$(INTDIR)\apr_uri.obj" \ + "$(INTDIR)\xlate.obj" \ + "$(INTDIR)\apr_xml.obj" \ + "$(INTDIR)\libaprutil.res" \ + "..\apr\x64\Debug\libapr-1.lib" \ + "..\apr-iconv\x64\Debug\libapriconv-1.lib" \ + ".\xml\expat\lib\x64\LibD\xml.lib" + +"$(OUTDIR)\libaprutil-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\x64\Debug\libaprutil-1.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\x64\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libaprutil-1.dll" + if exist .\x64\Debug\libaprutil-1.dll.manifest mt.exe -manifest .\x64\Debug\libaprutil-1.dll.manifest -outputresource:.\x64\Debug\libaprutil-1.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("libaprutil.dep") +!INCLUDE "libaprutil.dep" +!ELSE +!MESSAGE Warning: cannot find "libaprutil.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "libaprutil - Win32 Release" || "$(CFG)" == "libaprutil - Win32 Debug" || "$(CFG)" == "libaprutil - x64 Release" || "$(CFG)" == "libaprutil - x64 Debug" +SOURCE=.\buckets\apr_brigade.c + +"$(INTDIR)\apr_brigade.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets.c + +"$(INTDIR)\apr_buckets.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_alloc.c + +"$(INTDIR)\apr_buckets_alloc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_eos.c + +"$(INTDIR)\apr_buckets_eos.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_file.c + +"$(INTDIR)\apr_buckets_file.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_flush.c + +"$(INTDIR)\apr_buckets_flush.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_heap.c + +"$(INTDIR)\apr_buckets_heap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_mmap.c + +"$(INTDIR)\apr_buckets_mmap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_pipe.c + +"$(INTDIR)\apr_buckets_pipe.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_pool.c + +"$(INTDIR)\apr_buckets_pool.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_refcount.c + +"$(INTDIR)\apr_buckets_refcount.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_simple.c + +"$(INTDIR)\apr_buckets_simple.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\buckets\apr_buckets_socket.c + +"$(INTDIR)\apr_buckets_socket.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\apr_crypto.c + +"$(INTDIR)\apr_crypto.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\apr_md4.c + +"$(INTDIR)\apr_md4.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\apr_md5.c + +"$(INTDIR)\apr_md5.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\apr_sha1.c + +"$(INTDIR)\apr_sha1.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\getuuid.c + +"$(INTDIR)\getuuid.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\crypto\uuid.c + +"$(INTDIR)\uuid.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbd\apr_dbd.c + +"$(INTDIR)\apr_dbd.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbd\apr_dbd_freetds.c +SOURCE=.\dbd\apr_dbd_mysql.c +SOURCE=.\dbd\apr_dbd_odbc.c +SOURCE=.\dbd\apr_dbd_oracle.c +SOURCE=.\dbd\apr_dbd_pgsql.c +SOURCE=.\dbd\apr_dbd_sqlite2.c +SOURCE=.\dbd\apr_dbd_sqlite3.c +SOURCE=.\dbm\apr_dbm.c + +"$(INTDIR)\apr_dbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" ".\include\private\apu_select_dbm.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\apr_dbm_berkeleydb.c +SOURCE=.\dbm\apr_dbm_gdbm.c +SOURCE=.\dbm\apr_dbm_sdbm.c + +"$(INTDIR)\apr_dbm_sdbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" ".\include\private\apu_select_dbm.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\encoding\apr_base64.c + +"$(INTDIR)\apr_base64.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\hooks\apr_hooks.c + +"$(INTDIR)\apr_hooks.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\ldap\apr_ldap_init.c +SOURCE=.\ldap\apr_ldap_option.c +SOURCE=.\ldap\apr_ldap_rebind.c +SOURCE=.\ldap\apr_ldap_stub.c + +"$(INTDIR)\apr_ldap_stub.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h" ".\include\apr_ldap.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\ldap\apr_ldap_url.c + +"$(INTDIR)\apr_ldap_url.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\apr_ldap.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\memcache\apr_memcache.c + +"$(INTDIR)\apr_memcache.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apr_date.c + +"$(INTDIR)\apr_date.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apr_queue.c + +"$(INTDIR)\apr_queue.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apr_reslist.c + +"$(INTDIR)\apr_reslist.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apr_rmm.c + +"$(INTDIR)\apr_rmm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apr_thread_pool.c + +"$(INTDIR)\apr_thread_pool.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apu_dso.c + +"$(INTDIR)\apu_dso.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\misc\apu_version.c + +"$(INTDIR)\apu_version.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\sdbm\sdbm.c + +"$(INTDIR)\sdbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\sdbm\sdbm_hash.c + +"$(INTDIR)\sdbm_hash.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\sdbm\sdbm_lock.c + +"$(INTDIR)\sdbm_lock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\dbm\sdbm\sdbm_pair.c + +"$(INTDIR)\sdbm_pair.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\strmatch\apr_strmatch.c + +"$(INTDIR)\apr_strmatch.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\uri\apr_uri.c + +"$(INTDIR)\apr_uri.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\xlate\xlate.c + +"$(INTDIR)\xlate.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\xml\apr_xml.c + +"$(INTDIR)\apr_xml.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\include\apr_ldap.hw + +!IF "$(CFG)" == "libaprutil - Win32 Release" + +InputPath=.\include\apr_ldap.hw + +".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_ldap.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - Win32 Debug" + +InputPath=.\include\apr_ldap.hw + +".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_ldap.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - x64 Release" + +InputPath=.\include\apr_ldap.hw + +".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_ldap.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - x64 Debug" + +InputPath=.\include\apr_ldap.hw + +".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_ldap.h +<< + + +!ENDIF + +SOURCE=.\include\apu.hw + +!IF "$(CFG)" == "libaprutil - Win32 Release" + +InputPath=.\include\apu.hw + +".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - Win32 Debug" + +InputPath=.\include\apu.hw + +".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - x64 Release" + +InputPath=.\include\apu.hw + +".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - x64 Debug" + +InputPath=.\include\apu.hw + +".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu.h +<< + + +!ENDIF + +SOURCE=.\include\private\apu_config.hw + +!IF "$(CFG)" == "libaprutil - Win32 Release" + +InputPath=.\include\private\apu_config.hw + +".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_config.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - Win32 Debug" + +InputPath=.\include\private\apu_config.hw + +".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_config.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - x64 Release" + +InputPath=.\include\private\apu_config.hw + +".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_config.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - x64 Debug" + +InputPath=.\include\private\apu_config.hw + +".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_config.h +<< + + +!ENDIF + +SOURCE=.\include\private\apu_select_dbm.hw + +!IF "$(CFG)" == "libaprutil - Win32 Release" + +InputPath=.\include\private\apu_select_dbm.hw + +".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_select_dbm.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - Win32 Debug" + +InputPath=.\include\private\apu_select_dbm.hw + +".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_select_dbm.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - x64 Release" + +InputPath=.\include\private\apu_select_dbm.hw + +".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_select_dbm.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - x64 Debug" + +InputPath=.\include\private\apu_select_dbm.hw + +".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\private\apu_select_dbm.h +<< + + +!ENDIF + +SOURCE=.\include\apu_want.hw + +!IF "$(CFG)" == "libaprutil - Win32 Release" + +InputPath=.\include\apu_want.hw + +".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu_want.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - Win32 Debug" + +InputPath=.\include\apu_want.hw + +".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu_want.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - x64 Release" + +InputPath=.\include\apu_want.hw + +".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu_want.h +<< + + +!ELSEIF "$(CFG)" == "libaprutil - x64 Debug" + +InputPath=.\include\apu_want.hw + +".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apu_want.h +<< + + +!ENDIF + +!IF "$(CFG)" == "libaprutil - Win32 Release" + +"libapr - Win32 Release" : + cd ".\..\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\apr-util" + +"libapr - Win32 ReleaseCLEAN" : + cd ".\..\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\apr-util" + +!ELSEIF "$(CFG)" == "libaprutil - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\..\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\apr-util" + +"libapr - Win32 DebugCLEAN" : + cd ".\..\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\apr-util" + +!ELSEIF "$(CFG)" == "libaprutil - x64 Release" + +"libapr - x64 Release" : + cd ".\..\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - x64 Release" + cd "..\apr-util" + +"libapr - x64 ReleaseCLEAN" : + cd ".\..\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - x64 Release" RECURSE=1 CLEAN + cd "..\apr-util" + +!ELSEIF "$(CFG)" == "libaprutil - x64 Debug" + +"libapr - x64 Debug" : + cd ".\..\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - x64 Debug" + cd "..\apr-util" + +"libapr - x64 DebugCLEAN" : + cd ".\..\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - x64 Debug" RECURSE=1 CLEAN + cd "..\apr-util" + +!ENDIF + +!IF "$(CFG)" == "libaprutil - Win32 Release" + +"libapriconv - Win32 Release" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Release" + cd "..\apr-util" + +"libapriconv - Win32 ReleaseCLEAN" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Release" RECURSE=1 CLEAN + cd "..\apr-util" + +!ELSEIF "$(CFG)" == "libaprutil - Win32 Debug" + +"libapriconv - Win32 Debug" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Debug" + cd "..\apr-util" + +"libapriconv - Win32 DebugCLEAN" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Debug" RECURSE=1 CLEAN + cd "..\apr-util" + +!ELSEIF "$(CFG)" == "libaprutil - x64 Release" + +"libapriconv - x64 Release" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - x64 Release" + cd "..\apr-util" + +"libapriconv - x64 ReleaseCLEAN" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - x64 Release" RECURSE=1 CLEAN + cd "..\apr-util" + +!ELSEIF "$(CFG)" == "libaprutil - x64 Debug" + +"libapriconv - x64 Debug" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - x64 Debug" + cd "..\apr-util" + +"libapriconv - x64 DebugCLEAN" : + cd ".\..\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - x64 Debug" RECURSE=1 CLEAN + cd "..\apr-util" + +!ENDIF + +!IF "$(CFG)" == "libaprutil - Win32 Release" + +"xml - Win32 Release" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Release" + cd "..\..\.." + +"xml - Win32 ReleaseCLEAN" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Release" RECURSE=1 CLEAN + cd "..\..\.." + +!ELSEIF "$(CFG)" == "libaprutil - Win32 Debug" + +"xml - Win32 Debug" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Debug" + cd "..\..\.." + +"xml - Win32 DebugCLEAN" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\.." + +!ELSEIF "$(CFG)" == "libaprutil - x64 Release" + +"xml - x64 Release" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Release" + cd "..\..\.." + +"xml - x64 ReleaseCLEAN" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Release" RECURSE=1 CLEAN + cd "..\..\.." + +!ELSEIF "$(CFG)" == "libaprutil - x64 Debug" + +"xml - x64 Debug" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Debug" + cd "..\..\.." + +"xml - x64 DebugCLEAN" : + cd ".\xml\expat\lib" + $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Debug" RECURSE=1 CLEAN + cd "..\..\.." + +!ENDIF + +SOURCE=.\libaprutil.rc + +"$(INTDIR)\libaprutil.res" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" + $(RSC) $(RSC_PROJ) $(SOURCE) + + + +!ENDIF + diff --git a/iis/winbuild/libhttpd.mak b/iis/winbuild/libhttpd.mak new file mode 100644 index 00000000..7808ed1d --- /dev/null +++ b/iis/winbuild/libhttpd.mak @@ -0,0 +1,1052 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on libhttpd.dsp +!IF "$(CFG)" == "" +CFG=libhttpd - Win32 Release +!MESSAGE No configuration specified. Defaulting to libhttpd - Win32 Release. +!ENDIF + +!IF "$(CFG)" != "libhttpd - Win32 Release" && "$(CFG)" != "libhttpd - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "libhttpd.mak" CFG="libhttpd - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "libhttpd - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "libhttpd - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\include\mod_dav.h" "$(OUTDIR)\libhttpd.dll" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "pcre - Win32 Release" "gen_test_char - Win32 Release" "libaprutil - Win32 Release" "libapriconv - Win32 Release" "libapr - Win32 Release" ".\include\mod_dav.h" "$(OUTDIR)\libhttpd.dll" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libapriconv - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "gen_test_char - Win32 ReleaseCLEAN" "pcre - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\ap_regkey.obj" + -@erase "$(INTDIR)\byterange_filter.obj" + -@erase "$(INTDIR)\child.obj" + -@erase "$(INTDIR)\chunk_filter.obj" + -@erase "$(INTDIR)\config.obj" + -@erase "$(INTDIR)\connection.obj" + -@erase "$(INTDIR)\core.obj" + -@erase "$(INTDIR)\core_filters.obj" + -@erase "$(INTDIR)\eoc_bucket.obj" + -@erase "$(INTDIR)\error_bucket.obj" + -@erase "$(INTDIR)\http_core.obj" + -@erase "$(INTDIR)\http_etag.obj" + -@erase "$(INTDIR)\http_filters.obj" + -@erase "$(INTDIR)\http_protocol.obj" + -@erase "$(INTDIR)\http_request.obj" + -@erase "$(INTDIR)\libhttpd.res" + -@erase "$(INTDIR)\libhttpd_cl.idb" + -@erase "$(INTDIR)\libhttpd_cl.pdb" + -@erase "$(INTDIR)\listen.obj" + -@erase "$(INTDIR)\log.obj" + -@erase "$(INTDIR)\mod_so.obj" + -@erase "$(INTDIR)\mod_win32.obj" + -@erase "$(INTDIR)\modules.obj" + -@erase "$(INTDIR)\mpm_common.obj" + -@erase "$(INTDIR)\mpm_winnt.obj" + -@erase "$(INTDIR)\nt_eventlog.obj" + -@erase "$(INTDIR)\protocol.obj" + -@erase "$(INTDIR)\provider.obj" + -@erase "$(INTDIR)\request.obj" + -@erase "$(INTDIR)\scoreboard.obj" + -@erase "$(INTDIR)\service.obj" + -@erase "$(INTDIR)\util.obj" + -@erase "$(INTDIR)\util_cfgtree.obj" + -@erase "$(INTDIR)\util_filter.obj" + -@erase "$(INTDIR)\util_md5.obj" + -@erase "$(INTDIR)\util_pcre.obj" + -@erase "$(INTDIR)\util_script.obj" + -@erase "$(INTDIR)\util_time.obj" + -@erase "$(INTDIR)\util_win32.obj" + -@erase "$(INTDIR)\util_xml.obj" + -@erase "$(INTDIR)\vhost.obj" + -@erase "$(OUTDIR)\libhttpd.dll" + -@erase "$(OUTDIR)\libhttpd.exp" + -@erase "$(OUTDIR)\libhttpd.lib" + -@erase "$(OUTDIR)\libhttpd.pdb" + -@erase ".\include\mod_dav.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libhttpd_cl" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libhttpd.res" /i "./include" /i "./srclib/apr/include" /d "NDEBUG" /d BIN_NAME="libhttpd.dll" /d LONG_NAME="Apache HTTP Server Core" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libhttpd.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib "Release\buildmark.obj" /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libhttpd.pdb" /debug /out:"$(OUTDIR)\libhttpd.dll" /implib:"$(OUTDIR)\libhttpd.lib" /base:@"os\win32\BaseAddr.ref",libhttpd.dll /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\byterange_filter.obj" \ + "$(INTDIR)\chunk_filter.obj" \ + "$(INTDIR)\config.obj" \ + "$(INTDIR)\connection.obj" \ + "$(INTDIR)\core.obj" \ + "$(INTDIR)\core_filters.obj" \ + "$(INTDIR)\http_core.obj" \ + "$(INTDIR)\http_etag.obj" \ + "$(INTDIR)\http_filters.obj" \ + "$(INTDIR)\http_protocol.obj" \ + "$(INTDIR)\http_request.obj" \ + "$(INTDIR)\log.obj" \ + "$(INTDIR)\protocol.obj" \ + "$(INTDIR)\request.obj" \ + "$(INTDIR)\vhost.obj" \ + "$(INTDIR)\mod_so.obj" \ + "$(INTDIR)\mod_win32.obj" \ + "$(INTDIR)\modules.obj" \ + "$(INTDIR)\eoc_bucket.obj" \ + "$(INTDIR)\error_bucket.obj" \ + "$(INTDIR)\util.obj" \ + "$(INTDIR)\util_cfgtree.obj" \ + "$(INTDIR)\util_filter.obj" \ + "$(INTDIR)\util_md5.obj" \ + "$(INTDIR)\util_pcre.obj" \ + "$(INTDIR)\util_script.obj" \ + "$(INTDIR)\util_time.obj" \ + "$(INTDIR)\util_win32.obj" \ + "$(INTDIR)\util_xml.obj" \ + "$(INTDIR)\ap_regkey.obj" \ + "$(INTDIR)\child.obj" \ + "$(INTDIR)\listen.obj" \ + "$(INTDIR)\mpm_common.obj" \ + "$(INTDIR)\mpm_winnt.obj" \ + "$(INTDIR)\nt_eventlog.obj" \ + "$(INTDIR)\provider.obj" \ + "$(INTDIR)\scoreboard.obj" \ + "$(INTDIR)\service.obj" \ + "$(INTDIR)\libhttpd.res" \ + ".\srclib\apr\Release\libapr-1.lib" \ + ".\srclib\apr-iconv\Release\libapriconv-1.lib" \ + ".\srclib\apr-util\Release\libaprutil-1.lib" \ + ".\srclib\pcre\LibR\pcre.lib" + +"$(OUTDIR)\libhttpd.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + cl.exe /nologo /MD /W3 /O2 /Oy- /Zi /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fd"Release\libhttpd" /FD /c server\buildmark.c /Fo"Release\buildmark.obj" + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\libhttpd.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libhttpd.dll" + if exist .\Release\libhttpd.dll.manifest mt.exe -manifest .\Release\libhttpd.dll.manifest -outputresource:.\Release\libhttpd.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\server\test_char.h" ".\include\mpm_default.h" ".\include\mpm.h" ".\include\mod_so.h" ".\include\mod_proxy.h" ".\include\mod_include.h" ".\include\mod_dav.h" ".\include\mod_core.h" ".\include\mod_cgi.h" "$(OUTDIR)\libhttpd.dll" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "pcre - Win32 Debug" "gen_test_char - Win32 Debug" "libaprutil - Win32 Debug" "libapriconv - Win32 Debug" "libapr - Win32 Debug" ".\server\test_char.h" ".\include\mpm_default.h" ".\include\mpm.h" ".\include\mod_so.h" ".\include\mod_proxy.h" ".\include\mod_include.h" ".\include\mod_dav.h" ".\include\mod_core.h" ".\include\mod_cgi.h" "$(OUTDIR)\libhttpd.dll" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libapriconv - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "gen_test_char - Win32 DebugCLEAN" "pcre - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\ap_regkey.obj" + -@erase "$(INTDIR)\byterange_filter.obj" + -@erase "$(INTDIR)\child.obj" + -@erase "$(INTDIR)\chunk_filter.obj" + -@erase "$(INTDIR)\config.obj" + -@erase "$(INTDIR)\connection.obj" + -@erase "$(INTDIR)\core.obj" + -@erase "$(INTDIR)\core_filters.obj" + -@erase "$(INTDIR)\eoc_bucket.obj" + -@erase "$(INTDIR)\error_bucket.obj" + -@erase "$(INTDIR)\http_core.obj" + -@erase "$(INTDIR)\http_etag.obj" + -@erase "$(INTDIR)\http_filters.obj" + -@erase "$(INTDIR)\http_protocol.obj" + -@erase "$(INTDIR)\http_request.obj" + -@erase "$(INTDIR)\libhttpd.res" + -@erase "$(INTDIR)\libhttpd_cl.idb" + -@erase "$(INTDIR)\libhttpd_cl.pdb" + -@erase "$(INTDIR)\listen.obj" + -@erase "$(INTDIR)\log.obj" + -@erase "$(INTDIR)\mod_so.obj" + -@erase "$(INTDIR)\mod_win32.obj" + -@erase "$(INTDIR)\modules.obj" + -@erase "$(INTDIR)\mpm_common.obj" + -@erase "$(INTDIR)\mpm_winnt.obj" + -@erase "$(INTDIR)\nt_eventlog.obj" + -@erase "$(INTDIR)\protocol.obj" + -@erase "$(INTDIR)\provider.obj" + -@erase "$(INTDIR)\request.obj" + -@erase "$(INTDIR)\scoreboard.obj" + -@erase "$(INTDIR)\service.obj" + -@erase "$(INTDIR)\util.obj" + -@erase "$(INTDIR)\util_cfgtree.obj" + -@erase "$(INTDIR)\util_filter.obj" + -@erase "$(INTDIR)\util_md5.obj" + -@erase "$(INTDIR)\util_pcre.obj" + -@erase "$(INTDIR)\util_script.obj" + -@erase "$(INTDIR)\util_time.obj" + -@erase "$(INTDIR)\util_win32.obj" + -@erase "$(INTDIR)\util_xml.obj" + -@erase "$(INTDIR)\vhost.obj" + -@erase "$(OUTDIR)\libhttpd.dll" + -@erase "$(OUTDIR)\libhttpd.exp" + -@erase "$(OUTDIR)\libhttpd.lib" + -@erase "$(OUTDIR)\libhttpd.pdb" + -@erase ".\include\mod_cgi.h" + -@erase ".\include\mod_core.h" + -@erase ".\include\mod_dav.h" + -@erase ".\include\mod_include.h" + -@erase ".\include\mod_proxy.h" + -@erase ".\include\mod_so.h" + -@erase ".\include\mpm.h" + -@erase ".\include\mpm_default.h" + -@erase ".\server\test_char.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libhttpd_cl" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libhttpd.res" /i "./include" /i "./srclib/apr/include" /d "_DEBUG" /d BIN_NAME="libhttpd.dll" /d LONG_NAME="Apache HTTP Server Core" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libhttpd.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib "Debug\buildmark.obj" /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libhttpd.pdb" /debug /out:"$(OUTDIR)\libhttpd.dll" /implib:"$(OUTDIR)\libhttpd.lib" /base:@"os\win32\BaseAddr.ref",libhttpd.dll +LINK32_OBJS= \ + "$(INTDIR)\byterange_filter.obj" \ + "$(INTDIR)\chunk_filter.obj" \ + "$(INTDIR)\config.obj" \ + "$(INTDIR)\connection.obj" \ + "$(INTDIR)\core.obj" \ + "$(INTDIR)\core_filters.obj" \ + "$(INTDIR)\http_core.obj" \ + "$(INTDIR)\http_etag.obj" \ + "$(INTDIR)\http_filters.obj" \ + "$(INTDIR)\http_protocol.obj" \ + "$(INTDIR)\http_request.obj" \ + "$(INTDIR)\log.obj" \ + "$(INTDIR)\protocol.obj" \ + "$(INTDIR)\request.obj" \ + "$(INTDIR)\vhost.obj" \ + "$(INTDIR)\mod_so.obj" \ + "$(INTDIR)\mod_win32.obj" \ + "$(INTDIR)\modules.obj" \ + "$(INTDIR)\eoc_bucket.obj" \ + "$(INTDIR)\error_bucket.obj" \ + "$(INTDIR)\util.obj" \ + "$(INTDIR)\util_cfgtree.obj" \ + "$(INTDIR)\util_filter.obj" \ + "$(INTDIR)\util_md5.obj" \ + "$(INTDIR)\util_pcre.obj" \ + "$(INTDIR)\util_script.obj" \ + "$(INTDIR)\util_time.obj" \ + "$(INTDIR)\util_win32.obj" \ + "$(INTDIR)\util_xml.obj" \ + "$(INTDIR)\ap_regkey.obj" \ + "$(INTDIR)\child.obj" \ + "$(INTDIR)\listen.obj" \ + "$(INTDIR)\mpm_common.obj" \ + "$(INTDIR)\mpm_winnt.obj" \ + "$(INTDIR)\nt_eventlog.obj" \ + "$(INTDIR)\provider.obj" \ + "$(INTDIR)\scoreboard.obj" \ + "$(INTDIR)\service.obj" \ + "$(INTDIR)\libhttpd.res" \ + ".\srclib\apr\Debug\libapr-1.lib" \ + ".\srclib\apr-iconv\Debug\libapriconv-1.lib" \ + ".\srclib\apr-util\Debug\libaprutil-1.lib" \ + ".\srclib\pcre\LibD\pcre.lib" + +"$(OUTDIR)\libhttpd.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + cl.exe /nologo /MDd /W3 /EHsc /Zi /Od /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fd"Debug\libhttpd" /FD /c server\buildmark.c /Fo"Debug\buildmark.obj" + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\libhttpd.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libhttpd.dll" + if exist .\Debug\libhttpd.dll.manifest mt.exe -manifest .\Debug\libhttpd.dll.manifest -outputresource:.\Debug\libhttpd.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("libhttpd.dep") +!INCLUDE "libhttpd.dep" +!ELSE +!MESSAGE Warning: cannot find "libhttpd.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "libhttpd - Win32 Release" || "$(CFG)" == "libhttpd - Win32 Debug" +SOURCE=.\modules\generators\mod_cgi.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\generators\mod_cgi.h + +".\include\mod_cgi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_cgi.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\generators\mod_cgi.h + +".\include\mod_cgi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_cgi.h +<< + + +!ENDIF + +SOURCE=.\modules\http\mod_core.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\http\mod_core.h + +".\include\mod_core.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_core.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\http\mod_core.h + +".\include\mod_core.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_core.h +<< + + +!ENDIF + +SOURCE=.\modules\dav\main\mod_dav.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\dav\main\mod_dav.h + +".\include\mod_dav.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_dav.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\dav\main\mod_dav.h + +".\include\mod_dav.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_dav.h +<< + + +!ENDIF + +SOURCE=.\modules\filters\mod_include.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\filters\mod_include.h + +".\include\mod_include.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_include.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\filters\mod_include.h + +".\include\mod_include.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_include.h +<< + + +!ENDIF + +SOURCE=.\modules\proxy\mod_proxy.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\proxy\mod_proxy.h + +".\include\mod_proxy.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_proxy.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\proxy\mod_proxy.h + +".\include\mod_proxy.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_proxy.h +<< + + +!ENDIF + +SOURCE=.\modules\mappers\mod_so.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\mappers\mod_so.h + +".\include\mod_so.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_so.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\mappers\mod_so.h + +".\include\mod_so.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_so.h +<< + + +!ENDIF + +SOURCE=.\os\win32\os.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\os\win32\os.h + +".\include\os.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\os.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\os\win32\os.h + +".\include\os.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\os.h +<< + + +!ENDIF + +SOURCE=.\server\buildmark.c +SOURCE=.\modules\http\byterange_filter.c + +"$(INTDIR)\byterange_filter.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\chunk_filter.c + +"$(INTDIR)\chunk_filter.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\config.c + +"$(INTDIR)\config.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\connection.c + +"$(INTDIR)\connection.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm_default.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\core.c + +"$(INTDIR)\core.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\mod_core.h" ".\include\mod_proxy.h" ".\include\mod_so.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\core_filters.c + +"$(INTDIR)\core_filters.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\mod_core.h" ".\include\mod_proxy.h" ".\include\mod_so.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\http_core.c + +"$(INTDIR)\http_core.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\http_etag.c + +"$(INTDIR)\http_etag.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\http_filters.c + +"$(INTDIR)\http_filters.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\http_protocol.c + +"$(INTDIR)\http_protocol.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\http_request.c + +"$(INTDIR)\http_request.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\log.c + +"$(INTDIR)\log.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\protocol.c + +"$(INTDIR)\protocol.obj" : $(SOURCE) "$(INTDIR)" ".\include\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\request.c + +"$(INTDIR)\request.obj" : $(SOURCE) "$(INTDIR)" ".\include\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\vhost.c + +"$(INTDIR)\vhost.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\mappers\mod_so.c + +"$(INTDIR)\mod_so.obj" : $(SOURCE) "$(INTDIR)" ".\modules\mappers\mod_so.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\arch\win32\mod_win32.c + +"$(INTDIR)\mod_win32.obj" : $(SOURCE) "$(INTDIR)" ".\include\mod_core.h" ".\include\mod_cgi.h" ".\include\os.h" ".\include\mod_include.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\os\win32\modules.c + +"$(INTDIR)\modules.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\eoc_bucket.c + +"$(INTDIR)\eoc_bucket.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\error_bucket.c + +"$(INTDIR)\error_bucket.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util.c + +"$(INTDIR)\util.obj" : $(SOURCE) "$(INTDIR)" ".\server\test_char.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_cfgtree.c + +"$(INTDIR)\util_cfgtree.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_filter.c + +"$(INTDIR)\util_filter.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_md5.c + +"$(INTDIR)\util_md5.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_pcre.c + +"$(INTDIR)\util_pcre.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_script.c + +"$(INTDIR)\util_script.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_time.c + +"$(INTDIR)\util_time.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\os\win32\util_win32.c + +"$(INTDIR)\util_win32.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_xml.c + +"$(INTDIR)\util_xml.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\os\win32\ap_regkey.c + +"$(INTDIR)\ap_regkey.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\mpm\winnt\child.c + +"$(INTDIR)\child.obj" : $(SOURCE) "$(INTDIR)" ".\server\mpm\winnt\mpm_default.h" ".\include\os.h" ".\include\mpm.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\listen.c + +"$(INTDIR)\listen.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\mpm\winnt\mpm.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\server\mpm\winnt\mpm.h + +".\include\mpm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mpm.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\server\mpm\winnt\mpm.h + +".\include\mpm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mpm.h +<< + + +!ENDIF + +SOURCE=.\server\mpm_common.c + +"$(INTDIR)\mpm_common.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\mpm_default.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\mpm\winnt\mpm_default.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\server\mpm\winnt\mpm_default.h + +".\include\mpm_default.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mpm_default.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\server\mpm\winnt\mpm_default.h + +".\include\mpm_default.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mpm_default.h +<< + + +!ENDIF + +SOURCE=.\server\mpm\winnt\mpm_winnt.c + +"$(INTDIR)\mpm_winnt.obj" : $(SOURCE) "$(INTDIR)" ".\server\mpm\winnt\mpm_default.h" ".\include\os.h" ".\include\mpm.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\mpm\winnt\nt_eventlog.c + +"$(INTDIR)\nt_eventlog.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\provider.c + +"$(INTDIR)\provider.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\scoreboard.c + +"$(INTDIR)\scoreboard.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\mpm\winnt\service.c + +"$(INTDIR)\service.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +"libapr - Win32 Release" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\.." + +"libapr - Win32 ReleaseCLEAN" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\.." + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\.." + +"libapr - Win32 DebugCLEAN" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\.." + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +"libapriconv - Win32 Release" : + cd ".\srclib\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Release" + cd "..\.." + +"libapriconv - Win32 ReleaseCLEAN" : + cd ".\srclib\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Release" RECURSE=1 CLEAN + cd "..\.." + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +"libapriconv - Win32 Debug" : + cd ".\srclib\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Debug" + cd "..\.." + +"libapriconv - Win32 DebugCLEAN" : + cd ".\srclib\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Debug" RECURSE=1 CLEAN + cd "..\.." + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\.." + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\.." + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\.." + +"libaprutil - Win32 DebugCLEAN" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\.." + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +"gen_test_char - Win32 Release" : + cd ".\server" + $(MAKE) /$(MAKEFLAGS) /F ".\gen_test_char.mak" CFG="gen_test_char - Win32 Release" + cd ".." + +"gen_test_char - Win32 ReleaseCLEAN" : + cd ".\server" + $(MAKE) /$(MAKEFLAGS) /F ".\gen_test_char.mak" CFG="gen_test_char - Win32 Release" RECURSE=1 CLEAN + cd ".." + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +"gen_test_char - Win32 Debug" : + cd ".\server" + $(MAKE) /$(MAKEFLAGS) /F ".\gen_test_char.mak" CFG="gen_test_char - Win32 Debug" + cd ".." + +"gen_test_char - Win32 DebugCLEAN" : + cd ".\server" + $(MAKE) /$(MAKEFLAGS) /F ".\gen_test_char.mak" CFG="gen_test_char - Win32 Debug" RECURSE=1 CLEAN + cd ".." + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +"pcre - Win32 Release" : + cd ".\srclib\pcre" + $(MAKE) /$(MAKEFLAGS) /F ".\pcre.mak" CFG="pcre - Win32 Release" + cd "..\.." + +"pcre - Win32 ReleaseCLEAN" : + cd ".\srclib\pcre" + $(MAKE) /$(MAKEFLAGS) /F ".\pcre.mak" CFG="pcre - Win32 Release" RECURSE=1 CLEAN + cd "..\.." + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +"pcre - Win32 Debug" : + cd ".\srclib\pcre" + $(MAKE) /$(MAKEFLAGS) /F ".\pcre.mak" CFG="pcre - Win32 Debug" + cd "..\.." + +"pcre - Win32 DebugCLEAN" : + cd ".\srclib\pcre" + $(MAKE) /$(MAKEFLAGS) /F ".\pcre.mak" CFG="pcre - Win32 Debug" RECURSE=1 CLEAN + cd "..\.." + +!ENDIF + +SOURCE=.\server\gen_test_char.exe + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\server\gen_test_char.exe +USERDEP__GEN_T=".\include\os.h" + +".\server\test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" $(USERDEP__GEN_T) + <.\server\test_char.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\server\gen_test_char.exe +USERDEP__GEN_T=".\include\os.h" + +".\server\test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" $(USERDEP__GEN_T) + <.\server\test_char.h +<< + + +!ENDIF + +SOURCE=.\build\win32\httpd.rc + +!IF "$(CFG)" == "libhttpd - Win32 Release" + + +"$(INTDIR)\libhttpd.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\libhttpd.res" /i "./include" /i "./srclib/apr/include" /i "build\win32" /d "NDEBUG" /d BIN_NAME="libhttpd.dll" /d LONG_NAME="Apache HTTP Server Core" $(SOURCE) + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + + +"$(INTDIR)\libhttpd.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\libhttpd.res" /i "./include" /i "./srclib/apr/include" /i "build\win32" /d "_DEBUG" /d BIN_NAME="libhttpd.dll" /d LONG_NAME="Apache HTTP Server Core" $(SOURCE) + + +!ENDIF + + +!ENDIF + diff --git a/iis/winbuild/mod_ssl.mak b/iis/winbuild/mod_ssl.mak new file mode 100644 index 00000000..db5baf60 --- /dev/null +++ b/iis/winbuild/mod_ssl.mak @@ -0,0 +1,733 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_ssl.dsp +!IF "$(CFG)" == "" +CFG=mod_ssl - Win32 Release +!MESSAGE No configuration specified. Defaulting to mod_ssl - Win32 Release. +!ENDIF + +!IF "$(CFG)" != "mod_ssl - Win32 Release" && "$(CFG)" != "mod_ssl - Win32 Debug" && "$(CFG)" != "mod_ssl - Win32 Lexical" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_ssl.mak" CFG="mod_ssl - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_ssl - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_ssl - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_ssl - Win32 Lexical" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_ssl - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_ssl.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\mod_ssl.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_ssl.obj" + -@erase "$(INTDIR)\mod_ssl.res" + -@erase "$(INTDIR)\mod_ssl_src.idb" + -@erase "$(INTDIR)\mod_ssl_src.pdb" + -@erase "$(INTDIR)\ssl_engine_config.obj" + -@erase "$(INTDIR)\ssl_engine_dh.obj" + -@erase "$(INTDIR)\ssl_engine_init.obj" + -@erase "$(INTDIR)\ssl_engine_io.obj" + -@erase "$(INTDIR)\ssl_engine_kernel.obj" + -@erase "$(INTDIR)\ssl_engine_log.obj" + -@erase "$(INTDIR)\ssl_engine_mutex.obj" + -@erase "$(INTDIR)\ssl_engine_pphrase.obj" + -@erase "$(INTDIR)\ssl_engine_rand.obj" + -@erase "$(INTDIR)\ssl_engine_vars.obj" + -@erase "$(INTDIR)\ssl_expr.obj" + -@erase "$(INTDIR)\ssl_expr_eval.obj" + -@erase "$(INTDIR)\ssl_expr_parse.obj" + -@erase "$(INTDIR)\ssl_expr_scan.obj" + -@erase "$(INTDIR)\ssl_scache.obj" + -@erase "$(INTDIR)\ssl_scache_dbm.obj" + -@erase "$(INTDIR)\ssl_scache_dc.obj" + -@erase "$(INTDIR)\ssl_scache_shmcb.obj" + -@erase "$(INTDIR)\ssl_util.obj" + -@erase "$(INTDIR)\ssl_util_ssl.obj" + -@erase "$(OUTDIR)\mod_ssl.exp" + -@erase "$(OUTDIR)\mod_ssl.lib" + -@erase "$(OUTDIR)\mod_ssl.pdb" + -@erase "$(OUTDIR)\mod_ssl.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../include" /I "../generators" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /I "../../srclib/openssl/inc32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "WIN32_LEAN_AND_MEAN" /D "NO_IDEA" /D "NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" /D "OPENSSL_NO_RC5" /D "OPENSSL_NO_MDC2" /D "HAVE_OPENSSL" /D "HAVE_SSL_SET_STATE" /D "HAVE_OPENSSL_ENGINE_H" /D "HAVE_ENGINE_INIT" /D "HAVE_ENGINE_LOAD_BUILTIN_ENGINES" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_ssl_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_ssl.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_ssl.so" /d LONG_NAME="proxy_ssl_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_ssl.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib user32.lib wsock32.lib ws2_32.lib advapi32.lib gdi32.lib libeay32.lib ssleay32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_ssl.pdb" /debug /out:"$(OUTDIR)\mod_ssl.so" /implib:"$(OUTDIR)\mod_ssl.lib" /libpath:"../../srclib/openssl/out32dll" /libpath:"../../srclib/openssl/out32" /base:@..\..\os\win32\BaseAddr.ref,mod_ssl.so /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\mod_ssl.obj" \ + "$(INTDIR)\ssl_engine_config.obj" \ + "$(INTDIR)\ssl_engine_dh.obj" \ + "$(INTDIR)\ssl_engine_init.obj" \ + "$(INTDIR)\ssl_engine_io.obj" \ + "$(INTDIR)\ssl_engine_kernel.obj" \ + "$(INTDIR)\ssl_engine_log.obj" \ + "$(INTDIR)\ssl_engine_mutex.obj" \ + "$(INTDIR)\ssl_engine_pphrase.obj" \ + "$(INTDIR)\ssl_engine_rand.obj" \ + "$(INTDIR)\ssl_engine_vars.obj" \ + "$(INTDIR)\ssl_expr.obj" \ + "$(INTDIR)\ssl_expr_eval.obj" \ + "$(INTDIR)\ssl_expr_parse.obj" \ + "$(INTDIR)\ssl_expr_scan.obj" \ + "$(INTDIR)\ssl_scache.obj" \ + "$(INTDIR)\ssl_scache_dbm.obj" \ + "$(INTDIR)\ssl_scache_shmcb.obj" \ + "$(INTDIR)\ssl_scache_dc.obj" \ + "$(INTDIR)\ssl_util.obj" \ + "$(INTDIR)\ssl_util_ssl.obj" \ + "$(INTDIR)\mod_ssl.res" \ + "..\..\srclib\apr\Release\libapr-1.lib" \ + "..\..\srclib\apr-util\Release\libaprutil-1.lib" \ + "..\..\Release\libhttpd.lib" + +"$(OUTDIR)\mod_ssl.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\mod_ssl.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_ssl.so" + if exist .\Release\mod_ssl.so.manifest mt.exe -manifest .\Release\mod_ssl.so.manifest -outputresource:.\Release\mod_ssl.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_ssl.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "$(OUTDIR)\mod_ssl.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_ssl.obj" + -@erase "$(INTDIR)\mod_ssl.res" + -@erase "$(INTDIR)\mod_ssl_src.idb" + -@erase "$(INTDIR)\mod_ssl_src.pdb" + -@erase "$(INTDIR)\ssl_engine_config.obj" + -@erase "$(INTDIR)\ssl_engine_dh.obj" + -@erase "$(INTDIR)\ssl_engine_init.obj" + -@erase "$(INTDIR)\ssl_engine_io.obj" + -@erase "$(INTDIR)\ssl_engine_kernel.obj" + -@erase "$(INTDIR)\ssl_engine_log.obj" + -@erase "$(INTDIR)\ssl_engine_mutex.obj" + -@erase "$(INTDIR)\ssl_engine_pphrase.obj" + -@erase "$(INTDIR)\ssl_engine_rand.obj" + -@erase "$(INTDIR)\ssl_engine_vars.obj" + -@erase "$(INTDIR)\ssl_expr.obj" + -@erase "$(INTDIR)\ssl_expr_eval.obj" + -@erase "$(INTDIR)\ssl_expr_parse.obj" + -@erase "$(INTDIR)\ssl_expr_scan.obj" + -@erase "$(INTDIR)\ssl_scache.obj" + -@erase "$(INTDIR)\ssl_scache_dbm.obj" + -@erase "$(INTDIR)\ssl_scache_dc.obj" + -@erase "$(INTDIR)\ssl_scache_shmcb.obj" + -@erase "$(INTDIR)\ssl_util.obj" + -@erase "$(INTDIR)\ssl_util_ssl.obj" + -@erase "$(OUTDIR)\mod_ssl.exp" + -@erase "$(OUTDIR)\mod_ssl.lib" + -@erase "$(OUTDIR)\mod_ssl.pdb" + -@erase "$(OUTDIR)\mod_ssl.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../include" /I "../generators" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /I "../../srclib/openssl/inc32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "WIN32_LEAN_AND_MEAN" /D "NO_IDEA" /D "NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" /D "OPENSSL_NO_RC5" /D "OPENSSL_NO_MDC2" /D "HAVE_OPENSSL" /D "HAVE_SSL_SET_STATE" /D "HAVE_OPENSSL_ENGINE_H" /D "HAVE_ENGINE_INIT" /D "HAVE_ENGINE_LOAD_BUILTIN_ENGINES" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_ssl_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_ssl.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_ssl.so" /d LONG_NAME="proxy_ssl_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_ssl.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib user32.lib wsock32.lib ws2_32.lib advapi32.lib gdi32.lib libeay32.lib ssleay32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_ssl.pdb" /debug /out:"$(OUTDIR)\mod_ssl.so" /implib:"$(OUTDIR)\mod_ssl.lib" /libpath:"../../srclib/openssl/out32dll.dbg" /libpath:"../../srclib/openssl/out32.dbg" /libpath:"../../srclib/openssl/out32dll" /libpath:"../../srclib/openssl/out32" /base:@..\..\os\win32\BaseAddr.ref,mod_ssl.so +LINK32_OBJS= \ + "$(INTDIR)\mod_ssl.obj" \ + "$(INTDIR)\ssl_engine_config.obj" \ + "$(INTDIR)\ssl_engine_dh.obj" \ + "$(INTDIR)\ssl_engine_init.obj" \ + "$(INTDIR)\ssl_engine_io.obj" \ + "$(INTDIR)\ssl_engine_kernel.obj" \ + "$(INTDIR)\ssl_engine_log.obj" \ + "$(INTDIR)\ssl_engine_mutex.obj" \ + "$(INTDIR)\ssl_engine_pphrase.obj" \ + "$(INTDIR)\ssl_engine_rand.obj" \ + "$(INTDIR)\ssl_engine_vars.obj" \ + "$(INTDIR)\ssl_expr.obj" \ + "$(INTDIR)\ssl_expr_eval.obj" \ + "$(INTDIR)\ssl_expr_parse.obj" \ + "$(INTDIR)\ssl_expr_scan.obj" \ + "$(INTDIR)\ssl_scache.obj" \ + "$(INTDIR)\ssl_scache_dbm.obj" \ + "$(INTDIR)\ssl_scache_shmcb.obj" \ + "$(INTDIR)\ssl_scache_dc.obj" \ + "$(INTDIR)\ssl_util.obj" \ + "$(INTDIR)\ssl_util_ssl.obj" \ + "$(INTDIR)\mod_ssl.res" \ + "..\..\srclib\apr\Debug\libapr-1.lib" \ + "..\..\srclib\apr-util\Debug\libaprutil-1.lib" \ + "..\..\Debug\libhttpd.lib" + +"$(OUTDIR)\mod_ssl.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\mod_ssl.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_ssl.so" + if exist .\Debug\mod_ssl.so.manifest mt.exe -manifest .\Debug\mod_ssl.so.manifest -outputresource:.\Debug\mod_ssl.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Lexical" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\ssl_expr_parse.h" ".\ssl_expr_parse.c" "$(OUTDIR)\mod_ssl.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : ".\ssl_expr_parse.h" ".\ssl_expr_parse.c" "$(OUTDIR)\mod_ssl.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN : +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_ssl.obj" + -@erase "$(INTDIR)\mod_ssl.res" + -@erase "$(INTDIR)\mod_ssl_src.idb" + -@erase "$(INTDIR)\mod_ssl_src.pdb" + -@erase "$(INTDIR)\ssl_engine_config.obj" + -@erase "$(INTDIR)\ssl_engine_dh.obj" + -@erase "$(INTDIR)\ssl_engine_init.obj" + -@erase "$(INTDIR)\ssl_engine_io.obj" + -@erase "$(INTDIR)\ssl_engine_kernel.obj" + -@erase "$(INTDIR)\ssl_engine_log.obj" + -@erase "$(INTDIR)\ssl_engine_mutex.obj" + -@erase "$(INTDIR)\ssl_engine_pphrase.obj" + -@erase "$(INTDIR)\ssl_engine_rand.obj" + -@erase "$(INTDIR)\ssl_engine_vars.obj" + -@erase "$(INTDIR)\ssl_expr.obj" + -@erase "$(INTDIR)\ssl_expr_eval.obj" + -@erase "$(INTDIR)\ssl_expr_parse.obj" + -@erase "$(INTDIR)\ssl_expr_scan.obj" + -@erase "$(INTDIR)\ssl_scache.obj" + -@erase "$(INTDIR)\ssl_scache_dbm.obj" + -@erase "$(INTDIR)\ssl_scache_dc.obj" + -@erase "$(INTDIR)\ssl_scache_shmcb.obj" + -@erase "$(INTDIR)\ssl_util.obj" + -@erase "$(INTDIR)\ssl_util_ssl.obj" + -@erase "$(OUTDIR)\mod_ssl.exp" + -@erase "$(OUTDIR)\mod_ssl.lib" + -@erase "$(OUTDIR)\mod_ssl.pdb" + -@erase "$(OUTDIR)\mod_ssl.so" + -@erase "ssl_expr_parse.c" + -@erase "ssl_expr_parse.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../include" /I "../generators" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /I "../../srclib/openssl/inc32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "WIN32_LEAN_AND_MEAN" /D "NO_IDEA" /D "NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" /D "OPENSSL_NO_RC5" /D "OPENSSL_NO_MDC2" /D "HAVE_OPENSSL" /D "HAVE_SSL_SET_STATE" /D "HAVE_OPENSSL_ENGINE_H" /D "HAVE_ENGINE_INIT" /D "HAVE_ENGINE_LOAD_BUILTIN_ENGINES" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_ssl_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_ssl.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_ssl.so" /d LONG_NAME="proxy_ssl_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_ssl.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib user32.lib wsock32.lib ws2_32.lib advapi32.lib gdi32.lib libeay32.lib ssleay32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_ssl.pdb" /debug /out:"$(OUTDIR)\mod_ssl.so" /implib:"$(OUTDIR)\mod_ssl.lib" /libpath:"../../srclib/openssl/out32dll" /libpath:"../../srclib/openssl/out32" /base:@..\..\os\win32\BaseAddr.ref,mod_ssl.so /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\mod_ssl.obj" \ + "$(INTDIR)\ssl_engine_config.obj" \ + "$(INTDIR)\ssl_engine_dh.obj" \ + "$(INTDIR)\ssl_engine_init.obj" \ + "$(INTDIR)\ssl_engine_io.obj" \ + "$(INTDIR)\ssl_engine_kernel.obj" \ + "$(INTDIR)\ssl_engine_log.obj" \ + "$(INTDIR)\ssl_engine_mutex.obj" \ + "$(INTDIR)\ssl_engine_pphrase.obj" \ + "$(INTDIR)\ssl_engine_rand.obj" \ + "$(INTDIR)\ssl_engine_vars.obj" \ + "$(INTDIR)\ssl_expr.obj" \ + "$(INTDIR)\ssl_expr_eval.obj" \ + "$(INTDIR)\ssl_expr_parse.obj" \ + "$(INTDIR)\ssl_expr_scan.obj" \ + "$(INTDIR)\ssl_scache.obj" \ + "$(INTDIR)\ssl_scache_dbm.obj" \ + "$(INTDIR)\ssl_scache_shmcb.obj" \ + "$(INTDIR)\ssl_scache_dc.obj" \ + "$(INTDIR)\ssl_util.obj" \ + "$(INTDIR)\ssl_util_ssl.obj" \ + "$(INTDIR)\mod_ssl.res" + +"$(OUTDIR)\mod_ssl.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\mod_ssl.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_ssl.so" + if exist .\Release\mod_ssl.so.manifest mt.exe -manifest .\Release\mod_ssl.so.manifest -outputresource:.\Release\mod_ssl.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("mod_ssl.dep") +!INCLUDE "mod_ssl.dep" +!ELSE +!MESSAGE Warning: cannot find "mod_ssl.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "mod_ssl - Win32 Release" || "$(CFG)" == "mod_ssl - Win32 Debug" || "$(CFG)" == "mod_ssl - Win32 Lexical" +SOURCE=.\mod_ssl.c + +"$(INTDIR)\mod_ssl.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_engine_config.c + +"$(INTDIR)\ssl_engine_config.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_engine_dh.c + +"$(INTDIR)\ssl_engine_dh.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_engine_init.c + +"$(INTDIR)\ssl_engine_init.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_engine_io.c + +"$(INTDIR)\ssl_engine_io.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_engine_kernel.c + +"$(INTDIR)\ssl_engine_kernel.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_engine_log.c + +"$(INTDIR)\ssl_engine_log.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_engine_mutex.c + +"$(INTDIR)\ssl_engine_mutex.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_engine_pphrase.c + +"$(INTDIR)\ssl_engine_pphrase.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_engine_rand.c + +"$(INTDIR)\ssl_engine_rand.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_engine_vars.c + +"$(INTDIR)\ssl_engine_vars.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_expr.c + +"$(INTDIR)\ssl_expr.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_expr_eval.c + +"$(INTDIR)\ssl_expr_eval.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_expr_parse.c + +"$(INTDIR)\ssl_expr_parse.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_expr_scan.c + +"$(INTDIR)\ssl_expr_scan.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_scache.c + +"$(INTDIR)\ssl_scache.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_scache_dbm.c + +"$(INTDIR)\ssl_scache_dbm.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_scache_dc.c + +"$(INTDIR)\ssl_scache_dc.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_scache_shmcb.c + +"$(INTDIR)\ssl_scache_shmcb.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_util.c + +"$(INTDIR)\ssl_util.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_util_ssl.c + +"$(INTDIR)\ssl_util_ssl.obj" : $(SOURCE) "$(INTDIR)" + + +SOURCE=.\ssl_expr_parse.y + +!IF "$(CFG)" == "mod_ssl - Win32 Release" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Debug" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Lexical" + +InputPath=.\ssl_expr_parse.y + +".\ssl_expr_parse.c" ".\ssl_expr_parse.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + <ssl_expr_parse.c + del y.tab.c + sed -e "s;yy;ssl_expr_yy;g" ssl_expr_parse.h + del y.tab.h +<< + + +!ENDIF + +SOURCE=.\ssl_expr_scan.l + +!IF "$(CFG)" == "mod_ssl - Win32 Release" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Debug" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Lexical" + +InputPath=.\ssl_expr_scan.l + +".\ssl_expr_scan.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + <ssl_expr_scan.c + del lex.ssl_expr_yy.c +<< + + +!ENDIF + +!IF "$(CFG)" == "mod_ssl - Win32 Release" + +"libapr - Win32 Release" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\..\modules\ssl" + +"libapr - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\ssl" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\..\modules\ssl" + +"libapr - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\ssl" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Lexical" + +!ENDIF + +!IF "$(CFG)" == "mod_ssl - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\..\modules\ssl" + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\ssl" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\..\modules\ssl" + +"libaprutil - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\ssl" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Lexical" + +!ENDIF + +!IF "$(CFG)" == "mod_ssl - Win32 Release" + +"libhttpd - Win32 Release" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" + cd ".\modules\ssl" + +"libhttpd - Win32 ReleaseCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN + cd ".\modules\ssl" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Debug" + +"libhttpd - Win32 Debug" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" + cd ".\modules\ssl" + +"libhttpd - Win32 DebugCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN + cd ".\modules\ssl" + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Lexical" + +!ENDIF + +SOURCE=..\..\build\win32\httpd.rc + +!IF "$(CFG)" == "mod_ssl - Win32 Release" + + +"$(INTDIR)\mod_ssl.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_ssl.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "NDEBUG" /d BIN_NAME="mod_ssl.so" /d LONG_NAME="proxy_ssl_module for Apache" $(SOURCE) + + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Debug" + + +"$(INTDIR)\mod_ssl.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_ssl.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "_DEBUG" /d BIN_NAME="mod_ssl.so" /d LONG_NAME="proxy_ssl_module for Apache" $(SOURCE) + + +!ELSEIF "$(CFG)" == "mod_ssl - Win32 Lexical" + + +"$(INTDIR)\mod_ssl.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_ssl.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "NDEBUG" /d BIN_NAME="mod_ssl.so" /d LONG_NAME="proxy_ssl_module for Apache" $(SOURCE) + + +!ENDIF + + +!ENDIF + diff --git a/iis/winbuild/pcre.mak b/iis/winbuild/pcre.mak new file mode 100644 index 00000000..54266a85 --- /dev/null +++ b/iis/winbuild/pcre.mak @@ -0,0 +1,340 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on pcre.dsp +!IF "$(CFG)" == "" +CFG=pcre - Win32 Debug +!MESSAGE No configuration specified. Defaulting to pcre - Win32 Debug. +!ENDIF + +!IF "$(CFG)" != "pcre - Win32 Release" && "$(CFG)" != "pcre - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "pcre.mak" CFG="pcre - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "pcre - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "pcre - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "pcre - Win32 Release" + +OUTDIR=.\LibR +INTDIR=.\LibR +# Begin Custom Macros +OutDir=.\LibR +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\pcre.lib" + +!ELSE + +ALL : "dftables - Win32 Release" "$(OUTDIR)\pcre.lib" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"dftables - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\get.obj" + -@erase "$(INTDIR)\maketables.obj" + -@erase "$(INTDIR)\pcre.obj" + -@erase "$(INTDIR)\pcre_src.idb" + -@erase "$(INTDIR)\pcre_src.pdb" + -@erase "$(INTDIR)\study.obj" + -@erase "$(OUTDIR)\pcre.lib" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /D "_WIN32" /D "NDEBUG" /D "_WINDOWS" /D "PCRE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\pcre_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\pcre.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\pcre.lib" +LIB32_OBJS= \ + "$(INTDIR)\get.obj" \ + "$(INTDIR)\maketables.obj" \ + "$(INTDIR)\pcre.obj" \ + "$(INTDIR)\study.obj" + +"$(OUTDIR)\pcre.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "pcre - Win32 Debug" + +OUTDIR=.\LibD +INTDIR=.\LibD +# Begin Custom Macros +OutDir=.\LibD +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\pcre.h" ".\config.h" ".\chartables.c" "$(OUTDIR)\pcre.lib" + +!ELSE + +ALL : "dftables - Win32 Debug" ".\pcre.h" ".\config.h" ".\chartables.c" "$(OUTDIR)\pcre.lib" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"dftables - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\get.obj" + -@erase "$(INTDIR)\maketables.obj" + -@erase "$(INTDIR)\pcre.obj" + -@erase "$(INTDIR)\pcre_src.idb" + -@erase "$(INTDIR)\pcre_src.pdb" + -@erase "$(INTDIR)\study.obj" + -@erase "$(OUTDIR)\pcre.lib" + -@erase ".\chartables.c" + -@erase ".\config.h" + -@erase ".\pcre.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /D "_WIN32" /D "_DEBUG" /D "_WINDOWS" /D "PCRE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\pcre_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\pcre.bsc" +BSC32_SBRS= \ + +LIB32=link.exe -lib +LIB32_FLAGS=/nologo /out:"$(OUTDIR)\pcre.lib" +LIB32_OBJS= \ + "$(INTDIR)\get.obj" \ + "$(INTDIR)\maketables.obj" \ + "$(INTDIR)\pcre.obj" \ + "$(INTDIR)\study.obj" + +"$(OUTDIR)\pcre.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("pcre.dep") +!INCLUDE "pcre.dep" +!ELSE +!MESSAGE Warning: cannot find "pcre.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "pcre - Win32 Release" || "$(CFG)" == "pcre - Win32 Debug" +SOURCE=.\dftables.exe + +!IF "$(CFG)" == "pcre - Win32 Release" + +InputPath=.\dftables.exe + +".\chartables.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\config.h +<< + + +!ELSEIF "$(CFG)" == "pcre - Win32 Debug" + +InputPath=.\config.hw + +".\config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\config.h +<< + + +!ENDIF + +SOURCE=.\pcre.hw + +!IF "$(CFG)" == "pcre - Win32 Release" + +InputPath=.\pcre.hw + +".\pcre.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\pcre.h +<< + + +!ELSEIF "$(CFG)" == "pcre - Win32 Debug" + +InputPath=.\pcre.hw + +".\pcre.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\pcre.h +<< + + +!ENDIF + +!IF "$(CFG)" == "pcre - Win32 Release" + +"dftables - Win32 Release" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\dftables.mak" CFG="dftables - Win32 Release" + cd "." + +"dftables - Win32 ReleaseCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\dftables.mak" CFG="dftables - Win32 Release" RECURSE=1 CLEAN + cd "." + +!ELSEIF "$(CFG)" == "pcre - Win32 Debug" + +"dftables - Win32 Debug" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\dftables.mak" CFG="dftables - Win32 Debug" + cd "." + +"dftables - Win32 DebugCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\dftables.mak" CFG="dftables - Win32 Debug" RECURSE=1 CLEAN + cd "." + +!ENDIF + + +!ENDIF + diff --git a/iis/winbuild/vcvars64.bat b/iis/winbuild/vcvars64.bat new file mode 100644 index 00000000..c7794638 --- /dev/null +++ b/iis/winbuild/vcvars64.bat @@ -0,0 +1,113 @@ +@echo Setting environment for using Microsoft Visual Studio 2010 x64 tools. + +@call :GetVSCommonToolsDir +@if "%VS100COMNTOOLS%"=="" goto error_no_VS100COMNTOOLSDIR + +@call "%VS100COMNTOOLS%VCVarsQueryRegistry.bat" No32bit 64bit + +@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR +@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR +@if "%FrameworkDir64%"=="" goto error_no_FrameworkDIR64 +@if "%FrameworkVersion64%"=="" goto error_no_FrameworkVer64 +@if "%Framework35Version%"=="" goto error_no_Framework35Version + +@set FrameworkDir=%FrameworkDir64% +@set FrameworkVersion=%FrameworkVersion64% + +@if not "%WindowsSdkDir%" == "" ( + @set "PATH=%WindowsSdkDir%bin\NETFX 4.0 Tools\x64;%WindowsSdkDir%bin\x64;%WindowsSdkDir%bin;%PATH%" + @set "INCLUDE=%WindowsSdkDir%include;%INCLUDE%" + @set "LIB=%WindowsSdkDir%lib\x64;%LIB%" +) + +@rem PATH +@rem ---- +@if exist "%VSINSTALLDIR%Team Tools\Performance Tools\x64" ( + @set "PATH=%VSINSTALLDIR%Team Tools\Performance Tools\x64;%VSINSTALLDIR%Team Tools\Performance Tools;%PATH%" +) +@if exist "%ProgramFiles%\HTML Help Workshop" set PATH=%ProgramFiles%\HTML Help Workshop;%PATH% +@if exist "%ProgramFiles(x86)%\HTML Help Workshop" set PATH=%ProgramFiles(x86)%\HTML Help Workshop;%PATH% +@set PATH=%VSINSTALLDIR%Common7\Tools;%PATH% +@set PATH=%VSINSTALLDIR%Common7\IDE;%PATH% +@set PATH=%VCINSTALLDIR%VCPackages;%PATH% +@set PATH=%FrameworkDir%\%Framework35Version%;%PATH% +@set PATH=%FrameworkDir%\%FrameworkVersion%;%PATH% +@set PATH=%VCINSTALLDIR%BIN\amd64;%PATH% + +@rem INCLUDE +@rem ------- +@if exist "%VCINSTALLDIR%ATLMFC\INCLUDE" set INCLUDE=%VCINSTALLDIR%ATLMFC\INCLUDE;%INCLUDE% +@set INCLUDE=%VCINSTALLDIR%INCLUDE;%INCLUDE% + +@rem LIB +@rem --- +@if exist "%VCINSTALLDIR%ATLMFC\LIB\amd64" set LIB=%VCINSTALLDIR%ATLMFC\LIB\amd64;%LIB% +@set LIB=%VCINSTALLDIR%LIB\amd64;%LIB% + +@rem LIBPATH +@rem ------- +@if exist "%VCINSTALLDIR%ATLMFC\LIB\amd64" set LIBPATH=%VCINSTALLDIR%ATLMFC\LIB\amd64;%LIBPATH% +@set LIBPATH=%VCINSTALLDIR%LIB\amd64;%LIBPATH% +@set LIBPATH=%FrameworkDir%\%Framework35Version%;%LIBPATH% +@set LIBPATH=%FrameworkDir%\%FrameworkVersion%;%LIBPATH% + +@set Platform=X64 +@set CommandPromptType=Native + +@goto end + +@REM ----------------------------------------------------------------------- +:GetVSCommonToolsDir +@set VS100COMNTOOLS= +@call :GetVSCommonToolsDirHelper32 HKLM > nul 2>&1 +@if errorlevel 1 call :GetVSCommonToolsDirHelper32 HKCU > nul 2>&1 +@if errorlevel 1 call :GetVSCommonToolsDirHelper64 HKLM > nul 2>&1 +@if errorlevel 1 call :GetVSCommonToolsDirHelper64 HKCU > nul 2>&1 +@exit /B 0 + +:GetVSCommonToolsDirHelper32 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "10.0"') DO ( + @if "%%i"=="10.0" ( + @SET "VS100COMNTOOLS=%%k" + ) +) +@if "%VS100COMNTOOLS%"=="" exit /B 1 +@SET "VS100COMNTOOLS=%VS100COMNTOOLS%Common7\Tools\" +@exit /B 0 + +:GetVSCommonToolsDirHelper64 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7" /v "10.0"') DO ( + @if "%%i"=="10.0" ( + @SET "VS100COMNTOOLS=%%k" + ) +) +@if "%VS100COMNTOOLS%"=="" exit /B 1 +@SET "VS100COMNTOOLS=%VS100COMNTOOLS%Common7\Tools\" +@exit /B 0 + +@REM ----------------------------------------------------------------------- +:error_no_VS100COMNTOOLSDIR +@echo ERROR: Cannot determine the location of the VS Common Tools folder. +@goto end + +:error_no_VSINSTALLDIR +@echo ERROR: Cannot determine the location of the VS installation. +@goto end + +:error_no_VCINSTALLDIR +@echo ERROR: Cannot determine the location of the VC installation. +@goto end + +:error_no_FrameworkDIR64 +@echo ERROR: Cannot determine the location of the .NET Framework 64bit installation. +@goto end + +:error_no_FrameworkVer64 +@echo ERROR: Cannot determine the version of the .NET Framework 64bit installation. +@goto end + +:error_no_Framework35Version +@echo ERROR: Cannot determine the .NET Framework 3.5 version. +@goto end + +:end diff --git a/iis/winbuild/vsvars32.bat b/iis/winbuild/vsvars32.bat new file mode 100644 index 00000000..cdfc24ba --- /dev/null +++ b/iis/winbuild/vsvars32.bat @@ -0,0 +1,118 @@ +@echo Setting environment for using Microsoft Visual Studio 2010 x86 tools. + +@call :GetVSCommonToolsDir +@if "%VS100COMNTOOLS%"=="" goto error_no_VS100COMNTOOLSDIR + +@call "%VS100COMNTOOLS%VCVarsQueryRegistry.bat" 32bit No64bit + +@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR +@if "%FrameworkDir32%"=="" goto error_no_FrameworkDIR32 +@if "%FrameworkVersion32%"=="" goto error_no_FrameworkVer32 +@if "%Framework35Version%"=="" goto error_no_Framework35Version + +@set FrameworkDir=%FrameworkDir32% +@set FrameworkVersion=%FrameworkVersion32% + +@if not "%WindowsSdkDir%" == "" ( + @set "PATH=%WindowsSdkDir%bin\NETFX 4.0 Tools;%WindowsSdkDir%bin;%PATH%" + @set "INCLUDE=%WindowsSdkDir%include;%INCLUDE%" + @set "LIB=%WindowsSdkDir%lib;%LIB%" +) + +@rem +@rem Root of Visual Studio IDE installed files. +@rem +@set DevEnvDir=%VSINSTALLDIR%Common7\IDE\ + +@rem PATH +@rem ---- +@if exist "%VSINSTALLDIR%Team Tools\Performance Tools" ( + @set "PATH=%VSINSTALLDIR%Team Tools\Performance Tools;%PATH%" +) +@if exist "%ProgramFiles%\HTML Help Workshop" set PATH=%ProgramFiles%\HTML Help Workshop;%PATH% +@if exist "%ProgramFiles(x86)%\HTML Help Workshop" set PATH=%ProgramFiles(x86)%\HTML Help Workshop;%PATH% +@if exist "%VCINSTALLDIR%VCPackages" set PATH=%VCINSTALLDIR%VCPackages;%PATH% +@set PATH=%FrameworkDir%%Framework35Version%;%PATH% +@set PATH=%FrameworkDir%%FrameworkVersion%;%PATH% +@set PATH=%VSINSTALLDIR%Common7\Tools;%PATH% +@if exist "%VCINSTALLDIR%BIN" set PATH=%VCINSTALLDIR%BIN;%PATH% +@set PATH=%DevEnvDir%;%PATH% + +@if exist "%VSINSTALLDIR%VSTSDB\Deploy" ( + @set "PATH=%VSINSTALLDIR%VSTSDB\Deploy;%PATH%" +) + +@if not "%FSHARPINSTALLDIR%" == "" ( + @set "PATH=%FSHARPINSTALLDIR%;%PATH%" +) + +@rem INCLUDE +@rem ------- +@if exist "%VCINSTALLDIR%ATLMFC\INCLUDE" set INCLUDE=%VCINSTALLDIR%ATLMFC\INCLUDE;%INCLUDE% +@if exist "%VCINSTALLDIR%INCLUDE" set INCLUDE=%VCINSTALLDIR%INCLUDE;%INCLUDE% + +@rem LIB +@rem --- +@if exist "%VCINSTALLDIR%ATLMFC\LIB" set LIB=%VCINSTALLDIR%ATLMFC\LIB;%LIB% +@if exist "%VCINSTALLDIR%LIB" set LIB=%VCINSTALLDIR%LIB;%LIB% + +@rem LIBPATH +@rem ------- +@if exist "%VCINSTALLDIR%ATLMFC\LIB" set LIBPATH=%VCINSTALLDIR%ATLMFC\LIB;%LIBPATH% +@if exist "%VCINSTALLDIR%LIB" set LIBPATH=%VCINSTALLDIR%LIB;%LIBPATH% +@set LIBPATH=%FrameworkDir%%Framework35Version%;%LIBPATH% +@set LIBPATH=%FrameworkDir%%FrameworkVersion%;%LIBPATH% + +@goto end + +@REM ----------------------------------------------------------------------- +:GetVSCommonToolsDir +@set VS100COMNTOOLS= +@call :GetVSCommonToolsDirHelper32 HKLM > nul 2>&1 +@if errorlevel 1 call :GetVSCommonToolsDirHelper32 HKCU > nul 2>&1 +@if errorlevel 1 call :GetVSCommonToolsDirHelper64 HKLM > nul 2>&1 +@if errorlevel 1 call :GetVSCommonToolsDirHelper64 HKCU > nul 2>&1 +@exit /B 0 + +:GetVSCommonToolsDirHelper32 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "10.0"') DO ( + @if "%%i"=="10.0" ( + @SET "VS100COMNTOOLS=%%k" + ) +) +@if "%VS100COMNTOOLS%"=="" exit /B 1 +@SET "VS100COMNTOOLS=%VS100COMNTOOLS%Common7\Tools\" +@exit /B 0 + +:GetVSCommonToolsDirHelper64 +@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7" /v "10.0"') DO ( + @if "%%i"=="10.0" ( + @SET "VS100COMNTOOLS=%%k" + ) +) +@if "%VS100COMNTOOLS%"=="" exit /B 1 +@SET "VS100COMNTOOLS=%VS100COMNTOOLS%Common7\Tools\" +@exit /B 0 + +@REM ----------------------------------------------------------------------- +:error_no_VS100COMNTOOLSDIR +@echo ERROR: Cannot determine the location of the VS Common Tools folder. +@goto end + +:error_no_VSINSTALLDIR +@echo ERROR: Cannot determine the location of the VS installation. +@goto end + +:error_no_FrameworkDIR32 +@echo ERROR: Cannot determine the location of the .NET Framework 32bit installation. +@goto end + +:error_no_FrameworkVer32 +@echo ERROR: Cannot determine the version of the .NET Framework 32bit installation. +@goto end + +:error_no_Framework35Version +@echo ERROR: Cannot determine the .NET Framework 3.5 version. +@goto end + +:end diff --git a/nginx/TODO b/nginx/TODO new file mode 100644 index 00000000..fb443444 --- /dev/null +++ b/nginx/TODO @@ -0,0 +1,15 @@ +Modsecurity NGINX TODO + +* Code Cleanup + +* Create a method for action DROP as in Apache + +* Add CRS Support + +* Specific NGINX config file + +* Separate nginx/ IIS/ apache/ and generic/ folders + +* Source code documentation (insert doxygen headers) + +* Create better build infrastructure with support for tests and automated regression diff --git a/nginx/modsecurity/config b/nginx/modsecurity/config new file mode 100644 index 00000000..faf96fd3 --- /dev/null +++ b/nginx/modsecurity/config @@ -0,0 +1,6 @@ +ngx_addon_name=ngx_http_modsecurity_module +HTTP_MODULES="$HTTP_MODULES ngx_http_modsecurity_module" +NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_modsecurity_module.c" +NGX_ADDON_DEPS="$NGX_ADDON_DEPS" +CORE_LIBS="$CORE_LIBS $ngx_addon_dir/../../standalone/.libs/standalone.a -lapr-1 -laprutil-1 -lxml2 -lm" +CORE_INCS="$CORE_INCS /usr/include/apache2 /usr/include/apr-1.0 $ngx_addon_dir/../../standalone $ngx_addon_dir/../../apache2 /usr/include/libxml2" diff --git a/nginx/modsecurity/ngx_http_modsecurity_module.c b/nginx/modsecurity/ngx_http_modsecurity_module.c new file mode 100644 index 00000000..3206580d --- /dev/null +++ b/nginx/modsecurity/ngx_http_modsecurity_module.c @@ -0,0 +1,413 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#undef CR +#undef LF +#undef CRLF + +#include "api.h" + +extern ngx_module_t ngx_http_modsecurity_module; + +typedef struct +{ + ngx_log_t *log; +} ngx_http_modsecurity_main_conf_t; + +typedef struct +{ + ngx_int_t request_processed; + ngx_int_t request_blocked; + ngx_int_t error; + ngx_flag_t enabled; + ngx_str_t config_path; + directory_config *config; +} ngx_http_modsecurity_loc_conf_t; + +/* +** Module's registred function/handlers. +*/ +static ngx_int_t ngx_http_modsecurity_access_handler(ngx_http_request_t *r); +static ngx_int_t ngx_http_modsecurity_init(ngx_conf_t *cf); +static ngx_int_t ngx_http_modsecurity_init_process(ngx_cycle_t *cycle); +static void ngx_http_modsecurity_exit_process(ngx_cycle_t *cycle); +static void *ngx_http_modsecurity_create_loc_conf(ngx_conf_t *cf); +static char *ngx_http_modsecurity_merge_loc_conf(ngx_conf_t *cf, + void *parent, + void *child); +static ngx_int_t ngx_http_read_request_body(ngx_http_request_t *req, + ngx_http_client_body_handler_pt handler); +void *ngx_http_modsecurity_create_main_conf(ngx_conf_t *cf); + + +/* command handled by the module */ +static ngx_command_t ngx_http_modsecurity_commands[] = { + { ngx_string("ModSecurityConfig"), + NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, + ngx_conf_set_str_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_modsecurity_loc_conf_t, config_path), + NULL }, + { ngx_string("ModSecurityEnabled"), + NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, + ngx_conf_set_flag_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_modsecurity_loc_conf_t, enabled), + NULL }, + ngx_null_command +}; + +/* +** handlers for configuration phases of the module +*/ + +static ngx_http_module_t ngx_http_modsecurity_module_ctx = { + NULL, /* preconfiguration */ + ngx_http_modsecurity_init, /* postconfiguration */ + ngx_http_modsecurity_create_main_conf, /* create main configuration */ + NULL, /* init main configuration */ + NULL, /* create server configuration */ + NULL, /* merge server configuration */ + ngx_http_modsecurity_create_loc_conf, /* create location configuration */ + ngx_http_modsecurity_merge_loc_conf /* merge location configuration */ +}; + + +ngx_module_t ngx_http_modsecurity_module = { + NGX_MODULE_V1, + &ngx_http_modsecurity_module_ctx, /* module context */ + ngx_http_modsecurity_commands, /* module directives */ + NGX_HTTP_MODULE, /* module type */ + NULL, /* init master */ + NULL, /* init module */ + ngx_http_modsecurity_init_process, /* init process */ + NULL, /* init thread */ + NULL, /* exit thread */ + ngx_http_modsecurity_exit_process, /* exit process */ + NULL, /* exit master */ + NGX_MODULE_V1_PADDING +}; + +#define DEFAULT_MAX_LOC_T 10 + +void * +ngx_http_modsecurity_create_main_conf(ngx_conf_t *cf) +{ + ngx_http_modsecurity_main_conf_t *mc; + + mc = ngx_pcalloc(cf->pool, sizeof(ngx_http_modsecurity_main_conf_t)); + if (!mc) + return (NGX_CONF_ERROR); + + return (mc); +} + + +/* create log conf struct */ +static void * +ngx_http_modsecurity_create_loc_conf(ngx_conf_t *cf) +{ + ngx_http_modsecurity_loc_conf_t *conf; + + conf = ngx_pcalloc(cf->pool, sizeof(ngx_http_modsecurity_loc_conf_t)); + if (conf == NULL) + return NULL; + + conf->enabled = NGX_CONF_UNSET; + + return (conf); +} + +/* merge loc conf */ +static char * +ngx_http_modsecurity_merge_loc_conf(ngx_conf_t *cf, void *parent, + void *child) +{ + ngx_http_modsecurity_loc_conf_t *prev = parent; + ngx_http_modsecurity_loc_conf_t *conf = child; + + if(conf->config_path.len == 0) + conf->config_path = prev->config_path; + + ngx_conf_merge_value(conf->enabled, prev->enabled, 0); + + return NGX_CONF_OK; +} + +void modsecLog(void *obj, int level, char *str) +{ + if(obj != NULL) + ngx_log_error(NGX_LOG_INFO, (ngx_log_t *)obj, 0, str); +} + +/* +** This function sets up handlers for ACCESS_PHASE, +*/ +static ngx_int_t +ngx_http_modsecurity_init(ngx_conf_t *cf) +{ + ngx_http_handler_pt *h; + ngx_http_core_main_conf_t *cmcf; + ngx_http_modsecurity_main_conf_t *main_cf; +// ngx_http_modsecurity_loc_conf_t **loc_cf; +// unsigned int i; + + cmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_core_module); + main_cf = ngx_http_conf_get_module_main_conf(cf, ngx_http_modsecurity_module); + if (cmcf == NULL || + main_cf == NULL) + return (NGX_ERROR); + + /* Register for access phase */ + //h = ngx_array_push(&cmcf->phases[NGX_HTTP_ACCESS_PHASE].handlers); + h = ngx_array_push(&cmcf->phases[NGX_HTTP_REWRITE_PHASE].handlers); + if (h == NULL) + return (NGX_ERROR); + *h = ngx_http_modsecurity_access_handler; + + return (NGX_OK); +} + +static ngx_int_t +ngx_http_modsecurity_init_process(ngx_cycle_t *cycle) +{ + cycle->log->log_level = NGX_LOG_INFO; + + modsecSetLogHook(cycle->log, modsecLog); + + modsecInit(); + + modsecStartConfig(); + + modsecFinalizeConfig(); + + modsecInitProcess(); + + return NGX_OK; +} + +static void +ngx_http_modsecurity_exit_process(ngx_cycle_t *cycle) +{ + modsecTerminate(); +} + +// This is a temporary hack to make PCRE work with ModSecurity +// nginx hijacks pcre_malloc and pcre_free, so we have to re-hijack them +// + +extern apr_pool_t *pool; + +void *modsec_pcre_malloc(size_t size) +{ + return apr_palloc(pool, size); +} + +void modsec_pcre_free(void *ptr) +{ +} + +char *ConvertNgxStringToUTF8(ngx_str_t str, apr_pool_t *pool) +{ + char *t = (char *)apr_palloc(pool, str.len + 1); + + memcpy(t, str.data, str.len); + t[str.len] = 0; + + return t; +} + +/* + ** Create payload handler for calling request body function + */ + +void +ngx_http_dummy_payload_handler(ngx_http_request_t *req) +{ + ngx_http_finalize_request(req, NGX_DONE); +} + + +/* + ** If method is POST or PUT, read request body and put in req->request_body->bufs + */ + +static ngx_int_t +ngx_http_read_request_body(ngx_http_request_t *req, + ngx_http_client_body_handler_pt handler) +{ +// If has body request treat it + ngx_int_t rc = 0; + + if(req->method == NGX_HTTP_POST || req->method==NGX_HTTP_PUT) + { + //calling request body function + rc = ngx_http_read_client_request_body(req, ngx_http_dummy_payload_handler); + } + //If some error, returns rc + if (rc == NGX_ERROR || rc >= NGX_HTTP_SPECIAL_RESPONSE) { + return rc; + } + //Has the end of request body? + if (rc == NGX_AGAIN) { + return NGX_DONE; + } + +return NGX_DECLINED; +} + +/* +** [ENTRY POINT] does : this is the function called by nginx : +*/ +static ngx_int_t ngx_http_modsecurity_access_handler(ngx_http_request_t *req) +{ +/* ngx_http_request_ctx_t *ctx; + ngx_int_t rc; + ngx_http_core_loc_conf_t *clcf; + struct tms tmsstart, tmsend; + clock_t start, end; + + ctx = ngx_http_get_module_ctx(r, ngx_http_modsecurity_module); + + clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); + + if (ctx && ctx->over) + return (NGX_DECLINED); + if (ctx && ctx->wait_for_body) { + return (NGX_DONE); + } + // the module is not enabled here + //if (!cf->enabled || cf->force_disabled) + // return (NGX_DECLINED); + // don't process internal requests. + //if (r->internal) { + // return (NGX_DECLINED); + } + + //nothing: return (NGX_OK); + //redirect : return (NGX_HTTP_OK); +*/ + ngx_http_modsecurity_loc_conf_t *cf; + conn_rec *c; + request_rec *r; + + cf = ngx_http_get_module_loc_conf(req, ngx_http_modsecurity_module); + + if (!cf) + return (NGX_ERROR); + + if(!cf->enabled) + return (NGX_DECLINED); + + // temporary hack, nginx uses pcre as well and hijacks these two + // + pcre_malloc = modsec_pcre_malloc; + pcre_free = modsec_pcre_free; + + if(cf->config == NULL) + { + cf->config = modsecGetDefaultConfig(); + + if(cf->config_path.len != 0) + { + char *path = ngx_pcalloc(req->pool, cf->config_path.len+1); + + memcpy(path, cf->config_path.data, cf->config_path.len); + + const char *msg = modsecProcessConfig(cf->config, path); + + if(msg != NULL) + ngx_log_error(NGX_LOG_INFO, req->connection->log, 0, msg); + } + } + + //if(r->connection->requests == 0) + //{ + c = modsecNewConnection(); + + modsecProcessConnection(c); + //} + + r = modsecNewRequest(c, cf->config); + + r->request_time = apr_time_now(); + + r->path_info = ConvertNgxStringToUTF8(req->unparsed_uri, r->pool); + + r->unparsed_uri = ConvertNgxStringToUTF8(req->unparsed_uri, r->pool); + r->uri = r->unparsed_uri; + + r->the_request = ConvertNgxStringToUTF8(req->request_line, r->pool); + + r->args = ConvertNgxStringToUTF8(req->args, r->pool); + + r->filename = r->path_info; + + r->parsed_uri.scheme = "http"; + r->parsed_uri.path = r->path_info; + r->parsed_uri.is_initialized = 1; + r->parsed_uri.port = 80; + r->parsed_uri.port_str = "80"; + r->parsed_uri.query = r->args; + r->parsed_uri.dns_looked_up = 0; + r->parsed_uri.dns_resolved = 0; + r->parsed_uri.password = NULL; + r->parsed_uri.user = NULL; + r->parsed_uri.fragment = ConvertNgxStringToUTF8(req->exten, r->pool); + + ngx_list_part_t *part = &req->headers_in.headers.part; + ngx_table_elt_t *h = part->elts; + u_int i; + + for(i = 0; ; i++) + { + if(i >= part->nelts) + { + if(part->next == NULL) + break; + + part = part->next; + h = part->elts; + i = 0; + } + + apr_table_setn(r->headers_in, ConvertNgxStringToUTF8(h[i].key, r->pool), + ConvertNgxStringToUTF8(h[i].value, r->pool)); + } + + apr_table_setn(r->subprocess_env, "UNIQUE_ID", "12345"); + + ngx_log_error(NGX_LOG_INFO, req->connection->log, 0, r->uri); + + int status = modsecProcessRequest(r); + ngx_log_error(NGX_LOG_INFO, req->connection->log, 0, "status: %d", status); + + ngx_http_read_request_body(req, ngx_http_dummy_payload_handler); + + if(req->headers_in.content_length) + { + ngx_log_error(NGX_LOG_INFO, req->connection->log, 0, "request body: %s", req->request_body->bufs); + } else { + ngx_log_error(NGX_LOG_INFO, req->connection->log, 0, "request body: "); + } + + if(status == DECLINED) + { + // this function would work here, but it is only internal + //ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); + return (NGX_DECLINED); + + // If DECLINED, finalize connection (sent FIN) and return HTTP 500 + ngx_log_error(NGX_LOG_INFO, req->connection->log, 0, "Invalid Request"); + ngx_http_finalize_request(req, NGX_HTTP_INTERNAL_SERVER_ERROR); + return NGX_HTTP_INTERNAL_SERVER_ERROR; + } + + return status; +}