summaryrefslogtreecommitdiff
blob: ccbd9c773be0d0283b576c48ae85a45a6140a84b (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
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/icc/icc-7.1.006.ebuild,v 1.9 2004/06/24 22:50:29 agriffis Exp $

inherit rpm

S=${WORKDIR}

DESCRIPTION="Intel C++ Compiler - Intel's Pentium optimized compiler for Linux"

SRC_URI1="ftp://download.intel.com/software/products/compilers/downloads/l_cc_p_7.1.006.tar"
SRC_URI2="ftp://download.intel.co.jp/software/products/compilers/downloads/l_cc_p_7.1.006.tar"
SRC_URI="${SRC_URI1} ${SRC_URI2}"

HOMEPAGE="http://www.intel.com/software/products/compilers/clin/"

LICENSE="icc-7.0"

DEPEND=">=sys-libs/glibc-2.2.5 \
	x86? ( sys-libs/lib-compat )"

SLOT="7"
KEYWORDS="-* ia64 x86"
IUSE=""

RESTRICT="nostrip"

src_unpack() {
	unpack ${A}
	cd ${S}

	# Keep disk space to a minimum
	if [ "$ARCH" = "x86" ]
	then
		rm -f intel-*.ia64.rpm
	else
		rm -f intel-*.i386.rpm
	fi

	for x in *.rpm
	do
		rpm_unpack $x
	done
}
src_compile() {

	# From UNTAG_CFG_FILES in 'install'
	SD=${S}/opt/intel # Build DESTINATION
	RD=/opt/intel # Real DESTINATION
	for FILE in $(find $SD/compiler*/ia??/bin/ -regex '.*[ei][cf]p?c$\|.*cfg$\|.*pcl$\|.*vars[^/]*.c?sh$' 2>/dev/null)
	do
		sed s@\<INSTALLDIR\>@$RD@g ${FILE} > ${FILE}.abs
		mv -f ${FILE}.abs ${FILE}
		chmod 755 ${FILE}
	done

	# From UNTAG_SUPPORT in 'install'
	eval `grep "^[ ]*COMBOPACKAGEID=" install`

	for SUPPORTFILE in ${SD}/compiler*/docs/*support
	do
		einfo "Untagging: ${SUPPORTFILE}"
		sed s@\<INSTALLTIMECOMBOPACKAGEID\>@$COMBOPACKAGEID@g $SUPPORTFILE > $SUPPORTFILE.abs
		mv $SUPPORTFILE.abs $SUPPORTFILE
		chmod 644 $SUPPORTFILE
	done

	# these should not be executable
	find "${SD}/compiler70/"{docs,man,training,ia32/include} -type f -exec chmod -x "{}" ";"
	find "${SD}/compiler70/ia32/lib" -name \*.a -exec chmod -x "{}" ";"

}

src_install () {
	dodoc lgpltext
	dodoc clicense
	cp -a opt ${D}

	insinto /etc/env.d
	if [ "$ARCH" = "x86" ]
	then
		newins ${FILESDIR}/${PVR}/05icc-ifc-ia32 05icc-ifc || die
		# fix the processor name issue with the primary icc executable
		exeinto /opt/intel/compiler70/ia32/bin
		newexe ${FILESDIR}/${PVR}/icc-ia32 icc
		newexe ${FILESDIR}/${PVR}/icpc-ia32 icc
	else
		newins ${FILESDIR}/${PVR}/05icc-ifc-ia64 05icc-ifc || die
		dodir /usr/bin
		dosym ../../opt/intel/compiler70/ia64/bin/eccbin /usr/bin/ecc
		dosym ../../opt/intel/compiler70/ia64/bin/ecpcbin /usr/bin/ecpc
	fi


}

pkg_postinst () {
	einfo "The ICC compiler for Itanium systems is called \"ecc\"."
	einfo "http://www.intel.com/software/products/compilers/clin/noncom.htm"
	einfo "From the above url you can get a free, non-commercial"
	einfo "license to use the Intel C++ Compiler emailed to you."
	einfo "You cannot run icc without this license file."
	einfo "Read the website for more information on this license."
	einfo
	einfo "Documentation can be found in /opt/intel/compiler70/docs/"
	einfo
	einfo "You will need to place your license in /opt/intel/licenses/"
	einfo

	ewarn
	ewarn "Packages compiled with versions of icc older than 7.0 will need"
	ewarn "to be recompiled. Until you do that, old packages will"
	ewarn "work if you edit /etc/ld.so.conf and change 'compiler70'"
	ewarn "to 'compiler60' and run 'ldconfig.' Note that this edit"
	ewarn "won't persist and will require you to re-edit after each"
	ewarn "package you re-install."
	ewarn "BEFORE COMPILING IMPORTANT APPLICATIONS THAT YOUR"
	ewarn "SYSTEM DEPENDS ON, READ THE WARNING ABOVE."
	ewarn "THIS COULD RENDER YOUR SYSTEM UNUSABLE."
	ewarn "THIS IS A PROBLEM WITH INTEL'S SOFTWARE, _NOT_"
	ewarn "WITH GENTOO."

	ewarn "If 'icc' breaks, use 'iccbin' instead and report a bug."
	ewarn "Please use 'source /etc/profile' prior to merging any icc-enabled"
	ewarn "ebuilds."
}