aboutsummaryrefslogtreecommitdiffstats
path: root/math/metis
diff options
context:
space:
mode:
authorbf <bf@FreeBSD.org>2012-07-09 19:11:44 +0800
committerbf <bf@FreeBSD.org>2012-07-09 19:11:44 +0800
commitdeed5e01fdd95315c9916898c4e4df970e927517 (patch)
treeb4e677a0a626001da519b1e8b0bf211afdcc1c7b /math/metis
parentdb274a3231bbeb8a0d981e20555844539d52d4b4 (diff)
downloadfreebsd-ports-gnome-deed5e01fdd95315c9916898c4e4df970e927517.tar.gz
freebsd-ports-gnome-deed5e01fdd95315c9916898c4e4df970e927517.tar.zst
freebsd-ports-gnome-deed5e01fdd95315c9916898c4e4df970e927517.zip
add math/metis4 to math/Makefile; update math/metis to 5.0.2; add appropriate
CONFLICTS, LATEST_LINK, and PORTSCOUT; adjust dependent ports; explicitly note the restrictive license of the metis ports (while here, append the MPI port to *DEPENDS in math/parmetis, rather than using an assignment) PR: 169578
Diffstat (limited to 'math/metis')
-rw-r--r--math/metis/Makefile137
-rw-r--r--math/metis/distinfo4
-rw-r--r--math/metis/files/patch-Makefile.in25
-rw-r--r--math/metis/files/patch-libmetis__CMakeLists.txt12
-rw-r--r--math/metis/pkg-descr6
-rw-r--r--math/metis/pkg-plist31
6 files changed, 134 insertions, 81 deletions
diff --git a/math/metis/Makefile b/math/metis/Makefile
index 2175f2209ac9..e24afd1e2f10 100644
--- a/math/metis/Makefile
+++ b/math/metis/Makefile
@@ -6,55 +6,132 @@
#
PORTNAME= metis
-PORTVERSION= 4.0.3
+PORTVERSION= 5.0.2
CATEGORIES= math
-MASTER_SITES= http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/ \
- http://www-users.cs.umn.edu/~karypis/metis/metis/files/
+MASTER_SITES= http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/
MAINTAINER= bf@FreeBSD.org
COMMENT= A package for unstructured graph partitioning
-CONFLICTS= metis-edf-[0-9]*
+LICENSE= METIS
+LICENSE_NAME= University of Minnesota METIS License
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+LICENSE_PERMS= auto-accept
-USE_LDCONFIG= yes
+CONFLICTS= metis-4* metis-edf-[0-9]*
-PROGRAMS= graphchk kmetis mesh2dual mesh2nodal \
- oemetis onmetis partnmesh partdmesh pmetis
+USE_CMAKE= yes
-.include <bsd.port.pre.mk>
+OPTIONS_DEFINE = OPENMP STATIC SHARED
+
+OPENMP_DESC= multithreading via OpenMP
+#PROFILE_DESC= profiling libraries
+SHARED_DESC= shared library and dynamically-linked executables
+STATIC_DESC= libmetis archive
+
+OPTIONS_DEFAULT= SHARED STATIC
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MOPENMP}
+.if !empty(CC:T:M*clang*)
+IGNORE = : clang does not support OpenMP. Disable the OPENMP option or\
+ use another compiler
+.endif
+CMAKE_ARGS+= -DOPENMP=1
+.endif
+
+#.if ${PORT_OPTIONS:MPROFILE}
+#.if !exists(/usr/lib/libc_p.a)
+#IGNORE = : you have enabled the PROFILE option, but have not installed \
+# the base system profiling libraries
+#.endif
+#ALL_TARGET_PROFILE= metis
+#CMAKE_ARGS_PROFILE= -DGPROF=1
+#PLIST_SUB+= PROFILE=""
+##PROFILE_FLAGS ?= -pg
+#WRKSRC_PROFILE = ${WRKSRC}_PROFILE
+#INSTALL_WRKSRC_PROFILE = ${WRKSRC_PROFILE}/libmetis
+#.else
+#PLIST_SUB+= PROFILE="@comment "
+#.endif
+
+.if ${PORT_OPTIONS:MSHARED}
+ALL_TARGET_SHARED= all
+CMAKE_ARGS_SHARED= -DSHARED=1
+PLIST_SUB+= SHARED=""
.if ${ARCH} == "sparc64"
-PICFLAG?= -fPIC
+SHARED_FLAGS?= -fPIC
+.else
+SHARED_FLAGS?= -fpic
+.endif
+SHLIB_MAJOR?= 2
+CMAKE_ARGS+= -DSHLIB_MAJOR="${SHLIB_MAJOR}"
+USE_LDCONFIG= yes
+WRKSRC_SHARED= ${WRKSRC}_SHARED
+INSTALL_WRKSRC_SHARED= ${WRKSRC_SHARED}
.else
-PICFLAG?= -fpic
+PLIST_SUB+= SHARED="@comment "
+.endif
+
+.if ${PORT_OPTIONS:MSTATIC}
+ALL_TARGET_STATIC= metis
+PLIST_SUB+= STATIC=""
+WRKSRC_STATIC= ${WRKSRC}
+INSTALL_WRKSRC_STATIC= ${WRKSRC_STATIC}/libmetis
+.else
+PLIST_SUB+= STATIC="@comment "
.endif
post-patch:
- ${CP} -R ${WRKSRC} ${WRKSRC}_SHARED
+ @${REINPLACE_CMD} -e "/^# Add compiler flags/,/^$$/d" \
+ -e "/^check_include_file(execinfo.h/d" \
+ ${WRKSRC}/GKlib/GKlibSystem.cmake
+ @${REINPLACE_CMD} -e "\|/home/karypis/|d" \
+ ${WRKSRC}/programs/CMakeLists.txt
+.for o in SHARED #PROFILE
+.if ${PORT_OPTIONS:M${o}}
+ @${CP} -R ${WRKSRC} ${WRKSRC_${o}}
+.endif
+.endfor
+
+do-configure:
+.for o in SHARED STATIC #PROFILE
+.if ${PORT_OPTIONS:M${o}}
+ @${PRINTF} "\n\nConfiguring ${o}:\n\n\n"
+ @cd ${WRKSRC_${o}}; ${SETENV} ${CMAKE_ENV} ${CMAKE_BIN} \
+ ${CMAKE_ARGS:C|${CFLAGS}|& ${${o}_FLAGS}|g} ${CMAKE_ARGS_${o}} \
+ -DGKLIB_PATH="${WRKSRC_${o}}/GKlib" ${CMAKE_SOURCE_PATH}
+.endif
+.endfor
do-build:
- @cd ${WRKSRC} ; ${SETENV} ${MAKE_ENV} \
- COPTIONS="${CFLAGS}" LDOPTIONS="${LDFLAGS}" \
- ${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS}
- @cd ${WRKSRC}_SHARED ; ${SETENV} ${MAKE_ENV} \
- COPTIONS="${CFLAGS} ${PICFLAG}" LDOPTIONS="${LDFLAGS} ${PICFLAG}" \
- ${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS} ; \
- ${LD} -Bshareable -o libmetis.so.1 -x -soname libmetis.so.1 \
- --whole-archive libmetis.a --no-whole-archive
+.for o in SHARED STATIC #PROFILE
+.if ${PORT_OPTIONS:M${o}}
+ @${PRINTF} "\n\nBuilding ${o}:\n\n\n"
+ @cd ${WRKSRC_${o}}; ${SETENV} ${MAKE_ENV} ${MAKE} ${_MAKE_JOBS} \
+ ${MAKE_ARGS} ${ALL_TARGET_${o}}
+.endif
+.endfor
check regression-test test: build
- cd ${WRKSRC}/Graphs ; ./mtest 4elt.graph
+ cd ${WRKSRC_SHARED}/graphs ; ../programs/gpmetis ./4elt.graph 5
do-install:
- cd ${WRKSRC} ; ${INSTALL_PROGRAM} ${PROGRAMS} ${PREFIX}/bin
- @${MKDIR} ${PREFIX}/include/metis
- ${INSTALL_DATA} ${WRKSRC}/Lib/*.h ${PREFIX}/include/metis
- ${INSTALL_DATA} ${WRKSRC}/libmetis.a ${PREFIX}/lib
- ${INSTALL_DATA} ${WRKSRC}_SHARED/libmetis.so.1 ${PREFIX}/lib
- ${LN} -sf libmetis.so.1 ${PREFIX}/lib/libmetis.so
-
-.ifndef NOPORTDOCS
+.for o in SHARED STATIC #PROFILE
+.if ${PORT_OPTIONS:M${o}}
+ @${PRINTF} "\n\nInstalling ${o}:\n\n\n"
+ @cd ${INSTALL_WRKSRC_${o}}; ${SETENV} ${MAKE_ENV} ${MAKE} ${_MAKE_JOBS} \
+ ${MAKE_ARGS} install
+.endif
+.endfor
+
+.if ${PORT_OPTIONS:MDOCS}
+PORTDOCS= manual.pdf
+
+post-install:
@${MKDIR} ${DOCSDIR}
- ${INSTALL_DATA} ${WRKSRC}/Doc/manual.ps ${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/manual/manual.pdf ${DOCSDIR}
.endif
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/math/metis/distinfo b/math/metis/distinfo
index 078e2e51ce5c..0f522bd21e19 100644
--- a/math/metis/distinfo
+++ b/math/metis/distinfo
@@ -1,2 +1,2 @@
-SHA256 (metis-4.0.3.tar.gz) = 5efa35de80703c1b2c4d0de080fafbcf4e0d363a21149a1ad2f96e0144841a55
-SIZE (metis-4.0.3.tar.gz) = 522624
+SHA256 (metis-5.0.2.tar.gz) = f79790676ca2ce3dfa9d5e2d74801e91d92415664ede2c2fc18fc49d4a161981
+SIZE (metis-5.0.2.tar.gz) = 4963532
diff --git a/math/metis/files/patch-Makefile.in b/math/metis/files/patch-Makefile.in
deleted file mode 100644
index 3cafe0fbbea9..000000000000
--- a/math/metis/files/patch-Makefile.in
+++ /dev/null
@@ -1,25 +0,0 @@
---- Makefile.in.orig 2006-08-31 08:22:01.000000000 -0400
-+++ Makefile.in 2012-03-15 12:48:32.000000000 -0400
-@@ -1,21 +1,16 @@
-
- # Which compiler to use
--CC = cc
-
- # What optimization level to use
--OPTFLAGS = -O2
-
- # What options to be used by the compiler
--COPTIONS =
-
- # What options to be used by the loader
--LDOPTIONS =
-
- # What archiving to use
--AR = ar rv
-+AR += ${ARFLAGS}
-
- # What to use for indexing the archive
--RANLIB = ranlib
- #RANLIB = ar -ts
- #RANLIB =
-
diff --git a/math/metis/files/patch-libmetis__CMakeLists.txt b/math/metis/files/patch-libmetis__CMakeLists.txt
new file mode 100644
index 000000000000..268dc32d564c
--- /dev/null
+++ b/math/metis/files/patch-libmetis__CMakeLists.txt
@@ -0,0 +1,12 @@
+--- libmetis/CMakeLists.txt.orig 2011-06-22 13:47:13.000000000 -0400
++++ libmetis/CMakeLists.txt 2012-07-07 11:05:47.000000000 -0400
+@@ -4,6 +4,9 @@
+ file(GLOB metis_sources *.c)
+ # Build libmetis.
+ add_library(metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
++if(SHARED)
++ set_target_properties(metis PROPERTIES SOVERSION ${SHLIB_MAJOR})
++endif()
+ if(UNIX)
+ target_link_libraries(metis m)
+ endif()
diff --git a/math/metis/pkg-descr b/math/metis/pkg-descr
index 5b4615380726..8323971f5309 100644
--- a/math/metis/pkg-descr
+++ b/math/metis/pkg-descr
@@ -1,10 +1,10 @@
METIS is a set of serial programs for partitioning graphs,
-partitioning finite element meshes, and producing fill reducing
+partitioning finite element meshes, and producing fill-reducing
orderings for sparse matrices. The algorithms implemented in METIS are
based on the multilevel recursive-bisection, multilevel k-way, and
multi-constraint partitioning schemes developed in our lab.
-METIS provides high quality partitions, is extremely fast, and
-produces low fill orderings.
+METIS provides high-quality partitions, is extremely fast, and
+produces low-fill orderings.
WWW: http://glaros.dtc.umn.edu/gkhome/metis/metis/overview
diff --git a/math/metis/pkg-plist b/math/metis/pkg-plist
index ebcb4534b1c8..9b65ce081b31 100644
--- a/math/metis/pkg-plist
+++ b/math/metis/pkg-plist
@@ -1,21 +1,10 @@
-bin/graphchk
-bin/kmetis
-bin/mesh2dual
-bin/mesh2nodal
-bin/oemetis
-bin/onmetis
-bin/partdmesh
-bin/partnmesh
-bin/pmetis
-lib/libmetis.a
-lib/libmetis.so
-lib/libmetis.so.1
-include/metis/defs.h
-include/metis/macros.h
-include/metis/metis.h
-include/metis/proto.h
-include/metis/rename.h
-include/metis/struct.h
-@dirrm include/metis
-%%PORTDOCS%%%%DOCSDIR%%/manual.ps
-%%PORTDOCS%%@dirrm %%DOCSDIR%%
+%%SHARED%%bin/cmpfillin
+%%SHARED%%bin/gpmetis
+%%SHARED%%bin/graphchk
+%%SHARED%%bin/m2gmetis
+%%SHARED%%bin/mpmetis
+%%SHARED%%bin/ndmetis
+%%SHARED%%include/metis.h
+%%STATIC%%lib/libmetis.a
+%%SHARED%%lib/libmetis.so
+%%SHARED%%lib/libmetis.so.2