summaryrefslogtreecommitdiff
path: root/cross/mipsEEel-netbsd/Makefile
blob: 60ec01f58a63f20074da6f7ba9010da23eb8e6b2 (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
# $NetBSD: Makefile,v 1.18 2006/03/05 16:27:23 jlam Exp $

DISTNAME=	cross-${TARGET_ARCH}-${DISTVERSION}
TARGET_ARCH=	mipsEEel-netbsd
DISTVERSION=	1.0.0
PKGREVISION=	2
CATEGORIES+=	cross lang
MAINTAINER=	pkgsrc-users@NetBSD.org
COMMENT=	Cross-compiler for NetBSD/PlayStation2 kernel

USE_TOOLS+=	gmake makeinfo

.if exists(/usr/bin/bzcat)
BZCAT=		/usr/bin/bzcat
.else
BZCAT=		${LOCALBASE}/bin/bzcat
BUILD_DEPENDS+=	bzip2>=0.9.0b:../../archivers/bzip2
.endif

WRKSRC=		${WRKDIR}

# We don't use CROSSBASE because the binutils are not the same as binutils
# for other cross compilers.
#USE_CROSSBASE=	yes
TARGET_DIR=	${PREFIX}/cross-ps2
PLIST_SUBST+=	SUBDIR="cross-ps2" TARGET_ARCH=${TARGET_ARCH:Q} \
		GCC_VERSION=${GCC_VERSION:Q}

#
# binutils
#
MASTER_SITES+=		ftp://ftp.NetBSD.org/pub/NetBSD/misc/hamajima/PlayStation2/GPLed-from-SCEI/binutils-2.9EE/
DISTFILES+=		binutils-ps2linux-1.0.0.patch.bz2
BINUTILS_PATCH1=	${_DISTDIR}/binutils-ps2linux-1.0.0.patch.bz2

BINUTILS_DISTNAME=	binutils-2.9EE
BINUTILS_WRKSRC=	${WRKDIR}/${BINUTILS_DISTNAME}
DISTFILES+=		${BINUTILS_DISTNAME}.tar.gz
EXTRACT_ONLY=		${BINUTILS_DISTNAME}.tar.gz

#
# gcc
#
MASTER_SITES+=		ftp://ftp.NetBSD.org/pub/NetBSD/misc/hamajima/PlayStation2/GPLed-from-SCEI/gcc-2.95.2EE/
GCC_VERSION=		2.95.2
GCC_DISTNAME=		gcc-${GCC_VERSION}
GCC_WRKSRC=		${WRKDIR}/${GCC_DISTNAME}
DISTFILES+=		${GCC_DISTNAME}.tar.gz
EXTRACT_ONLY+=		${GCC_DISTNAME}.tar.gz
DISTFILES+=		gcc-${GCC_VERSION}-frankengcc-patches.patch.bz2
GCC_PATCH0=		${_DISTDIR}/gcc-${GCC_VERSION}-frankengcc-patches.patch.bz2
DISTFILES+=		gcc-${GCC_VERSION}-single-float-const.patch.bz2
GCC_PATCH1=		${_DISTDIR}/gcc-${GCC_VERSION}-single-float-const.patch.bz2
DISTFILES+=		gcc-ps2linux-1.0.0.patch.bz2
GCC_PATCH2=		${_DISTDIR}/gcc-ps2linux-1.0.0.patch.bz2
BUILD_DEPENDS+=		bison-[0-9]*:../../devel/bison

pre-patch: binutils-patch gcc-patch
do-configure: binutils-configure gcc-configure
do-build: binutils-build gcc-build
do-install: binutils-install gcc-install

binutils-patch:
	${BZCAT} ${BINUTILS_PATCH1} | ${PATCH} -d ${BINUTILS_WRKSRC} --forward --quiet -p1 -E
	for i in patches/binutils-*; do \
		${PATCH} -d ${BINUTILS_WRKSRC} --forward --quiet -E < $$i; \
	done

binutils-configure:
	${MKDIR} ${BINUTILS_WRKSRC}/obj
	cd ${BINUTILS_WRKSRC}/obj && ../configure --prefix=${TARGET_DIR} \
		--target=${TARGET_ARCH}

binutils-build:
	${GMAKE} -C ${BINUTILS_WRKSRC}/obj

binutils-install:
	${GMAKE} -C ${BINUTILS_WRKSRC}/obj install

gcc-patch:
	${BZCAT} ${GCC_PATCH0} | ${PATCH} -d ${GCC_WRKSRC} --forward --quiet -p1 -E
	${BZCAT} ${GCC_PATCH1} | ${PATCH} -d ${GCC_WRKSRC} --forward --quiet -p1 -E
	${BZCAT} ${GCC_PATCH2} | ${PATCH} -d ${GCC_WRKSRC} --forward --quiet -p1 -E
	for i in patches/gcc-*; do \
		${PATCH} -d ${GCC_WRKSRC} --forward --quiet -E < $$i; \
	done

gcc-configure:
	${MKDIR} ${GCC_WRKSRC}/obj
	cd ${GCC_WRKSRC}/obj && ../configure --prefix=${TARGET_DIR} \
		--enable-shared --target=${TARGET_ARCH} \
		--enable-languages=c --with-gnu-as \
		--with-gnu-ld --disable-nls
	-${RM} ${GCC_WRKSRC}/obj/texinfo/makeinfo/Makefile

gcc-build:
	${LN} -sf ${BINUTILS_WRKSRC}/obj/gas/as-new ${GCC_WRKSRC}/obj/gcc/as
	${LN} -sf ${BINUTILS_WRKSRC}/obj/ld/ld-new ${GCC_WRKSRC}/obj/gcc/ld
	${GMAKE} -C ${GCC_WRKSRC}/obj/libiberty
#	${GMAKE} -C ${GCC_WRKSRC}/obj/texinfo
	${GMAKE} -C ${GCC_WRKSRC}/obj/gcc LIBGCC="" LIBGCC1_TEST="" INSTALL_LIBGCC=""

gcc-install:
	${GMAKE} -C ${GCC_WRKSRC}/obj/gcc install-common install-headers \
		install-cpp lang.install-normal install-driver

# just uses autoheader -- any version is ok
USE_TOOLS+=	autoconf

.include "../../mk/bsd.pkg.mk"