academic/metis: Fix potential linking problems.

_LARGEFILE64_SOURCE should be unnecessary.  _FILE_OFFSET_BITS=64
does the real work to link to the 64-bit functions.

Don't abuse libtool's -version-info to make the library version
match the package version.  These do not necessarily correspond.

Remove the .la files; these are causing libtool to overlink.  This
should save you from needlessly rebuilding some dependent packages
in the future.

Signed-off-by: Kyle Guinn <elyk03@gmail.com>
This commit is contained in:
Kyle Guinn 2015-06-09 00:45:43 -05:00 committed by Willy Sudiarto Raharjo
parent 0008ce81ce
commit 2783a26a39
2 changed files with 45 additions and 16 deletions

View file

@ -4,7 +4,7 @@ new file mode 100644
+++ b/Doc/Makefile.am
@@ -0,0 +1,5 @@
+dist_noinst_DATA = manual.ps
+pdf_DATA = manual.pdf
+dist_pdf_DATA = manual.pdf
+
+%.pdf: %.ps
+ ps2pdf $<
@ -80,14 +80,14 @@ new file mode 100644
+lib_LTLIBRARIES = libmetis.la
+libmetis_la_SOURCES = $(SRC)
+libmetis_la_LIBADD = -lm
+libmetis_la_LDFLAGS = -no-undefined -version-info 4:3:0
+libmetis_la_LDFLAGS = -no-undefined -release $(PACKAGE_VERSION)
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,5 @@
+SUBDIRS = Lib Programs Graphs Test Doc
+EXTRA_DIST = CHANGES FILES INSTALL LICENSE VERSION metis.pc.in
+EXTRA_DIST = CHANGES FILES INSTALL LICENSE VERSION
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = metis.pc
@ -139,23 +139,32 @@ diff --git a/configure.ac b/configure.ac
new file mode 100644
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,31 @@
+AC_PREREQ([2.68])
+AC_INIT([METIS],[4.0.3],[karypis@cs.umn.edu])
@@ -0,0 +1,40 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
+AC_INIT([METIS],[4.0.3],[karypis@cs.umn.edu],[metis],[http://glaros.dtc.umn.edu/gkhome/metis/metis/overview])
+AC_CONFIG_SRCDIR([Lib/metis.h])
+AC_CONFIG_HEADER([config.h])
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([foreign])
+LT_INIT
+
+# Checks for programs.
+AC_PROG_INSTALL
+AC_PROG_CC
+
+LIBS_SAVED=$LIBS
+
+# Checks for libraries.
+AC_CHECK_LIB([m], [sqrt])
+
+# Checks for header files.
+AC_CHECK_HEADERS([malloc.h stdlib.h string.h strings.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+
+# Checks for library functions.
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_CHECK_FUNCS([pow sqrt strtol])
@ -175,7 +184,7 @@ diff --git a/metis.pc.in b/metis.pc.in
new file mode 100644
--- /dev/null
+++ b/metis.pc.in
@@ -0,0 +1,11 @@
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
@ -184,6 +193,7 @@ new file mode 100644
+Name: @PACKAGE_NAME@
+Description: Software for partitioning unstructured graphs and meshes
+Version: @PACKAGE_VERSION@
+URL: @PACKAGE_URL@
+Libs: -L${libdir} -lmetis
+Libs.private: -lm
+Cflags: -I${includedir}/metis

View file

@ -1,11 +1,30 @@
#!/bin/sh
# Slackware build script for METIS
# Written by Kyle Guinn <elyk03@gmail.com>
# Copyright 2015 Kyle Guinn <elyk03@gmail.com>, USA
# 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=metis
VERSION=${VERSION:-4.0.3}
BUILD=${BUILD:-2}
BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@ -38,7 +57,7 @@ else
fi
# Recommended by SuiteSparse
SLKCFLAGS="$SLKCFLAGS -fexceptions -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
SLKCFLAGS="$SLKCFLAGS -fexceptions -D_FILE_OFFSET_BITS=64"
set -e
@ -49,11 +68,7 @@ rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
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 {} \;
chmod -R u+w,go-w,a+rX-st .
patch -p1 < $CWD/autotoolize.diff
autoreconf -vif
@ -68,11 +83,15 @@ CFLAGS="$SLKCFLAGS" \
--infodir=/usr/info \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--enable-shared \
--disable-dependency-tracking \
--build=$ARCH-slackware-linux
make
make check
make install-strip DESTDIR=$PKG
find $PKG/usr/lib${LIBDIRSUFFIX} -name '*.la' -delete
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