1PORTNAME= metis 2PORTVERSION= 5.1.0 3PORTREVISION= 6 4CATEGORIES= math 5MASTER_SITES= http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/ 6 7MAINTAINER= ports@MidnightBSD.org 8COMMENT= Package for unstructured graph partitioning 9 10LICENSE= Apache-2.0 11 12CONFLICTS= metis4-4* metis-edf-[0-9]* 13 14USES= cmake:noninja compiler:c11 15 16OPTIONS_DEFINE= OPENMP SHARED STATIC DOCS 17 18OPENMP_DESC= multithreading via OpenMP 19#PROFILE_DESC= profiling libraries 20SHARED_DESC= shared library and dynamically-linked executables 21STATIC_DESC= libmetis archive 22 23OPTIONS_DEFAULT= SHARED STATIC 24 25BINS= cmpfillin gpmetis graphchk m2gmetis mpmetis ndmetis 26 27.include <bsd.mport.options.mk> 28 29.if ${PORT_OPTIONS:MOPENMP} 30CMAKE_ARGS+= -DOPENMP=1 31USE_GCC= any 32.endif 33 34.if ${PORT_OPTIONS:MSHARED} 35ALL_TARGET_SHARED= all 36CMAKE_ARGS_SHARED= -DSHARED=1 37PLIST_SUB+= SHARED="" 38.if ${ARCH} == "sparc64" 39SHARED_FLAGS?= -fPIC 40.else 41SHARED_FLAGS?= -fpic 42.endif 43SHLIB_MAJOR?= 2 44CMAKE_ARGS+= -DSHLIB_MAJOR="${SHLIB_MAJOR}" 45USE_LDCONFIG= yes 46WRKSRC_SHARED= ${WRKSRC}_SHARED 47INSTALL_WRKSRC_SHARED= ${WRKSRC_SHARED} 48.else 49PLIST_SUB+= SHARED="@comment " 50.endif 51 52.if ${PORT_OPTIONS:MSTATIC} 53ALL_TARGET_STATIC= metis 54PLIST_SUB+= STATIC="" 55WRKSRC_STATIC= ${WRKSRC} 56INSTALL_WRKSRC_STATIC= ${WRKSRC_STATIC}/libmetis 57.else 58PLIST_SUB+= STATIC="@comment " 59.endif 60 61pre-configure: 62 @${REINPLACE_CMD} -e "/^# Add compiler flags/,/^$$/d" \ 63 -e "/^check_include_file(execinfo.h/d" \ 64 ${WRKSRC}/GKlib/GKlibSystem.cmake 65 @${REINPLACE_CMD} -e "\|/home/karypis/|d" \ 66 ${WRKSRC}/programs/CMakeLists.txt 67.if ((${ARCH}=="amd64") || (${ARCH}=="aarch64") || (${ARCH}=="sparc64") || (${ARCH}=="powerpc64")) 68 @${REINPLACE_CMD}-e \ 69 's|IDXTYPEWIDTH 32|IDXTYPEWIDTH 64|' \ 70 ${WRKSRC}/include/metis.h 71.endif 72.for o in SHARED #PROFILE 73.if ${PORT_OPTIONS:M${o}} 74 @${CP} -R ${WRKSRC} ${WRKSRC_${o}} 75.endif 76.endfor 77 78do-configure: 79.for o in SHARED STATIC #PROFILE 80.if ${PORT_OPTIONS:M${o}} 81 @${PRINTF} "\n\nConfiguring ${o}:\n\n\n" 82 @cd ${WRKSRC_${o}}; ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} \ 83 ${CMAKE_ARGS:C|${CFLAGS}|& ${${o}_FLAGS}|g} ${CMAKE_ARGS_${o}} \ 84 -DGKLIB_PATH="${WRKSRC_${o}}/GKlib" ${CMAKE_SOURCE_PATH} 85.endif 86.endfor 87 88do-build: 89.for o in SHARED STATIC #PROFILE 90.if ${PORT_OPTIONS:M${o}} 91 @${PRINTF} "\n\nBuilding ${o}:\n\n\n" 92 @cd ${WRKSRC_${o}}; ${SETENV} ${MAKE_ENV} ${MAKE} ${_MAKE_JOBS} \ 93 ${MAKE_ARGS} ${ALL_TARGET_${o}} 94.endif 95.endfor 96.if ${PORT_OPTIONS:MSHARED} 97 @cd ${WRKSRC_SHARED}/programs; ${STRIP_CMD} ${BINS} 98 @cd ${WRKSRC_SHARED}/libmetis; ${STRIP_CMD} libmetis.so.* 99.endif 100.if ${PORT_OPTIONS:MSTATIC} 101 @cd ${WRKSRC_STATIC}/libmetis; ${STRIP_CMD} libmetis.a 102.endif 103 104check regression-test test: build 105 cd ${WRKSRC_SHARED}/graphs ; ../programs/gpmetis ./4elt.graph 5 106 107do-install: 108.for o in SHARED STATIC #PROFILE 109.if ${PORT_OPTIONS:M${o}} 110 @${PRINTF} "\n\nInstalling ${o}:\n\n\n" 111 @cd ${INSTALL_WRKSRC_${o}}; ${SETENV} ${MAKE_ENV} ${MAKE} ${_MAKE_JOBS} \ 112 ${MAKE_ARGS} ${FAKE_MAKEARGS} install 113.endif 114.endfor 115 116.if ${PORT_OPTIONS:MDOCS} 117PORTDOCS= manual.pdf 118 119post-install: 120 @${MKDIR} ${DOCSDIR} 121 ${INSTALL_DATA} ${WRKSRC}/manual/manual.pdf ${DOCSDIR} 122.endif 123 124.include <bsd.port.mk> 125