Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Jul 2012 22:44:34 +0000 (UTC)
From:      Xin LI <delphij@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r301416 - in head/security/cryptopp: . files
Message-ID:  <201207232244.q6NMiYrn057740@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: delphij
Date: Mon Jul 23 22:44:33 2012
New Revision: 301416
URL: http://svn.freebsd.org/changeset/ports/301416

Log:
  Make it possible to build and install shared library of crypto++, and
  convert to use OPTIONSng [1].
  
  While I'm there, also add an option to build with GCC 4.6.x and newer
  binutils, which enables use of AES-NI.
  
  PR:		ports/170045
  Submitted by:	Michael Gmelin <freebsd grem.de>

Modified:
  head/security/cryptopp/Makefile
  head/security/cryptopp/files/patch-GNUmakefile
  head/security/cryptopp/pkg-plist

Modified: head/security/cryptopp/Makefile
==============================================================================
--- head/security/cryptopp/Makefile	Mon Jul 23 21:19:52 2012	(r301415)
+++ head/security/cryptopp/Makefile	Mon Jul 23 22:44:33 2012	(r301416)
@@ -7,7 +7,7 @@
 
 PORTNAME=		cryptopp
 PORTVERSION=		5.6.1
-PORTREVISION=		1
+PORTREVISION=		2
 CATEGORIES=		security
 MASTER_SITES=		SF \
 			http://www.cryptopp.com/
@@ -16,6 +16,13 @@ DISTNAME=		cryptopp${PORTVERSION:S/.//g}
 MAINTAINER=		delphij@FreeBSD.org
 COMMENT=		A free C++ class library of Cryptographic Primitives
 
+OPTIONS_DEFINE=		DEBUG DOCS GCC46 STATIC THREADS
+OPTIONS_DEFAULT=	STATIC THREADS
+STATIC_DESC=		Build static version only (no shared libs)
+GCC46_DESC=		Build with GCC 4.6+
+
+.include <bsd.port.options.mk>
+
 NO_WRKSUBDIR=		yes
 USE_ZIP=		yes
 EXTRACT_BEFORE_ARGS=	-aq
@@ -23,8 +30,30 @@ USE_GMAKE=		yes
 MAKE_JOBS_SAFE=		yes
 MAKEFILE=		GNUmakefile
 
-.if !defined(WITH_DEBUG)
-CXXFLAGS+=	-DNDEBUG
+LIBVERSION=		0
+PLIST_SUB+=		LIBVERSION=${LIBVERSION}
+PLIST_SUB+=		PORTVERSION=${PORTVERSION}
+
+.if !${PORT_OPTIONS:MDEBUG}
+CXXFLAGS+=		-DNDEBUG
+.endif
+
+.if ${PORT_OPTIONS:MGCC46}
+USE_GCC=		4.6+
+.endif
+
+.if ${PORT_OPTIONS:MSTATIC}
+PLIST_SUB+=		DYNAMIC_ENABLED="@comment "
+.else
+PLIST_SUB+=		DYNAMIC_ENABLED=""
+MAKE_ARGS=		all libcryptopp.so
+CXXFLAGS+=		-fPIC
+USE_LDCONFIG=		yes
+.endif
+
+.if ${PORT_OPTIONS:MTHREADS}
+CXXFLAGS+=		${PTHREAD_CFLAGS}
+LDFLAGS+=		${PTHREAD_LIBS}
 .endif
 
 do-install:
@@ -36,7 +65,12 @@ do-install:
 			-and -not -name 'resource.h'`; do \
 		${INSTALL_DATA} $$i ${PREFIX}/include/cryptopp; \
 	done)
-.if !defined(NOPORTDOCS)
+.if !${PORT_OPTIONS:MSTATIC}
+	${INSTALL_LIB} ${WRKSRC}/libcryptopp.so ${PREFIX}/lib/libcryptopp.so.${PORTVERSION}
+	${LN} -fs libcryptopp.so.${PORTVERSION} ${PREFIX}/lib/libcryptopp.so.${LIBVERSION}
+	${LN} -fs libcryptopp.so.${LIBVERSION} ${PREFIX}/lib/libcryptopp.so
+.endif
+.if ${PORT_OPTIONS:MDOCS}
 	${MKDIR} ${PREFIX}/share/doc/cryptopp
 	${CP} ${WRKSRC}/Readme.txt ${PREFIX}/share/doc/cryptopp/README
 	${CP} ${WRKSRC}/License.txt ${PREFIX}/share/doc/cryptopp/License

Modified: head/security/cryptopp/files/patch-GNUmakefile
==============================================================================
--- head/security/cryptopp/files/patch-GNUmakefile	Mon Jul 23 21:19:52 2012	(r301415)
+++ head/security/cryptopp/files/patch-GNUmakefile	Mon Jul 23 22:44:33 2012	(r301416)
@@ -1,5 +1,5 @@
 --- ./GNUmakefile.orig	2010-08-09 14:22:42.000000000 -0700
-+++ ./GNUmakefile	2011-01-27 12:43:08.905856979 -0800
++++ ./GNUmakefile	2012-07-21 03:14:01.000000000 +0200
 @@ -1,4 +1,4 @@
 -CXXFLAGS = -DNDEBUG -g -O2
 +#CXXFLAGS = -DNDEBUG -g -O2
@@ -19,3 +19,12 @@
  ISMINGW = $(shell $(CXX) --version 2>&1 | $(EGREP) -c "mingw")
  
  ifneq ($(GCC42_OR_LATER),0)
+@@ -151,7 +151,7 @@
+	$(RANLIB) $@
+ 
+ libcryptopp.so: $(LIBOBJS)
+-	$(CXX) -shared -o $@ $(LIBOBJS)
++	$(CXX) -shared -o $@ $(CXXFLAGS) $(LDFLAGS) $(LIBOBJS)
+ 
+ cryptest.exe: libcryptopp.a $(TESTOBJS)
+	$(CXX) -o $@ $(CXXFLAGS) $(TESTOBJS) -L. -lcryptopp $(LDFLAGS) $(LDLIBS)

Modified: head/security/cryptopp/pkg-plist
==============================================================================
--- head/security/cryptopp/pkg-plist	Mon Jul 23 21:19:52 2012	(r301415)
+++ head/security/cryptopp/pkg-plist	Mon Jul 23 22:44:33 2012	(r301416)
@@ -132,6 +132,9 @@ include/cryptopp/zdeflate.h
 include/cryptopp/zinflate.h
 include/cryptopp/zlib.h
 lib/libcryptopp.a
+%%DYNAMIC_ENABLED%%lib/libcryptopp.so
+%%DYNAMIC_ENABLED%%lib/libcryptopp.so.%%LIBVERSION%%
+%%DYNAMIC_ENABLED%%lib/libcryptopp.so.%%PORTVERSION%%
 @dirrm include/cryptopp
 %%PORTDOCS%%%%DOCSDIR%%/README
 %%PORTDOCS%%%%DOCSDIR%%/License



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201207232244.q6NMiYrn057740>