| @@ -1,39 +1,40 @@ | | | @@ -1,39 +1,40 @@ |
1 | # $NetBSD: Makefile,v 1.2 2011/02/10 10:52:25 drochner Exp $ | | 1 | # $NetBSD: Makefile,v 1.3 2011/05/10 13:46:22 drochner Exp $ |
2 | # | | 2 | # |
3 | | | 3 | |
4 | DISTNAME= gnat-aux-${SNAPSHOT} | | 4 | DISTNAME= gnat-aux-${SNAPSHOT} |
5 | CATEGORIES= lang | | 5 | CATEGORIES= lang |
6 | MASTER_SITES= http://downloads.dragonlace.net/src/ \ | | 6 | MASTER_SITES= http://downloads.dragonlace.net/src/ \ |
7 | http://dragonlace.mirrors.ada.cx/src/ | | 7 | http://dragonlace.mirrors.ada.cx/src/ |
8 | EXTRACT_SUFX= .tar.bz2 | | 8 | EXTRACT_SUFX= .tar.bz2 |
9 | | | 9 | |
10 | MAINTAINER= draco@marino.st | | 10 | MAINTAINER= draco@marino.st |
11 | HOMEPAGE= http://www.dragonlace.net/ | | 11 | HOMEPAGE= http://www.dragonlace.net/ |
12 | COMMENT= GNAT Ada compiler based on GCC ${GCC_BRANCH} | | 12 | COMMENT= GNAT Ada compiler based on GCC ${GCC_BRANCH} |
13 | LICENSE= gnu-gpl-v3 AND gnu-lgpl-v3 | | 13 | LICENSE= gnu-gpl-v3 AND gnu-lgpl-v3 |
14 | | | 14 | |
15 | SNAPSHOT= 20110203 | | 15 | SNAPSHOT= 20110325 |
16 | GCC_BRANCH= 4.6 | | 16 | GCC_BRANCH= 4.6 |
17 | GCC_POINT= 0 | | 17 | GCC_POINT= 0 |
| | | 18 | LANGS= c |
18 | | | 19 | |
19 | PKG_DESTDIR_SUPPORT= user-destdir | | 20 | PKG_DESTDIR_SUPPORT= user-destdir |
20 | | | 21 | |
21 | USE_TOOLS+= gmake sed flex bison gm4 perl makeinfo bzip2 | | 22 | USE_TOOLS+= gmake sed flex bison gm4 perl makeinfo bzip2 |
22 | USE_BUILTIN.iconv= no | | 23 | USE_BUILTIN.iconv= no |
23 | BUILD_DEPENDS+= dejagnu>=1.4:../../devel/dejagnu | | | |
24 | BUILD_DEPENDS+= autoconf>=2.6:../../devel/autoconf | | 24 | BUILD_DEPENDS+= autoconf>=2.6:../../devel/autoconf |
25 | | | 25 | |
26 | .include "../../mk/bsd.prefs.mk" | | 26 | .include "../../mk/bsd.prefs.mk" |
| | | 27 | .include "options.mk" |
27 | | | 28 | |
28 | # Requires bootstrap compiler, which is only available for NetBSD i386/AMD64 | | 29 | # Requires bootstrap compiler, which is only available for NetBSD i386/AMD64 |
29 | # and DragonFly i386/AMD64. Actually bootstrap compilers for OpenBSD and | | 30 | # and DragonFly i386/AMD64. Actually bootstrap compilers for OpenBSD and |
30 | # FreeBSD also exist, but native packages will be available for those ports. | | 31 | # FreeBSD also exist, but native packages will be available for those ports. |
31 | | | 32 | |
32 | ONLY_FOR_PLATFORM= DragonFly-*-* \ | | 33 | ONLY_FOR_PLATFORM= DragonFly-*-* \ |
33 | NetBSD-[5-9]*-i386 \ | | 34 | NetBSD-[5-9]*-i386 \ |
34 | NetBSD-[5-9]*-x86_64 | | 35 | NetBSD-[5-9]*-x86_64 |
35 | | | 36 | |
36 | BLD_TARGET= ${MACHINE_ARCH}-aux-${LOWER_OPSYS}${OS_VERSION} | | 37 | BLD_TARGET= ${MACHINE_ARCH}-aux-${LOWER_OPSYS}${OS_VERSION} |
37 | THREAD_MODEL= posix | | 38 | THREAD_MODEL= posix |
38 | OS_LABEL4VERS= [pkgsrc] | | 39 | OS_LABEL4VERS= [pkgsrc] |
39 | BOOTSTRAP_COMPILER= NOT_REQUIRED | | 40 | BOOTSTRAP_COMPILER= NOT_REQUIRED |
| @@ -78,33 +79,31 @@ BOOTSTRAP_COMPILER= gnat-bootstrap.${MAC | | | @@ -78,33 +79,31 @@ BOOTSTRAP_COMPILER= gnat-bootstrap.${MAC |
78 | | | 79 | |
79 | | | 80 | |
80 | # Let's build this without bash | | 81 | # Let's build this without bash |
81 | CONFIG_SHELL= ${TOOLS_PATH.sh} | | 82 | CONFIG_SHELL= ${TOOLS_PATH.sh} |
82 | | | 83 | |
83 | | | 84 | |
84 | # define some important directories and files | | 85 | # define some important directories and files |
85 | WRKSRC= ${WRKDIR}/build | | 86 | WRKSRC= ${WRKDIR}/build |
86 | GCC_WRKSRC= ${WRKDIR}/gcc-${GCC_BRANCH}-${SNAPSHOT} | | 87 | GCC_WRKSRC= ${WRKDIR}/gcc-${GCC_BRANCH}-${SNAPSHOT} |
87 | PKG_PREFIX= ${PREFIX} | | 88 | PKG_PREFIX= ${PREFIX} |
88 | CONFIGURE_SCRIPT= ${GCC_WRKSRC}/configure | | 89 | CONFIGURE_SCRIPT= ${GCC_WRKSRC}/configure |
89 | BOOTSTRAP_PREFIX= ${WRKDIR}/bootstrap | | 90 | BOOTSTRAP_PREFIX= ${WRKDIR}/bootstrap |
90 | MAN7= fsf-funding.7 gfdl.7 gpl.7 | | 91 | MAN7= fsf-funding.7 gfdl.7 gpl.7 |
91 | SINFO= share/info | | | |
92 | SMAN1= share/man/man1 | | 92 | SMAN1= share/man/man1 |
93 | SMAN7= share/man/man7 | | 93 | SMAN7= share/man/man7 |
94 | LPATH= lib/gcc/${BLD_TARGET}/${GCC_BRANCH}.${GCC_POINT} | | 94 | LPATH= lib/gcc/${BLD_TARGET}/${GCC_BRANCH}.${GCC_POINT} |
95 | LEPATH= libexec/gcc/${BLD_TARGET}/${GCC_BRANCH}.${GCC_POINT} | | 95 | LEPATH= libexec/gcc/${BLD_TARGET}/${GCC_BRANCH}.${GCC_POINT} |
96 | REVFILE= ${GCC_WRKSRC}/gcc/REVISION | | 96 | REVFILE= ${GCC_WRKSRC}/gcc/REVISION |
97 | LELIST= cc1 collect2 gnat1 lto1 | | | |
98 | | | 97 | |
99 | | | 98 | |
100 | | | 99 | |
101 | # testing if gnatgcc, gnatlink, gnatbind and gnatmake are in standard location | | 100 | # testing if gnatgcc, gnatlink, gnatbind and gnatmake are in standard location |
102 | # exists function will NOT expand any variable, so it has to be hard-coded | | 101 | # exists function will NOT expand any variable, so it has to be hard-coded |
103 | .if exists(/usr/pkg/bin/gnatgcc) | | 102 | .if exists(/usr/pkg/bin/gnatgcc) |
104 | .if exists(/usr/pkg/bin/gnatbind) | | 103 | .if exists(/usr/pkg/bin/gnatbind) |
105 | .if exists(/usr/pkg/bin/gnatlink) | | 104 | .if exists(/usr/pkg/bin/gnatlink) |
106 | .if exists(/usr/pkg/bin/gnatmake) | | 105 | .if exists(/usr/pkg/bin/gnatmake) |
107 | FULL_GNATGCC=${PREFIX}/bin/gnatgcc | | 106 | FULL_GNATGCC=${PREFIX}/bin/gnatgcc |
108 | .endif #gnatmake | | 107 | .endif #gnatmake |
109 | .endif #gnatlink | | 108 | .endif #gnatlink |
110 | .endif #gnatbind | | 109 | .endif #gnatbind |
| @@ -119,65 +118,70 @@ DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${ | | | @@ -119,65 +118,70 @@ DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${ |
119 | FULL_PATH=${BOOTSTRAP_PREFIX}/bin:/sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/sbin:${PREFIX}/bin | | 118 | FULL_PATH=${BOOTSTRAP_PREFIX}/bin:/sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/sbin:${PREFIX}/bin |
120 | .endif | | 119 | .endif |
121 | | | 120 | |
122 | | | 121 | |
123 | # For pkg maintenance, uncomment to invoke "bmake mdi" | | 122 | # For pkg maintenance, uncomment to invoke "bmake mdi" |
124 | #DISTFILES=${DISTNAME}${EXTRACT_SUFX} \ | | 123 | #DISTFILES=${DISTNAME}${EXTRACT_SUFX} \ |
125 | # gnat-bootstrap.i386.dragonfly.tar.bz2 \ | | 124 | # gnat-bootstrap.i386.dragonfly.tar.bz2 \ |
126 | # gnat-bootstrap.x86_64.dragonfly.tar.bz2 \ | | 125 | # gnat-bootstrap.x86_64.dragonfly.tar.bz2 \ |
127 | # gnat-bootstrap.i386.netbsd.tar.bz2 \ | | 126 | # gnat-bootstrap.i386.netbsd.tar.bz2 \ |
128 | # gnat-bootstrap.x86_64.netbsd.tar.bz2 | | 127 | # gnat-bootstrap.x86_64.netbsd.tar.bz2 |
129 | | | 128 | |
130 | | | 129 | |
131 | # establish ada-aware compiler for use | | 130 | # establish ada-aware compiler for use |
132 | MY_CONFIGURE_ENV= CC=${FULL_GNATGCC} PATH=${FULL_PATH} CONFIG_SHELL=${CONFIG_SHELL} | | 131 | MY_CONFIGURE_ENV= CC=${FULL_GNATGCC} |
| | | 132 | MY_CONFIGURE_ENV+= PATH=${FULL_PATH} |
| | | 133 | MY_CONFIGURE_ENV+= CONFIG_SHELL=${CONFIG_SHELL} |
| | | 134 | MY_CONFIGURE_ENV+= MAKEINFO=/usr/bin/false |
133 | MY_MAKE_ENV= PATH=${FULL_PATH} | | 135 | MY_MAKE_ENV= PATH=${FULL_PATH} |
134 | MY_MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/gcc | | 136 | MY_MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/gcc |
135 | | | 137 | |
136 | | | 138 | |
137 | # The standard configuration options | | 139 | # The standard configuration options |
138 | CONFIGURE_ARGS= --enable-languages=c,ada | | 140 | CONFIGURE_ARGS= --enable-languages=${LANGS:Q} |
139 | CONFIGURE_ARGS+= --build=${BLD_TARGET} | | 141 | CONFIGURE_ARGS+= --build=${BLD_TARGET} |
140 | CONFIGURE_ARGS+= --program-prefix=gnat | | 142 | CONFIGURE_ARGS+= --program-prefix=gnat |
141 | CONFIGURE_ARGS+= --prefix=${PREFIX} | | 143 | CONFIGURE_ARGS+= --prefix=${PREFIX} |
142 | CONFIGURE_ARGS+= --with-system-zlib | | 144 | CONFIGURE_ARGS+= --with-system-zlib |
143 | CONFIGURE_ARGS+= --with-gmp=${PKG_PREFIX} | | 145 | CONFIGURE_ARGS+= --with-gmp=${PKG_PREFIX} |
144 | CONFIGURE_ARGS+= --with-mpfr=${PKG_PREFIX} | | 146 | CONFIGURE_ARGS+= --with-mpfr=${PKG_PREFIX} |
145 | CONFIGURE_ARGS+= --with-mpc=${PKG_PREFIX} | | 147 | CONFIGURE_ARGS+= --with-mpc=${PKG_PREFIX} |
146 | CONFIGURE_ARGS+= --with-libiconv-prefix=${PKG_PREFIX} | | 148 | CONFIGURE_ARGS+= --with-libiconv-prefix=${PKG_PREFIX} |
147 | CONFIGURE_ARGS+= --enable-shared | | 149 | CONFIGURE_ARGS+= --enable-shared |
148 | CONFIGURE_ARGS+= --enable-threads=${THREAD_MODEL} | | 150 | CONFIGURE_ARGS+= --enable-threads=${THREAD_MODEL} |
149 | CONFIGURE_ARGS+= --disable-bootstrap | | 151 | CONFIGURE_ARGS+= --disable-bootstrap |
| | | 152 | CONFIGURE_ARGS+= --disable-libquadmath |
150 | CONFIGURE_ARGS+= --disable-libmudflap | | 153 | CONFIGURE_ARGS+= --disable-libmudflap |
151 | CONFIGURE_ARGS+= --disable-libgomp | | 154 | CONFIGURE_ARGS+= --disable-libgomp |
152 | CONFIGURE_ARGS+= --disable-libssp | | 155 | CONFIGURE_ARGS+= --disable-libssp |
153 | CONFIGURE_ARGS+= --disable-nls | | 156 | CONFIGURE_ARGS+= --disable-nls |
154 | | | 157 | |
155 | | | 158 | |
156 | # The standard make options | | | |
157 | MAKE_ARGS= MAKEINFOFLAGS="--no-split" | | | |
158 | | | | |
159 | | | | |
160 | # Automatic package list generation | | 159 | # Automatic package list generation |
161 | # lib/libquadmath.* will have to be added if __float128 support is added | | 160 | # lib/libquadmath.* will have to be added if __float128 support is added |
162 | # Alternatively, libquadmath support could be intentionally disabled. | | 161 | # Alternatively, libquadmath support could be intentionally disabled. |
163 | GENERATE_PLIST= cd ${PREFIX}; | | 162 | GENERATE_PLIST= cd ${PREFIX}; |
164 | GENERATE_PLIST+= ${FIND} bin/gnat* | ${SORT}; | | 163 | GENERATE_PLIST+= ${FIND} bin/gnat* | ${SORT}; |
165 | GENERATE_PLIST+= ${FIND} bin/${BLD_TARGET}* | ${SORT}; | | 164 | GENERATE_PLIST+= ${FIND} bin/${BLD_TARGET}* | ${SORT}; |
166 | GENERATE_PLIST+= ${FIND} lib/libiberty.a; | | 165 | GENERATE_PLIST+= ${FIND} lib/libiberty.a; |
167 | GENERATE_PLIST+= ${FIND} lib/libgcc_s.* \( -type f -or -type l \) | ${SORT}; | | 166 | GENERATE_PLIST+= ${FIND} lib/libgcc_s.* \( -type f -or -type l \) | ${SORT}; |
| | | 167 | .if !empty(PKG_OPTIONS:Mcxx) |
| | | 168 | GENERATE_PLIST+= ${FIND} lib/libsupc++.* \( -type f -or -type l \) | ${SORT}; |
| | | 169 | GENERATE_PLIST+= ${FIND} lib/libstdc++.* \( -type f -or -type l \) | ${SORT}; |
| | | 170 | GENERATE_PLIST+= ${FIND} include/c++/${GCC_BRANCH}.${GCC_POINT}/* -type f | ${SORT} -dr; |
| | | 171 | GENERATE_PLIST+= ${FIND} share/gcc-${GCC_BRANCH}.${GCC_POINT}/* -type f | ${SORT} -dr; |
| | | 172 | .endif |
168 | GENERATE_PLIST+= ${FIND} ${LPATH}/* \( -type f -or -type l \) | ${SORT} -dr; | | 173 | GENERATE_PLIST+= ${FIND} ${LPATH}/* \( -type f -or -type l \) | ${SORT} -dr; |
169 | GENERATE_PLIST+= ${FIND} ${LEPATH}/* -type f | ${SORT} -dr; | | 174 | GENERATE_PLIST+= ${FIND} ${LEPATH}/* -type f | ${SORT} -dr; |
170 | GENERATE_PLIST+= ${FIND} ${SINFO}/gnat* -type f | ${SORT}; | | | |
171 | GENERATE_PLIST+= ${FIND} ${SMAN1}/gnat* -type f | ${SORT}; | | 175 | GENERATE_PLIST+= ${FIND} ${SMAN1}/gnat* -type f | ${SORT}; |
172 | .for k in ${MAN7} | | 176 | .for k in ${MAN7} |
173 | GENERATE_PLIST+= ${FIND} ${SMAN7}/${k}; | | 177 | GENERATE_PLIST+= ${FIND} ${SMAN7}/${k}; |
174 | .endfor | | 178 | .endfor |
175 | | | 179 | |
176 | | | 180 | |
177 | | | 181 | |
178 | post-extract: | | 182 | post-extract: |
179 | # Personalize GNAT for each different machine | | 183 | # Personalize GNAT for each different machine |
180 | @${ECHO} "-=> GNAT AUX ${OS_LABEL4VERS}" > ${REVFILE} | | 184 | @${ECHO} "-=> GNAT AUX ${OS_LABEL4VERS}" > ${REVFILE} |
181 | | | 185 | |
182 | .if ${INTENDED_COMPILER} == "BOOTSTRAP" | | 186 | .if ${INTENDED_COMPILER} == "BOOTSTRAP" |
183 | ${MKDIR} ${BOOTSTRAP_PREFIX} | | 187 | ${MKDIR} ${BOOTSTRAP_PREFIX} |
| @@ -208,31 +212,44 @@ do-configure: | | | @@ -208,31 +212,44 @@ do-configure: |
208 | ${RM} -f ${GCC_WRKSRC}/gcc/*/*.info* | | 212 | ${RM} -f ${GCC_WRKSRC}/gcc/*/*.info* |
209 | ${TOUCH} ${GCC_WRKSRC}/gcc/cstamp-h.in | | 213 | ${TOUCH} ${GCC_WRKSRC}/gcc/cstamp-h.in |
210 | | | 214 | |
211 | ${MKDIR} ${WRKSRC} | | 215 | ${MKDIR} ${WRKSRC} |
212 | cd ${WRKSRC} && ${SETENV} ${MY_CONFIGURE_ENV} ${CONFIG_SHELL} \ | | 216 | cd ${WRKSRC} && ${SETENV} ${MY_CONFIGURE_ENV} ${CONFIG_SHELL} \ |
213 | ${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS} | | 217 | ${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS} |
214 | | | 218 | |
215 | | | 219 | |
216 | do-build: | | 220 | do-build: |
217 | cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} all ${MAKE_ARGS} | | 221 | cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} all ${MAKE_ARGS} |
218 | | | 222 | |
219 | | | 223 | |
220 | do-test: build | | 224 | do-test: build |
| | | 225 | .if !empty(PKG_OPTIONS:Mtestada) |
| | | 226 | .if (${OPSYS} == "NetBSD") && (${MACHINE_ARCH} == "x86_64") |
| | | 227 | #NetBSD has an exremely small default stacksize of 2MB, which is insufficient |
| | | 228 | #for the gnat.dg testsuite (entry_queues test on AMD64 specifically) |
| | | 229 | cd ${WRKSRC} && \ |
| | | 230 | ${ULIMIT_CMD_stacksize} && \ |
| | | 231 | ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-ada |
| | | 232 | .else |
221 | cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-ada | | 233 | cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-ada |
| | | 234 | .endif |
| | | 235 | .endif |
| | | 236 | .if !empty(PKG_OPTIONS:Mtestcxx) |
| | | 237 | cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-c++ |
| | | 238 | cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-target-libstdc++-v3 |
| | | 239 | .endif |
| | | 240 | .if !empty(PKG_OPTIONS:Mtestgcc) |
| | | 241 | cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-c |
| | | 242 | .endif |
222 | | | 243 | |
223 | | | 244 | |
224 | do-install: | | 245 | do-install: |
225 | cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} install | | 246 | cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} install-strip |
226 | ${STRIP} ${PREFIX}/bin/gnat* | | | |
227 | .for k in ${LELIST} | | | |
228 | ${STRIP} ${PREFIX}/${LEPATH}/${k} | | | |
229 | .endfor | | | |
230 | | | 247 | |
231 | | | 248 | |
232 | | | 249 | |
233 | .include "../../devel/zlib/buildlink3.mk" | | 250 | .include "../../devel/zlib/buildlink3.mk" |
234 | .include "../../devel/gmp/buildlink3.mk" | | 251 | .include "../../devel/gmp/buildlink3.mk" |
235 | .include "../../math/mpfr/buildlink3.mk" | | 252 | .include "../../math/mpfr/buildlink3.mk" |
236 | .include "../../math/mpcomplex/buildlink3.mk" | | 253 | .include "../../math/mpcomplex/buildlink3.mk" |
237 | .include "../../converters/libiconv/buildlink3.mk" | | 254 | .include "../../converters/libiconv/buildlink3.mk" |
238 | .include "../../mk/bsd.pkg.mk" | | 255 | .include "../../mk/bsd.pkg.mk" |