SHELL = /bin/sh
OS := $(shell uname)

## Set up dependencies
ifneq ("$(OSG_DEPENDENCIES)","")
    include $(OSG_DEPENDENCIES)
else
    include $(TOPDIR)/Make/dependencies
endif

## We don't care about architectural distinguishers in the OS
## such as IRIX64, IRIX32, etc. so we truncate IRIX?? to IRIX
ifeq ($(findstring IRIX,$(OS)),IRIX)
OS := IRIX
endif

## Make CYGWIN_XXXX CYGWIN so it's "Windows cross platform" :)
ifeq ($(findstring CYGWIN,$(OS)),CYGWIN)
OS := CYGWIN
#OS := MINGW
endif

## Make MINGW_XXXX MINGW so it's "Windows cross platform" :)
ifeq ($(findstring MINGW,$(OS)),MINGW)
OS := MINGW
endif

# TOPDIR needs to be redefined for every GNUmakefile
TOPDIR     ?= ../
THISDIR    = .
MAKEDEPEND = ignore

####################################################################### 
##
##                   VERSIONING SEMANTICS
##
## Version consistes of <major> . <minor> . <release> - <revision>
## Where:
##    major   : Production (0 = pre-production)
##    minor   : 0-7 = Production minor, 8 = Alpha, 9 = Beta
##    release : Release tag
##    revision: Release revision - 0 = development (cutting edge). 
##
## Usage:
##     Default - VERSION_REVISION is set to the value defined here
##     Env variable OSG_VERSION_REVISION overrides default    
##           e.g.:
##               % setenv OSG_VERSION_REVISION 5
##               % make version
##     Command line overrides env variable
##               % make VERSION_REVISION=  
####################################################################### 
VERSION_MAJOR    = 1
VERSION_MINOR    = 2
VERSION_RELEASE  = 0
VERSION_REVISION ?= 0
ifneq (,$(OSG_VERSION_REVISION))
VERSION_REVISION = $(OSG_VERSION_REVISION)
endif
VERSION       = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_RELEASE)

INC        = -I$(TOPDIR)/include

############################################################################
## NOTE - Semantics for the use of ARCH, ARCHARGS, and ARCHINST parameters
## ARCH     - must be defined if the OS supports both 64 and 32 bit 
##           architectures may remain undefined if it does not.
## ARCHARGS - Compiler directives to indicate for which architecture 
##           to build for
## ARCHINST - Installation target directory.  Define if the OS supports 
##           more than one architecture (32 and 64).
##              for ARCH=32 - define ARCHINST only if the system uses an 
##                            extension on 'lib' to indicate 32 bit.  e.g. 
##                            IRIX defines /usr/lib32
##              for ARCH=64 - Always define ARCHINST.  Even if the OS 
##                            doesn't make a distinction, we will.
############################################################################

CXXFLAGS   = $(ARCHARGS) $(DOF) $(DEF) $(INC)
LDFLAGS    = $(ARCHARGS) $(DOF) $(LINKARGS) -L$(TOPDIR)/lib/$(OS)$(ARCH) 
OBJS       = $(C++FILES:.cpp=.o) \
             $(CXXFILES:.cpp=.o) \
             $(CFILES:.c=.o) \

DOF        = $(OPTF)
DEBUGDIR   = $(OS)$(ARCH).Debug
OPTDIR     = $(OS)$(ARCH).Opt
BININST    = bin/$(OS)$(ARCH)/
PLUGININST = lib/$(OS)$(ARCH)/osgPlugins
LIBINST    = lib/$(OS)$(ARCH)

INST_LOCATION  ?= /usr/local
INST_LIBS      = $(INST_LOCATION)/lib$(ARCHINST)
INST_PLUGINS   = $(INST_LOCATION)/lib$(ARCHINST)/osgPlugins
INST_INCLUDE   = $(INST_LOCATION)/include
INST_SHARE     = $(INST_LOCATION)/share
INST_EXAMPLES  = $(INST_LOCATION)/bin
LINK           = ln -sf
INSTBINCMD     = install -m 755
INSTDEVCMD     = install -m 644
INSTLINKBINCMD = $(LINK)
INSTLINKDEVCMD = $(LINK)

LIB_PREFIX     = lib
LIB_EXT        = so
EXE_EXT    =

PLUGIN_PREFIX  = osgdb_
WRAPPER_PREFIX  = osgwrapper_
PLUGIN_EXT     = so
MAKEDIST       = echo "   === Distribution build is not implemented yet for $(OS)"; printf "\n"
INSTLOGFILE    = /tmp/.osg_inst_log

ifneq ("$(OPENTHREADS_INC_DIR)","")
INC += -I$(OPENTHREADS_INC_DIR)
endif

ifneq ("$(OPENTHREADS_LIB_DIR)","")
LDFLAGS += -L$(OPENTHREADS_LIB_DIR)
endif

ifneq ("$(OSG_INC_DIR)","")
INC += -I$(OSG_INC_DIR)
endif

ifneq ("$(OSG_LIB_DIR)","")
LDFLAGS += -L$(OSG_LIB_DIR)
endif


RECURSIVE_TARGETS = \
      opt \
      debug \
      static \
      staticdebug \
      clean \
      cleandepend \
      cleandependopt \
      cleandependdbg \
      cleandbg \
      cleanopt \
      cleantarget \
      cleantargetopt \
      cleantargetdbg \
      clobber \
      clobberdbg \
      clobberopt \
      beautify \
      docs \
      depend \

STATICLIB    = $(LIB:.$(LIB_EXT)=.a)
STATICPLUGIN = $(PLUGIN:.$(PLUGIN_EXT)=.a)

#### SUN OS Specific definitions 
ifeq ($(OS),SunOS)

  #### if using g++ on a sun
  ifeq ($(COMPILER),gnu)
    C++               = g++
    DEPARG            = -M
    INC               += 
    DEF               += -W -Wall -fPIC -fpermissive
    OPTF              = -O2
    DBGF              = -g -DOSG_COMPILE_UNIT_TESTS
    SHARED            = -shared -fPIC 
    ARCH              = 32
  ifeq ($(ARCH),64)
      ARCHARGS        = -m64 -DARCH64
      ARCHINST        = 64 
  else
      ARCHARGS        = 
  endif
    GIF_LIBS          = -lgif 
    TIFF_LIB          = -ltiff 
    JPEG_LIBS         = -ljpeg 
    PNG_LIBS          = -lpng -lz 
    OTHER_LIBS        = -lOpenThreads

  #### using forte compilers (default)
  else
    C++               = CC
    DEPARG            = -xM1
    INC               += 
    DEF               += -features=extensions -w -mt -KPIC
    OPTF              = -xO4
    DBGF              = -g -DOSG_COMPILE_UNIT_TESTS
    SHARED            = -G
    ARCH              = 32
  ifeq ($(ARCH),64)
      ARCHARGS        = -xarch=v9 -DARCH64
      ARCHINST        = 64
  else
      ARCHARGS        = 
      ARCHINST        = 
  endif
    OTHER_LIBS        = -lCstd -lOpenThreads
    LINKARGS          = -mt
    GIF_LIBS          = /usr/local/lib/libgif.a
    TIFF_LIB          = /usr/local/lib/libtiff.a
    JPEG_INCLUDE      = -I/usr/local/include
    JPEG_LIBS         = /usr/local/lib/libjpeg.a
    PNG_LIBS          = /usr/local/lib/libpng.a /usr/local/lib/libz.a
  endif 

  DYNAMICLIBRARYLIB = -ldl
  OSG_LIBS          = -losgGA -losgDB -losgUtil -losg 
  GL_LIBS           = -lGLU -lGL 
  GLUT_LIBS         = -lglut
  X_INC             = -I/usr/X11R6/include
  X_LIBS            = -lXext -lXmu -lXi -lX11 
  SOCKET_LIBS       = -lsocket -lnsl
  INSTBINCMD        = cp
  INSTDEVCMD        = cp
  INST_LOCATION     ?= /opt/OpenSceneGraph
  MAKEDIST          = $(TOPDIR)/Make/makepkg
  OTHER_LIBS        = -lOpenThreads -lmtsk

  FREETYPE_INCLUDE  = `freetype-config --cflags`
  FREETYPE_LIB      = `freetype-config --libs`

  GDAL_INCLUDES     = `gdal-config --cflags`
  GDAL_LIBS         = `gdal-config --libs`

  XINE_INCLUDES     = `xine-config --cflags`
  XINE_LIBS         = `xine-config --libs`

endif

#### IRIX Specific definitions
ifeq ($(OS),IRIX)
  INSTBINCMD        = cp
  INSTDEVCMD        = cp
  CXX = CC
  ifeq ($(CXX),CC)
      LINKARGS          = -L${TOPDIR}/$(LIBINST) -LANG:std -OPT:Olimit=0  
      C++               = CC
      DEPARG            = -M
      INC               += -I${TOPDIR}/include -I/usr/freeware/include
      LDFLAGS           += -L/usr/local/lib
      DEF               += -LANG:std -OPT:Olimit=0 \
                            -DEBUG:woff=1681 -DEBUG:woff=1682 -DEBUG:woff=3303 \
                            -MDupdate $(MAKEDEPEND)
      OPTF              = -O2 
      DBGF              = -g -DOSG_COMPILE_UNIT_TESTS  
      SHARED            = -shared
      PFLIBS            = \
                    -lpf3ds -lpfdem -lpfdted -lpfdwb -lpfdxf -lpfevt \
                    -lpfflt -lpfgds -lpfgfo -lpfim -lpflsa -lpflsb \
                    -lpfnff -lpfobj -lpfpegg -lpfpfb -lpfphd -lpfpts \
                    -lpfrot -lpfscale -lpfsgf -lpfsgo -lpfsphere -lpfsv \
                    -lpftri -lpfunc -lpfvct -lpfdu -lpfutil -lpf -all -limage
      ARCH              = 32
      ifeq ($(ARCH),64)
          ARCHARGS          = -64 -DARCH64
          ARCHINST          = 64
          LINKARGS          += -L/usr/freeware/lib64
          PF_XTRA_LIBS      = -L/usr/lib64/libpfdb -rpath /usr/lib64/libpfdb \
                           $(PFLIBS)
      else 
          ARCHARGS          = -n32
          ARCHINST          = 32
          LINKARGS          += -L/usr/freeware/lib32
          PF_XTRA_LIBS      = -L/usr/lib32/libpfdb -rpath /usr/lib32/libpfdb \
                           $(PFLIBS)
      endif
  else      
      LIBS              = -lstdc++
      LINKARGS          = -L${TOPDIR}/$(LIBINST)
      C++               = g++
      INC               += -I${TOPDIR}/include -I/usr/freeware/include
      DEF               += -fPIC -W -Wno-unused 
      OPTF              = -O2 
      DBGF              = -g -gstabs+ -DOSG_COMPILE_UNIT_TESTS  
      SHARED            = -shared
      PFLIBS            = \
                    -lpf3ds -lpfdem -lpfdted -lpfdwb -lpfdxf -lpfevt \
                    -lpfflt -lpfgds -lpfgfo -lpfim -lpflsa -lpflsb \
                    -lpfnff -lpfobj -lpfpegg -lpfpfb -lpfphd -lpfpts \
                    -lpfrot -lpfscale -lpfsgf -lpfsgo -lpfsphere -lpfsv \
                    -lpftri -lpfunc -lpfvct -lpfdu -lpfutil -lpf -all -limage
      ARCH              = 32
      ifeq ($(ARCH),64)
          ARCHARGS          = -mabi=64 -mips4 -DARCH64
          ARCHINST          = 64
          LINKARGS          += -L/usr/freeware/lib64
          PF_XTRA_LIBS      = -L/usr/lib64/libpfdb -rpath /usr/lib64/libpfdb \
                           $(PFLIBS)
      else 
          ARCHARGS          = -mabi=n32 -mips4
          ARCHINST          = 32
          LINKARGS          += -L/usr/freeware/lib32
          PF_XTRA_LIBS      = -L/usr/lib32/libpfdb -rpath /usr/lib32/libpfdb \
                           $(PFLIBS)
      endif 
  endif

  DYNAMICLIBRARYLIB = 
  OSG_LIBS          = -losgGA -losgDB -losgUtil -losg 
  GL_LIBS           = -lGLU -lGL 
  GLUT_LIBS         = -lglut
  X_INC             = -I/usr/X11R6/include
  X_LIBS            = -lXext -lXi -lXmu -lX11
  SOCKET_LIBS       = 
  OTHER_LIBS        = -lm -lOpenThreads
  PNG_LIBS          = -lpng
  JPEG_LIBS         = -ljpeg
  TIFF_LIB          = -ltiff
  GIF_LIBS          = -lungif
  MAKEDIST          = $(TOPDIR)/Make/makeirixdist

  FREETYPE_INCLUDE  = `freetype-config --cflags`
  FREETYPE_LIB      = `freetype-config --libs`

  GDAL_INCLUDES     = `gdal-config --cflags`
  GDAL_LIBS         = `gdal-config --libs`

  XINE_INCLUDES     = `xine-config --cflags`
  XINE_LIBS         = `xine-config --libs`

endif

#### Linux specific definitions

ifeq ($(OS),Linux)

  ifeq (x$(CXX),x)
    C++             = g++
  else
    C++             = $(CXX)
  endif

  DEPARG            = -M
  INC               += 

  ifeq ($(COMPILER),intel)
    C++             = icpc
    LIBS            = -lgcc_s
    DEF             += -fPIC -x c++ -cxxlib-gcc -gcc-version=323
    OPTF            = -O2 
    DBGF            = -g -DOSG_COMPILE_UNIT_TESTS 
    LDFLAGS         += -L/usr/X11R6/lib64
    ifeq ($(SYSARCH),ia64)
      ARCHARGS        = 
      ARCH            = IA64
      ARCHINST        = IA64
    else
      ARCHARGS        = 
      ARCH            = 32
      ARCHINST        = 
    endif
  else

ifeq ("$(COMPILE_OSG_OP_OT_WITH_SONAMES)","YES")
    LDFLAGS         += -Wl,-soname -Wl,$@.0
endif

#    LDFLAGS         += `getconf LFS_LDFLAGS`
#    DEF             += `getconf LFS_CFLAGS`

    LIBS            = -lstdc++
#    DEF             += -W -Wall -fPIC -pipe -Woverloaded-virtual
    DEF             += -W -Wall -fPIC -pipe
    OPTF            = -O2 
    DBGF            = -g -gstabs+ -DOSG_COMPILE_UNIT_TESTS 
    SYSARCH           := $(shell arch)
    ifeq ($(SYSARCH),x86_64)
      ARCHARGS        =
      ARCH            = 64
      ARCHINST        = 64
    else
      ARCHARGS        = 
      ARCH            = 32
      ARCHINST        = 
    endif
  endif

  SHARED            = -shared
  ifeq ($(SYSARCH),x86_64)
    LINKARGS          = -L/usr/X11R6/lib64
  else
    LINKARGS          = -L/usr/X11R6/lib
  endif
  DYNAMICLIBRARYLIB = -ldl
  OSG_LIBS          = -losgGA -losgDB -losgUtil -losg 
  GL_LIBS           = -lGLU -lGL 
  GLUT_LIBS         = -lglut
  X_INC             = -I/usr/X11R6/include
  X_LIBS            = -lXi -lXmu -lX11
  PF_XTRA_LIBS      = -L/usr/lib/libpfdb   -Xlinker -rpath /usr/lib/libpfdb \
                      -lpfdu -lpfutil -lpf 
  SOCKET_LIBS       = 
  OTHER_LIBS        = -lOpenThreads
  PNG_LIBS          = -lpng
  JPEG_LIBS         = -ljpeg
  TIFF_LIB          = -ltiff
  GIF_LIBS          = -lungif
  MAKEDIST          = $(TOPDIR)/Make/makerpms

  ifeq ("$(PROFILER)","gprof")
    DEF += -pg
  endif

  ifeq ("$(PROFILER)","FunctionCheck")
    DEF += -finstrument-functions
    OTHER_LIBS += -lfnccheck
  endif

  FREETYPE_INCLUDE  = `freetype-config --cflags`
  FREETYPE_LIB      = `freetype-config --libs`

  GDAL_INCLUDES     = `gdal-config --cflags`
  GDAL_LIBS         = `gdal-config --libs`

  XINE_INCLUDES     = `xine-config --cflags`
  XINE_LIBS         = `xine-config --libs`

endif

#### FreeBSD specific definitions
ifeq ($(OS),FreeBSD)
  SYSARCH           := $(shell uname -p)
  ifeq (x$(CXX),x)
    C++             = g++
  else
    C++             = $(CXX)
  endif
  ifeq (x$(PTHREAD_CFLAGS),x)
    PTHREAD_CFLAGS  = -pthread
  endif
  ifeq (x$(PTHREAD_LIBS),x)
    PTHREAD_LIBS    = -pthread
  endif
  ifeq (x$(ARCH),x)
    ARCH            = $(SYSARCH)
  endif
  DEPARG            = -MM
  INC               += -I/usr/local/include -I/usr/X11R6/include
  DEF               += -W -Wall $(PTHREAD_CFLAGS) -pipe
  OPTF              = -O2 
  DBGF              = -g -DOSG_COMPILE_UNIT_TESTS
  SHARED            = -shared
  ifeq ($(SYSARCH),amd64)
    ARCHARGS        = -fPIC
    ARCHINST        = 
  else
    ARCHARGS        =
    ARCHINST        = 
  endif
  LINKARGS          = -L/usr/X11R6/lib -L/usr/local/lib -rpath /usr/local/lib $(PTHREAD_CFLAGS)
  DYNAMICLIBRARYLIB = 
  OSG_LIBS          = -losgGA -losgDB -losgUtil -losg 
  GL_LIBS           = -lGLU -lGL 
  GLUT_LIBS         = -lglut
  X_INC             = -I/usr/X11R6/include
  X_LIBS            = -lXmu -lX11
  SOCKET_LIBS       = 
  OTHER_LIBS        = -lOpenThreads
  PNG_LIBS          = -lpng
  JPEG_LIBS         = -ljpeg
  TIFF_LIB          = -ltiff
  GIF_LIBS          = -lungif

  FREETYPE_INCLUDE  = `freetype-config --cflags`
  FREETYPE_LIB      = `freetype-config --libs`

  GDAL_INCLUDES     = `gdal-config --cflags`
  GDAL_LIBS         = `gdal-config --libs`

  XINE_INCLUDES     = `xine-config --cflags`
  XINE_LIBS         = `xine-config --libs`

endif

#### MacOS X specific definitions
ifeq ($(OS),Darwin)
  ifeq (x$(CXX),x)
    C++             = g++
  else
    C++             = $(CXX)
  endif

  #### Default to AGL?  Will try it temporary while waiting for feedback
  USE_AGL ?= yes

  FINC              += -F/System/Library/Frameworks

  ifeq ($(USE_AGL),yes)

      DEF            += -D__USE_OSX_AGL_IMPLEMENTATION__
      INC            += $(FINC) 
      LDFLAGS        += $(FINC) 
      X_INC          = 
      X_LIBS         = 
      GL_LIBS        = -framework OpenGL $(CARBON_LIB)
      GLUT_LIBS      = -framework GLUT

  else
      ifeq ($(USE_CGL),yes)

         DEF            += -D__USE_OSX_CGL_IMPLEMENTATION__
         INC            += $(FINC) 
         LDFLAGS        += $(FINC) 
         X_INC          = 
         X_LIBS         = 
         GL_LIBS        = -framework OpenGL $(CARBON_LIB)
         GLUT_LIBS      = -framework GLUT

      else

         INC            += $(FINC) -I$(SDKPATH)/usr/X11R6/include
         LDFLAGS        += $(FINC) -L$(SDKPATH)/usr/include -L$(SDKPATH)/usr/X11R6/lib -L/sw/lib
         X_INC          = -I$(SDKPATH)/usr/X11R6/include
         X_LIBS         = -lX11 
         GL_LIBS        = -lGL -lGLU
         GLUT_LIBS      = -lGLUT

      endif
  endif

  DEF               += -Wall
  OPTF              = -O2
  DBGF              = -g -DOSG_COMPILE_UNIT_TESTS
  DEPARG            = -M $(DEF)
  SHARED            = -dynamic
  ARCH              = 32
  ARCHINST          = 
  ARCHARGS          = 
  LINKARGS          =
  DYNAMICLIBRARYLIB =
  OSG_LIBS          = -losgGA -losgDB -losgUtil -losg 
  CARBON_LIB        = -framework Carbon
  SOCKET_LIBS       = 
  OTHER_LIBS        = -lm -lstdc++ -lobjc -lOpenThreads
  LIB_EXT           = dylib
  LIBVERSION        = -current_version $(VERSION) \
                        -compatibility_version \
                        $(VERSION_MAJOR).$(VERSION_MINOR).0

  ifeq ($(DARWIN_QUICKTIME),yes)
    DEF             += -DDARWIN_QUICKTIME
  endif

  QUICKTIME       = -framework QuickTime $(CARBON_LIB)
  PNG_LIBS        = -lpng -lz
  JPEG_LIBS       = -ljpeg
  GIF_LIBS        = -lungif
  TIFF_LIB       = -ltiff -lz -ljpeg

#  FREETYPE_INCLUDE  = `freetype-config --cflags`
#  FREETYPE_LIB      = `freetype-config --libs`
  
  FREETYPE_INCLUDE  = -I$(SDKPATH)/usr/X11R6/include -I$(SDKPATH)/usr/X11R6/include/freetype2
  FREETYPE_LIB      =  -L$(SDKPATH)/usr/X11R6/lib -lfreetype

  GDAL_INCLUDES     = `gdal-config --cflags`
  GDAL_LIBS         = `gdal-config --libs`

  XINE_INCLUDES     = `xine-config --cflags`
  XINE_LIBS         = `xine-config --libs`

endif

#### Cygwin specific definitions
ifeq ($(OS),CYGWIN)
  C++               = c++
  DEPARG            = -M -DWIN32
  INC               += 
  LIB               =
  DEF               += -DWIN32 -DNOMINMAX -W -Wall -mnop-fun-dllimport
  OPTF              = -O2 
  DBGF              = -g -DOSG_COMPILE_UNIT_TESTS
  SHARED            = -shared \
                      -Wl,--out-implib,lib$(TARGET_BASENAME).dll.a \
                      -Wl,--export-all-symbols

  EXE_EXT           =.exe
  ARCH              = 32
  ARCHINST          =
  ARCHARGS          = 
  LINKARGS          = -W -Wall
  DYNAMICLIBRARYLIB =
  OSG_LIBS          = -losgGA -losgDB -losgUtil -losg 
  GL_LIBS           = -lglu32 -lopengl32
  GLUT_LIBS         = -lglut
  X_INC             = 
  X_LIBS            = -lgdi32 -luser32
  SOCKET_LIBS       = 
  OTHER_LIBS        = -lOpenThreads
  PNG_LIBS          = -lpng -lz
  JPEG_LIBS         = -L/usr/local/lib -ljpeg
  GIF_LIBS          = -lungif
  TIFF_LIB          = -ltiff -lz -ljpeg

  FREETYPE_INCLUDE  = `freetype-config --cflags`
  FREETYPE_LIB      = `freetype-config --libs`

  GDAL_INCLUDES     = `gdal-config --cflags`
  GDAL_LIBS         = `gdal-config --libs`
  GDAL_LIBS         += `gdal-config --dep-libs`

  XINE_INCLUDES     = `xine-config --cflags`
  XINE_LIBS         = `xine-config --libs`

  LIBINST    = bin/$(OS)$(ARCH)
  IMP_LIBINST    = lib/$(OS)$(ARCH)
  PLUGININST = bin/$(OS)$(ARCH)/osgPlugins
  IMP_PLUGININST    = lib/$(OS)$(ARCH)/osgPlugins

  LIB_PREFIX        = cyg
  LIB_EXT           = dll
  IMP_LIB_EXT       = dll.a
  PLUGIN_EXT        = dll
  LINK              = cp -f
  INST_LOCATION     = /usr/local/OpenSceneGraph
  INST_INCLUDE      = $(INST_LOCATION)/include
  INST_SHARE_PREFIX = $(INST_LOCATION)
  INST_SRC          = $(INST_SHARE_PREFIX)/src
  INST_EXAMPLES     = $(INST_SHARE_PREFIX)/bin
  INST_EXAMPLE_SRC  = $(INST_SHARE_PREFIX)/src/demos
  INST_DOC          = $(INST_SHARE_PREFIX)/doc
  INST_DATA         = $(INST_SHARE_PREFIX)/data
  MAKEDIST          = $(TOPDIR)/Make/makeinnosetup
endif

#### Mingw specific definitions
ifeq ($(OS),MINGW)
  C++               = c++ -mthreads 
# -fomit-frame-pointer -march=pentium3 -msse -mmmx -mfpmath=sse
  DEPARG            = -M
  INC               += 
  DEF               += -DWIN32 -Wall
# -W
  OPTF              = -O2
  DBGF              = -g -DOSG_COMPILE_UNIT_TESTS
  SHARED            = -shared -mthreads \
                      -Wl,--out-implib,lib$(TARGET_BASENAME).dll.a \
                      -Wl,--export-all-symbols

  EXE_EXT           =.exe
  ARCH              = 
  ARCHINST          =
  ARCHARGS          = 
  LINKARGS          = -W -Wall
  DYNAMICLIBRARYLIB =
  OSG_LIBS          = -losgGA -losgDB -losgUtil -losg 
  GL_LIBS           = -lglu32 -lopengl32
  GLUT_LIBS         = -lglut
  X_INC             = 
  X_LIBS            = -lgdi32 -luser32
  SOCKET_LIBS       = -lws2_32
  OTHER_LIBS        = -lOpenThreads
  PNG_LIBS          = -lpng -lz
  JPEG_LIBS         = -ljpeg
  GIF_LIBS          = -lungif
  TIFF_LIB          = -ltiff -lz -ljpeg

  FREETYPE_INCLUDE  = `freetype-config --cflags`
  FREETYPE_LIB      = `freetype-config --libs`

  GDAL_INCLUDES     = 
  GDAL_LIBS         =  -lgdal -ljpeg -lgeotiff -ltiff -lpng -lz

  XINE_INCLUDES     = `xine-config --cflags`
  XINE_LIBS         = `xine-config --libs`

  LIBINST    = bin/$(OS)$(ARCH)
  IMP_LIBINST    = lib/$(OS)$(ARCH)
  PLUGININST = bin/$(OS)$(ARCH)/osgPlugins
  IMP_PLUGININST    = lib/$(OS)$(ARCH)/osgPlugins

  LIB_PREFIX        = lib
  LIB_EXT           = dll
  IMP_LIB_EXT       = dll.a
  PLUGIN_EXT        = dll
  LINK              = cp -f
  INST_LOCATION     = /usr/local/OpenSceneGraph
  INST_INCLUDE      = $(INST_LOCATION)/include
  INST_SHARE_PREFIX = $(INST_LOCATION)
  INST_SRC          = $(INST_SHARE_PREFIX)/src
  INST_EXAMPLES     = $(INST_SHARE_PREFIX)/bin
  INST_EXAMPLE_SRC  = $(INST_SHARE_PREFIX)/src/examples
  INST_DOC          = $(INST_SHARE_PREFIX)/doc
  INST_DATA         = $(INST_SHARE_PREFIX)/data
endif

#### HP-UX Specific definitions
# contributed by tino.schwarze@informatik.tu-chemnitz.de
# replaced by Olaf Flebb for use with aCC compiler

ifeq ($(OS),HP-UX)
  CXX               = aCC -AA -mt
  C++               = $(CXX)
  DEPARG            = -w +make -E
  INC               += -I/opt/graphics/OpenGL/include -I/usr/contrib/X11R6/include -D_LARGEFILE64_SOURCE -D_XOPEN_SOURCE_EXTENDED
  DEF               += +Z -z
  OPTF              = +O2 
  DBGF              = -g 
  SHARED            = -b +Z -z -Wl,+s
  ARCH              = 32
  LDFLAGS           += -L/opt/graphics/OpenGL/lib -L/usr/contrib/X11R6/lib/
  LINKARGS          = -lpthread
  LIB_EXT           = sl
  PLUGIN_EXT        = sl
  DYNAMICLIBRARYLIB = -ldld


  OSG_LIBS          = -losgGA -losgDB -losgUtil -losg 
  GL_LIBS           = -L/opt/graphics/OpenGL/lib -lGLU -lGL 
  GLUT_LIBS         = -lglut
  X_INC             = -I/usr/X11R6/include
  X_LIBS            = -L/usr/lib/X11R6 -lXext -lXi -lX11 
  SOCKET_LIBS       = 
  OTHER_LIBS        = -lm -lOpenThreads
  PNG_INCLUDE       = -I/usr/local/include/libpng -I/usr/local/include/
  PNG_LIBS          = -L/usr/local/lib -lpng  -lz
  JPEG_INCLUDE      = -I/usr/local/include
  JPEG_LIBS         = -L/usr/local/lib  -ljpeg
  TIFF_INCLUDE      = -I/usr/local/include
  TIFF_LIB          = -L/usr/local/lib -ltiff
  GIF_INCLUDE       = -I/opt/libungif/include
  GIF_LIBS          = -L/opt/libungif/lib -lungif

  FREETYPE_INCLUDE  = `freetype-config --cflags`
  FREETYPE_LIB      = `freetype-config --libs`

  GDAL_INCLUDES     = `gdal-config --cflags`
  GDAL_LIBS         = `gdal-config --libs`

  INSTXCMD           = install -c -m 755
  INSTRCMD           = install -c -m 644

  INSTBINCMD     = install -c -m 755
  INSTDEVCMD     = install -c -m 644
endif


ifeq ($(OS),AIX)
  CXX 		    = g++
  C++  		    = $(CXX)
  DEPARG            = -M
  INC               += 
  DEF               +=
  OPTF              = -O
  DBGF              = -g 
  SHARED            = 
  ARCH              = 32
  LDFLAGS	    +=
  LINKARGS          = -lpthread
  LIB_EXT           = sl
  PLUGIN_EXT        = sl
  DYNAMICLIBRARYLIB = -ldld


  OSG_LIBS          = -losgGA -losgDB -losgUtil -losg 
  GL_LIBS           = -lGLU -lGL 
  X_INC             = 
  X_LIBS            = -lXext -lXi -lX11 
  SOCKET_LIBS       = 
  OTHER_LIBS        = -lm -lOpenThreads
  PNG_INCLUDE       = -I/usr/local/include/libpng -I/usr/local/include/
  PNG_LIBS          = -L/usr/local/lib -lpng  -lz
  JPEG_INCLUDE		= -I/usr/local/include
  JPEG_LIBS         = -L/usr/local/lib  -ljpeg
  TIFF_INCLUDE      = -I/usr/local/include
  TIFF_LIB          = -L/usr/local/lib -ltiff
  GIF_INCLUDE		= -I/opt/libungif/include
  GIF_LIBS          = -L/opt/libungif/lib -lungif

  FREETYPE_INCLUDE  = `freetype-config --cflags`
  FREETYPE_LIB      = `freetype-config --libs`

  GDAL_INCLUDES     = `gdal-config --cflags`
  GDAL_LIBS         = `gdal-config --libs`

endif


VPATH=..

