aboutsummaryrefslogtreecommitdiff
path: root/math/abacus
diff options
context:
space:
mode:
authorPietro Cerutti <gahr@FreeBSD.org>2013-09-05 16:20:13 +0000
committerPietro Cerutti <gahr@FreeBSD.org>2013-09-05 16:20:13 +0000
commit183222e2967913fa3efdd12089223486bcbef7cc (patch)
tree4ec7aec69d944ad7b52808449e6ac61e7f42cd12 /math/abacus
parent191069cfbed5b98eba647cffbdb21c5745d8124e (diff)
downloadports-183222e2967913fa3efdd12089223486bcbef7cc.tar.gz
ports-183222e2967913fa3efdd12089223486bcbef7cc.zip
- 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/
Notes
Notes: svn path=/head/; revision=326410
Diffstat (limited to 'math/abacus')
-rw-r--r--math/abacus/Makefile37
-rw-r--r--math/abacus/distinfo2
-rw-r--r--math/abacus/files/patch-Makefile74
-rw-r--r--math/abacus/pkg-descr24
-rw-r--r--math/abacus/pkg-plist105
5 files changed, 242 insertions, 0 deletions
diff --git a/math/abacus/Makefile b/math/abacus/Makefile
new file mode 100644
index 000000000000..f12827fc76c8
--- /dev/null
+++ b/math/abacus/Makefile
@@ -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>
diff --git a/math/abacus/distinfo b/math/abacus/distinfo
new file mode 100644
index 000000000000..a3d36479b773
--- /dev/null
+++ b/math/abacus/distinfo
@@ -0,0 +1,2 @@
+SHA256 (abacus-3.2betaU1.tar.gz) = 149756f80de838f24af73ba30f0dfdac90495852dd40ceb6bec6043c78daf118
+SIZE (abacus-3.2betaU1.tar.gz) = 426502
diff --git a/math/abacus/files/patch-Makefile b/math/abacus/files/patch-Makefile
new file mode 100644
index 000000000000..914de626f6dc
--- /dev/null
+++ b/math/abacus/files/patch-Makefile
@@ -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
diff --git a/math/abacus/pkg-descr b/math/abacus/pkg-descr
new file mode 100644
index 000000000000..68e34500fb0b
--- /dev/null
+++ b/math/abacus/pkg-descr
@@ -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/
diff --git a/math/abacus/pkg-plist b/math/abacus/pkg-plist
new file mode 100644
index 000000000000..5e86c8a01dee
--- /dev/null
+++ b/math/abacus/pkg-plist
@@ -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