libraries/levmar: Added (Levenberg-Marquardt algorithm).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
David Spencer 2017-04-19 00:15:33 +07:00 committed by Willy Sudiarto Raharjo
parent 896d7010e6
commit d8a8cf4250
5 changed files with 168 additions and 0 deletions

View File

@ -0,0 +1,46 @@
# Makefile.sbo: sane Makefile for levmar on Slackware
# dbs 2017-03-15
# Get these from Makefile.so
MAJ=2
MIN=2
ODIR=build
CONFIGFLAGS=-ULINSOLVERS_RETAIN_MEMORY
BUILDFLAGS=-funroll-loops -Wall $(CONFIGFLAGS) $(CFLAGS)
LIBOBJS=$(ODIR)/lm.o $(ODIR)/Axb.o $(ODIR)/misc.o $(ODIR)/lmlec.o $(ODIR)/lmbc.o $(ODIR)/lmblec.o $(ODIR)/lmbleic.o
LIBSRCS=lm.c Axb.c misc.c lmlec.c lmbc.c lmblec.c lmbleic.c
LAPACKLIBS=-llapack -lblas
LIBS=$(LAPACKLIBS) -lm
$(ODIR)/liblevmar.so.$(MAJ).$(MIN): $(LIBOBJS)
$(CC) -shared -Wl,-soname,liblevmar.so.$(MAJ) -o $(ODIR)/liblevmar.so.$(MAJ).$(MIN) $(LIBS) $(LIBOBJS)
$(ODIR)/%.o : %.c
$(CC) $(BUILDFLAGS) -c $< -o $@
$(ODIR)/lm.o: lm.c lm_core.c levmar.h misc.h compiler.h
$(ODIR)/Axb.o: Axb.c Axb_core.c levmar.h misc.h
$(ODIR)/misc.o: misc.c misc_core.c levmar.h misc.h
$(ODIR)/lmlec.o: lmlec.c lmlec_core.c levmar.h misc.h
$(ODIR)/lmbc.o: lmbc.c lmbc_core.c levmar.h misc.h compiler.h
$(ODIR)/lmblec.o: lmblec.c lmblec_core.c levmar.h misc.h
$(ODIR)/lmbleic.o: lmbleic.c lmbleic_core.c levmar.h misc.h
clean:
@rm -f $(LIBOBJS)
cleanall: clean
@rm -f $(ODIR)/liblevmar.so.$(MAJ).$(MIN)
depend:
makedepend -f Makefile $(LIBSRCS)
install: $(ODIR)/liblevmar.so.$(MAJ).$(MIN)
install -Dpm 644 levmar.h $(DESTDIR)/usr/include/levmar/levmar.h
install -Dpm 755 build/liblevmar.so.$(MAJ).$(MIN) $(DESTDIR)/usr/lib$(LIB_SUFFIX)/liblevmar.so.$(MAJ).$(MIN)
ln -rs $(DESTDIR)/usr/lib/liblevmar.so.$(MAJ).$(MIN) $(DESTDIR)/usr/lib$(LIB_SUFFIX)/liblevmar.so.$(MAJ)
ln -rs $(DESTDIR)/usr/lib/liblevmar.so.$(MAJ).$(MIN) $(DESTDIR)/usr/lib$(LIB_SUFFIX)/liblevmar.so

4
libraries/levmar/README Normal file
View File

@ -0,0 +1,4 @@
levmar (Levenberg-Marquardt nonlinear least squares algorithm)
GPL native ANSI C implementations of the Levenberg-Marquardt optimization
algorithm, usable also from C++, Matlab, Perl, Python, Haskell and Tcl.

View File

@ -0,0 +1,89 @@
#!/bin/sh
# Slackware build script for levmar
# Copyright 2017 David Spencer, Baildon, West Yorkshire, U.K.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=levmar
VERSION=${VERSION:-2.6}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -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
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tgz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
mkdir -p build
make -f $CWD/Makefile.SBo \
CFLAGS="$SLKCFLAGS"
make -f $CWD/Makefile.SBo install \
DESTDIR=$PKG \
LIB_SUFFIX="$LIBDIRSUFFIX"
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a LICENSE README.txt $PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View File

@ -0,0 +1,10 @@
PRGNAM="levmar"
VERSION="2.6"
HOMEPAGE="http://users.ics.forth.gr/~lourakis/levmar/"
DOWNLOAD="https://downloads.sourceforge.net/slackbuildsdirectlinks/levmar/levmar-2.6.tgz"
MD5SUM="16bc34efa1617219f241eef06427f13f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="lapack"
MAINTAINER="David Spencer"
EMAIL="baildon.research@googlemail.com"

View File

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
levmar: levmar (Levenberg-Marquardt nonlinear least squares algorithm)
levmar:
levmar: GPL native ANSI C implementations of the Levenberg-Marquardt
levmar: optimization algorithm, usable also from C++, Matlab, Perl, Python,
levmar: Haskell and Tcl.
levmar:
levmar: http://users.ics.forth.gr/~lourakis/levmar/
levmar:
levmar:
levmar:
levmar: