1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-02-07 11:49:40 +00:00

- New port: math/abacus

ABACUS is a software system written in C++ that provides a framework for the
  implementation of branch-and-bound algorithms using linear programming
  relaxations. Cutting planes or columns can be generated dynamically
  (branch-and-cut, branch-and-price, branch-and-cut-and-price).

  WWW: http://www.informatik.uni-koeln.de/abacus/
This commit is contained in:
Pietro Cerutti 2013-09-05 16:20:13 +00:00
parent 191069cfbe
commit 183222e296
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=326410
5 changed files with 242 additions and 0 deletions

37
math/abacus/Makefile Normal file
View File

@ -0,0 +1,37 @@
# Created by: gahr
# $FreeBSD$
PORTNAME= abacus
DISTVERSION= 3.2betaU1
CATEGORIES= math
MASTER_SITES= http://www.informatik.uni-koeln.de/abacus/
MAINTAINER= gahr@FreeBSD.org
COMMENT= A Branch-And-CUt System
LICENSE= GPLv2
LIB_DEPENDS= Clp:${PORTSDIR}/math/coinmp
USE_GCC= 4.4+
USES= gmake perl5
USE_PERL5= build
USE_LDCONFIG= yes
ALL_TARGET= abacus
WRKSRC= ${WRKDIR}
post-patch:
${REINPLACE_CMD} -e '\
s|%%LOCALBASE%%|${LOCALBASE}|g; \
s|%%CXX%%|${CXX}|g; \
s|%%PERL5%%|${PERL5}|g' \
${WRKSRC}/Makefile
do-install:
${INSTALL_DATA} ${WRKSRC}/lib/linux20-gcc44/libabacus-osi.a ${PREFIX}/lib/libabacus-osi.a
${INSTALL_DATA} ${WRKSRC}/lib/linux20-gcc44/libabacus-osi.so ${PREFIX}/lib/libabacus-osi.so.1
${LN} -sf libabacus-osi.so.1 ${PREFIX}/lib/libabacus-osi.so
cd ${WRKSRC}/Include && ${COPYTREE_SHARE} abacus ${PREFIX}/include
.include <bsd.port.mk>

2
math/abacus/distinfo Normal file
View File

@ -0,0 +1,2 @@
SHA256 (abacus-3.2betaU1.tar.gz) = 149756f80de838f24af73ba30f0dfdac90495852dd40ceb6bec6043c78daf118
SIZE (abacus-3.2betaU1.tar.gz) = 426502

View File

@ -0,0 +1,74 @@
--- Makefile.orig 2012-01-06 14:29:04.000000000 +0100
+++ Makefile 2013-09-05 14:35:52.000000000 +0200
@@ -7,7 +7,7 @@
#######################################################################
# Path to coin-osi header files
- OSI_INCLUDE=/usr/include/coin
+ OSI_INCLUDE=%%LOCALBASE%%/include/coin
# Path to solver include directories - leave empty if the solver
# is not installed
CLP_PATH=$(OSI_INCLUDE)
@@ -40,7 +40,7 @@
#######################################################################
# gcc
-CCC = g++-4.4
+CCC = %%CXX%%
# add files to an archive
ARCHIVE = ar rc
@@ -48,10 +48,10 @@
# PRE_ARCHIVE is used to instantiate required templates (SGI)
PRE_ARCHIVE = true
-STRIP = strip -x
+STRIP = true
AWK = awk
-PERL = /usr/bin/perl
+PERL = %%PERL5%%
# Gnu cp
GCP = /bin/cp
@@ -141,7 +141,8 @@
DEPEND = $(OBJDIR)/Makefile.dep
CCFLAGS = $(ABACUS_INCLUDE) $(CCFLAG_SYS) $(CCFLAG_COMPILER) \
- $(CCFLAG_TEMPLATE) $(CCFLAG_PARALLEL) $(CCFLAG_DEBOPT)
+ $(CCFLAG_TEMPLATE) $(CCFLAG_PARALLEL) $(CCFLAG_DEBOPT) \
+ -fPIC
#######################################################################
#
@@ -523,15 +524,20 @@
$(ARCHIVE) $@ $(OSI_O)
# The basic ABACUS library
-abacus-base: $(LIBDIR)/stuff/abacus-base.a
+abacus-base-static: $(LIBDIR)/stuff/abacus-base.a
+abacus-base-shared: $(LIBDIR)/stuff/abacus-base.so
$(LIBDIR)/stuff/abacus-base.a: $(ABACUS_O)
rm -f $@
@$(PRE_ARCHIVE) $(ABACUS_O)
$(ARCHIVE) $@ $(ABACUS_O)
+$(LIBDIR)/stuff/abacus-base.so: $(ABACUS_O)
+ rm -f $@
+ $(CXX) -shared -o $@ $(ABACUS_O)
+
# Build the library distribution directory (lib and lib/stuff)
-lib-all: subdirs abacus-base lpif interface $(ADDITIONAL_LIB_ALL)
+lib-all: subdirs abacus-base-static abacus-base-shared lpif interface $(ADDITIONAL_LIB_ALL)
# Create a tar file containing all necessary stuff to compile ABACUS on
# a remote system.
@@ -571,6 +577,7 @@
abacus: lib-all
cp $(LIBDIR)/stuff/abacus-base.a $(LIBDIR)/libabacus-osi.a
+ cp $(LIBDIR)/stuff/abacus-base.so $(LIBDIR)/libabacus-osi.so
mkdir $(LIBDIR)/temp
cd $(LIBDIR)/temp; ar x ../stuff/interface-osi.a
find $(LIBDIR)/temp -name \*.o | xargs -n1 ar r $(LIBDIR)/libabacus-osi.a

24
math/abacus/pkg-descr Normal file
View File

@ -0,0 +1,24 @@
ABACUS is a software system written in C++ that provides a framework for the
implementation of branch-and-bound algorithms using linear programming
relaxations. Cutting planes or columns can be generated dynamically
(branch-and-cut, branch-and-price, branch-and-cut-and-price).
ABACUS allows the software developer to concentrate merely on the problem
specific parts, i.e., the separation of cutting planes, column generation, and
primal heuristics. ABACUS supports the Open Solver Interface (Osi) developed
by the COIN-OR (COmputational INfrastructure for Operations Research) project
which means that every solver supported by OSI can be used to solve the
relaxations.
Moreover, ABACUS provides a variety of general algorithmic concepts, e.g., a
list of different enumeration and branching strategies from which the best
alternative for the user's application can be chosen.
Finally, ABACUS provides many basic data structures and useful tools for the
implementation of such algorithms. It is designed both for general mixed
integer optimization problems and for combinatorial optimization problems. It
unifies cutting plane and column generation within one algorithm framework.
Simple reuse of code and the design of abstract data structures and algorithms
are met by object oriented programming modules.
WWW: http://www.informatik.uni-koeln.de/abacus/

105
math/abacus/pkg-plist Normal file
View File

@ -0,0 +1,105 @@
lib/libabacus-osi.a
lib/libabacus-osi.so
lib/libabacus-osi.so.1
include/abacus/abacusroot.h
include/abacus/active.h
include/abacus/active.inc
include/abacus/array.h
include/abacus/array.inc
include/abacus/bheap.h
include/abacus/bheap.inc
include/abacus/boundbranchrule.h
include/abacus/bprioqueue.h
include/abacus/bprioqueue.inc
include/abacus/branchrule.h
include/abacus/bstack.h
include/abacus/bstack.inc
include/abacus/buffer.h
include/abacus/buffer.inc
include/abacus/column.h
include/abacus/colvar.h
include/abacus/conbranchrule.h
include/abacus/conclass.h
include/abacus/constraint.h
include/abacus/convar.h
include/abacus/cowtimer.h
include/abacus/cputimer.h
include/abacus/csense.h
include/abacus/cutbuffer.h
include/abacus/cutbuffer.inc
include/abacus/debug.h
include/abacus/dictionary.h
include/abacus/dictionary.inc
include/abacus/dlist.h
include/abacus/dlist.inc
include/abacus/dlistitem.h
include/abacus/dlistitem.inc
include/abacus/dualbound.h
include/abacus/exceptions.h
include/abacus/fastset.h
include/abacus/fixcand.h
include/abacus/fsvarstat.h
include/abacus/global.h
include/abacus/hash.h
include/abacus/hash.inc
include/abacus/history.h
include/abacus/id.h
include/abacus/idmap.h
include/abacus/idmap.inc
include/abacus/infeascon.h
include/abacus/intset.h
include/abacus/list.h
include/abacus/list.inc
include/abacus/listitem.h
include/abacus/listitem.inc
include/abacus/lp.h
include/abacus/lpmaster.h
include/abacus/lpmasterosi.h
include/abacus/lpsolution.h
include/abacus/lpsolution.inc
include/abacus/lpsub.h
include/abacus/lpsubosi.h
include/abacus/lpvarstat.h
include/abacus/master.h
include/abacus/message.h
include/abacus/mtserver.h
include/abacus/nonduplpool.h
include/abacus/nonduplpool.inc
include/abacus/numcon.h
include/abacus/numvar.h
include/abacus/opensub.h
include/abacus/optsense.h
include/abacus/osiif.h
include/abacus/osiinclude.h
include/abacus/ostream.h
include/abacus/parmaster.h
include/abacus/pool.h
include/abacus/pool.inc
include/abacus/poolslot.h
include/abacus/poolslot.inc
include/abacus/poolslotref.h
include/abacus/poolslotref.inc
include/abacus/ring.h
include/abacus/ring.inc
include/abacus/row.h
include/abacus/rowcon.h
include/abacus/separator.h
include/abacus/separator.inc
include/abacus/set.h
include/abacus/setbranchrule.h
include/abacus/slackstat.h
include/abacus/sorter.h
include/abacus/sorter.inc
include/abacus/sparvec.h
include/abacus/srowcon.h
include/abacus/standardpool.h
include/abacus/standardpool.inc
include/abacus/string.h
include/abacus/sub.h
include/abacus/subserver.h
include/abacus/tailoff.h
include/abacus/timer.h
include/abacus/valbranchrule.h
include/abacus/variable.h
include/abacus/vartype.h
@dirrm include/abacus