OpenSceneGraph/Make/makedefs
2004-12-17 22:31:54 +00:00

666 lines
20 KiB
Plaintext

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 = 0
VERSION_MINOR = 9
VERSION_RELEASE = 8
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) \
EXE_EXT =
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_SHARE)/OpenSceneGraph/bin
INST_SRC = $(INST_SHARE)/OpenSceneGraph/src
INST_DOC = $(INST_SHARE)/OpenSceneGraph/doc
INST_DATA = $(INST_SHARE)/OpenSceneGraph/data
INST_EXAMPLE_SRC = $(INST_SRC)/examples
LINK = ln -sf
INSTBINCMD = install -m 755
INSTDEVCMD = install -m 644
INSTLINKBINCMD = $(LINK)
INSTLINKDEVCMD = $(LINK)
LIB_PREFIX = lib
LIB_EXT = so
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 ("$(PRODUCER_INC_DIR)","")
INC += -I$(PRODUCER_INC_DIR)
endif
ifneq ("$(PRODUCER_LIB_DIR)","")
LDFLAGS += -L$(PRODUCER_LIB_DIR)
endif
RECURSIVE_TARGETS = \
opt\
debug\
clean\
cleandepend\
cleandependopt\
cleandependdbg\
cleandbg\
cleanopt\
cleantarget\
cleantargetopt\
cleantargetdbg\
clobber\
clobberdbg\
clobberopt\
beautify\
docs\
depend\
#### SUN OS Specific definitions
ifeq ($(OS),SunOS)
#### if useing g++ on a sun
ifeq ($(COMPILER),gnu)
C++ = g++
DEPARG = -M
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
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 =
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
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
FREETYPE_INCLUDE = `freetype-config --cflags`
FREETYPE_LIB = `freetype-config --libs`
GDAL_INCLUDES = `gdal-config --cflags`
GDAL_LIBS = `gdal-config --libs`
endif
#### IRIX Specific definitions
ifeq ($(OS),IRIX)
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
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`
endif
#### Linux specific definitions
ifeq ($(OS),Linux)
ifeq (x$(CXX),x)
C++ = g++
else
C++ = $(CXX)
endif
DEPARG = -M
INC +=
ifeq ($(COMPILER),intel)
C++ = ecc
LIBS = -lgcc_s
DEF += -KPIC
OPTF = -O2
DBGF = -g -DOSG_COMPILE_UNIT_TESTS
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
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
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`
endif
#### FreeBSD specific definitions
ifeq ($(OS),FreeBSD)
C++ = g++
DEPARG = -MM
INC += -I/usr/local/include -I/usr/X11R6/include
DEF += -W -Wall
OPTF = -O2
DBGF = -g -DOSG_COMPILE_UNIT_TESTS
SHARED = -shared
ARCH =
ARCHINST =
ARCHARGS =
LINKARGS = -L/usr/X11R6/lib -L/usr/local/lib -rpath /usr/local/lib -pthread
DYNAMICLIBRARYLIB =
OSG_LIBS = -losgGA -losgDB -losgUtil -losg
GL_LIBS = -lGLU -lGL
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`
endif
#### MacOS X specific definitions
ifeq ($(OS),Darwin)
ifeq (x$(CXX),x)
C++ = g++
else
C++ = $(CXX)
endif
FINC += -F/System/Library/Frameworks
ifeq ($(USE_CGL),1)
DEF += -D__USE_OSX_CGL_IMPLEMENTATION__
INC += $(FINC)
LDFLAGS += $(FINC)
X_INC =
X_LIBS =
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
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
GL_LIBS = -framework OpenGL $(CARBON_LIB)
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/freetype2
FREETYPE_LIB = -lfreetype
GDAL_INCLUDES = `gdal-config --cflags`
GDAL_LIBS = `gdal-config --libs`
endif
#### Cygwin specific definitions
ifeq ($(OS),CYGWIN)
C++ = c++
DEPARG = -M -DWIN32
INC +=
DEF += -DWIN32 -W -Wall -DNOMINMAX
OPTF = -O2
DBGF = -g -DOSG_COMPILE_UNIT_TESTS
SHARED = -shared \
-Wl,--out-implib,$(TOPDIR)/lib/$(OS)$(ARCH)/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
X_INC =
X_LIBS = -lgdi32 -luser32
SOCKET_LIBS =
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-config --cflags`
GDAL_LIBS = `gdal-config --dep-libs`
GDAL_LIBS += `gdal-config --libs`
LIBINST = bin/$(OS)$(ARCH)
PLUGININST = bin/$(OS)$(ARCH)
LIB_PREFIX = cyg
LIB_EXT = dll
PLUGIN_EXT = dll
LINK = cp -f
INST_LOCATION ?= /usr/local/OpenSceneGraph
INST_LIBS = $(INST_LOCATION)/bin
INST_PLUGINS = $(INST_LOCATION)/bin
INST_INCLUDE = $(INST_LOCATION)/include
INST_SHARE_PREFIX = /usr/local/OpenSceneGraph
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,$(TOPDIR)/lib/$(OS)/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
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_LIB = -lfreetype
GDAL_LIB = -lgdal -ljpeg -lgeotiff -ltiff -lpng -lz
LIBINST = bin
PLUGININST = bin/$(OS)$(ARCH)
LIB_PREFIX = lib
LIB_EXT = dll
PLUGIN_EXT = dll
LINK = cp -f
INST_LOCATION ?= /usr/local/OpenSceneGraph
INST_LIBS = $(INST_LOCATION)/bin
INST_PLUGINS = $(INST_LOCATION)/bin
INST_INCLUDE = $(INST_LOCATION)/include
INST_SHARE_PREFIX = /usr/local/OpenSceneGraph
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
ifeq ($(OS),HP-UX)
C++ = g++
DEPARG = -M
INC +=
DEF += -W -Wall -fPIC
OPTF = -O2
# gcc 3.1 uses DWARF as default, my GDB might not yet support this...
# at least I've got problems everywhere
DBGF = -g -gstabs+ -DOSG_COMPILE_UNIT_TESTS
SHARED = -shared -fPIC
ARCH = 32
ifeq ($(ARCH),64)
# not yet tested
ARCHARGS = -march=2.0 -DARCH64
ARCHINST = 64
else
# at least my gcc 3.1 defaults to HP-PA RISC 1.1
ARCHARGS =
ARCHINST =
endif
LINKARGS =
LIB_EXT = sl
PLUGIN_EXT = sl
DYNAMICLIBRARYLIB = -ldld
OSG_LIBS = -losgGA -losgDB -losgUtil -losg
GL_LIBS = -L/opt/graphics/OpenGL/lib -lGLU -lGL
X_INC = -I/usr/X11R6/include
X_LIBS = -L/usr/lib/X11R6 -lXext -lXi -lX11 -L/usr/lib/X11R4 -lXmu
SOCKET_LIBS =
# make sure that global constructors/destructors are called upon
# shl_load() / shl_unload() - this is a gcc specific workaround
OTHER_LIBS = -lm -Wl,+init -Wl,_GLOBAL__DI -Wl,+fini -Wl,_GLOBAL__DD -lOpenThreads
PNG_INCLUDE = -I/opt/libpng/include
PNG_LIBS = -L/opt/libpng/lib -lpng -L/opt/zlib/lib -lz
JPEG_INCLUDE = -I/opt/jpeg-6/include
JPEG_LIBS = -L/opt/jpeg-6/lib -ljpeg
TIFF_INCLUDE = -I/opt/tiff-3.5/include
TIFF_LIB = -L/opt/tiff-3.5/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=..