Oops forgot to add makedefs and makerules
This commit is contained in:
parent
3e6638320a
commit
12043abd40
243
Make/makedefs
Normal file
243
Make/makedefs
Normal file
@ -0,0 +1,243 @@
|
||||
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
|
||||
|
||||
# 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_DEMOS = /usr/share/OpenSceneGraph/bin
|
||||
INST_LIBS = /usr/lib$(ARCH)
|
||||
INST_PLUGINS = /usr/lib$(ARCH)/osgPlugins
|
||||
INST_INCLUDE = /usr/include
|
||||
INST_DEMO_SRC = /usr/share/OpenSceneGraph/src/demos
|
||||
INST_DATA = /usr/share/OpenSceneGraph/data
|
||||
|
||||
LINK = ln -sf
|
||||
INSTBIN = install -m 755
|
||||
INSTDEV = install -m 644
|
||||
INSTLINKBIN = $(LINK)
|
||||
INSTLINKDEV = $(LINK)
|
||||
|
||||
|
||||
ALL_TARGETS = \
|
||||
opt\
|
||||
debug\
|
||||
clean\
|
||||
cleandbg\
|
||||
cleanopt\
|
||||
clobber\
|
||||
beautify\
|
||||
docs\
|
||||
depend\
|
||||
|
||||
#### SUN OS Specific definitions
|
||||
ifeq ($(OS),SunOS)
|
||||
|
||||
C++ = CC
|
||||
DEPARG = -xM1
|
||||
INC +=
|
||||
DEF += -features=extensions
|
||||
OPTF = -xO2
|
||||
DBGF = -g
|
||||
SHARED = -G
|
||||
ifeq ($(ARCH),64)
|
||||
ARCHARGS = -xarch=v9
|
||||
else
|
||||
ARCHARGS =
|
||||
endif
|
||||
LINKARGS =
|
||||
DYNAMICLIBRARYLIB = -ldl
|
||||
OSG_LIBS = -losgGLUT -losgDB -losgUtil -losg
|
||||
FREETYPE_LIB = -lfreetype
|
||||
GLUT_LIB = -lglut
|
||||
GL_LIBS = -lGLU -lGL
|
||||
X_LIBS = -lXext -lXmu -lXi -lX11
|
||||
SOCKET_LIBS = -lsocket -lnsl
|
||||
OTHER_LIBS = -lCstd
|
||||
SO_EXT = so
|
||||
PLUGIN_EXT = so
|
||||
TIFF_LIB = -ltiff
|
||||
|
||||
INSTBIN = cp
|
||||
INSTDEV = cp
|
||||
|
||||
endif
|
||||
|
||||
#### IRIX Specific definitions
|
||||
ifeq ($(OS),IRIX)
|
||||
|
||||
C++ = CC
|
||||
DEPFLAGS = -M
|
||||
INC +=
|
||||
DEF += -LANG:std -OPT:Olimit=0 \
|
||||
-DEBUG:wof=1682 -DEBUG:woff=3303\
|
||||
-MDupdate $(MAKEDEPEND)
|
||||
OPTF = -O2
|
||||
DBGF = -g
|
||||
SHARED = -shared
|
||||
ARCH = 32
|
||||
ifeq ($(ARCH),64)
|
||||
ARCHARGS = -64
|
||||
else
|
||||
ARCHARGS = -n32
|
||||
endif
|
||||
LINKARGS = -LANG:std -OPT:Olimit=0
|
||||
DYNAMICLIBRARYLIB = -ldl
|
||||
OSG_LIBS = -losgGLUT -losgDB -losgUtil -losg
|
||||
FREETYPE_LIB = -lfreetype
|
||||
GLUT_LIB = -lglut
|
||||
GL_LIBS = -lGLU -lGL
|
||||
X_LIBS = -lXext -lXi -lXmu -lX11
|
||||
SOCKET_LIBS =
|
||||
OTHER_LIBS = -lm
|
||||
SO_EXT = so
|
||||
PLUGIN_EXT = so
|
||||
|
||||
# INSTLINKBIN = install -t -m 755
|
||||
# INSTLINKDEV = install -t -m 644
|
||||
|
||||
endif
|
||||
|
||||
#### Linux specific definitions
|
||||
ifeq ($(OS),Linux)
|
||||
C++ = g++
|
||||
DEPARG = -MM
|
||||
INC +=
|
||||
DEF += -W -Wall
|
||||
OPTF = -O2
|
||||
DBGF = -g
|
||||
SHARED = -shared
|
||||
ARCHARGS =
|
||||
LINKARGS = -L/usr/X11R6/lib
|
||||
DYNAMICLIBRARYLIB = -ldl
|
||||
OSG_LIBS = -losgGLUT -losgDB -losgUtil -losg
|
||||
FREETYPE_LIB = -lfreetype
|
||||
GLUT_LIB = -lglut
|
||||
GL_LIBS = -lGLU -lGL
|
||||
X_LIBS = -lXmu -lX11
|
||||
SOCKET_LIBS =
|
||||
OTHER_LIBS =
|
||||
SO_EXT = so
|
||||
PLUGIN_EXT = so
|
||||
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 =
|
||||
SO_EXT = so
|
||||
PLUGIN_EXT = so
|
||||
endif
|
||||
|
||||
#### Mac OSX 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
|
||||
SO_EXT = dylib
|
||||
PLUGIN_EXT = so
|
||||
QUICKTIME_LIB = -framework QuickTime
|
||||
TIFF_LIB = -ltiff
|
||||
|
||||
endif
|
||||
|
||||
#### Cygwin/Mingw specific definitions
|
||||
ifeq ($(OS),CYGWIN_NT-5.0)
|
||||
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.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)
|
||||
SO_EXT = dll
|
||||
PLUGIN_EXT = dll
|
||||
LINK = cp -f
|
||||
endif
|
||||
|
||||
|
||||
VPATH=..
|
||||
|
220
Make/makerules
Normal file
220
Make/makerules
Normal file
@ -0,0 +1,220 @@
|
||||
|
||||
default : opt
|
||||
|
||||
opt : $(EXEC:=.opt)\
|
||||
$(LIB:=.opt)\
|
||||
$(PLUGIN:=.opt)\
|
||||
|
||||
debug : $(EXEC:=.dbg)\
|
||||
$(LIB:=.dbg)\
|
||||
$(PLUGIN:=.dbg)\
|
||||
|
||||
cleanlite : cleanliteopt cleanlitedbg
|
||||
|
||||
cleanliteopt :
|
||||
@[ -d $(OPTDIR) ] && cd $(OPTDIR); rm -f $(EXEC) $(LIB) $(PLUGIN)
|
||||
|
||||
cleanlitedbg :
|
||||
@[ -d $(DEBUGDIR) ] && cd $(DEBUGDIR); rm -f $(EXEC) $(LIB) $(PLUGIN)
|
||||
|
||||
clean : cleanopt cleandbg
|
||||
|
||||
cleanopt :
|
||||
@[ -d $(OPTDIR) ] && cd $(OPTDIR); rm -f $(OBJS) $(MAKEDEPEND)
|
||||
|
||||
cleandbg :
|
||||
@[ -d $(DEBUGDIR) ] && cd $(DEBUGDIR); rm -f $(OBJS) $(MAKEDEPEND)
|
||||
|
||||
clobberopt :
|
||||
rm -rf $(OPTDIR)
|
||||
|
||||
clobberdbg :
|
||||
rm -rf $(DEBUGDIR)
|
||||
|
||||
clobber : clobberdbg clobberopt
|
||||
|
||||
|
||||
beautify :
|
||||
for f in *.cpp ; do mv $$f $$f.bak; bcpp $$f.bak $$f; rm $$f.bak; done
|
||||
for f in *.h ; do mv $$f $$f.bak; bcpp $$f.bak $$f; rm $$f.bak; done
|
||||
|
||||
docs:
|
||||
[ "$(TARGET_BASENAME)" != "" ] && \
|
||||
mkdir -p $(TOPDIR)/doc/doc++/$(TARGET_BASENAME) && \
|
||||
doc++ -d $(TOPDIR)/doc/doc++/$(TARGET_BASENAME) -H -A \
|
||||
$(TOPDIR)/include/$(TARGET_BASENAME)/* && \
|
||||
echo "$(TARGET_BASENAME) HTML documentation created in "\
|
||||
"$(TOPDIR)/doc/doc++/$(TARGET_BASENAME)"
|
||||
|
||||
$(EXEC) : $(OBJS)
|
||||
$(C++) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
|
||||
|
||||
|
||||
## Mac OSX makes the distinction between -dynamiclib and -bundle
|
||||
## causing us to have to make a special case here, rather than
|
||||
## just redefining the SHARED argument.
|
||||
|
||||
ifeq ($(OS),Darwin)
|
||||
|
||||
$(LIB) : $(OBJS)
|
||||
$(C++) $(LDFLAGS) -dynamiclib $(OBJS) $(LIBS) -o $@
|
||||
|
||||
$(PLUGIN) : $(OBJS)
|
||||
$(C++) $(LDFLAGS) -bundle $(OBJS) $(LIBS) -o $@
|
||||
else
|
||||
|
||||
$(LIB) $(PLUGIN) : $(OBJS)
|
||||
TARGET_BASENAME=`echo $@ | sed 's/.$(PLUGIN_EXT)//' | sed 's/lib//'`;\
|
||||
$(C++) $(LDFLAGS) $(SHARED) $(OBJS) $(LIBS) -o $@
|
||||
|
||||
endif
|
||||
|
||||
$(EXEC:=.dbg) :
|
||||
@[ -d $(DEBUGDIR) ] || mkdir $(DEBUGDIR)
|
||||
@cd $(DEBUGDIR); \
|
||||
$(MAKE) -f ../Makefile DOF=$(DBGF) TOPDIR=../${TOPDIR} \
|
||||
THISDIR=../$(THISDIR)\
|
||||
MAKEDEPEND=Makedepend $(EXEC)
|
||||
@$(MAKE) LNSRC=$(DEBUGDIR)/$(EXEC) LNDEST=$(BININST)/$(EXEC) __link
|
||||
|
||||
$(LIB:=.dbg) :
|
||||
@[ -d $(DEBUGDIR) ] || mkdir $(DEBUGDIR)
|
||||
@cd $(DEBUGDIR); \
|
||||
$(MAKE) -f ../Makefile DOF=$(DBGF) TOPDIR=../${TOPDIR} \
|
||||
THISDIR=../$(THISDIR)\
|
||||
MAKEDEPEND=Makedepend $(LIB)
|
||||
@$(MAKE) LNSRC=$(DEBUGDIR)/$(LIB) LNDEST=$(LIBINST)/$(LIB) __link
|
||||
|
||||
$(PLUGIN:=.dbg) :
|
||||
@[ -d $(DEBUGDIR) ] || mkdir $(DEBUGDIR)
|
||||
@cd $(DEBUGDIR); \
|
||||
$(MAKE) -f ../Makefile DOF=$(DBGF) TOPDIR=../${TOPDIR} \
|
||||
THISDIR=../$(THISDIR)\
|
||||
MAKEDEPEND=Makedepend $(PLUGIN)
|
||||
@$(MAKE) LNSRC=$(DEBUGDIR)/$(PLUGIN) LNDEST=$(PLUGININST)/$(PLUGIN) __link
|
||||
|
||||
$(EXEC:=.opt) :
|
||||
@[ -d $(OPTDIR) ] || mkdir $(OPTDIR)
|
||||
@cd $(OPTDIR); \
|
||||
$(MAKE) -f ../Makefile DOF=$(OPTF) TOPDIR=../${TOPDIR} \
|
||||
THISDIR=../$(THISDIR)\
|
||||
MAKEDEPEND=Makedepend $(EXEC)
|
||||
@$(MAKE) LNSRC=$(OPTDIR)/$(EXEC) LNDEST=$(BININST)/$(EXEC) __link
|
||||
|
||||
|
||||
$(LIB:=.opt) :
|
||||
@[ -d $(OPTDIR) ] || mkdir $(OPTDIR)
|
||||
@cd $(OPTDIR); \
|
||||
$(MAKE) -f ../Makefile DOF=$(OPTF) TOPDIR=../${TOPDIR} \
|
||||
THISDIR=../$(THISDIR)\
|
||||
MAKEDEPEND=Makedepend $(LIB)
|
||||
@$(MAKE) LNSRC=$(OPTDIR)/$(LIB) LNDEST=$(LIBINST)/$(LIB) __link
|
||||
|
||||
$(PLUGIN:=.opt) :
|
||||
@[ -d $(OPTDIR) ] || mkdir $(OPTDIR)
|
||||
@cd $(OPTDIR); \
|
||||
$(MAKE) -f ../Makefile DOF=$(OPTF) TOPDIR=../${TOPDIR} \
|
||||
THISDIR=../$(THISDIR)\
|
||||
MAKEDEPEND=Makedepend $(PLUGIN)
|
||||
@$(MAKE) LNSRC=$(OPTDIR)/$(PLUGIN) LNDEST=$(PLUGININST)/$(PLUGIN) __link
|
||||
|
||||
|
||||
Makedepend : $(CXXFILES) $(CFILES)
|
||||
ifeq ($(OS),IRIX)
|
||||
touch $@
|
||||
else
|
||||
$(C++) $(INC) $(DEPARG) $? > $(MAKEDEPEND)
|
||||
endif
|
||||
|
||||
|
||||
.SUFFIXES: .cpp .o
|
||||
.cpp.o:
|
||||
$(C++) $(CXXFLAGS) -c $<
|
||||
|
||||
## This is an attempt at updating Makedepend file for each source
|
||||
## file compiled rather than all files each time a source file changes
|
||||
## Doesn't work too well, but leave the code here for later evaulation
|
||||
ifeq (0,1)
|
||||
ifneq ($(OS),IRIX)
|
||||
$(C++) $(INC) $(DEPFLAGS) $< > .temp.dep
|
||||
if [ -f $(MAKEDEPEND) ] ; \
|
||||
then \
|
||||
grep -v $< $(MAKEDEPEND) > .temp.dep1;\
|
||||
else \
|
||||
touch .temp.dep1; \
|
||||
fi
|
||||
cat .temp.dep1 .temp.dep > $(MAKEDEPEND)
|
||||
rm -f .temp.dep1 .temp.dep
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
depend : $(MAKEDEPEND)
|
||||
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Ok.. If you are looking hard at the following lines of gnarled code, you
|
||||
# deserve an explanation. This target makes a link from the installed
|
||||
# directories (Assumed to be rooted at $(TOPDIR), usually $(TOPDIR)/bin or
|
||||
# $(TOPDIR)/lib) to a just-built target. Both LNSRC (Link source) and LNDEST
|
||||
# (Link destination) must be defined before calling 'make __link'.
|
||||
#
|
||||
# The first four lines check to see that both LNSRC and LNDEST have been
|
||||
# defined.
|
||||
#
|
||||
# The (very long) following 'if' statement reads in pseudo-code like this:
|
||||
#
|
||||
# if the current link is not pointing to the intended destination
|
||||
# then
|
||||
# announce (echo) intentions to reset link
|
||||
# compute the link path by the following steps
|
||||
# a) define SRCDIR as the current absolute directory
|
||||
# appended by the directory of the intended source of the link
|
||||
# b) define DESTDIR as the absolute path of $(TOPDIR) appended by
|
||||
# the directory of the intended destination of the link
|
||||
# c) define a temproary variable T to be the absolute path of
|
||||
# the destination directory less the prefix of the absolute
|
||||
# path of $(TOPDIR)
|
||||
# e.g. /root/work/thisdir/bin/ - /root/work/thisdir/ = bin/
|
||||
# d) Run a loop, truncating the path represented by T until
|
||||
# 'dirname' returns '.'. On each iteration increment PFX
|
||||
# (Prefix) by '../' This will define the prefix for the path
|
||||
# of the link.
|
||||
# e.g. If DESTDIR is lib/osgPlugins, PFX is ../../
|
||||
# e) Define the link as a concatenation of PFX and the absolute
|
||||
# path of the source directory less the absolute path of
|
||||
# $(TOPDIR)
|
||||
#
|
||||
# Change directories in to the link destination directory
|
||||
# run the link command
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
__link :
|
||||
@[ -n "$(LNSRC)" ] || echo "Internal error (LNSRC definition)"
|
||||
@[ -n "$(LNSRC)" ] && echo > /dev/null
|
||||
@[ -n "$(LNDEST)" ] || echo "Internal error (LNDEST definition)"
|
||||
@[ -n "$(LNDEST)" ] && echo > /dev/null
|
||||
@if diff -s $(TOPDIR)/$(LNDEST) $(LNSRC) >/dev/null 2>&1;\
|
||||
then\
|
||||
echo " =====> $(LNSRC) and $(TOPDIR)/$(LNDEST) are in sync";\
|
||||
else\
|
||||
echo " =====> resetting $(TOPDIR)/$(LNDEST) to point to $(LNSRC)";\
|
||||
SRCDIR=`pwd`/`dirname $(LNSRC)`;\
|
||||
cd $(TOPDIR);\
|
||||
ROOTDIR=`pwd`;\
|
||||
DESTDIR=`dirname $$ROOTDIR/$(LNDEST)`;\
|
||||
T=`echo $$DESTDIR $$ROOTDIR | \
|
||||
awk '{print substr($$1,length($$2)+2,512)}'`;\
|
||||
while [ "$$T" != "." ]; do T=`dirname $$T`;PFX=../"$$PFX";done;\
|
||||
LINK="$$PFX"`echo $$SRCDIR $$ROOTDIR | awk \
|
||||
'{ print substr($$1,length($$2)+2,512) }'`/`basename $(LNDEST)`;\
|
||||
cd `dirname $(LNDEST)`;\
|
||||
rm -f `basename $(LNDEST)`;\
|
||||
$(LINK) $$LINK `basename $(LNDEST)`;\
|
||||
fi
|
||||
|
||||
|
||||
sinclude $(MAKEDEPEND)
|
||||
|
Loading…
Reference in New Issue
Block a user