Various changes to the BUILD system:

o Object files now go in subdirectories named $(OS)$(ARCH).Opt and
       $(OS)$(ARCH).Debug for OS's that support both architectures.
          eg.  Linux32.Opt and Linux32.Debug

     o Libraries links are now placed in lib/$(OS)$(ARCH)
          eg.  lib/Linux32/

     o Binaries are now placed in bin/$(OS)$(ARCH)
          eg. bin/Linux32

     o 'make install' and 'make instlinks' now place files/links in
       /usr/local/{include,lib,share/OpenSceneGraph} by default on
       most systems (Solaris still goes in /opt/OpenSceneGraph).
       Rather than having the somwehat confusing INST_SYS_PREFIX and
       INST_SHARE_PREFX, you can override these with just
            INST_LOCATION
       For example,
             make INST_LOCATION=/usr
       will place files at /usr/include, /usr/lib,
       /usr/share/OpenSceneGraph.
This commit is contained in:
Don BURNS 2003-03-13 02:53:40 +00:00
parent 7439d7bb58
commit 693a889ece
50 changed files with 269 additions and 286 deletions

66
Make/dolink.sh Normal file
View File

@ -0,0 +1,66 @@
#!/bin/sh
bye()
{
echo $1
exit 1
}
TOPDIR=$1
LNSRC=$2
LNDEST=$3
LINKCMD=$4
## Check command line
[ $# -lt 4 ] && bye "Usage: $0 <Top Directory> <Link Source> <Link Destination> <Link command>"
## Check for existence of link source file
[ -n "$LNSRC" ] || bye "Internal error (LNSRC definition)"
## Check for existence of link destination file
[ -n "$LNDEST" ] || bye "Internal error (LNDEST definition)"
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"
## At this point, we must create a link at the link destination
## which points back to our link source. This requires us to
## build a path FROM the destination back to the source
#1) Get the source directory as an absolute path
SRCDIR=`pwd`/`dirname $LNSRC`
#2) Get the destination directory as an absolute path (TOPDIR is
## a relative path from the current directory).
cd $TOPDIR
ROOTDIR=`pwd`
DESTDIR=`dirname "$ROOTDIR"/"$LNDEST"`
#3) Build a ../../ chain from the destination directory to the
## current directory (ROOTDIR), which will become the prefix to
## the path
T=`dirname $LNDEST`
while [ "$T" != "." ]
do
T=`dirname $T`;PFX=../"$PFX"
done
#4) strip the absolute path prefix of SRCDIR leading to the current
## directory, so we are left with the relative path from the current
## directory to the link source directory. Prefix that with PFX.
LINK="$PFX"`echo $SRCDIR $ROOTDIR | awk '{ print substr($1,length($2)+2,512) }'`/`basename $LNDEST`
#5) Create the links by changing to the destination directory,
## removing any old versions of the link and creating a new one
[ -d `dirname $LNDEST` ] || mkdir -p `dirname $LNDEST`
cd `dirname $LNDEST`
rm -f `basename $LNDEST`
$LINKCMD $LINK `basename $LNDEST`
fi
exit 0

View File

@ -45,8 +45,8 @@ and optimized version of targets reside in parallel.
builds.
Solars and IRIX can build 64 bit targets. These require the ARCH=64 argument.
For example:
Solaris, IRIX and Linux (some compilers) can build 64 bit targets. These
require the ARCH=64 argument. For example:
make ARCH=64 - Same as 'make ARCH=64 opt'
make ARCH=64 opt - Builds 64 bit optimized targets
@ -116,13 +116,14 @@ installation locations for $OS.
demo source code in <demo_src_location> and
documentation in <doc_location>
Note also that INST_LIBS, INST_PLUGINS, and INST_INCLUDE share a common
prefix by default: INST_SYS_PREFIX. Further INST_DEMOS, INST_DEMOS_SRC,
INST_DOC, and INST_DATA share a common prefix by default : INST_SHARE_PREFIX.
This provides a short cut for the above 'make' usage. For example,
Note also that INST_LIBS, INST_PLUGINS, INST_INCLUDE, and INST_SHARE share
a common prefix by default: INST_LOCATION. Further INST_DEMOS, INST_DEMOS_SRC,
INST_DOC, and INST_DATA share a common prefix by default : INST_SHARE, which
is located under INST_LOCATION by default. This provides a short cut for the
above 'make' usage. For example,
make INST_SYS_PREFIX=/usr/local/OpenSceneGraph \\
INST_SHARE_PREFIX=/usr/share/OpenSceneGraph \\
make INST_LOCATION=/usr/local/OpenSceneGraph \\
INST_SHARE=/usr/share/OpenSceneGraph \\
install
@ -147,9 +148,6 @@ using OSG headers add to your -I compile flags:
$INST_INCLUDE
EOF
exit 0

View File

@ -1,5 +1,5 @@
help:
$(TOPDIR)/Make/help.sh\
@$(TOPDIR)/Make/help.sh\
$(OS)\
$(TOPDIR)\
$(INST_LIBS)\

View File

@ -31,12 +31,13 @@ copy_demo_source()
THISDIR=`pwd`
cd $TOPDIR/src/Demos/$d
[ -d $INST_DEMO_SRC/$d ] || mkdir -m 0755 -p $INST_DEMO_SRC/$d
for f in `gmake __instfiles | grep -v make `
echo " installing $d"
for f in `gmake __instfiles | grep -v gmake`
do
src=`echo $f | cut -f1 -d"="`
dst=`echo $f | cut -f2 -d"="`
if [ -z "$dst" ] ; then dst=$src; fi
echo $INSTALLCMD `pwd`/$src $INST_DEMO_SRC/$d/$dst
###echo $INSTALLCMD `pwd`/$src $INST_DEMO_SRC/$d/$dst
$INSTALLCMD `pwd`/$src $INST_DEMO_SRC/$d/$dst
done
cd $THISDIR

View File

@ -7,11 +7,11 @@ instbin instdev :
@$(MAKE) __$@
__instbin:
@$(MAKE) INSTSRC=$(TOPDIR)/bin INSTDEST=$(INST_DEMOS) \
@$(MAKE) INSTSRC=$(TOPDIR)/bin/$(OS)$(ARCH) INSTDEST=$(INST_DEMOS) \
INSTALL?="$(INSTBINCMD)" __install
@$(MAKE) INSTSRC=$(TOPDIR)/lib INSTDEST=$(INST_LIBS) \
@$(MAKE) INSTSRC=$(TOPDIR)/lib/$(OS)$(ARCH) INSTDEST=$(INST_LIBS) \
INSTALL?="$(INSTBINCMD)" __install
@$(MAKE) INSTSRC=$(TOPDIR)/lib/osgPlugins INSTDEST=$(INST_PLUGINS)\
@$(MAKE) INSTSRC=$(TOPDIR)/lib/$(OS)$(ARCH)/osgPlugins INSTDEST=$(INST_PLUGINS)\
INSTALL?="$(INSTBINCMD)" __install
@echo >> $(INSTLOGFILE)
@echo " Run-time environment installation successful. Add "\
@ -69,9 +69,6 @@ __instdev:
>> $(INSTLOGFILE)
@echo >> $(INSTLOGFILE)
instlinks :
@rm -f $(INSTLOGFILE)
$(MAKE) INSTBINCMD="$(INSTLINKBINCMD)" __instbin
@ -92,11 +89,11 @@ instlinksdev :
instclean : instcleanbin instcleandev
instcleanbin :
@$(MAKE) INSTSRC=$(TOPDIR)/bin INSTDEST=$(INST_DEMOS) \
@$(MAKE) INSTSRC=$(TOPDIR)/bin/$(OS)$(ARCH) INSTDEST=$(INST_DEMOS) \
INSTALL?="$(INSTBINCMD)" __instclean
@$(MAKE) INSTSRC=$(TOPDIR)/lib INSTDEST=$(INST_LIBS) \
@$(MAKE) INSTSRC=$(TOPDIR)/lib/$(OS)$(ARCH) INSTDEST=$(INST_LIBS) \
INSTALL?="$(INSTBINCMD)" __instclean
@$(MAKE) INSTSRC=$(TOPDIR)/lib/osgPlugins INSTDEST=$(INST_PLUGINS)\
@$(MAKE) INSTSRC=$(TOPDIR)/lib/$(OS)$(ARCH)/osgPlugins INSTDEST=$(INST_PLUGINS)\
INSTALL?="$(INSTBINCMD)" __instclean
instcleandev :
@ -131,27 +128,11 @@ __install :
if [ -f $$f ] ; \
then \
INSTPATH=$$THISDIR/$$f; \
echo $(INSTALL) $$INSTPATH $(INSTDEST)/$$f;\
$(INSTALL) $$INSTPATH $(INSTDEST)/$$f;\
fi\
done\
fi
# These lines cause instlinks to install links pointing to the actual files
# rather than the links in $(TOPDIR)/{bin,lib,include}. Advantage of this
# is for systems that hold multiple platforms in the same nfs mounted source
# but install different executables. Disadvantage is that it is not trivial
# to change to debug version by simply doing a 'make debug'.
# while [ -L $$INSTPATH ]; \
# while `csh -f -c "test -L $$INSTPATH"` ;\
# do \
# ll=`ls -l $$INSTPATH | cut -f2 -d">"`;\
# cd `dirname $$ll`;\
# INSTPATH="`pwd`"/"`basename $$ll`";\
# cd $$THISDIR;\
# done;\
__instclean :
@[ -n "$(INSTSRC)" ] || echo "Internal error (INSTSRC definition)"
@[ -n "$(INSTSRC)" ] && echo > /dev/null

View File

@ -25,8 +25,23 @@ MAKEDEPEND = ignore
INC = -I$(TOPDIR)/include
DEF =
############################################################################
## 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
LDFLAGS = $(ARCHARGS) $(DOF) $(LINKARGS) -L$(TOPDIR)/lib/$(OS)$(ARCH)
OBJS = $(C++FILES:.cpp=.o) \
$(CXXFILES:.cpp=.o) \
$(CFILES:.c=.o) \
@ -36,30 +51,27 @@ DEBUGDIR = $(OS)$(ARCH).Debug
OPTDIR = $(OS)$(ARCH).Opt
BININST = bin
LIBINST = lib
PLUGININST = lib/osgPlugins
PLUGININST = lib/$(OS)$(ARCH)/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_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_DEMOS = $(INST_SHARE)/OpenSceneGraph/bin
INST_SRC = $(INST_SHARE)/OpenSceneGraph/src
INST_DOC = $(INST_SHARE)/OpenSceneGraph/doc
INST_DATA = $(INST_SHARE)/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
@ -87,7 +99,6 @@ ifeq ($(OS),SunOS)
#### if useing g++ on a sun
ifeq ($(COMPILER),gnu)
C++ = g++
DEPARG = -M
INC += -I/usr/local/glut-3.7/include
@ -95,8 +106,10 @@ ifeq ($(OS),SunOS)
OPTF = -O2
DBGF = -g -DOSG_COMPILE_UNIT_TESTS
SHARED = -shared -fPIC
ARCH = 32
ifeq ($(ARCH),64)
ARCHARGS = -m64 -DARCH64
ARCHINST = 64
else
ARCHARGS =
endif
@ -110,61 +123,53 @@ ifeq ($(OS),SunOS)
#### using forte compilers (default)
else
C++ = CC
DEPARG = -xM1
INC +=
DEF += -features=extensions
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
GLUT_LIB = -lglut
OTHER_LIBS = -lCstd
LINKARGS =
GIF_LIBS = /usr/local/lib/libgif.a
TIFF_LIB = /usr/local/lib/libtiff.a
JPEG_LIBS = /usr/local/lib/libjpeg.a
PNG_LIBS = /usr/local/lib/libpng.a /usr/local/lib/libz.a
FREETYPE_LIB = /usr/local/lib/libfreetype.a
endif
DYNAMICLIBRARYLIB = -ldl
OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg
GL_LIBS = -lGLU -lGL
X_LIBS = -lXext -lXmu -lXi -lX11
SOCKET_LIBS = -lsocket -lnsl
INSTBINCMD = cp
INSTDEVCMD = cp
INST_SYS_PREFIX = /opt/OpenSceneGraph
INST_SHARE_PREFIX = /opt
INST_LOCATION = /opt/OpenSceneGraph
MAKEDIST = $(TOPDIR)/Make/makepkg
endif
#### IRIX Specific definitions
ifeq ($(OS),IRIX)
LINKARGS = -L${TOPDIR}/lib -LANG:std -OPT:Olimit=0
C++ = CC
DEPARG = -M
INC += -I${TOPDIR}/include -I/usr/freeware/include
DEF += -LANG:std -OPT:Olimit=0 \
-DEBUG:woff=1682 -DEBUG:woff=3303\
-DEBUG:woff=1681 -DEBUG:woff=1682 -DEBUG:woff=3303\
-MDupdate $(MAKEDEPEND)
OPTF = -O2
DBGF = -g -DOSG_COMPILE_UNIT_TESTS
SHARED = -shared
ARCH = 32
PFLIBS = \
-lpf3ds -lpfdem -lpfdted -lpfdwb -lpfdxf -lpfevt \
-lpfflt -lpfgds -lpfgfo -lpfim -lpflsa -lpflsb \
@ -172,17 +177,21 @@ ifeq ($(OS),IRIX)
-lpfrot -lpfscale -lpfsgf -lpfsgo -lpfsphere -lpfsv \
-lpftri -lpfunc -lpfvct -lpfdu -lpfutil -lpf -all -limage
FREETYPE_LIB = -lfreetype
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
DYNAMICLIBRARYLIB =
OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg
GLUT_LIB = -lglut
@ -194,9 +203,7 @@ endif
JPEG_LIBS = -ljpeg
TIFF_LIB = -ltiff
GIF_LIBS = -lungif
MAKEDIST = $(TOPDIR)/Make/makeirixdist
endif
#### Linux specific definitions
@ -208,8 +215,10 @@ ifeq (x$(CXX),x)
else
C++ = $(CXX)
endif
DEPARG = -M
INC +=
ifeq ($(COMPILER),intel)
C++ = ecc
LIBS = -lgcc_s
@ -222,10 +231,16 @@ else
OPTF = -O2
DBGF = -g -gstabs+ -DOSG_COMPILE_UNIT_TESTS
endif
SYSARCH := $(shell arch)
ifeq ($(SYSARCH),ia64)
ARCH = 64
ARCHINST = 64
else
ARCH = 32
ARCHINST =
endif
SHARED = -shared
ARCHARGS =
LINKARGS = -L/usr/X11R6/lib
@ -243,7 +258,6 @@ endif
JPEG_LIBS = -ljpeg
TIFF_LIB = -ltiff
GIF_LIBS = -lungif
MAKEDIST = $(TOPDIR)/Make/makerpms
endif
@ -256,6 +270,8 @@ ifeq ($(OS),FreeBSD)
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
DYNAMICLIBRARYLIB =
@ -266,10 +282,8 @@ ifeq ($(OS),FreeBSD)
X_LIBS = -lXmu -lX11
SOCKET_LIBS =
OTHER_LIBS =
INST_SYS_PREFIX = /opt/X11R6
INST_SHARE_PREFIX = /usr/share/OpenSceneGraph
INST_LOCATION = /opt/X11R6
INST_SHARE = /usr/share/OpenSceneGraph
endif
#### MacOS X specific definitions
@ -281,6 +295,8 @@ ifeq ($(OS),Darwin)
DBGF = -g -DOSG_COMPILE_UNIT_TESTS
DEPARG = -M $(DEF)
SHARED = -shared
ARCH =
ARCHINST =
ARCHARGS =
LINKARGS =
DYNAMICLIBRARYLIB =
@ -295,7 +311,7 @@ ifeq ($(OS),Darwin)
LIB_EXT = dylib
QUICKTIME = -framework QuickTime $(CARBON_LIB)
TIFF_LIB = -ltiff
LIBVERSION = -dylib_current_version 0.9.1
LIBVERSION = -dylib_current_version 0.9.3
# Plugins which require external libs: gif jpeg png tiff osgText
PLUGIN_DIRS = bmp dw flt \
@ -317,11 +333,11 @@ ifeq ($(OS),CYGWIN)
-Wl,--export-all-symbols \
-Wl,--output-def,lib$(TARGET_BASENAME).def \
-Wl,--out-implib,$(TOPDIR)/lib/lib$(TARGET_BASENAME).dll.a \
ARCH =
ARCHINST =
ARCHARGS =
LINKARGS = -W -Wall
DYNAMICLIBRARYLIB =
OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg
GL_LIBS = -lglu32 -lopengl32
GLUT_LIB = -lglut32 $(GL_LIBS)
@ -333,14 +349,10 @@ ifeq ($(OS),CYGWIN)
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
@ -351,8 +363,6 @@ ifeq ($(OS),CYGWIN)
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
@ -368,11 +378,11 @@ ifeq ($(OS),MINGW)
-Wl,--export-all-symbols \
-Wl,--output-def,lib$(TARGET_BASENAME).def \
-Wl,--out-implib,$(TOPDIR)/lib/lib$(TARGET_BASENAME).dll.a \
ARCH =
ARCHINST =
ARCHARGS =
LINKARGS = -W -Wall
DYNAMICLIBRARYLIB =
OSG_LIBS = -losgGLUT -losgGA -losgDB -losgUtil -losg
GL_LIBS = -lglu32 -lopengl32
GLUT_LIB = -lglut32 $(GL_LIBS)
@ -385,14 +395,11 @@ ifeq ($(OS),MINGW)
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
@ -403,7 +410,6 @@ ifeq ($(OS),MINGW)
INST_DEMO_SRC = $(INST_SHARE_PREFIX)/src/demos
INST_DOC = $(INST_SHARE_PREFIX)/doc
INST_DATA = $(INST_SHARE_PREFIX)/data
endif
#### HP-UX Specific definitions
@ -424,9 +430,11 @@ ifeq ($(OS),HP-UX)
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 = -lpthread
LIB_EXT = sl

View File

@ -12,10 +12,10 @@ debug : $(EXEC:=.dbg)\
cleandepend: cleandependopt cleandependdbg
cleandependopt:
[ -d $(OPTDIR) ] && cd $(OPTDIR); rm -f Makedepend; rm -rf .depend
@[ -d $(OPTDIR) ] && cd $(OPTDIR); rm -f Makedepend; rm -rf .depend
cleandependdbg:
[ -d $(DEBUGDIR) ] && cd $(DEBUGDIR); rm -f Makedepend; rm -rf .depend
@[ -d $(DEBUGDIR) ] && cd $(DEBUGDIR); rm -f Makedepend; rm -rf .depend
cleantarget: cleantargetopt cleantargetdbg
@ -28,10 +28,10 @@ cleantargetdbg :
clean: cleanopt cleandbg
cleanopt:
[ -d $(OPTDIR) ] && cd $(OPTDIR); rm -f $(OBJS) Makedepend; rm -rf .depend
@[ -d $(OPTDIR) ] && cd $(OPTDIR); rm -f $(OBJS) Makedepend; rm -rf .depend
cleandbg:
[ -d $(DEBUGDIR) ] && cd $(DEBUGDIR); rm -f $(OBJS) Makedepend; rm -rf .depend
@[ -d $(DEBUGDIR) ] && cd $(DEBUGDIR); rm -f $(OBJS) Makedepend; rm -rf .depend
clobber: clobberdbg clobberopt
@ -89,7 +89,7 @@ $(EXEC:=.dbg) :
$(MAKE) -f ../GNUmakefile "DOF=$(DBGF)" TOPDIR=../${TOPDIR} \
THISDIR=../$(THISDIR)\
MAKEDEPEND=Makedepend $(EXEC)
@$(MAKE) LNSRC=$(DEBUGDIR)/$(EXEC) LNDEST=$(BININST)/$(EXEC) __link
@$(MAKE) LNSRC=$(DEBUGDIR)/$(EXEC) LNDEST=$(BININST)/$(OS)$(ARCH)/$(EXEC) __link
$(LIB:=.dbg) : $(PLUGIN:=.dbg)
@[ -d $(DEBUGDIR) ] || mkdir $(DEBUGDIR)
@ -97,7 +97,7 @@ $(LIB:=.dbg) : $(PLUGIN:=.dbg)
$(MAKE) -f ../GNUmakefile "DOF=$(DBGF)" TOPDIR=../${TOPDIR} \
THISDIR=../$(THISDIR)\
MAKEDEPEND=Makedepend $(LIB)
@$(MAKE) LNSRC=$(DEBUGDIR)/$(LIB) LNDEST=$(LIBINST)/$(LIB) __link
@$(MAKE) LNSRC=$(DEBUGDIR)/$(LIB) LNDEST=$(LIBINST)/$(OS)$(ARCH)/$(LIB) __link
$(PLUGIN:=.dbg) :
@[ -d $(DEBUGDIR) ] || mkdir $(DEBUGDIR)
@ -113,7 +113,7 @@ $(EXEC:=.opt) :
$(MAKE) -f ../GNUmakefile DOF=$(OPTF) TOPDIR=../${TOPDIR} \
THISDIR=../$(THISDIR)\
MAKEDEPEND=Makedepend $(EXEC)
@$(MAKE) LNSRC=$(OPTDIR)/$(EXEC) LNDEST=$(BININST)/$(EXEC) __link
@$(MAKE) LNSRC=$(OPTDIR)/$(EXEC) LNDEST=$(BININST)/$(OS)$(ARCH)/$(EXEC) __link
$(LIB:=.opt) :
@ -122,7 +122,7 @@ $(LIB:=.opt) :
$(MAKE) -f ../GNUmakefile DOF=$(OPTF) TOPDIR=../${TOPDIR} \
THISDIR=../$(THISDIR)\
MAKEDEPEND=Makedepend $(LIB)
@$(MAKE) LNSRC=$(OPTDIR)/$(LIB) LNDEST=$(LIBINST)/$(LIB) __link
@$(MAKE) LNSRC=$(OPTDIR)/$(LIB) LNDEST=$(LIBINST)/$(OS)$(ARCH)/$(LIB) __link
$(PLUGIN:=.opt) :
@[ -d $(OPTDIR) ] || mkdir -p $(OPTDIR)
@ -165,19 +165,9 @@ ifeq (0,1) ##### OLD WAY : Keep until we've proven that this doesn't trip up
Makedepend : $(CXXFILES) $(CFILES)
ifeq ($(OS),IRIX)
touch $@
else
ifeq (0,1) # This is an experiment
@ [ -d depend ] || mkdir depend
@ rm -f $@;
for f in $?; do \
ff=`basename $$f`;\
$(C++) $(INC) $(DEPARG) > depend/$$ff ;\
echo "include depend/$$ff" >> $@;\
done
else
$(C++) $(INC) $(DEPARG) $^ > $(MAKEDEPEND)
endif
endif
endif
@ -188,69 +178,8 @@ 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
sh $(TOPDIR)/Make/dolink.sh $(TOPDIR) $(LNSRC) $(LNDEST) "$(LINK)"
__instfiles :
@echo $(INSTFILES)

View File

@ -8,7 +8,7 @@ LIBS += -losgProducer -lProducer $(OSG_LIBS) $(GL_LIBS) $(X_LIBS) $(OTHER_LI
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgcameragroup

View File

@ -8,7 +8,7 @@ LIBS += -losgProducer -lProducer -losgText $(OSG_LIBS) $(GL_LIBS) $(X_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osghud

View File

@ -8,7 +8,7 @@ LIBS += -losgProducer -lProducer $(OSG_LIBS) $(GL_LIBS) $(X_LIBS) $(OTHER_LI
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgreflect

View File

@ -8,7 +8,7 @@ LIBS += -losgProducer -lProducer $(OSG_LIBS) $(GL_LIBS) $(X_LIBS) $(OTHER_LI
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgstereoimage

View File

@ -8,7 +8,7 @@ LIBS += -losgProducer -lProducer -losgText $(OSG_LIBS) $(GL_LIBS) $(X_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgtext

View File

@ -8,7 +8,7 @@ LIBS += -losgProducer -lProducer $(OSG_LIBS) $(GL_LIBS) $(X_LIBS) $(OTHER_LI
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgviewer

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osganimate

View File

@ -9,7 +9,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgbillboard

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgcallback

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgclip

View File

@ -16,7 +16,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(SOCKET_LIBS) $(OTHER_
INSTFILES = \
$(CXXFILES)\
$(HEADERFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgcluster

View File

@ -13,7 +13,7 @@ LIBS += -losg -losgUtil -losgDB $(GL_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
$(HEADERFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgconv

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgcopy

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgcube

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgcubemap

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osggeodemo

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osggeometry

View File

@ -23,7 +23,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
$(HEADERFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osghangglide

View File

@ -9,7 +9,7 @@ LIBS += -losgText $(OSG_LIBS) -L/usr/local/lib $(FREETYPE_LIB) $(GLUT_LIB) $
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osghud

View File

@ -9,7 +9,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgimpostor

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osglight

View File

@ -8,7 +8,7 @@ LIBS += -losgSim $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osglightpoint

View File

@ -8,7 +8,7 @@ LIBS += -losgText $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osglogo

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgmultitexture

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgoccluder

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS) -losgPart
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgparticle

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgprerender

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgreflect

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgscribe

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgsequence

View File

@ -9,7 +9,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgshadowtexture

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgshape

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgstereoimage

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgteapot

View File

@ -9,7 +9,7 @@ LIBS += -losgText $(OSG_LIBS) -L/usr/local/lib $(FREETYPE_LIB) $(GLUT_LIB) $
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgtext

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgtexture1D

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgtexture2D

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgtexture3D

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgunittests

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgversion

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgvertexprogram

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = osgviews

View File

@ -8,7 +8,7 @@ LIBS += $(OSG_LIBS) $(GLUT_LIB) $(GL_LIBS) $(X_LIBS) $(OTHER_LIBS)
INSTFILES = \
$(CXXFILES)\
Makefile.inst=Makefile
GNUmakefile.inst=GNUmakefile
EXEC = sgv