getOSG_CompileOSG_CompileOsgDesigner.sh from osgDesigner at Krugle
Show getOSG_CompileOSG_CompileOsgDesigner.sh syntax highlighted
#!/bin/sh
# script to get SVN/CVS version of OpenThreads, Producer, OpenSceneGraph, osgProducer and genwrapper
# make genwrapper
# generate the wrapper
# make OpenThreads, Producer, OpenSceneGraph, osgProducer and osgDesigner
# utility function
function error_check
{
if [ $? -ne 0 ]; then
echo "ERROR"
exit 1
fi
}
if [ -z "$OSGDESIGNER_HOME" ]; then
echo "=== >> you must define the OSGDESIGNER_HOME environment variable << ==="
echo " sh example : export OSGDESIGNER_HOME=/directory/to/osgDesigner"
echo " tcsh example : setenv OSGDESIGNER_HOME /directory/to/osgDesigner"
exit
fi
# smart variable
if [ -z $1 ]; then
NB_PROC=`cat /proc/cpuinfo | grep processor | wc -l`
else
NB_PROC=$1
fi
echo "Use $NB_PROC processor to compile."
if [ $NB_PROC == "1" ]; then
MAKE_OPT=""
else
MAKE_OPT="-j $NB_PROC"
fi
THIRD_PARTY_DIR=${OSGDESIGNER_HOME}/3rdParty
# put all in 3rdParty directory
if [ ! -d ${THIRD_PARTY_DIR} ]; then
mkdir ${THIRD_PARTY_DIR}
fi
#OpenThreads
if [ ! -d ${THIRD_PARTY_DIR}/OpenThreads ]; then
cd ${THIRD_PARTY_DIR}
echo "=========================== Checkout OpenThreads ========================="
svn co http://www.openscenegraph.com/svn/osg/OpenThreads/trunk/ OpenThreads
else
echo "=========================== Update OpenThreads ========================="
cd ${THIRD_PARTY_DIR}/OpenThreads
svn up
fi
#Producer
if [ ! -d ${THIRD_PARTY_DIR}/Producer ]; then
cd ${THIRD_PARTY_DIR}
echo "=========================== Checkout Producer ========================="
echo " ==== >> Authentification require"
echo " ==== >> You can supply an empty password (just hit return)."
cvs -d :pserver:anon:@openscenegraph.net:/cvs/Producer login
cvs -d :pserver:anon@openscenegraph.net:/cvs/Producer co Producer
else
echo "=========================== Update Producer ========================="
cd ${THIRD_PARTY_DIR}/Producer
cvs update -Pd
fi
#OpenSceneGraph
if [ ! -d ${THIRD_PARTY_DIR}/OpenSceneGraph ]; then
echo "=========================== Checkout OpenSceneGraph ========================="
cd ${THIRD_PARTY_DIR}
svn co http://www.openscenegraph.com/svn/osg/OpenSceneGraph/trunk/ OpenSceneGraph
else
echo "=========================== Update OpenSceneGraph ========================="
cd ${THIRD_PARTY_DIR}/OpenSceneGraph
svn up
fi
#osgProducer
if [ ! -d ${THIRD_PARTY_DIR}/osgProducer ]; then
echo "=========================== Checkout osgProducer ========================="
cd ${THIRD_PARTY_DIR}
svn co http://www.openscenegraph.com/svn/Producer/osgProducer/trunk/ osgProducer
else
echo "=========================== Update osgProducer ==========================="
cd ${THIRD_PARTY_DIR}/osgProducer
svn up
fi
#genwrapper
if [ ! -d ${THIRD_PARTY_DIR}/genwrapper ]; then
echo "=========================== Checkout GenWrapper ========================="
cd ${THIRD_PARTY_DIR}
svn co http://www.openscenegraph.com/svn/genwrapper/trunk genwrapper
else
echo "=========================== Update GenWrapper ==========================="
cd ${THIRD_PARTY_DIR}/genwrapper
svn up
fi
#### BUILD ####
#genwrapper build
echo "=========================== Build GenWrapper ==========================="
cd ${THIRD_PARTY_DIR}/genwrapper
make
error_check
sed 's/\.\/genwrapper .lpm \$OSGHOME$/.\/genwrapper -c ${OSGHOME}\/genwrapper.conf -lpm ${OSGHOME}/' Dogenwrapper.sh > osgDogenwrapper.sh
#wrapper generation
echo "=========================== Genere Wrapper Code ========================"
OSGHOME=${THIRD_PARTY_DIR}/OpenSceneGraph
sh ./osgDogenwrapper.sh
error_check
#build OpenThreads
echo "=========================== Build OpenThreads ==========================="
cd ${THIRD_PARTY_DIR}/OpenThreads
gmake $MAKE_OPT
error_check
OS=`uname`
if [ -z "$ARCH" ]; then
ARCH=32
fi
#build Producer
echo "=========================== Build Producer ==========================="
cd ${THIRD_PARTY_DIR}/Producer
gmake $MAKE_OPT \
OPENTHREADS_INC_DIR="${THIRD_PARTY_DIR}/OpenThreads/include" \
OPENTHREADS_LIB_DIR="${THIRD_PARTY_DIR}/OpenThreads/lib/\$(OS)\$(ARCH)"
error_check
#build OpenSceneGraph
echo "=========================== Build OpenSceneGraph ==========================="
cd ${THIRD_PARTY_DIR}/OpenSceneGraph
export COMPILE_INTROSPECTION=yes
gmake $MAKE_OPT \
OPENTHREADS_INC_DIR="${THIRD_PARTY_DIR}/OpenThreads/include" \
OPENTHREADS_LIB_DIR="${THIRD_PARTY_DIR}/OpenThreads/lib/\$(OS)\$(ARCH)"
error_check
#build osgProducer
echo "=========================== Build osgProducer ==========================="
cd ${THIRD_PARTY_DIR}/osgProducer
#little hack to use specific OSG dir
if [ ! -f ${THIRD_PARTY_DIR}/osgProducer/osgProducer.hacked ]; then
OSGPRODUCER_MAKE_MAKEDEFS=${THIRD_PARTY_DIR}/osgProducer/Make/makedefs
echo 'ifneq ("$(OPENSCENEGRAPH_INC_DIR)","")' >> $OSGPRODUCER_MAKE_MAKEDEFS
echo 'INC += -I$(OPENSCENEGRAPH_INC_DIR)' >> $OSGPRODUCER_MAKE_MAKEDEFS
echo 'endif' >> $OSGPRODUCER_MAKE_MAKEDEFS
echo 'ifneq ("$(OPENSCENEGRAPH_LIB_DIR)","")' >> $OSGPRODUCER_MAKE_MAKEDEFS
echo 'LDFLAGS += -L$(OPENSCENEGRAPH_LIB_DIR)' >> $OSGPRODUCER_MAKE_MAKEDEFS
echo 'endif' >> $OSGPRODUCER_MAKE_MAKEDEFS
touch ${THIRD_PARTY_DIR}/osgProducer/osgProducer.hacked
fi
gmake $MAKE_OPT\
OPENTHREADS_INC_DIR="${THIRD_PARTY_DIR}/OpenThreads/include" \
OPENTHREADS_LIB_DIR="${THIRD_PARTY_DIR}/OpenThreads/lib/\$(OS)\$(ARCH)" \
PRODUCER_INC_DIR="${THIRD_PARTY_DIR}/Producer/include" \
PRODUCER_LIB_DIR="${THIRD_PARTY_DIR}/Producer/lib/\$(OS)\$(ARCH)"\
OPENSCENEGRAPH_INC_DIR="${THIRD_PARTY_DIR}/OpenSceneGraph/include" \
OPENSCENEGRAPH_LIB_DIR="${THIRD_PARTY_DIR}/OpenSceneGraph/lib/\$(OS)\$(ARCH)"
error_check
#build osgDesigner
echo "=========================== Build osgDesigner ==========================="
cd $OSGDESIGNER_HOME
if [ ! -d ${OSGDESIGNER_HOME}/release ]; then
mkdir ${OSGDESIGNER_HOME}/release
fi
cd ${OSGDESIGNER_HOME}/release
export OPENTHREADSDIR=$OSGDESIGNER_HOME/3rdParty/OpenThreads
export PRODUCERDIR=$OSGDESIGNER_HOME/3rdParty/Producer
export OSGDIR=$OSGDESIGNER_HOME/3rdParty/OpenSceneGraph
export OSGPRODUCERDIR=$OSGDESIGNER_HOME/3rdParty/osgProducer
OS=`uname`
if [ -z "$ARCH" ]; then
ARCH=32
fi
cmake -DOPENSCENEGRAPH_INCLUDE_DIRS=${OSGDIR}/include \
-DOPENSCENEGRAPH_LIBRARIES=${OSGDIR}/lib/${OS}${ARCH} \
-DOSG_INCLUDE_DIR=${OSGDIR}/include \
-DOSG_LIBRARY_RELEASE=${OSGDIR}/lib/${OS}${ARCH}/libosg.so \
-DOSG_LIBRARY_DEBUG=${OSGDIR}/lib/${OS}${ARCH}/libosg.so \
-DOSGDB_INCLUDE_DIR=${OSGDIR}/include \
-DOSGDB_LIBRARY_RELEASE=${OSGDIR}/lib/${OS}${ARCH}/libosgDB.so \
-DOSGDB_LIBRARY_DEBUG=${OSGDIR}/lib/${OS}${ARCH}/libosgDB.so \
-DOSGGA_INCLUDE_DIR=${OSGDIR}/include \
-DOSGGA_LIBRARY_RELEASE=${OSGDIR}/lib/${OS}${ARCH}/libosgGA.so \
-DOSGGA_LIBRARY_DEBUG=${OSGDIR}/lib/${OS}${ARCH}/libosgGA.so \
-DOSGINTROSPECTION_INCLUDE_DIR=${OSGDIR}/include \
-DOSGINTROSPECTION_LIBRARY_RELEASE=${OSGDIR}/lib/${OS}${ARCH}/libosgIntrospection.so \
-DOSGINTROSPECTION_LIBRARY_DEBUG=${OSGDIR}/lib/${OS}${ARCH}/libosgIntrospection.so \
-DOSGUTIL_INCLUDE_DIR=${OSGDIR}/include \
-DOSGUTIL_LIBRARY_RELEASE=${OSGDIR}/lib/${OS}${ARCH}/libosgUtil.so \
-DOSGUTIL_LIBRARY_DEBUG=${OSGDIR}/lib/${OS}${ARCH}/libosgUtil.so \
-DOSGPRODUCER_INCLUDE_DIR=${OSGPRODUCERDIR}/include \
-DOSGPRODUCER_LIBRARY_RELEASE=${OSGPRODUCERDIR}/lib/${OS}${ARCH}/libosgProducer.so \
-DOSGPRODUCER_LIBRARY_DEBUG=${OSGPRODUCERDIR}/lib/${OS}${ARCH}/libosgProducer.so \
-DOPENTHREADS_INCLUDE_DIR=${OPENTHREADSDIR}/include \
-DOPENTHREADS_LIBRARY_RELEASE=${OPENTHREADSDIR}/lib/${OS}${ARCH}/libOpenThreads.so \
-DOPENTHREADS_LIBRARY_DEBUG=${OPENTHREADSDIR}/lib/${OS}${ARCH}/libOpenThreads.so \
-DPRODUCER_INCLUDE_DIR=${PRODUCERDIR}/include \
-DPRODUCER_LIBRARY_RELEASE=${PRODUCERDIR}/lib/${OS}${ARCH}/libProducer.so \
-DPRODUCER_LIBRARY_DEBUG=${PRODUCERDIR}/lib/${OS}${ARCH}/libProducer.so \
-DCMAKE_VERBOSE_MAKEFILE=ON ..
error_check
make $MAKE_OPT
error_check
echo ""
echo ""
echo "====>> Marvelous!!! All build fine!!!"
echo "====>> Now you can run the runOsgDesigner.sh script."
echo "====>> Have a fun time with osgDesigner."
echo "====>> Send you comment and observation to ledocc@gmail.com"
See more files for this project here