blob: f7cd5d12869a61c9358af867986ea9452a1d784f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
# $NetBSD: Makefile.common,v 1.6 2004/07/02 15:40:01 drochner Exp $
GCC_VERSION= 3.3.4
DISTNAME= gcc-${GCC_VERSION}
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GNU:=gcc/releases/gcc-${GCC_VERSION}/}
EXTRACT_SUFX= .tar.bz2
MAINTAINER= tech-pkg@NetBSD.org
HOMEPAGE= http://www.gnu.org/software/gcc/gcc.html
NOT_FOR_PLATFORM= Darwin-*-*
USE_BUILDLINK3= yes
USE_PKGINSTALL= yes
USE_GNU_TOOLS+= make
MAKEFLAGS+= GMAKE_LOCALE=no
HAS_CONFIGURE= yes
PATCHDIR= ${.CURDIR}/../../lang/gcc3/patches
DISTINFO_FILE= ${.CURDIR}/../../lang/gcc3/distinfo
.include "../../mk/bsd.prefs.mk"
# Make location overridable, to allow ping-pong bootstraps.
GCC3_DEFAULT_SUBPREFIX= gcc3
GCC3_INSTALLTO_SUBPREFIX?= ${GCC3_DEFAULT_SUBPREFIX}
.if ${GCC3_INSTALLTO_SUBPREFIX} != ${GCC3_DEFAULT_SUBPREFIX}
GCC3_PKGMODIF= _${GCC3_INSTALLTO_SUBPREFIX}
.endif
GCC_SUBPREFIX= ${GCC3_INSTALLTO_SUBPREFIX}
GCC_PREFIX= ${PREFIX}/${GCC_SUBPREFIX}
CONFIGURE_ARGS+= --prefix=${GCC_PREFIX}
PLIST_SUBST+= GCC_SUBPREFIX=${GCC_SUBPREFIX}
FILES_SUBST+= GCC_PREFIX=${GCC_PREFIX}
FILES_SUBST+= PKGNAME=${PKGNAME}
MESSAGE_SUBST+= GCC_PREFIX=${GCC_PREFIX}
BUILDLINK_PASSTHRU_RPATHDIRS+= ${GCC_PREFIX}
.if defined(INFO_FILES)
INFO_DIR= ${GCC_SUBPREFIX}/info
.endif
# These come from $WRKSRC/Makefile.in
ALL_GCC= all-gcc
ALL_GCC_C= $$(ALL_GCC) all-target-newlib all-target-libgloss
ALL_GCC_CXX= $$(ALL_GCC_C) all-target-libstdc++-v3
# Support threads and building of crt*.o on post-1.6 -current.
# Use buildlink to avoid a GNU pth package.
.if ${OPSYS} == "NetBSD" && exists(/usr/include/pthread.h)
GCC_PLATFORM= ${MACHINE_GNU_ARCH}--netbsdelf2.0
PTHREAD_OPTS+= require native
. include "../../mk/pthread.buildlink3.mk"
.else
GCC_PLATFORM= ${MACHINE_GNU_PLATFORM}
.endif
CONFIGURE_ARGS+= --host=${GCC_PLATFORM}
PLIST_SUBST+= GCC_PLATFORM=${GCC_PLATFORM}
.if ${OPSYS} == "NetBSD"
. if !defined(USE_BINUTILS)
AS_PATH:= ${AS}
. for _dir_ in ${PATH:C/\:/ /g}
. if empty(AS_PATH:M/*)
. if exists(${_dir_}/${AS})
AS_PATH:= ${_dir_}/${AS}
. endif
. endif
. endfor
. if !empty(AS_PATH:M${LOCALBASE}/*)
USE_BINUTILS= YES
. else
AS_VERSION!= ${AS} --version | ${AWK} '{ \
split($$3, v, /[.]/); \
printf "%02d%02d%02d%02d\n",v[1],v[2],v[3],v[4]; \
exit; \
}'
USE_BINUTILS!= ${TEST} ${AS_VERSION} -lt 02130201 && ${ECHO} YES || ${ECHO} NO
. endif
MAKEFLAGS+= USE_BINUTILS=${USE_BINUTILS}
. endif
.endif
.if defined(USE_BINUTILS) && !empty(USE_BINUTILS:M[yY][eE][sS])
DEPENDS+= binutils>=2.13.2.1:../../devel/binutils
EVAL_PREFIX+= BINUTILS_PREFIX=binutils
BINUTILS_PREFIX_DEFAULT= ${LOCALBASE}
CONFIGURE_ARGS+= --with-as=${BINUTILS_PREFIX}/${MACHINE_GNU_PLATFORM}/bin/as
.endif
.if ${OPSYS} == "NetBSD" || ${OPSYS} == "Linux" || ${OPSYS} == "SunOS" || \
${OPSYS} == "IRIX"
CONFIGURE_ARGS+= --enable-shared
.else
CONFIGURE_ARGS+= --disable-shared
.endif
.include "../../mk/compiler.mk"
.if ${OPSYS} == "IRIX"
. if !empty(PKGSRC_COMPILER:Mmipspro*)
CONFIGURE_ENV+= SGI_ABI="n32"
MAKE_ENV+= SGI_ABI="n32"
. endif
.endif
GCC_ARCHSUBDIR= ${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${GCC_VERSION}
GCC_ARCHDIR= ${PREFIX}/${GCC_ARCHSUBDIR}
.if defined(INSTLIBS)
BUILDLINK_LIBTOOL= ${BUILDLINK_DIR}/bin/libtool
.PHONY: scrub-libtool-archives
post-build: scrub-libtool-archives
scrub-libtool-archives:
. for lafile in ${INSTLIBS}
${BUILDLINK_LIBTOOL} --fix-la ${WRKSRC}/${GCC_PLATFORM}/${lafile}
. endfor
.endif
# Create the directories for the build, patch the ltconfig script to
# always use "sunos" shared library numbering (for consistent PLISTs
# across platforms), and touch all the necessary files so that they're
# not regenerated after the configure script is run.
#
pre-configure:
${MKDIR} ${BUILD_DIRS}
cd ${WRKSRC}; for file in ltconfig boehm-gc/ltconfig; do \
${MV} -f $$file $$file.bak; \
${SED} -e "s|\(version_type\)=linux|\1=sunos|g" \
$$file.bak > $$file; \
${CHMOD} +x $$file; \
done
cd ${WRKSRC} && contrib/gcc_update --touch
|