SHELL = /bin/sh OS := $(shell uname) ## 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 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 Makefile TOPDIR ?= ../ THISDIR = . MAKEDEPEND = ignore INC = -I$(TOPDIR)/include DEF = CXXFLAGS = $(ARCHARGS) $(DOF) $(DEF) $(INC) LDFLAGS = $(ARCHARGS) $(DOF) $(LINKARGS) -L$(TOPDIR)/lib OBJS = $(C++FILES:.cpp=.o) \ $(CXXFILES:.cpp=.o) \ $(CFILES:.c=.o) \ DOF = $(OPTF) DEBUGDIR = $(OS)$(ARCH).Debug OPTDIR = $(OS)$(ARCH).Opt BININST = bin LIBINST = lib PLUGININST = lib/osgPlugins INST_SYS_PREFIX = /usr/local INST_LIBS = $(INST_SYS_PREFIX)/lib$(ARCH) INST_PLUGINS = $(INST_SYS_PREFIX)/lib$(ARCH)/osgPlugins INST_INCLUDE = $(INST_SYS_PREFIX)/include INST_SHARE_PREFIX = /usr/share INST_DEMOS = $(INST_SHARE_PREFIX)/OpenSceneGraph/bin INST_SRC = $(INST_SHARE_PREFIX)/OpenSceneGraph/src INST_DOC = $(INST_SHARE_PREFIX)/OpenSceneGraph/doc INST_DATA = $(INST_SHARE_PREFIX)/OpenSceneGraph/data INST_DEMO_SRC = $(INST_SRC)/demos LINK = ln -sf INSTBINCMD = install -m 755 INSTDEVCMD = install -m 644 INSTLINKBINCMD = $(LINK) INSTLINKDEVCMD = $(LINK) LIB_PREFIX = lib LIB_EXT = so PLUGIN_PREFIX = osgdb_ PLUGIN_EXT = so MAKEDIST = echo " === Distribution build is not implemented yet for $(OS)"; printf "\n" INSTLOGFILE = /tmp/.osg_inst_log 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 INC += -I/usr/local/glut-3.7/include DEF += -W -Wall -fPIC -fpermissive OPTF = -O2 DBGF = -g SHARED = -shared -fPIC ifeq ($(ARCH),64) ARCHARGS = -m64 else ARCHARGS = endif LINKARGS = DYNAMICLIBRARYLIB = -ldl OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg FREETYPE_LIB = -L/usr/local/lib -lfreetype GLUT_LIB = -L/usr/local/glut-3.7/lib/glut -lglut GL_LIBS = -lGLU -lGL X_LIBS = -lXext -lXmu -lXi -lX11 SOCKET_LIBS = -lsocket -lnsl OTHER_LIBS = TIFF_LIB = -ltiff INSTBINCMD = cp INSTDEVCMD = cp INST_SYS_PREFIX = /opt/OpenSceneGraph INST_SHARE_PREFIX = /opt MAKEDIST = $(TOPDIR)/Make/makepkg #### using forte compilers (default) else C++ = CC DEPARG = -xM1 INC += DEF += -features=extensions OPTF = -xO4 DBGF = -g SHARED = -G ifeq ($(ARCH),64) ARCHARGS = -xarch=v9 else ARCHARGS = endif LINKARGS = DYNAMICLIBRARYLIB = -ldl OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg FREETYPE_LIB = -L/usr/local/lib -lfreetype GLUT_LIB = -lglut GL_LIBS = -lGLU -lGL X_LIBS = -lXext -lXmu -lXi -lX11 SOCKET_LIBS = -lsocket -lnsl OTHER_LIBS = -lCstd TIFF_LIB = -ltiff INSTBINCMD = cp INSTDEVCMD = cp INST_SYS_PREFIX = /opt/OpenSceneGraph INST_SHARE_PREFIX = /opt MAKEDIST = $(TOPDIR)/Make/makepkg endif endif #### IRIX Specific definitions ifeq ($(OS),IRIX) C++ = CC DEPARG = -M INC += -I${TOPDIR}/include -I/usr/freeware/ DEF += -LANG:std -OPT:Olimit=0 \ -DEBUG:woff=1682 -DEBUG:woff=3303\ -MDupdate $(MAKEDEPEND) OPTF = -O2 DBGF = -g SHARED = -shared ARCH = 32 ifeq ($(ARCH),64) ARCHARGS = -64 FREETYPE_LIB = -L/usr/freeware/lib64 -lfreetype PF_XTRA_LIBS = -L/usr/lib64/libpfdb -rpath /usr/lib64/libpfdb \ -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 -limage else ARCHARGS = -n32 FREETYPE_LIB = -L/usr/freeware/lib32 -lfreetype PF_XTRA_LIBS = -L/usr/lib32/libpfdb -rpath /usr/lib32/libpfdb \ -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 -limage endif LINKARGS = -L${TOPDIR}/lib -LANG:std -OPT:Olimit=0 DYNAMICLIBRARYLIB = OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg GLUT_LIB = -lglut GL_LIBS = -lGLU -lGL X_LIBS = -lXext -lXi -lXmu -lX11 SOCKET_LIBS = OTHER_LIBS = -lm PNG_LIBS = -lpng JPEG_LIBS = -ljpeg TIFF_LIB = -ltiff GIF_LIBS = -lungif endif #### Linux specific definitions ifeq ($(OS),Linux) ifeq (x$(CXX),x) C++ = g++ else C++ = $(CXX) endif DEPARG = -M INC += DEF += -W -Wall OPTF = -O2 DBGF = -g -DOSG_USE_MEMORY_MANAGER SHARED = -shared ARCHARGS = LINKARGS = -L/usr/X11R6/lib LIBS = -lstdc++ DYNAMICLIBRARYLIB = -ldl OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg FREETYPE_LIB = -lfreetype GLUT_LIB = -lglut GL_LIBS = -lGLU -lGL X_LIBS = -lXi -lXmu -lX11 PF_XTRA_LIBS = -L/usr/lib/libpfdb -Xlinker -rpath /usr/lib/libpfdb \ -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 SOCKET_LIBS = OTHER_LIBS = -lpthread PNG_LIBS = -lpng JPEG_LIBS = -ljpeg TIFF_LIB = -ltiff GIF_LIBS = -lgif MAKEDIST = $(TOPDIR)/Make/makerpms 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 SHARED = -shared ARCHARGS = LINKARGS = -L/usr/X11R6/lib -L/usr/local/lib -rpath /usr/local/lib DYNAMICLIBRARYLIB = OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg FREETYPE_LIB = -lfreetype GLUT_LIB = -lglut GL_LIBS = -lGLU -lGL X_LIBS = -lXmu -lX11 SOCKET_LIBS = OTHER_LIBS = INST_SYS_PREFIX = /opt/X11R6 INST_SHARE_PREFIX = /usr/share/OpenSceneGraph endif #### MacOS X specific definitions ifeq ($(OS),Darwin) C++ = cc INC += -I/usr/include DEF += -Wall -D__DARWIN_OSX__ OPTF = -O2 DBGF = -g DEPARG = -M $(DEF) SHARED = -shared ARCHARGS = LINKARGS = -L/usr/lib DYNAMICLIBRARYLIB = OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg FREETYPE_LIB = -lfreetype GLUT_LIB = -framework GLUT CARBON_LIB = -framework Carbon GL_LIBS = -framework OpenGL $(CARBON_LIB) X_LIBS = SOCKET_LIBS = OTHER_LIBS = -lm -lstdc++ -lobjc LIB_EXT = dylib QUICKTIME = -framework QuickTime $(CARBON_LIB) TIFF_LIB = -ltiff SRC_DIRS = osg osgUtil osgDB \ osgGA osgGLUT \ osgPlugins osgParticle \ Demos # Plugins which require external libs: gif jpeg png tiff PLUGIN_DIRS = bmp dw flt \ lib3ds logos lwo obj \ osg osgtgz pic \ quicktime rgb tga tgz \ txp zip # Demos which require external libs: osghud osgtext DEMOS_DIRS = osgbillboard osgcallback osgclip \ osgcluster osgconv osgcopy osgcube osggeometry \ osghangglide osgimpostor osgmultitexture osgoccluder \ osgparticle osgprerender osgreflect osgscribe osgstereoimage \ osgtexture1D osgtexture2D osgtexture3D osgversion osgviews sgv endif #### Cygwin/Mingw specific definitions ifeq ($(OS),CYGWIN) C++ = c++ DEPARG = -M INC += DEF += -DWIN32 -W -Wall OPTF = -O2 DBGF = -g SHARED = -shared\ -Wl,--export-all-symbols \ -Wl,--output-def,lib$(TARGET_BASENAME).def \ -Wl,--out-implib,$(TOPDIR)/lib/lib$(TARGET_BASENAME).dll.a \ ARCHARGS = LINKARGS = -W -Wall DYNAMICLIBRARYLIB = OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg GL_LIBS = -lglu32 -lopengl32 GLUT_LIB = -lglut32 $(GL_LIBS) X_LIBS = -lgdi32 -luser32 OSGDB_LIBS = -losgdb_3ds \ -losgdb_bmp \ -losgdb_dw \ -losgdb_flt \ -losgdb_jpg \ -losgdb_lwo \ -losgdb_obj \ -losgdb_osg \ -losgdb_osgtgz \ -losgdb_pic \ -losgdb_png \ -losgdb_rgb \ -losgdb_tga \ -losgdb_tgz \ -losgdb_tiff \ -losgdb_zip SOCKET_LIBS = OTHER_LIBS = $(GL_LIBS) PNG_LIBS = -lpng -lz JPEG_LIBS = -ljpeg GIF_LIBS = -lungif TIFF_LIB = -ltiff -lz -ljpeg FREETYPE_LIB = -lfreetype2 LIB_PREFIX = cyg LIB_EXT = dll PLUGIN_EXT = dll LINK = cp -f INST_SYS_PREFIX = /usr/local/OpenSceneGraph INST_LIBS = $(INST_SYS_PREFIX)/bin INST_PLUGINS = $(INST_SYS_PREFIX)/bin INST_INCLUDE = $(INST_SYS_PREFIX)/include INST_SHARE_PREFIX = /usr/local/OpenSceneGraph INST_DEMOS = $(INST_SHARE_PREFIX)/bin INST_DEMO_SRC = $(INST_SHARE_PREFIX)/src/demos INST_DOC = $(INST_SHARE_PREFIX)/doc INST_DATA = $(INST_SHARE_PREFIX)/data endif #### Cygwin/Mingw specific definitions ifeq ($(OS),MINGW) C++ = c++ DEPARG = -M INC += DEF += -DWIN32 -Wall # -W OPTF = -O2 DBGF = -g SHARED = -shared\ -Wl,--export-all-symbols \ -Wl,--output-def,lib$(TARGET_BASENAME).def \ -Wl,--out-implib,$(TOPDIR)/lib/lib$(TARGET_BASENAME).dll.a \ ARCHARGS = LINKARGS = -W -Wall DYNAMICLIBRARYLIB = OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg GL_LIBS = -lglu32 -lopengl32 GLUT_LIB = -lglut32 $(GL_LIBS) X_LIBS = -lgdi32 -luser32 OSGDB_LIBS = -losgdb_3ds \ -losgdb_bmp \ -losgdb_dw \ -losgdb_flt \ -losgdb_jpg \ -losgdb_lwo \ -losgdb_obj \ -losgdb_osg \ -losgdb_osgtgz \ -losgdb_pic \ -losgdb_png \ -losgdb_rgb \ -losgdb_tga \ -losgdb_tgz \ -losgdb_tiff \ -losgdb_zip SOCKET_LIBS = OTHER_LIBS = $(GL_LIBS) PNG_LIBS = -lpng -lz JPEG_LIBS = -ljpeg GIF_LIBS = -lungif TIFF_LIB = -ltiff -lz -ljpeg FREETYPE_LIB = -lfreetype # LIB_PREFIX = cyg LIB_PREFIX = lib LIB_EXT = dll PLUGIN_EXT = dll LINK = cp -f INST_SYS_PREFIX = /usr/local/OpenSceneGraph INST_LIBS = $(INST_SYS_PREFIX)/bin INST_PLUGINS = $(INST_SYS_PREFIX)/bin INST_INCLUDE = $(INST_SYS_PREFIX)/include INST_SHARE_PREFIX = /usr/local/OpenSceneGraph INST_DEMOS = $(INST_SHARE_PREFIX)/bin INST_DEMO_SRC = $(INST_SHARE_PREFIX)/src/demos INST_DOC = $(INST_SHARE_PREFIX)/doc INST_DATA = $(INST_SHARE_PREFIX)/data PLUGIN_DIRS = osg rgb lib3ds flt obj lwo bmp pic tga osgtgz tgz zip # txp DEMOS_DIRS = hangglide osgbillboard osgconv osgcopy osgcube osgimpostor\ osgreflect osgscribe osgstereoimage osgtexture1D osgtexture2D osgtexture3D\ osgviews osgversion sgv osghud osgtext # osgcluster endif #### HP-UX Specific definitions # contributed by tino.schwarze@informatik.tu-chemnitz.de ifeq ($(OS),HP-UX) C++ = g++ DEPARG = -M INC += -I/opt/glut/include 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+ SHARED = -shared -fPIC ARCH = 32 ifeq ($(ARCH),64) # not yet tested ARCHARGS = -march=2.0 else # at least my gcc 3.1 defaults to HP-PA RISC 1.1 ARCHARGS = endif LINKARGS = -lpthread LIB_EXT = sl PLUGIN_EXT = sl DYNAMICLIBRARYLIB = -ldld OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg # glut delivered with HP-UX is outdated GLUT_LIB = -L/opt/glut/lib -lglut GL_LIBS = -L/opt/graphics/OpenGL/lib -lGLU -lGL 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 FREETYPE_INCLUDE = -I/opt/freetype/include -I/opt/freetype/include/freetype2 FREETYPE_LIB = -L/opt/freetype/lib -lfreetype 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 endif VPATH=..