#
# Gmake settings for: VISUAL STUDIO .NET
#

EXEEXT=.exe
OBJEXT=.obj

CXX=CL /nologo

ifeq ($(strip $(FLTKDEBUG)),0)
#
# RELEASE BUILD
#
#	/Ob2  -- inline expansion (default /Ob0)
#	/Op   -- improve floating-pt consistency
#	/FD   -- ??
#	/EHsc -- Enable C++ EH (no SEH exceptions), extern "C" defaults to nothrow
#	/YX   -- automatic .PCH
#	/MD   -- link with MSVCRT.LIB
#
CXXFLAGS=/Ob2				\
	 /Op 				\
	 /I "../visualc"		\
	 /I ".." 			\
	 /I "..\zlib" 			\
	 /I "..\png"			\
	 /I "..\jpeg"			\
	 /D "WIN32" 			\
	 /D "NDEBUG" 			\
	 /D "_WINDOWS" 			\
	 /D "WIN32_LEAN_AND_MEAN"	\
	 /D "VC_EXTRA_LEAN"		\
	 /D "WIN32_EXTRA_LEAN"		\
	 /FD				\
	 /EHsc				\
	 /MD				\
	 /YX"stdafx.h"			\
	 /c

# Linker flags
LINKFLAGS=		\
    /INCREMENTAL:NO	\
    /LIBPATH:..\lib	\
    /SUBSYSTEM:WINDOWS	\
    /NODEFAULTLIB:libcd	\
    /NODEFAULTLIB:libcmt

# Fltk generic libs
FLTKLIBS=..\lib\fltk.lib

# Fltk image libs
FLTKIMAGELIBS=			\
    ..\lib\fltkimages.lib	\
    ..\lib\fltkjpeg.lib		\
    ..\lib\fltkpng.lib		\
    ..\lib\fltkz.lib

# Fltk forms libs
FLTKFORMSLIBS=..\lib\fltkforms.lib

# Fltk Opengl libs
FLTKGLLIBS=..\lib\fltkgl.lib

else

#
# DEBUG BUILD
#
#	/Od   -- disable optimizations
#	/FD   -- ??
#	/EHsc -- Enable C++ EH (no SEH exceptions), extern "C" defaults to nothrow
#	/MDd  -- link with MSVCRTD.LIB debug lib
#	/GS   -- enable security checks
#	/YX   -- automatic .PCH
#	/Z7   -- enable old-style debug info
#	/Zi   -- enable debug info
#
CXXFLAGS=/Od				\
	 /I "../visualc"		\
	 /I ".." 			\
	 /I "..\zlib" 			\
	 /I "..\png"			\
	 /I "..\jpeg"			\
	 /D "WIN32" 			\
	 /D "NDEBUG" 			\
	 /D "_WINDOWS" 			\
	 /D "WIN32_LEAN_AND_MEAN"	\
	 /D "VC_EXTRA_LEAN"		\
	 /D "WIN32_EXTRA_LEAN"		\
	 /FD				\
	 /EHsc				\
	 /MDd				\
	 /GS				\
	 /YX"stdafx.h"			\
	 /Zi				\
	 /Yd				\
	 /c

# Linker flags
LINKFLAGS=		 \
    /INCREMENTAL:NO	 \
    /LIBPATH:..\lib	 \
    /SUBSYSTEM:WINDOWS	 \
    /NODEFAULTLIB:libcd	 \
    /NODEFAULTLIB:libcmt \
    /DEBUG

# Fltk generic libs
FLTKLIBS=..\lib\fltkd.lib

# Fltk image libs
FLTKIMAGELIBS=			\
    ..\lib\fltkimagesd.lib	\
    ..\lib\fltkjpegd.lib	\
    ..\lib\fltkpngd.lib		\
    ..\lib\fltkzd.lib

# Fltk forms libs
FLTKFORMSLIBS=..\lib\fltkformsd.lib

# Fltk Opengl libs
FLTKGLLIBS=..\lib\fltkgld.lib

endif

# Linker
LINK=link.exe /NOLOGO

WINLIBS=		\
    glu32.lib		\
    opengl32.lib	\
    comctl32.lib	\
    wsock32.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	\
    imm32.lib

.SUFFIXES: .cxx .c .obj .exe .fl

.cxx.obj: 
	$(CXX) $(CXXFLAGS) $<

.c.obj: 
	$(CXX) $(CXXFLAGS) $<

.obj.exe:
	$(LINK) $(LINKFLAGS) $< $(WINLIBS) $(FLTKLIBS)

.fl.cxx .fl.h:	../fluid/fluid$(EXEEXT)
	echo Generating $@ and header from $<...
	CMD /C START /WAIT /MIN ../fluid/fluid$(EXEEXT) -c $<

