You are not logged in.

#1 2017-11-21 16:05:52

tarberd
Member
From: Florianopolis, Brasil
Registered: 2017-11-17
Posts: 2
Website

Making coin-or-lemon suport static and shared objs

I can't do it, simply can't.

pkgname=coin-or-lemon
pkgver=1.3.1
pkgrel=2
pkgdesc="A C++ template library providing many common graph algorithms"
arch=('i686' 'x86_64')
url="http://lemon.cs.elte.hu/trac/lemon"
license=('BSD')
groups=('coin-or')
depends=('coin-or-cbc' 'coin-or-clp' 'glpk')
makedepends=('cmake')
source=("http://lemon.cs.elte.hu/pub/sources/lemon-${pkgver}.tar.gz")
sha1sums=('b23d64c21b4b9088ad51e85316964a4a4138f82a')

build() {
  cd "$srcdir/lemon-$pkgver"
  mkdir -p build_static && cd build_static
  cmake \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_BUILD_TYPE=Release \
    -DLEMON_ENABLE_GLPK=YES -DLEMON_ENABLE_ILOG=NO -DLEMON_ENABLE_COIN=YES \
    -DLEMON_ENABLE_SOPLEX=no -DGHOSTSCRIPT_EXECUTABLE= \
    -DDOXYGEN_EXECUTABLE= -DPYTHON_EXECUTABLE= .. 
  make
  cd ..
  mkdir -p build_shared && cd build_shared
  cmake \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_SHARED_LIBS=TRUE \
    -DLEMON_ENABLE_GLPK=YES -DLEMON_ENABLE_ILOG=NO -DLEMON_ENABLE_COIN=YES \
    -DLEMON_ENABLE_SOPLEX=no -DGHOSTSCRIPT_EXECUTABLE= \
    -DDOXYGEN_EXECUTABLE= -DPYTHON_EXECUTABLE= .. 
  make
  cd ..
}

package() {
  cd "$srcdir/lemon-$pkgver/build_static"
  mkdir install
  make DESTDIR="install" install
  cd "../build_shared"
  mkdir install
  make DESTDIR="install" install

  cp -r "$srcdir/lemon-$pkgver/build_shared/install/." "$pkgdir"
  cp "$srcdir/lemon-$pkgver/build_static/install/usr/lib/libemon.a" "$pkgdir/usr/lib/"
}

So, I'm triyng to suport both versions on the same package, but what happens is that the finished package aways have only the shared objects.
If I can do it out of the PKGBUILD, why can't I do it with the script ? Am I doing something wrong?


Computer science student lover of the here and now!

Offline

#2 2017-11-21 21:08:55

tarberd
Member
From: Florianopolis, Brasil
Registered: 2017-11-17
Posts: 2
Website

Re: Making coin-or-lemon suport static and shared objs

I manage to solve it, makepkg was deleting all static libs. I was missing options=(staticlibs)

Here is the final PKGBUILD

# maintainer Bernardo Ferrari Mendonca <bernardo.mferrari@gmail.com>
pkgname=coin-or-lemon
pkgver=1.3.1
pkgrel=3
pkgdesc="A C++ template library providing many common graph algorithms"
arch=('i686' 'x86_64')
url="http://lemon.cs.elte.hu/trac/lemon"
license=('BSD')
groups=('coin-or')
depends=('coin-or-cbc' 'coin-or-clp' 'glpk')
makedepends=('cmake')
options=(staticlibs)
source=("http://lemon.cs.elte.hu/pub/sources/lemon-${pkgver}.tar.gz")
sha1sums=('b23d64c21b4b9088ad51e85316964a4a4138f82a')

build() {
  cd "$srcdir/lemon-$pkgver"
  mkdir -p build_static && cd build_static
  cmake \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_BUILD_TYPE=Release \
    -DLEMON_ENABLE_GLPK=YES -DLEMON_ENABLE_ILOG=NO -DLEMON_ENABLE_COIN=YES \
    -DLEMON_ENABLE_SOPLEX=no -DGHOSTSCRIPT_EXECUTABLE= \
    -DDOXYGEN_EXECUTABLE= -DPYTHON_EXECUTABLE= .. 
  make
  cd ..
  mkdir -p build_shared && cd build_shared
  cmake \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_SHARED_LIBS=TRUE \
    -DLEMON_ENABLE_GLPK=YES -DLEMON_ENABLE_ILOG=NO -DLEMON_ENABLE_COIN=YES \
    -DLEMON_ENABLE_SOPLEX=no -DGHOSTSCRIPT_EXECUTABLE= \
    -DDOXYGEN_EXECUTABLE= -DPYTHON_EXECUTABLE= .. 
  make
  cd ..
}

package() {
  cd "$srcdir/lemon-$pkgver/build_static"
  make DESTDIR="$pkgdir" install
  cd "$srcdir/lemon-$pkgver/build_shared"
  make DESTDIR="$pkgdir" install
}

Computer science student lover of the here and now!

Offline

Board footer

Powered by FluxBB