Date: Sun, 9 Jul 2006 23:41:48 +0200 (CEST) From: Karel Miklav <karel@lovetemple.net> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/99993: New port: lang/gnat-gcc34 GNU Ada compiler Message-ID: <200607092141.k69LfmZk097461@tp.unitedpeople.info> Resent-Message-ID: <200607100430.k6A4U9lJ029168@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 99993 >Category: ports >Synopsis: New port: lang/gnat-gcc34 GNU Ada compiler >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Jul 10 04:30:09 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Karel Miklav >Release: FreeBSD 6.1-STABLE i386 >Organization: >Environment: System: FreeBSD tp.unitedpeople.info 6.1-STABLE FreeBSD 6.1-STABLE #1: Fri Jun 16 19:08:52 CEST 2006 lino@tp.unitedpeople.info:/usr/obj/usr/src/sys/TPX40 i386 >Description: GCC version of the GNAT Ada compiler >How-To-Repeat: >Fix: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # gnat-gcc34 # gnat-gcc34/files # gnat-gcc34/files/patch-gengtype-yacc.y # gnat-gcc34/Makefile # gnat-gcc34/distinfo # gnat-gcc34/pkg-descr # gnat-gcc34/pkg-plist # echo c - gnat-gcc34 mkdir -p gnat-gcc34 > /dev/null 2>&1 echo c - gnat-gcc34/files mkdir -p gnat-gcc34/files > /dev/null 2>&1 echo x - gnat-gcc34/files/patch-gengtype-yacc.y sed 's/^X//' >gnat-gcc34/files/patch-gengtype-yacc.y << 'END-of-gnat-gcc34/files/patch-gengtype-yacc.y' X--- gcc/gengtype-yacc.y.orig Fri Sep 20 00:33:24 2002 X+++ gcc/gengtype-yacc.y Tue Apr 22 09:11:27 2003 X@@ -24,6 +24,9 @@ X #include "system.h" X #include "gengtype.h" X #define YYERROR_VERBOSE X+ X+#define malloc xmalloc X+#define realloc xrealloc X %} X X %union { END-of-gnat-gcc34/files/patch-gengtype-yacc.y echo x - gnat-gcc34/Makefile sed 's/^X//' >gnat-gcc34/Makefile << 'END-of-gnat-gcc34/Makefile' X# ex:ts=4 X# Ports collection makefile for: gnat-gcc X# Date created: 22 Jun 2006 X# Whom: Karel Miklav <karel@lovetemple.net> X# X# $FreeBSD$ X# X XPORTNAME= gnat-gcc XPORTVERSION= 3.4.6 XCATEGORIES= lang XMASTER_SITES= ${MASTER_SITE_GCC} XMASTER_SITE_SUBDIR= releases/gcc-${PORTVERSION} XDISTFILES= gcc-core-${PORTVERSION}.tar.bz2 \ X gcc-ada-${PORTVERSION}.tar.bz2 X XMAINTAINER= karel@lovetemple.net XCOMMENT= The GNU Ada Compiler system X XUSE_GMAKE= yes XUSE_PERL5= yes XUSE_BISON= yes X XCONFLICTS= gcc-3.4.* XWRKSRC= ${WRKDIR}/gcc-${PORTVERSION} X XMAN1= cpp${gcc_suffix}.1 \ X gcc${gcc_suffix}.1 \ X gcov${gcc_suffix}.1 XMAN7= fsf-funding.7 gfdl.7 gpl.7 XNOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 XINFO= gcc${gcc_suffix}/cpp \ X gcc${gcc_suffix}/cppinternals \ X gcc${gcc_suffix}/gcc \ X gcc${gcc_suffix}/gccinstall \ X gcc${gcc_suffix}/gccint \ X gcc${gcc_suffix}/gnat-style \ X gcc${gcc_suffix}/gnat_rm \ X gcc${gcc_suffix}/gnat_ugn_unw X X.include <bsd.port.pre.mk> X Xgcc_suffix= 34 Xtarglib= ${PREFIX}/lib/gcc/${CONFIGURE_TARGET}/${PORTVERSION} X XPATCH_WRKSRC= ${WRKSRC} X XGNU_CONFIGURE= yes XCONFIGURE_WRKSRC= ${WRKDIR}/build XCONFIGURE_SCRIPT= ../${WRKSRC:C/${WRKDIR}\///}/configure XCONFIGURE_ARGS= --enable-languages="c,ada" \ X --disable-nls \ X --with-system-zlib \ X --with-libiconv-prefix=${LOCALBASE} \ X --enable-threads=posix \ X --program-suffix=${gcc_suffix} \ X --bindir=${PREFIX}/bin/gcc${gcc_suffix} \ X --libdir=${targlib} \ X --infodir=${PREFIX}/${INFO_PATH}/gcc${gcc_suffix} X XBUILD_WRKSRC= ${WRKDIR}/build X XINSTALL_WRKSRC= ${WRKDIR}/build XINSTALLS_SHLIB= yes X XUSE_LDCONFIG= ${targlib} X XPLIST_SUB= GCC_VER=${PORTVERSION} \ X GNU_HOST=${CONFIGURE_TARGET} \ X SUFFIX=${gcc_suffix} X X.if ${ARCH} == "amd64" XCONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL} X.elif ${ARCH} == alpha XUSE_GCC= 3.3+ X.endif X X# You need a compiler who calls an existing GNAT compiler (3.15 or greater). X# By default, we'll look for one in the path. If we can't find one, we'll X# fetch a distfile containing a minimum (still pretty large) compiler toolset X# and use that to build. Xgnat_gcc!= if ${WHICH} adagcc > /dev/null 2>&1; then \ X ${ECHO_CMD} "`${WHICH} adagcc`"; \ X else \ X ${ECHO_CMD} ""; \ X fi Xgnat_bind!= if ${WHICH} gnatbind > /dev/null 2>&1; then \ X ${ECHO_CMD} "`${WHICH} gnatbind`"; \ X else \ X ${ECHO_CMD} ""; \ X fi X.if empty(gnat_gcc) Xgnat_gcc!= if ${WHICH} gnatgcc > /dev/null 2>&1; then \ X ${ECHO_CMD} "`${WHICH} gnatgcc`"; \ X else \ X ${ECHO_CMD} ""; \ X fi X.endif X X.if !empty(gnat_gcc) && !empty(gnat_bind) Xbootstrap_path!= if [ -x ${gnat_gcc} -a -x ${gnat_bind} ]; then \ X ${ECHO_CMD} "$$PATH"; \ X else \ X ${ECHO_CMD} ""; \ X fi X.else Xbootstrap_path= X.endif X X.if empty(bootstrap_path) XONLY_FOR_ARCHS= i386 XDISTFILES+= gnat-3.15p-boot.tar.gz:boot XMASTER_SITES+= ${MASTER_SITE_LOCAL}:boot X.if ${OSVERSION} >= 500000 XBUILD_DEPENDS+= ${LOCALBASE}/lib/compat/libc.so.4:${PORTSDIR}/misc/compat4x X.endif X# Warning! You need the trailing slash on GCC_EXEC_PREFIX. Xcompiler_data= GCC_EXEC_PREFIX=${WRKDIR}/adaboot/lib/gcc-lib/ \ X ADA_INCLUDE_PATH=${WRKDIR}/adaboot/lib/gcc-lib/adainclude \ X ADA_OBJECTS_PATH=${WRKDIR}/adaboot/lib/gcc-lib/adalib Xbootstrap_path= ${WRKDIR}/adaboot/bin:${PATH} Xgnat_gcc= adagcc X.endif X X# Make sure we use the Ada-aware gcc compiler. XCC= ${gnat_gcc} X# C compiler from GNAT 3.15 doesn't understand modern flags. XCFLAGS= XCONFIGURE_ENV+= ${compiler_data} PATH=${bootstrap_path} XMAKE_ENV+= ${compiler_data} PATH=${bootstrap_path} PTHREAD_LIBS=${PTHREAD_LIBS} CC=${CC} X Xpre-everything:: X @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} target=${CONFIGURE_TARGET}" X X# Append ' [FreeBSD]' to gcc version string. Xpost-patch: X @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ X ${WRKSRC}/gcc/version.c X Xpre-configure: X cd ${WRKSRC} ; contrib/gcc_update --touch X @${RM} -f ${WRKSRC}/gcc/*/*.info* X @${MKDIR} ${CONFIGURE_WRKSRC} X Xdo-build: X (cd ${BUILD_WRKSRC}; \ X ${MAKE_ENV} ${GMAKE} bootstrap) X (cd ${BUILD_WRKSRC}; \ X ${MAKE_ENV} ${GMAKE} -C gcc gnatlib) X (cd ${BUILD_WRKSRC}; \ X ${MAKE_ENV} ${GMAKE} -C gcc gnattools) X Xpost-install: X ${LN} -s ${PREFIX}/bin/gcc${gcc_suffix}/gcc${gcc_suffix} \ X ${PREFIX}/bin/gcc${gcc_suffix}/gcc X # Man pages can only be generated if Perl >= 5.6 is installed; X # fake them otherwise. X for mp in ${_MANPAGES}; do \ X ${TEST} -e $${mp} || ${TOUCH} ${TOUCH_FLAGS} $${mp}; \ X done X # Add target libraries and include files to packaging list. X ${RM} -f ${WRKDIR}/PLIST.lib X for d in ${targlib:S/^${PREFIX}\///} ${targlib:S/^${PREFIX}\///:S/lib/libexec/}; do \ X cd ${PREFIX} ; \ X if [ -d $${d} ]; then \ X ${FIND} $${d} -type f -o -type l >>${WRKDIR}/PLIST.lib ; \ X ${FIND} $${d} -type d | ${SORT} -r | ${SED} -e 's/^/@dirrm /g' >>${WRKDIR}/PLIST.lib ; \ X fi ; \ X done X ${ECHO_CMD} "@unexec ${RMDIR} %D/lib/gcc/${CONFIGURE_TARGET} 2>&1 || true" >> ${WRKDIR}/PLIST.lib X ${ECHO_CMD} "@unexec ${RMDIR} %D/lib/gcc 2>&1 || true" >> ${WRKDIR}/PLIST.lib X ${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc/${CONFIGURE_TARGET} 2>&1 || true" >> ${WRKDIR}/PLIST.lib X ${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc 2>&1 || true" >> ${WRKDIR}/PLIST.lib X cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST} X X.include <bsd.port.post.mk> END-of-gnat-gcc34/Makefile echo x - gnat-gcc34/distinfo sed 's/^X//' >gnat-gcc34/distinfo << 'END-of-gnat-gcc34/distinfo' XMD5 (gcc-core-3.4.6.tar.bz2) = 5324ace5145b12afd9ca867af7ec084d XSHA256 (gcc-core-3.4.6.tar.bz2) = 3aab171d86e5a6c14cb9de35467a0472a7d5ef1d5b79a1df72ca533f8e82a133 XSIZE (gcc-core-3.4.6.tar.bz2) = 13366790 XMD5 (gcc-ada-3.4.6.tar.bz2) = 91c43393637247fe1f1ee629aa208610 XSHA256 (gcc-ada-3.4.6.tar.bz2) = d5bfb166b2ad287ba85ebba533cca4453b521479cffc1bd3c6d273f6b3d794e2 XSIZE (gcc-ada-3.4.6.tar.bz2) = 3784327 XMD5 (gcc-testsuite-3.4.6.tar.bz2) = 32a1057b841b4782ae3f4be84a98c085 XSHA256 (gcc-testsuite-3.4.6.tar.bz2) = 87f8c7ca951fd13ea241328de2e0e1af8281f1aa3a68e5831e37ff746a256574 XSIZE (gcc-testsuite-3.4.6.tar.bz2) = 2646715 XMD5 (gnat-3.15p-boot.tar.gz) = 3b25873a90978b8b4113d71dc3df315f XSHA256 (gnat-3.15p-boot.tar.gz) = dfa61b98ad7f26ca46f8c5e61d87c42e17ad139616f315df16f25dce38044a9d XSIZE (gnat-3.15p-boot.tar.gz) = 4608818 END-of-gnat-gcc34/distinfo echo x - gnat-gcc34/pkg-descr sed 's/^X//' >gnat-gcc34/pkg-descr << 'END-of-gnat-gcc34/pkg-descr' XThe GNU Ada compiler system built from GCC 3.4.6. X XPlease add ${PREFIX}/bin/gcc34 to your PATH variable Xbefore using this port. X XWWW: http://gcc.gnu.org/ END-of-gnat-gcc34/pkg-descr echo x - gnat-gcc34/pkg-plist sed 's/^X//' >gnat-gcc34/pkg-plist << 'END-of-gnat-gcc34/pkg-plist' Xbin/gcc%%SUFFIX%%/cpp%%SUFFIX%% Xbin/gcc%%SUFFIX%%/gcc Xbin/gcc%%SUFFIX%%/gcc%%SUFFIX%% Xbin/gcc%%SUFFIX%%/gccbug%%SUFFIX%% Xbin/gcc%%SUFFIX%%/gcov%%SUFFIX%% Xbin/gcc%%SUFFIX%%/gnat Xbin/gcc%%SUFFIX%%/gnatbind Xbin/gcc%%SUFFIX%%/gnatbl Xbin/gcc%%SUFFIX%%/gnatchop Xbin/gcc%%SUFFIX%%/gnatclean Xbin/gcc%%SUFFIX%%/gnatfind Xbin/gcc%%SUFFIX%%/gnatkr Xbin/gcc%%SUFFIX%%/gnatlink Xbin/gcc%%SUFFIX%%/gnatls Xbin/gcc%%SUFFIX%%/gnatmake Xbin/gcc%%SUFFIX%%/gnatname Xbin/gcc%%SUFFIX%%/gnatprep Xbin/gcc%%SUFFIX%%/gnatxref Xbin/gcc%%SUFFIX%%/gpr2make Xbin/gcc%%SUFFIX%%/gprcmd Xbin/gcc%%SUFFIX%%/%%GNU_HOST%%-gcc-%%GCC_VER%% Xbin/gcc%%SUFFIX%%/%%GNU_HOST%%-gcc%%SUFFIX%% Xinfo/gcc%%SUFFIX%%/dir Xshare/gnat/Makefile.generic Xshare/gnat/Makefile.prolog X@dirrm share/gnat X@dirrm bin/gcc%%SUFFIX%% X@comment Insert PLIST.lib here END-of-gnat-gcc34/pkg-plist exit >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607092141.k69LfmZk097461>