Update lang/seed7 to version 05.20160430
[dports.git] / lang / gnatdroid-armv7 / Makefile
1 # Created by: John Marino <marino@FreeBSD.org>
2 # $FreeBSD$
3
4 PORTNAME?=      armv7
5 PORTVERSION=    ${SNAPSHOT}
6 PORTREVISION?=  ${ARMV7_PR}
7 CATEGORIES=     lang
8 MASTER_SITES=   GCC/releases/gcc-${GCC_VERSION}
9 PKGNAMEPREFIX=  gnatdroid-
10 DISTFILES=      ${IDENTIFICATION}.tar.bz2
11
12 MAINTAINER?=    marino@FreeBSD.org
13 COMMENT?=       C/Ada cross-compiler, target: Android ARMv7
14
15 LICENSE=        GPLv3 GPLv3RLE
16 LICENSE_COMB=   multi
17
18 BUILD_DEPENDS=  ${SYSROOT}>=19:lang/${SYSROOT} \
19                 ${GDBINUTILS}>=2.21:lang/${GDBINUTILS}
20 RUN_DEPENDS:=   ${BUILD_DEPENDS}
21
22 NO_LICENSES_INSTALL= yes
23 AUXPORT=        gcc6-aux
24
25 .include "${.CURDIR}/../${AUXPORT}/Makefile.common"
26
27 USES+=          ada:6 gmake
28 LANGS=          c c++ ada
29 APPLY_DIFFS=    core ada cxx ada-testsuite
30 NO_MTREE=       YES
31 DISTINFO_FILE=  ${.CURDIR}/../${AUXPORT}/distinfo
32
33 OPTIONS_DEFINE=         FORT OBJC
34 OPTIONS_SUB=            yes
35 FORT_DESC=              Also build Fortran language
36 OBJC_DESC=              Also build Objective-C language
37
38 DROID_TARGET?=          arm-aux-linux-androideabi
39 CPUVERSION?=            ARMv7
40 ARG_ARCH?=              --with-arch=armv7-a
41 ARG_FPU?=               --with-fpu=neon
42 ARG_FLOATSOFT?=         --with-float=soft
43 ALL_TARGET=             all
44 GARCH=                  ${ARCH:S/amd64/x86_64/}
45 BITS=                   ${GARCH:S/x86_64/64/:S/i386/32/}
46 OS_LABEL4VERS=          [${OPSYS}${BITS} x Android ${CPUVERSION}]
47 WRKSRC=                 ${WRKDIR}/${IDENTIFICATION}
48 BUILD_WRKSRC=           ${WRKDIR}/build
49 PATCHDIR=               ${.CURDIR}/../${AUXPORT}/files
50 CFG_SCRIPT=             ${WRKSRC}/configure
51 REVFILE=                ${WRKSRC}/gcc/REVISION
52 SRPREFIX?=              ${LOCALBASE}/android
53 PREFIX=                 ${SRPREFIX}/${CPUVERSION}
54 SYSROOT?=               gnatdroid-sysroot
55 GDBINUTILS?=            gnatdroid-binutils
56 PLIST_SUB+=             TARGET="${DROID_TARGET}"
57 PLIST_SUB+=             GCCVERS="${GCC_VERSION}"
58 SUB_FILES=              pkg-message
59 SUB_LIST=               TARGET="${DROID_TARGET}"
60 EXTRA_PATCHES=          ${FILESDIR}/acats.diff
61 CROSS=                  gnat gnatbind gnatchop gnatclean gnatfind gnatkr \
62                         gnatlink gnatls gnatmake gnatprep gnatxref
63
64 .include <bsd.port.options.mk>
65
66 .if ${PORT_OPTIONS:MFORT}
67 LANGS+=         fortran
68 APPLY_DIFFS+=   fortran
69 .endif
70
71 .if ${PORT_OPTIONS:MOBJC}
72 LANGS+=         objc
73 .endif
74
75 INSTALL_ENV=    ${MAKE_ENV:C/^PATH=/&${SRPREFIX}\/${CPUVERSION}\/bin:/}
76
77 ADA_CONFIG_ARGS=        --enable-languages=${LANGS:Q}
78 ADA_CONFIG_ARGS+=       --target=${DROID_TARGET}
79 ADA_CONFIG_ARGS+=       --program-prefix=${DROID_TARGET}-
80 ADA_CONFIG_ARGS+=       --prefix=${PREFIX}
81 ADA_CONFIG_ARGS+=       ${ARG_ARCH}
82 ADA_CONFIG_ARGS+=       --with-system-zlib
83 ADA_CONFIG_ARGS+=       --with-gmp=${LOCALBASE}
84 ADA_CONFIG_ARGS+=       --with-mpfr=${LOCALBASE}
85 ADA_CONFIG_ARGS+=       --with-mpc=${LOCALBASE}
86 ADA_CONFIG_ARGS+=       ${ICONV_CONFIGURE_ARG}
87 ADA_CONFIG_ARGS+=       --with-sysroot=${SRPREFIX}
88 ADA_CONFIG_ARGS+=       ${ARG_FLOATSOFT}
89 ADA_CONFIG_ARGS+=       ${ARG_FPU}
90 ADA_CONFIG_ARGS+=       --enable-target-optspace
91 ADA_CONFIG_ARGS+=       --enable-threads=posix
92 ADA_CONFIG_ARGS+=       --enable-cxx-flags=-frtti
93 ADA_CONFIG_ARGS+=       --enable-checking=release
94 ADA_CONFIG_ARGS+=       --disable-bootstrap
95 ADA_CONFIG_ARGS+=       --disable-shared
96 ADA_CONFIG_ARGS+=       --disable-libssp
97 ADA_CONFIG_ARGS+=       --disable-libgomp
98 ADA_CONFIG_ARGS+=       --disable-libmudflap
99 ADA_CONFIG_ARGS+=       --disable-libquadmath
100 ADA_CONFIG_ARGS+=       --disable-libsanitizer
101 ADA_CONFIG_ARGS+=       --disable-libitm
102 ADA_CONFIG_ARGS+=       --disable-sjlj-exceptions
103 ADA_CONFIG_ARGS+=       --disable-tls
104 ADA_CONFIG_ARGS+=       --disable-nls
105
106 post-extract:
107         # Personalize GNAT for each different machine
108         @${ECHO} "-=> GNAT AUX ${OS_LABEL4VERS}" > ${REVFILE}
109         ${MKDIR} ${WRKSRC}/libstdc++-v3/config/locale/dragonfly
110         ${MKDIR} ${WRKSRC}/libstdc++-v3/config/os/bsd/dragonfly
111         # Apply required composite diff files
112 .for suffix in ${APPLY_DIFFS}
113         @${ECHO} "Applying composite patch diff-${suffix}"
114         @${PATCH} -d ${WRKSRC} -s -E < ${PATCHDIR}/diff-${suffix}
115 .endfor
116         @(cd ${WRKSRC}/gcc/testsuite/ada/acats && \
117                 ${CP} run_remote.sh run_all.sh)
118         ${REINPLACE_CMD} -e 's|@REMOTE_TARGET@|${DROID_TARGET}|' \
119                 ${WRKSRC}/gcc/testsuite/ada/acats/run_all.sh
120         ${REINPLACE_CMD} -e 's|<syscall.h>|<sys/syscall.h>|' \
121                 ${WRKSRC}/libstdc++-v3/libsupc++/guard.cc
122
123 do-configure:
124         ${MKDIR} ${BUILD_WRKSRC}
125         (cd ${BUILD_WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \
126                 ${CFG_SCRIPT} ${ADA_CONFIG_ARGS})
127
128 do-install:
129 #       Buggy makefile; seems to have forgotten this is a cross compiler
130 #       Manually rename products so it doesn't rebuild them with new name
131 .for X in ${CROSS}
132 .  if !exists(${BUILD_WRKSRC}/gcc/${X})
133         ${CP} -a ${BUILD_WRKSRC}/gcc/${X}-cross ${BUILD_WRKSRC}/gcc/${X}
134 .  endif
135 .endfor
136         (cd ${BUILD_WRKSRC} && ${SETENV} ${INSTALL_ENV} \
137                 ${MAKE_CMD} install-strip DESTDIR=${STAGEDIR})
138         ${MV} ${STAGEDIR}${PREFIX}/bin/ada \
139                 ${STAGEDIR}${PREFIX}/bin/${DROID_TARGET}-ada
140
141 post-stage:
142 .for loop in A B
143         (cd ${STAGEDIR}${PREFIX}; ${FIND} * -type d -empty | \
144                 ${SORT} -dr | ${XARGS} ${RMDIR})
145 .endfor
146         (cd ${STAGEDIR}${PREFIX}; \
147                 ${FIND} * \( -type f -or -type l \) | ${SORT} | \
148                 ${SED} -e '/^bin\//d' -e '/^${DROID_TARGET}\/bin\//d' \
149                 >> ${TMPPLIST})
150
151 acats: build
152         (cd ${BUILD_WRKSRC}/gcc && ${SETENV} \
153                 PATH=${LOCALBASE}/${AUXPORT}/bin:${PATH}:${PREFIX}/bin \
154                 ${GMAKE} -sk check-acats)
155
156 gnatdg: build
157         (cd ${BUILD_WRKSRC}/gcc && ${SETENV} \
158                 PATH=${LOCALBASE}/${AUXPORT}/bin:${PATH}:${PREFIX}/bin \
159                 ${GMAKE} -sk check-gnat RUNTESTFLAGS=--target_board=gnatdroid6)
160
161 .include <bsd.port.mk>