129 lines
3 KiB
Bash
129 lines
3 KiB
Bash
# 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.18 2011/12/27 17:55:12 fauli 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'
|
|
|
|
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 || \
|
|
case "${RV}" in
|
|
5.*) mymakeopts="${mymakeopts} NOPROFILE= " ;;
|
|
6.*|7.*) mymakeopts="${mymakeopts} NO_PROFILE= " ;;
|
|
esac
|
|
|
|
mymakeopts="${mymakeopts} NO_MANCOMPRESS= NO_INFOCOMPRESS="
|
|
|
|
# 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 || \
|
|
case "${RV}" in
|
|
5.*) mymakeopts="${mymakeopts} NOPROFILE= " ;;
|
|
6.*|7.*) mymakeopts="${mymakeopts} NO_PROFILE= " ;;
|
|
esac
|
|
|
|
mymakeopts="${mymakeopts} NO_MANCOMPRESS= NO_INFOCOMPRESS="
|
|
|
|
[[ -z "${BMAKE}" ]] && BMAKE="$(freebsd_get_bmake)"
|
|
|
|
bsdmk_src_install
|
|
}
|