--- b/math/nauty/Makefile +++ b/math/nauty/Makefile @@ -1,8 +1,7 @@ # Created by: bremner@unb.ca PORTNAME= nauty -PORTVERSION= 27r1 -PORTREVISION= 3 +PORTVERSION= 27r3 CATEGORIES= math MASTER_SITES= https://users.cecs.anu.edu.au/~bdm/nauty/ DISTNAME= ${PORTNAME}${PORTVERSION} @@ -15,37 +14,56 @@ LICENSE= APACHE20 USES= gmake GNU_CONFIGURE= yes -CONFIGURE_ARGS= --enable-tls # math/libnormaliz requires nauty with tls +CONFIGURE_ARGS= --enable-tls # this makes nauty thread-safe, math/libnormaliz requires nauty with tls MAKEFILE= makefile +CFLAGS+= -pthread + TEST_TARGET= check -CFLAGS+= -fPIC +MAKE_ARGS= includedir=${PREFIX}/include/${PORTNAME} # place headers into a dedicated directory -OPTIONS_DEFINE= DOCS +OPTIONS_DEFINE= DOCS NATIVE -post-build: - @cd ${WRKSRC} && ${CC} ${LDFLAGS} -shared -o libnauty.so \ - gtnauty.o gtools.o gutil1.o gutil2.o naugraph.o naugroup.o naurng.o nausparse.o nautil.o nautinv.o \ - naututil.o nauty.o nautycliquer.o schreier.o traces.o +NATIVE_DESC= Build with native optimizations (-march=native, etc) +NATIVE_CONFIGURE_ON= --disable-generic --enable-clz --enable-popcnt +NATIVE_CONFIGURE_OFF= --enable-generic --disable-clz --disable-popcnt -do-install: - ${MKDIR} ${STAGEDIR}${PREFIX}/include/nauty -.for h in nauty.h nautycliquer.h nausparse.h traces.h naugroup.h - ${INSTALL_DATA} ${WRKSRC}/${h} ${STAGEDIR}${PREFIX}/include/nauty -.endfor - # Do not use ${INSTALL_LIB} to strip the library! - ${INSTALL_DATA} ${WRKSRC}/nauty.a ${STAGEDIR}${PREFIX}/lib/libnauty.a - ${INSTALL_LIB} ${WRKSRC}/libnauty.so ${STAGEDIR}${PREFIX}/lib -.for e in \ - NRswitchg addedgeg amtog assembleg biplabg catg complg converseg copyg countg \ - cubhamg deledgeg delptg directg dreadnaut dretodot dretog edgetransg genbg genbgL \ - geng gengL genquarticg genrang genspecialg gentourng gentreeg hamheuristic labelg linegraphg \ - listg multig newedgeg pickg planarg ranlabg shortg showg subdivideg twohamg \ - underlyingg vcolg watercluster2 - ${INSTALL_PROGRAM} ${WRKSRC}/${e} ${STAGEDIR}${PREFIX}/bin +post-build: # build shared libraries: based on how static libraries are created + # rebuild .o files with -fPIC + @cd ${WRKSRC} ; \ + objects=$$(ls *.o) ; \ + ${RM} *.o ; \ + ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${_MAKE_JOBS} ${MAKE_ARGS} FREEBSD_EXTRA_CFLAGS="-fPIC" $${objects} + # build libraries + cd ${WRKSRC} && ${CC} ${LDFLAGS} -shared -o libnauty.so -Wl,-soname,libnauty.so \ + nauty.o nautil.o nausparse.o naugraph.o schreier.o naurng.o traces.o gtools.o naututil.o \ + nautinv.o gutil1.o gutil2.o gtnauty.o naugroup.o \ + nautycliquer.o + cd ${WRKSRC} && ${CC} ${LDFLAGS} -shared -o libnauty1.so -Wl,-soname,libnauty1.so \ + nauty1.o nautil1.o nausparse.o naugraph1.o schreier.o naurng.o traces.o gtools.o naututil1.o \ + nautinv1.o gutil1.o gutil2.o gtnauty.o naugroup.o nautycliquer.o + cd ${WRKSRC} && ${CC} ${LDFLAGS} -shared -o libnautyW.so -Wl,-soname,libnautyW.so \ + nautyW.o nautilW.o nausparseW.o naugraphW.o schreierW.o naurng.o traces.o gtoolsW.o naututilW.o \ + nautinvW.o gutil1W.o gutil2W.o gtnautyW.o naugroupW.o nautycliquerW.o + cd ${WRKSRC} && ${CC} ${LDFLAGS} -shared -o libnautyW1.so -Wl,-soname,libnautyW1.so \ + nautyW1.o nautilW1.o nausparseW.o naugraphW1.o schreierW.o naurng.o traces.o gtoolsW.o naututilW1.o \ + nautinvW1.o gutil1W1.o gutil2W1.o gtnautyW1.o naugroupW.o nautycliquerW.o + cd ${WRKSRC} && ${CC} ${LDFLAGS} -shared -o libnautyL.so -Wl,-soname,libnautyL.so \ + nautyL.o nautilL.o nausparseL.o naugraphL.o schreierL.o naurng.o traces.o gtoolsL.o naututilL.o \ + nautinvL.o gutil1L.o gutil2L.o gtnautyL.o naugroupL.o nautycliquerL.o + cd ${WRKSRC} && ${CC} ${LDFLAGS} -shared -o libnautyL1.so -Wl,-soname,libnautyL1.so \ + nautyL1.o nautilL1.o nausparseL.o naugraphL1.o schreierL.o naurng.o traces.o gtoolsL.o naututilL1.o \ + nautinvL1.o gutil1L1.o gutil2L1.o gtnautyL1.o naugroupL.o nautycliquerL.o + +post-install: + # install shared libraries +.for l in libnauty.so libnauty1.so libnautyW.so libnautyW1.so libnautyL.so libnautyL1.so + ${INSTALL_LIB} ${WRKSRC}/${l} ${STAGEDIR}${PREFIX}/lib .endfor + # strip executables + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/* do-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} --- b/math/nauty/distinfo +++ b/math/nauty/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1601648114 -SHA256 (nauty27r1.tar.gz) = 76ca5d196e402c83a987f90c28ff706bcc5a333bb4a8fbb979a62d3b99c34e77 -SIZE (nauty27r1.tar.gz) = 3428473 +TIMESTAMP = 1630687243 +SHA256 (nauty27r3.tar.gz) = 73d41f4697be50137aa09caa050d245ed2fa834a538befcc631d34652cd89b53 +SIZE (nauty27r3.tar.gz) = 1724704 --- /dev/null +++ b/math/nauty/files/patch-makefile.in @@ -0,0 +1,13 @@ +- allow to add additional CFLAGS to build shared libraries + +--- makefile.in.orig 2021-09-03 17:45:35 UTC ++++ makefile.in +@@ -3,7 +3,7 @@ + + SHELL=@SHELL@ + CC=@CC@ +-CFLAGS=@CFLAGS@ @MORECFLAGS@ ++CFLAGS=@CFLAGS@ @MORECFLAGS@ ${FREEBSD_EXTRA_CFLAGS} + SAFECFLAGS=@CFLAGS@ + LDFLAGS=@LDFLAGS@ @LIBS@ + THREADLIB=@threadlib@ --- b/math/nauty/pkg-plist +++ b/math/nauty/pkg-plist @@ -30,6 +30,7 @@ bin/labelg bin/linegraphg bin/listg bin/multig +bin/nbrhoodg bin/newedgeg bin/pickg bin/planarg @@ -41,11 +42,30 @@ bin/twohamg bin/underlyingg bin/vcolg bin/watercluster2 +include/nauty/gtools.h +include/nauty/gutils.h include/nauty/naugroup.h +include/nauty/naugstrings.h +include/nauty/naurng.h include/nauty/nausparse.h +include/nauty/nautinv.h +include/nauty/naututil.h include/nauty/nauty.h include/nauty/nautycliquer.h +include/nauty/planarity.h +include/nauty/quarticirred28.h +include/nauty/schreier.h include/nauty/traces.h lib/libnauty.a lib/libnauty.so +lib/libnauty1.a +lib/libnauty1.so +lib/libnautyL.a +lib/libnautyL.so +lib/libnautyL1.a +lib/libnautyL1.so +lib/libnautyW.a +lib/libnautyW.so +lib/libnautyW1.a +lib/libnautyW1.so %%PORTDOCS%%%%DOCSDIR%%/nug27.pdf