# Generated by MSVC, manually edited
#
!IF "$(CFG)" == ""
CFG=Debug
!ENDIF 

!IF "$(CFG)" != "Release" && "$(CFG)" != "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 "vc6.mak" CFG="Debug"
!MESSAGE 
!MESSAGE Possible choices for configuration are:
!MESSAGE 
!MESSAGE "Release"
!MESSAGE "Debug"
!MESSAGE 
!ERROR An invalid configuration is specified.
!ENDIF 

!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE 
NULL=nul
!ENDIF 

CPP=cl.exe
RSC=rc.exe
LINK32=link.exe

!IF  "$(CFG)" == "Release"
OUTDIR=.\Release
INTDIR=.\Release
CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "../win32" /I "../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
LINK32_FLAGS=ccgnu5.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 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /libpath:"../win32/Release" 
!ELSEIF  "$(CFG)" == "Debug"
OUTDIR=.\Debug
INTDIR=.\Debug
CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "../win32" /I "../include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
LINK32_FLAGS=ccgnu5D.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 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"../win32/Debug" 
!ENDIF 


ALL : "$(OUTDIR)\bug1.exe" "$(OUTDIR)\bug2.exe" "$(OUTDIR)\tcpstr1.exe" "$(OUTDIR)\thread1.exe" "$(OUTDIR)\url1.exe"

RM=@erase
CLEAN :
	-$(RM) "$(INTDIR)\*.obj"
	-$(RM) "$(INTDIR)\*.idb"
	-$(RM) "$(INTDIR)\*.pdb"
	-$(RM) "$(OUTDIR)\bug1.exe"
	-$(RM) "$(OUTDIR)\bug1.map"
	-$(RM) "$(OUTDIR)\bug2.exe"
	-$(RM) "$(OUTDIR)\bug2.map"
	-$(RM) "$(OUTDIR)\tcpstr1.exe"
	-$(RM) "$(OUTDIR)\tcpstr1.map"
	-$(RM) "$(OUTDIR)\thread1.exe"
	-$(RM) "$(OUTDIR)\thread1.map"
	-$(RM) "$(OUTDIR)\url1.exe"
	-$(RM) "$(OUTDIR)\url1.map"

"$(OUTDIR)" :
    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"

# Generate programs
#
PROG=bug1
LINK32_ADD=/pdb:"$(OUTDIR)\$(PROG).pdb" /map:"$(INTDIR)\$(PROG).map" /out:"$(OUTDIR)\$(PROG).exe" 
LINK32_OBJS= "$(INTDIR)\$(PROG).obj"

"$(OUTDIR)\$(PROG).exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
    $(LINK32) @<<
  $(LINK32_FLAGS) $(LINK32_ADD) $(LINK32_OBJS)
<<

PROG=thread1
LINK32_ADD=/pdb:"$(OUTDIR)\$(PROG).pdb" /map:"$(INTDIR)\$(PROG).map" /out:"$(OUTDIR)\$(PROG).exe" 
LINK32_OBJS= "$(INTDIR)\$(PROG).obj"

"$(OUTDIR)\$(PROG).exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
    $(LINK32) @<<
  $(LINK32_FLAGS) $(LINK32_ADD) $(LINK32_OBJS)
<<

PROG=bug2
LINK32_ADD=/pdb:"$(OUTDIR)\$(PROG).pdb" /map:"$(INTDIR)\$(PROG).map" /out:"$(OUTDIR)\$(PROG).exe" 
LINK32_OBJS= "$(INTDIR)\$(PROG).obj"

"$(OUTDIR)\$(PROG).exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
    $(LINK32) @<<
  $(LINK32_FLAGS) $(LINK32_ADD) $(LINK32_OBJS)
<<

PROG=tcpstr1
LINK32_ADD=/pdb:"$(OUTDIR)\$(PROG).pdb" /map:"$(INTDIR)\$(PROG).map" /out:"$(OUTDIR)\$(PROG).exe" 
LINK32_OBJS= "$(INTDIR)\$(PROG).obj"

"$(OUTDIR)\$(PROG).exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
    $(LINK32) @<<
  $(LINK32_FLAGS) $(LINK32_ADD) $(LINK32_OBJS)
<<

PROG=url1
LINK32_ADD=/pdb:"$(OUTDIR)\$(PROG).pdb" /map:"$(INTDIR)\$(PROG).map" /out:"$(OUTDIR)\$(PROG).exe" 
LINK32_OBJS= "$(INTDIR)\$(PROG).obj"

"$(OUTDIR)\$(PROG).exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
    $(LINK32) @<<
  $(LINK32_FLAGS) $(LINK32_ADD) $(LINK32_OBJS)
<<

# Role
#
.cpp{$(INTDIR)}.obj::
   $(CPP) @<<
   $(CPP_PROJ) $< 
<<

.cpp{$(INTDIR)}.sbr::
   $(CPP) @<<
   $(CPP_PROJ) $< 
<<


# Generate objects
#
NAME=thread1
SOURCE=.\$(NAME).cpp
"$(INTDIR)\$(NAME).obj" : $(SOURCE) "$(INTDIR)"

NAME=bug1
SOURCE=.\$(NAME).cpp
"$(INTDIR)\$(NAME).obj" : $(SOURCE) "$(INTDIR)"

NAME=tcpstr1
SOURCE=.\$(NAME).cpp
"$(INTDIR)\$(NAME).obj" : $(SOURCE) "$(INTDIR)"

NAME=bug2
SOURCE=.\$(NAME).cpp
"$(INTDIR)\$(NAME).obj" : $(SOURCE) "$(INTDIR)"

NAME=url1
SOURCE=.\$(NAME).cpp
"$(INTDIR)\$(NAME).obj" : $(SOURCE) "$(INTDIR)"
