# Microsoft Developer Studio Generated NMAKE File, Based on mod_fcgid.dsp
!IF "$(CFG)" == ""
CFG=mod_fcgid - Win32 Release
!MESSAGE No configuration specified. Defaulting to mod_fcgid - Win32 Release.
!ENDIF 

!IF "$(CFG)" != "mod_fcgid - Win32 Release" && "$(CFG)" != "mod_fcgid - 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 "mod_fcgid.mak" CFG="mod_fcgid - Win32 Release"
!MESSAGE 
!MESSAGE Possible choices for configuration are:
!MESSAGE 
!MESSAGE "mod_fcgid - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "mod_fcgid - 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)" == "mod_fcgid - Win32 Release"

OUTDIR=.\Release
INTDIR=.\Release
# Begin Custom Macros
OutDir=.\Release
# End Custom Macros

!IF "$(RECURSE)" == "0" 

ALL : "$(OUTDIR)\mod_fcgid.so"

!ELSE 

ALL : "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\mod_fcgid.so"

!ENDIF 

!IF "$(RECURSE)" == "1" 
CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" 
!ELSE 
CLEAN :
!ENDIF 
	-@erase "$(INTDIR)\fcgid_bridge.obj"
	-@erase "$(INTDIR)\fcgid_conf.obj"
	-@erase "$(INTDIR)\fcgid_pm_main.obj"
	-@erase "$(INTDIR)\fcgid_pm_win.obj"
	-@erase "$(INTDIR)\fcgid_proc_win.obj"
	-@erase "$(INTDIR)\fcgid_proctbl_win.obj"
	-@erase "$(INTDIR)\fcgid_bucket.obj"
	-@erase "$(INTDIR)\fcgid_filter.obj"
	-@erase "$(INTDIR)\fcgid_protocol.obj"
	-@erase "$(INTDIR)\fcgid_spawn_ctl.obj"
	-@erase "$(INTDIR)\mod_fcgid.obj"
	-@erase "$(INTDIR)\mod_fcgid.res"
	-@erase "$(INTDIR)\mod_fcgid_src.idb"
	-@erase "$(INTDIR)\mod_fcgid_src.pdb"
	-@erase "$(OUTDIR)\mod_fcgid.exp"
	-@erase "$(OUTDIR)\mod_fcgid.lib"
	-@erase "$(OUTDIR)\mod_fcgid.pdb"
	-@erase "$(OUTDIR)\mod_fcgid.so"

"$(OUTDIR)" :
    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"

CPP=cl.exe
CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "." /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_fcgid_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_fcgid.res" /d "NDEBUG" 
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_fcgid.bsc" 
BSC32_SBRS= \
	
LINK32=link.exe
LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_fcgid.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_fcgid.so" /implib:"$(OUTDIR)\mod_fcgid.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_fcgid.so /opt:ref 
LINK32_OBJS= \
	"$(INTDIR)\fcgid_bridge.obj" \
	"$(INTDIR)\fcgid_bucket.obj" \
	"$(INTDIR)\fcgid_conf.obj" \
	"$(INTDIR)\fcgid_filter.obj" \
	"$(INTDIR)\fcgid_pm_main.obj" \
	"$(INTDIR)\fcgid_pm_win.obj" \
	"$(INTDIR)\fcgid_proc_win.obj" \
	"$(INTDIR)\fcgid_proctbl_win.obj" \
	"$(INTDIR)\fcgid_protocol.obj" \
	"$(INTDIR)\fcgid_spawn_ctl.obj" \
	"$(INTDIR)\mod_fcgid.obj" \
	"$(INTDIR)\mod_fcgid.res" \
	"..\..\srclib\apr\Release\libapr.lib" \
	"..\..\srclib\apr-util\Release\libaprutil.lib" \
	"..\..\Release\libhttpd.lib"

"$(OUTDIR)\mod_fcgid.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
    $(LINK32) @<<
  $(LINK32_FLAGS) $(LINK32_OBJS)
<<

!ELSEIF  "$(CFG)" == "mod_fcgid - Win32 Debug"

OUTDIR=.\Debug
INTDIR=.\Debug

!IF "$(RECURSE)" == "0" 

ALL : "mod_fcgid.so"

!ELSE 

ALL : "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "mod_fcgid.so"

!ENDIF 

!IF "$(RECURSE)" == "1" 
CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" 
!ELSE 
CLEAN :
!ENDIF 
	-@erase "$(INTDIR)\fcgid_bridge.obj"
	-@erase "$(INTDIR)\fcgid_bucket.obj"
	-@erase "$(INTDIR)\fcgid_filter.obj"
	-@erase "$(INTDIR)\fcgid_conf.obj"
	-@erase "$(INTDIR)\fcgid_pm_main.obj"
	-@erase "$(INTDIR)\fcgid_pm_win.obj"
	-@erase "$(INTDIR)\fcgid_proc_win.obj"
	-@erase "$(INTDIR)\fcgid_proctbl_win.obj"
	-@erase "$(INTDIR)\fcgid_protocol.obj"
	-@erase "$(INTDIR)\fcgid_spawn_ctl.obj"
	-@erase "$(INTDIR)\mod_fcgid.obj"
	-@erase "$(INTDIR)\mod_fcgid.res"
	-@erase "$(INTDIR)\mod_fcgid_src.idb"
	-@erase "$(INTDIR)\mod_fcgid_src.pdb"
	-@erase "$(OUTDIR)\mod_fcgid.exp"
	-@erase "$(OUTDIR)\mod_fcgid.lib"
	-@erase "$(OUTDIR)\mod_fcgid.pdb"
	-@erase "mod_fcgid.so"

"$(OUTDIR)" :
    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"

CPP=cl.exe
CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /I "./" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_POSIX_" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_fcgid_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 "_DEBUG" /mktyplib203 /win32 
RSC=rc.exe
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_fcgid.res" /d "_DEBUG" 
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_fcgid.bsc" 
BSC32_SBRS= \
	
LINK32=link.exe
LINK32_FLAGS=kernel32.lib User32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_fcgid.pdb" /debug /machine:I386 /out:"g:/apache2/modules/mod_fcgid.so" /implib:"$(OUTDIR)\mod_fcgid.lib" 
LINK32_OBJS= \
	"$(INTDIR)\fcgid_bridge.obj" \
	"$(INTDIR)\fcgid_bucket.obj" \
	"$(INTDIR)\fcgid_conf.obj" \
	"$(INTDIR)\fcgid_filter.obj" \
	"$(INTDIR)\fcgid_pm_main.obj" \
	"$(INTDIR)\fcgid_pm_win.obj" \
	"$(INTDIR)\fcgid_proc_win.obj" \
	"$(INTDIR)\fcgid_proctbl_win.obj" \
	"$(INTDIR)\fcgid_protocol.obj" \
	"$(INTDIR)\fcgid_spawn_ctl.obj" \
	"$(INTDIR)\mod_fcgid.obj" \
	"$(INTDIR)\mod_fcgid.res" \
	"..\..\srclib\apr\Debug\libapr.lib" \
	"..\..\srclib\apr-util\Debug\libaprutil.lib" \
	"..\..\Debug\libhttpd.lib"

"mod_fcgid.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
    $(LINK32) @<<
  $(LINK32_FLAGS) $(LINK32_OBJS)
<<

!ENDIF 


!IF "$(NO_EXTERNAL_DEPS)" != "1"
!IF EXISTS("mod_fcgid.dep")
!INCLUDE "mod_fcgid.dep"
!ELSE 
!MESSAGE Warning: cannot find "mod_fcgid.dep"
!ENDIF 
!ENDIF 


!IF "$(CFG)" == "mod_fcgid - Win32 Release" || "$(CFG)" == "mod_fcgid - Win32 Debug"

!IF  "$(CFG)" == "mod_fcgid - Win32 Release"

"libapr - Win32 Release" : 
   cd "../../srclib/apr"
   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" 
   cd "..\..\modules\mod_fcgid"

"libapr - Win32 ReleaseCLEAN" : 
   cd "../../srclib/apr"
   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN 
   cd "..\..\modules\mod_fcgid"

!ELSEIF  "$(CFG)" == "mod_fcgid - Win32 Debug"

"libapr - Win32 Debug" : 
   cd "../../srclib/apr"
   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" 
   cd "..\..\modules\mod_fcgid"

"libapr - Win32 DebugCLEAN" : 
   cd "../../srclib/apr"
   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN 
   cd "..\..\modules\mod_fcgid"

!ENDIF 

!IF  "$(CFG)" == "mod_fcgid - Win32 Release"

"libaprutil - Win32 Release" : 
   cd "../../srclib/apr-util"
   $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" 
   cd "..\..\modules\mod_fcgid"

"libaprutil - Win32 ReleaseCLEAN" : 
   cd "../../srclib/apr-util"
   $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN 
   cd "..\..\modules\mod_fcgid"

!ELSEIF  "$(CFG)" == "mod_fcgid - Win32 Debug"

"libaprutil - Win32 Debug" : 
   cd "../../srclib/apr-util"
   $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" 
   cd "..\..\modules\mod_fcgid"

"libaprutil - Win32 DebugCLEAN" : 
   cd "../../srclib/apr-util"
   $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN 
   cd "..\..\modules\mod_fcgid"

!ENDIF 

!IF  "$(CFG)" == "mod_fcgid - Win32 Release"

"libhttpd - Win32 Release" : 
   cd "../.."
   $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" 
   cd ".\modules\mod_fcgid"

"libhttpd - Win32 ReleaseCLEAN" : 
   cd "../.."
   $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN 
   cd ".\modules\mod_fcgid"

!ELSEIF  "$(CFG)" == "mod_fcgid - Win32 Debug"

"libhttpd - Win32 Debug" : 
   cd "../.."
   $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" 
   cd ".\modules\mod_fcgid"

"libhttpd - Win32 DebugCLEAN" : 
   cd "../.."
   $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN 
   cd ".\modules\mod_fcgid"

!ENDIF 

SOURCE=.\fcgid_bridge.c

"$(INTDIR)\fcgid_bridge.obj" : $(SOURCE) "$(INTDIR)"


SOURCE=.\fcgid_conf.c

"$(INTDIR)\fcgid_conf.obj" : $(SOURCE) "$(INTDIR)"


SOURCE=.\fcgid_pm_main.c

"$(INTDIR)\fcgid_pm_main.obj" : $(SOURCE) "$(INTDIR)"


SOURCE=.\arch\win32\fcgid_pm_win.c

"$(INTDIR)\fcgid_pm_win.obj" : $(SOURCE) "$(INTDIR)"
	$(CPP) $(CPP_PROJ) $(SOURCE)


SOURCE=.\arch\win32\fcgid_proc_win.c

"$(INTDIR)\fcgid_proc_win.obj" : $(SOURCE) "$(INTDIR)"
	$(CPP) $(CPP_PROJ) $(SOURCE)


SOURCE=.\arch\win32\fcgid_proctbl_win.c

"$(INTDIR)\fcgid_proctbl_win.obj" : $(SOURCE) "$(INTDIR)"
	$(CPP) $(CPP_PROJ) $(SOURCE)


SOURCE=.\fcgid_protocol.c

"$(INTDIR)\fcgid_protocol.obj" : $(SOURCE) "$(INTDIR)"


SOURCE=.\fcgid_spawn_ctl.c

"$(INTDIR)\fcgid_spawn_ctl.obj" : $(SOURCE) "$(INTDIR)"

SOURCE=.\fcgid_bucket.c

"$(INTDIR)\fcgid_bucket.obj" : $(SOURCE) "$(INTDIR)"

SOURCE=.\fcgid_filter.c

"$(INTDIR)\fcgid_filter.obj" : $(SOURCE) "$(INTDIR)"

SOURCE=.\mod_fcgid.c

"$(INTDIR)\mod_fcgid.obj" : $(SOURCE) "$(INTDIR)"


SOURCE=.\mod_fcgid.rc

"$(INTDIR)\mod_fcgid.res" : $(SOURCE) "$(INTDIR)"
	$(RSC) $(RSC_PROJ) $(SOURCE)


SOURCE=..\..\build\win32\win32ver.awk

!IF  "$(CFG)" == "mod_fcgid - Win32 Release"

InputPath=..\..\build\win32\win32ver.awk

".\mod_fcgid.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
	<<tempfile.bat 
	@echo off 
	awk -f ../../build/win32/win32ver.awk mod_fcgid.so "cgi_module for Apache" ../../include/ap_release.h > .\mod_fcgid.rc
<< 
	

!ELSEIF  "$(CFG)" == "mod_fcgid - Win32 Debug"

InputPath=..\..\build\win32\win32ver.awk

".\mod_fcgid.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
	<<tempfile.bat 
	@echo off 
	awk -f ../../build/win32/win32ver.awk mod_fcgid.so "cgi_module for Apache" ../../include/ap_release.h > .\mod_fcgid.rc
<< 
	

!ENDIF 


!ENDIF 

