LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   GNU Octave compile error and fix without recompile (https://www.linuxquestions.org/questions/slackware-14/gnu-octave-compile-error-and-fix-without-recompile-928874/)

ivanp84 02-11-2012 05:06 PM

GNU Octave compile error and fix without recompile
 
Dear Slackware fellows, tonight I discovered a problem during GNU Octave built with SB script. From GNU Octave site I downloaded the most recent stable, which is v3.4.3, and for that I reedited VERSION variable in SB (from slackbuilds.org). After more than 30 min of compiling, an error appeared, because for some reason my roots PATH variable hadn't TeX bins path, so make couldn't compile docs. To skip recompiling all prior source, I have decided to comment parts of the SB script connected with preparations and configurations steps, so the script could just continue make process. First, of course, updated PATH as PATH=$PATH:/usr/share/texmf/bin. And this is how it looks like, if someone faces same problem and want to escape entire Octave recompiling... As mentioned, this script just continues process if original script fails with TeX.

Ivan

Code:

#!/bin/sh

# Slackware build script for octave
# Written by Kyle Guinn <elyk03@gmail.com>

PRGNAM="octave"
VERSION=${VERSION:-3.4.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i486 ;;
    arm*) ARCH=arm ;;
      *) ARCH=$( uname -m ) ;;
  esac
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

DOCS="AUTHORS BUGS COPYING ChangeLog INSTALL* NEWS README"

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

# Default to use ImageMagick (shipped with Slackware) instead of
# GraphicsMagick so that octave will have at least some sort of image
# reading capabilities.  ImageMagick limits images to 16bpp, but if you're
# running a multilib environment, it might be easier to accept this limit
# rather than to compile GraphicsMagick.  (thanks to Joni Martikainen)
WITH_MAGICK=${WITH_MAGICK:-ImageMagick} # alternatively, "GraphicsMagick"

set -e

#rm -rf $PKG
#mkdir -p $TMP $PKG $OUTPUT
cd $TMP
#rm -rf $PRGNAM-$VERSION
#tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
#chown -R root:root .
#chmod -R u+w,go+r-w,a-st .

# Several configure checks look for headers in the 'amd' directory
# instead of 'cxsparse', 'camd', 'colamd', and 'ccolamd' directories
# as liboctave/oct-sparse.h expects.  Fix the typos and reconfigure.
# Note that camd.h doesn't appear to be included anywhere, but is used
# to determine if the CAMD library is present.
#sed -i -e 's| amd/cs\.h| cxsparse/cs.h|' \
#      -e 's| amd/camd\.h| camd/camd.h|' \
#      -e 's| amd/colamd\.h| colamd/colamd.h|' \
#      -e 's| amd/ccolamd\.h| ccolamd/ccolamd.h|' configure.ac
#autoreconf -vif
# If you have amd.h in some non-default location (e.g. /usr/include/amd/amd.h)
# now the check for umfpack.h will fail because umfpack.h includes "amd.h"
# instead of "amd/amd.h".  The --with-amd-includedir option below fixes this.

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
FFLAGS="$SLKCFLAGS" \
#./configure \
#  --prefix=/usr \
#  --libdir=/usr/lib${LIBDIRSUFFIX} \
#  --sysconfdir=/etc \
#  --localstatedir=/var \
#  --mandir=/usr/man \
#  --infodir=/usr/info \
#  --docdir=/usr/doc/$PRGNAM-$VERSION \
#  --enable-shared \
#  --disable-static \
#  --enable-strict-warning-flags \
#  --with-magick=$WITH_MAGICK \
#  --with-amd-includedir=/usr/include/amd \
#  --build=$ARCH-slackware-linux

make
make install-strip DESTDIR=$PKG

find $PKG/usr/man -type f -exec gzip -9 {} \;

rm -f $PKG/usr/info/dir
gzip -9 $PKG/usr/info/*.info*

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}


elyk 02-11-2012 08:29 PM

Looks like you were using `su` instead of `su -`.

http://slackbuilds.org/faq/#su
http://slackbuilds.org/howto/#su

ivanp84 02-12-2012 04:54 AM

Quote:

Originally Posted by elyk (Post 4600181)
Looks like you were using `su` instead of `su -`.

http://slackbuilds.org/faq/#su
http://slackbuilds.org/howto/#su

Yes, that was the problem. GNU Octave will be main tool in my new project, I have some experimental data, so I decided to compile as soon as possible, and then to have time to play around with Metatool. So just reedited SB script to reach correct version, and then got root privileges with su. But after TeX related err appeared, I concluded that could save some time if PATH and SB were changed in the manner shown in the first post. And then found that it could be cool to share that experience with LQ slackware fellows.


All times are GMT -5. The time now is 06:31 AM.