ports/156541: [MAINTAINER] Upgrade gnat-aux to release version and add C++

John Marino freebsdml at marino.st
Thu Apr 21 06:00:21 UTC 2011


>Number:         156541
>Category:       ports
>Synopsis:       [MAINTAINER] Upgrade gnat-aux to release version and add C++
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Thu Apr 21 06:00:20 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     John Marino
>Release:        
>Organization:
>Environment:
>Description:
This patch provides the following:

1. Upgrades gnat-aux to mirror gcc 4.6.0 release (The current version is equivalent to pre-release candidate)

2. Adds an option to build C++, which is "on" by default.  A number of programs require both C and Ada and it's convenient to have the same compiler collection build those parts.

3. Additional testsuites were added (C and C++)

4. Dejagnu was demoted to an optional dependency.  If not testsuites are selected, which is the new default, then dejagnu is not considered a dependency.

5. gnat-aux no longer builds MAKEINFO which conflicts with other gcc ports.

6. The unnecessary libquadmath is no longer built.

7. The makefile now uses gcc's install-strip function instead of manually stripping the symbols after installation.


It seems that if gnat-aux already exists on the system and is being upgraded in place, an error regarding the gnat documentation will occur during the deinstallation phase.  It is caused by the prior version having enabled MAKEINFO which is now disabled.  To help users avoid this error, the following update to /usr/ports/UPDATING is recommended:

20110421:
  AFFECTS: users of lang/gnat-aux
  AUTHOR: John Marino <draco at marino.st>

  To avoid an error about GNAT documentation during the reinstallation phase
  it is suggested that gnat-aux be completely deinstalled and rebuilt.  For
  example, use:

    # cd /usr/ports/lang/gnat-aux
    # make deinstall clean
    # make install clean

>How-To-Repeat:

>Fix:
--- Makefile.orig	2011-04-03 13:32:52.000000000 +0200
+++ Makefile	2011-04-20 23:30:33.000000000 +0200
@@ -17,7 +17,6 @@
 LIB_DEPENDS=	gmp.10:${PORTSDIR}/math/gmp
 LIB_DEPENDS+=	mpfr.4:${PORTSDIR}/math/mpfr
 LIB_DEPENDS+=	mpc.2:${PORTSDIR}/math/mpc
-BUILD_DEPENDS=	dejagnu>=1.4:${PORTSDIR}/misc/dejagnu
 
 ONLY_FOR_ARCHES=	i386 amd64
 
@@ -30,9 +29,10 @@
 USE_LDCONFIG=		yes
 ALL_TARGET=		default
 
-SNAPSHOT=		20110107
+SNAPSHOT=		20110325
 GCC_BRANCH=		4.6
 GCC_POINT=		0
+LANGS=			c
 
 THREAD_MODEL=		posix
 INTENDED_COMPILER=	NATIVE
@@ -40,7 +40,14 @@
 BOOTSTRAP_TRIPLET=	NOT_SET
 FULL_GNATGCC=		NOT_SET
 
+OPTIONS=	ADA    "Build Ada language" on
+OPTIONS+=	CXX    "Build C++ language" on
+OPTIONS+=	TS_ADA "Enable Ada testsuite" off
+OPTIONS+=	TS_CXX "Enable C++ testsuite" off
+OPTIONS+=	TS_GCC "Enable GCC testsuite" off
+
 .include <bsd.port.pre.mk>
+.include <bsd.port.options.mk>
 
 .if ${ARCH} == "amd64"
 BLD_TARGET=		x86_64-aux-freebsd${OSREL}
@@ -63,8 +70,7 @@
 CONFIGURE_SCRIPT=	${GCC_WRKSRC}/configure
 REVFILE=		${GCC_WRKSRC}/gcc/REVISION
 LPATH=			lib/gcc/${BLD_TARGET}/${GCC_BRANCH}.${GCC_POINT}
-LEPATH=			libexec/gcc/${BLD_TARGET}/${GCC_BRANCH}.${GCC_POINT}
-LELIST=			cc1 collect2 gnat1 lto1
+LEPATH=			libexec/gcc/${BLD_TARGET}/${GCC_BRANCH}.${GCC_POINT}		
 MAN1=			gnatcpp.1 gnatgcc.1 gnatgcov.1
 MAN7=			fsf-funding.7 gfdl.7 gpl.7
 MAN1PREFIX=		${PREFIX}/share
@@ -92,17 +98,53 @@
 DISTFILES=${PORTNAME}-${SNAPSHOT}.tar.bz2 ${BOOTSTRAP_COMPILER}
 .endif
 
+###########
+##  Ada  ##
+###########
+
+.if defined(WITH_ADA)
+LANGS+=		ada
+.endif
+
+###########
+##  C++  ##
+###########
+
+.if defined(WITH_CXX)
+LANGS+=		c++
+MAN1+=		gnatg++.1
+LCXXPATH=	include/c++/${GCC_BRANCH}.${GCC_POINT}
+LSHRPATH=	share/gcc-${GCC_BRANCH}.${GCC_POINT}
+PLIST_SUB+=	CXX=""
+.else
+PLIST_SUB+=	CXX="@comment "
+.endif
+
+##################
+##  Testsuites  ##
+##################
+
+.if defined(WITH_TS_ADA) \
+ || defined(WITH_TS_CXX) \
+ || defined(WITH_TS_GCC)
+BUILD_DEPENDS=	dejagnu>=1.4:${PORTSDIR}/misc/dejagnu
+.endif
+
 # for port maintenance, uncomment to invoke "make makesum"
 # DISTFILES=${PORTNAME}-${SNAPSHOT}.tar.bz2 \
 #   gnat-aux-460.i386.freebsd.tar.bz2 \
 #   gnat-aux-460.x86_64.freebsd.tar.bz2
 
 # Establish Ada-aware compiler for use
-ADA_CONFIGURE_ENV=	CC=${FULL_GNATGCC} PATH=${FULL_PATH} CONFIG_SHELL=${SH}
+ADA_CONFIGURE_ENV=	CC=${FULL_GNATGCC}
+ADA_CONFIGURE_ENV+=	PATH=${FULL_PATH}
+ADA_CONFIGURE_ENV+=	CONFIG_SHELL=${SH}
+ADA_CONFIGURE_ENV+=	MAKEINFO=/usr/bin/false
 ADA_MAKE_ENV=		PATH=${FULL_PATH}
+ADA_MAKE_ENV+=		LD_LIBRARY_PATH=${WRKSRC}/gcc
 
 # The standard configuration options
-CONFIGURE_ARGS=		--enable-languages=c,ada
+CONFIGURE_ARGS=		--enable-languages=${LANGS:Q}
 CONFIGURE_ARGS+=	--build=${BLD_TARGET}
 CONFIGURE_ARGS+=	--program-prefix=gnat
 CONFIGURE_ARGS+=	--prefix=${PREFIX}
@@ -114,13 +156,12 @@
 CONFIGURE_ARGS+=	--enable-shared
 CONFIGURE_ARGS+=	--enable-threads=${THREAD_MODEL}
 CONFIGURE_ARGS+=	--disable-bootstrap
+CONFIGURE_ARGS+=	--disable-libquadmath
 CONFIGURE_ARGS+=	--disable-libmudflap
 CONFIGURE_ARGS+=	--disable-libgomp
 CONFIGURE_ARGS+=	--disable-libssp
 CONFIGURE_ARGS+=	--disable-nls
 
-MAKE_ARGS+=		MAKEINFOFLAGS="--no-split"
-
 post-extract:
 	# Personalize GNAT for each different machine
 	@${ECHO} "-=> GNAT AUX ${OS_LABEL4VERS}" > ${REVFILE}
@@ -151,14 +192,24 @@
 	cd ${WRKSRC} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} all
 
 test: build
+.if defined(WITH_TS_ADA)
 	cd ${WRKSRC} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} -sk check-ada
+.endif
+.if defined(WITH_TS_CXX)
+	cd ${WRKSRC} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} -sk check-c++
+	cd ${WRKSRC} && ${SETENV} ${ADA_MAKE_ENV} \
+	   ${GMAKE} -sk check-target-libstdc++-v3
+.endif
+.if defined(WITH_TS_GCC)
+	cd ${WRKSRC} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} -sk check-c
+.endif
 
 do-install:
-	cd ${WRKSRC} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} install
+	cd ${WRKSRC} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} install-strip
 
-post-install: strip-exec
+post-install:
 	${RM} -f ${WRKDIR}/PLIST.lib
-.for d in ${LPATH} ${LEPATH}
+.for d in ${LPATH} ${LEPATH} ${LCXXPATH} ${LSHRPATH}
 	cd ${PREFIX} ; ${FIND} $d \( -type f -or -type l \) | ${SORT} >> ${WRKDIR}/PLIST.lib
 	cd ${PREFIX} ; ${FIND} $d  -type d | ${SORT} -r | \
 	   ${SED} -e 's/^/@dirrm /g' >> ${WRKDIR}/PLIST.lib
@@ -167,13 +218,8 @@
 	${ECHO_CMD} "@unexec ${RMDIR} %D/lib/gcc                   2>/dev/null || true" >> ${WRKDIR}/PLIST.lib
 	${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc/${BLD_TARGET} 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib
 	${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc               2>/dev/null || true" >> ${WRKDIR}/PLIST.lib
+	${ECHO_CMD} "@unexec ${RMDIR} %D/include/c++               2>/dev/null || true" >> ${WRKDIR}/PLIST.lib
 
 	cd ${WRKDIR}; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
 
-strip-exec:
-	${STRIP_CMD} ${PREFIX}/bin/gnat*
-.for k in ${LELIST}
-	${STRIP_CMD} ${PREFIX}/${LEPATH}/${k}
-.endfor
-
 .include <bsd.port.post.mk>
--- pkg-plist.orig	2011-04-03 13:32:31.000000000 +0200
+++ pkg-plist	2011-04-20 07:29:15.000000000 +0200
@@ -1,10 +1,11 @@
- at comment $FreeBSD
 bin/gnat
 bin/gnatbind
 bin/gnatchop
 bin/gnatclean
+%%CXX%%bin/gnatc++
 bin/gnatcpp
 bin/gnatfind
+%%CXX%%bin/gnatg++
 bin/gnatgcc
 bin/gnatgcov
 bin/gnatkr
@@ -15,24 +16,19 @@
 bin/gnatprep
 bin/gnatxref
 bin/%%GNU_HOST%%-gcc-%%GCC_VER%%
+%%CXX%%bin/%%GNU_HOST%%-gnatc++
+%%CXX%%bin/%%GNU_HOST%%-gnatg++
 bin/%%GNU_HOST%%-gnatgcc
-share/info/cpp.info
-share/info/cppinternals.info
-share/info/dir
-share/info/gcc.info
-share/info/gccinstall.info
-share/info/gccint.info
-share/info/gnat-style.info
-share/info/gnat_rm.info
-share/info/gnat_ugn.info
-share/info/libquadmath.info
 lib/libgcc_s.so
 lib/libgcc_s.so.1
 lib/libiberty.a
-lib/libquadmath.la
-lib/libquadmath.a
-lib/libquadmath.so
-lib/libquadmath.so.0
+%%CXX%%lib/libstdc++.a
+%%CXX%%lib/libstdc++.la
+%%CXX%%lib/libstdc++.so
+%%CXX%%lib/libstdc++.so.6
+%%CXX%%lib/libstdc++.so.6-gdb.py
+%%CXX%%lib/libsupc++.a
+%%CXX%%lib/libsupc++.la
 @dirrmtry share/info
 @dirrmtry share/man/man1
 @dirrmtry share/man/man7
--- distinfo.orig	2011-04-03 13:32:23.000000000 +0200
+++ distinfo	2011-04-20 07:29:13.000000000 +0200
@@ -1,5 +1,5 @@
-SHA256 (gnat-aux-20110107.tar.bz2) = b686a639117a283e4659240439b95b446aada76825e352b12c5925918d3a8cab
-SIZE (gnat-aux-20110107.tar.bz2) = 23176092
+SHA256 (gnat-aux-20110325.tar.bz2) = 9d4e2e071cd88179d3553d105735afe0e5a67e9832d50c53c1d3dfe1af46daa5
+SIZE (gnat-aux-20110325.tar.bz2) = 26700051
 SHA256 (gnat-bootstrap.i386.freebsd.tar.bz2) = c38e1c960f651c3f248c1ef540b1df724058fa71c1d046af93ce975483abb645
 SIZE (gnat-bootstrap.i386.freebsd.tar.bz2) = 27973176
 SHA256 (gnat-bootstrap.x86_64.freebsd.tar.bz2) = c4abd6af1281785d47d99352e28e41b2a1455e25ff347eca0de5791cdede9ed8


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list