blob: b456aefc9d56054b51174c1041f2b2e7d4ea620a (
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
|
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/freebsd.eclass,v 1.21 2012/05/17 13:58:08 aballier Exp $
#
# Diego Pettenò <flameeyes@gentoo.org>
inherit versionator eutils flag-o-matic bsdmk
LICENSE="BSD"
HOMEPAGE="http://www.freebsd.org/"
# Define global package names
LIB="freebsd-lib-${PV}"
BIN="freebsd-bin-${PV}"
CONTRIB="freebsd-contrib-${PV}"
SHARE="freebsd-share-${PV}"
UBIN="freebsd-ubin-${PV}"
USBIN="freebsd-usbin-${PV}"
CRYPTO="freebsd-crypto-${PV}"
LIBEXEC="freebsd-libexec-${PV}"
SBIN="freebsd-sbin-${PV}"
GNU="freebsd-gnu-${PV}"
ETC="freebsd-etc-${PV}"
SYS="freebsd-sys-${PV}"
INCLUDE="freebsd-include-${PV}"
RESCUE="freebsd-rescue-${PV}"
CDDL="freebsd-cddl-${PV}"
# Release version (5.3, 5.4, 6.0, etc)
RV="$(get_version_component_range 1-2)"
if [[ ${PN} != "freebsd-share" ]] && [[ ${PN} != freebsd-sources ]]; then
IUSE="profile"
fi
#unalias -a
alias install-info='/usr/bin/bsdinstall-info'
EXPORT_FUNCTIONS src_compile src_install src_unpack
# doperiodic <kind> <file> ...
doperiodic() {
local kind=$1
shift
( # dont want to pollute calling env
insinto /etc/periodic/${kind}
insopts -m 0755
doins "$@"
)
}
freebsd_get_bmake() {
local bmake
bmake=$(get_bmake)
[[ ${CBUILD} == *-freebsd* ]] || bmake="${bmake} -m /usr/share/mk/freebsd"
echo "${bmake}"
}
freebsd_do_patches() {
if [[ ${#PATCHES[@]} -gt 1 ]] ; then
for x in "${PATCHES[@]}"; do
epatch "${x}"
done
else
for x in ${PATCHES} ; do
epatch "${x}"
done
fi
}
freebsd_rename_libraries() {
ebegin "Renaming libraries"
# We don't use libtermcap, we use libncurses
find "${S}" -name Makefile -print0 | xargs -0 \
sed -i -e 's:-ltermcap:-lncurses:g; s:{LIBTERMCAP}:{LIBNCURSES}:g'
# flex provides libfl, not libl
find "${S}" -name Makefile -print0 | xargs -0 \
sed -i -e 's:-ll$:-lfl:g; s:-ll :-lfl :g; s:{LIBL}:{LIBFL}:g'
# ncurses provides libncursesw not libcursesw
find "${S}" -name Makefile -print0 | xargs -0 \
sed -i -e 's:-lcursesw:-lncursesw:g'
# we use expat instead of bsdxml
find "${S}" -name Makefile -print0 | xargs -0 \
sed -i -e 's:-lbsdxml:-lexpat:g'
eend $?
}
freebsd_src_unpack() {
unpack ${A}
cd "${S}"
dummy_mk ${REMOVE_SUBDIRS}
freebsd_do_patches
freebsd_rename_libraries
}
freebsd_src_compile() {
use profile && filter-flags "-fomit-frame-pointer"
use profile || mymakeopts="${mymakeopts} NO_PROFILE= "
mymakeopts="${mymakeopts} NO_MANCOMPRESS= NO_INFOCOMPRESS= NO_FSCHG="
# Many things breaks when using ricer flags here
[[ -z "${NOFLAGSTRIP}" ]] && strip-flags
# Make sure to use FreeBSD definitions while crosscompiling
[[ -z "${BMAKE}" ]] && BMAKE="$(freebsd_get_bmake)"
bsdmk_src_compile
}
freebsd_src_install() {
use profile || mymakeopts="${mymakeopts} NO_PROFILE= "
mymakeopts="${mymakeopts} NO_MANCOMPRESS= NO_INFOCOMPRESS= NO_FSCHG="
[[ -z "${BMAKE}" ]] && BMAKE="$(freebsd_get_bmake)"
bsdmk_src_install
}
|