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 # 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) 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 -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 #### IRIX Specific definitions ifeq ($(OS),IRIX) C++ = CC DEPFLAGS = -M INC += -I${TOPDIR}/include 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 else ARCHARGS = -n32 endif LINKARGS = -L${TOPDIR}/lib -LANG:std -OPT:Olimit=0 DYNAMICLIBRARYLIB = -ldl OSG_LIBS = -losgGLUT -losgDB -losgUtil -losg FREETYPE_LIB = -L/usr/freeware/lib32 -lfreetype GLUT_LIB = -lglut GL_LIBS = -lGLU -lGL X_LIBS = -lXext -lXi -lXmu -lX11 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 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 -losgDB -losgUtil -losg FREETYPE_LIB = -lfreetype GLUT_LIB = -lglut GL_LIBS = -lGLU -lGL X_LIBS = -lXi -lXmu -lX11 PF_XTRA_LIBS = SOCKET_LIBS = OTHER_LIBS = 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 -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 -I/sw/include DEF += -Wall -D__DARWIN_OSX__ OPTF = -O2 DBGF = -g DEPARG = -M $(DEF) SHARED = -shared ARCHARGS = LINKARGS = -L/usr/lib -L/sw/lib DYNAMICLIBRARYLIB = OSG_LIBS = -losgGLUT -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 -ldl -lstdc++ -lobjc LIB_EXT = dylib QUICKTIME_LIB = -framework QuickTime TIFF_LIB = -ltiff SRC_DIRS = osg osgUtil osgDB osgGLUT osgPlugins Demos PLUGIN_DIRS = osg rgb lib3ds flt obj lwo txp bmp pic tga osgtgz tgz zip DEMOS_DIRS = hangglide osgbillboard osgcluster osgconv osgcopy osgcube osgimpostor\ osgreflect osgscribe osgstereoimage osgtexture osgviews osgversion 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 -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 VPATH=..