diff options
author | bf <bf@FreeBSD.org> | 2012-07-09 19:11:44 +0800 |
---|---|---|
committer | bf <bf@FreeBSD.org> | 2012-07-09 19:11:44 +0800 |
commit | deed5e01fdd95315c9916898c4e4df970e927517 (patch) | |
tree | b4e677a0a626001da519b1e8b0bf211afdcc1c7b /math/metis | |
parent | db274a3231bbeb8a0d981e20555844539d52d4b4 (diff) | |
download | freebsd-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/Makefile | 137 | ||||
-rw-r--r-- | math/metis/distinfo | 4 | ||||
-rw-r--r-- | math/metis/files/patch-Makefile.in | 25 | ||||
-rw-r--r-- | math/metis/files/patch-libmetis__CMakeLists.txt | 12 | ||||
-rw-r--r-- | math/metis/pkg-descr | 6 | ||||
-rw-r--r-- | math/metis/pkg-plist | 31 |
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 |