30eab4b79a
Added a cleaner way to install demo source so that installed versions use a simplified makedefs/makerules. Small fix to get osgText to compile with Solaris CC. Constructor declared with a non-const argument, but implemented with const argument.
202 lines
3.8 KiB
Bash
202 lines
3.8 KiB
Bash
#!/bin/sh
|
|
|
|
die()
|
|
{
|
|
echo $1
|
|
exit 1
|
|
}
|
|
|
|
|
|
s_install()
|
|
{
|
|
src_DIR=$1
|
|
mode=$2
|
|
dst_DIR=$RPM_BUILD_DIR/`echo $3 | sed 's/\///'`
|
|
|
|
[ -d $dst_DIR ] || mkdir -p $dst_DIR
|
|
|
|
THISDIR=`pwd`
|
|
cd $src_DIR
|
|
for f in `ls -1`
|
|
do
|
|
if [ -f $f ]
|
|
then
|
|
install -m $mode $f $dst_DIR/$f
|
|
fi
|
|
done
|
|
cd $THISDIR
|
|
}
|
|
|
|
|
|
print_attr()
|
|
{
|
|
dst_DIR=$1
|
|
mode=$2
|
|
t_dir=$RPM_BUILD_DIR/$dst_DIR
|
|
|
|
THISDIR=`pwd`
|
|
cd $t_dir
|
|
for f in `ls -1`
|
|
do
|
|
[ -f $f ] && echo "%attr($mode, root, root) $dst_DIR/$f"
|
|
done
|
|
cd $THISDIR
|
|
}
|
|
|
|
make_targz()
|
|
{
|
|
THISDIR=`pwd`
|
|
src_dir=$1
|
|
cd $RPM_BUILD_DIR/..
|
|
tar cvf - $src_dir |\
|
|
gzip > /usr/src/redhat/SOURCES/$src_dir.tar.gz
|
|
cd $THISDIR
|
|
}
|
|
|
|
make_spec()
|
|
{
|
|
name=$1
|
|
cat <<-LEOF > $TOPDIR/dist/RPM/$name.spec
|
|
|
|
Summary: A C++ scene graph API on OpenGL for real time graphics
|
|
Name: $name
|
|
Version: $REV
|
|
Release: $REL
|
|
Copyright: LGPL
|
|
Group: Graphics
|
|
Source: $name-$REV.tar.gz
|
|
URL: http://www.openscenegraph.org
|
|
Packager: `awk -f - /etc/passwd <<-EOF
|
|
BEGIN { FS=":"}
|
|
{
|
|
if( \\$1 == "$LOGNAME" )
|
|
print \\$5
|
|
}
|
|
EOF`
|
|
|
|
%description
|
|
|
|
The Open Scene Graph is a cross-platform C++/OpenGL library for the real-time
|
|
visualization. Uses range from visual simulation, scientific modeling, virtual
|
|
reality through to games. Open Scene Graph employs good practices in software
|
|
engineering through the use of standard C++, STL and generic programming, and
|
|
design patterns. Open Scene Graph strives for high performance and quality in
|
|
graphics rendering, protability, and extensibility
|
|
|
|
%prep
|
|
|
|
%setup
|
|
|
|
%build
|
|
|
|
%install
|
|
|
|
cd $RPM_BUILD_DIR
|
|
tar cvf - . | tar xvfC - /
|
|
|
|
# ---------------------
|
|
# FILES Sections
|
|
%files
|
|
|
|
LEOF
|
|
}
|
|
|
|
|
|
make_osg()
|
|
{
|
|
RPM_BUILD_DIR=/usr/src/redhat/BUILD/OpenSceneGraph-$REV
|
|
rm -rf $RPM_BUILD_DIR
|
|
mkdir $RPM_BUILD_DIR
|
|
|
|
s_install $TOPDIR/lib 755 $INST_LIBS
|
|
s_install $TOPDIR/lib/osgPlugins 744 $INST_PLUGINS
|
|
s_install $TOPDIR/bin 755 $INST_DEMOS
|
|
|
|
make_targz OpenSceneGraph-$REV
|
|
make_spec OpenSceneGraph
|
|
|
|
print_attr $INST_LIBS 755 >> $TOPDIR/dist/RPM/OpenSceneGraph.spec
|
|
print_attr $INST_PLUGINS 755 >> $TOPDIR/dist/RPM/OpenSceneGraph.spec
|
|
print_attr $INST_DEMOS 755 >> $TOPDIR/dist/RPM/OpenSceneGraph.spec
|
|
|
|
rpm -bb --clean $TOPDIR/dist/RPM/OpenSceneGraph.spec
|
|
|
|
mv /usr/src/redhat/RPMS/i386/OpenSceneGraph-$REV-$REL.i386.rpm dist/RPM
|
|
}
|
|
|
|
make_osg_dev()
|
|
{
|
|
RPM_BUILD_DIR=/usr/src/redhat/BUILD/OpenSceneGraph_dev-$REV
|
|
rm -rf $RPM_BUILD_DIR
|
|
mkdir $RPM_BUILD_DIR
|
|
|
|
for d in `ls $TOPDIR/include | grep -v CVS`
|
|
do
|
|
[ -d $TOPDIR/include/$d ] && \
|
|
s_install $TOPDIR/include/$d 644 $INST_INCLUDE/$d
|
|
done
|
|
|
|
for d in `ls $TOPDIR/src/Demos | grep -v CVS`
|
|
do
|
|
[ -d $TOPDIR/src/Demos/$d ] && \
|
|
s_install $TOPDIR/src/Demos/$d 644 $INST_DEMO_SRC/$d
|
|
done
|
|
|
|
make_targz OpenSceneGraph_dev-$REV
|
|
make_spec OpenSceneGraph_dev
|
|
|
|
for d in `ls -1 $RPM_BUILD_DIR/$INST_INCLUDE`
|
|
do
|
|
print_attr $INST_INCLUDE/$d 755 >> $TOPDIR/dist/RPM/OpenSceneGraph_dev.spec
|
|
done
|
|
|
|
for d in `ls -1 $RPM_BUILD_DIR/$INST_DEMO_SRC`
|
|
do
|
|
print_attr $INST_DEMO_SRC/$d 755 >> $TOPDIR/dist/RPM/OpenSceneGraph_dev.spec
|
|
done
|
|
|
|
rpm -bb --clean $TOPDIR/dist/RPM/OpenSceneGraph_dev.spec
|
|
|
|
mv /usr/src/redhat/RPMS/i386/OpenSceneGraph_dev-$REV-$REL.i386.rpm dist/RPM
|
|
}
|
|
|
|
if [ "`whoami`" != "root" ]
|
|
then
|
|
echo
|
|
echo " === makerpm : You must be root do make the RPM distribution."
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
if [ $# -ne 8 ]
|
|
then
|
|
echo
|
|
echo makerpm : Internal Error - Bad Usage
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
OS=$1
|
|
TOPDIR=$2
|
|
INST_LIBS=$3
|
|
INST_PLUGINS=$4
|
|
INST_INCLUDE=$5
|
|
INST_DEMOS=$6
|
|
INST_DEMO_SRC=$7
|
|
INST_DOC=$8
|
|
INST_DATA=$9
|
|
|
|
REV="`$TOPDIR""/bin/osgversion`"
|
|
[ -z "$REV" ] && die "makerpm: requires a functional $TOPDIR/bin/osgversion"
|
|
|
|
REL=1
|
|
|
|
|
|
make_osg
|
|
|
|
make_osg_dev
|
|
|
|
|
|
|
|
exit 0
|