public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Yuta SATOH" <nigoro.gentoo@0x100.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoo-bsd:master commit in: eclass/
Date: Fri, 30 Aug 2013 18:30:20 +0000 (UTC)	[thread overview]
Message-ID: <1377884628.9548fbfc49ee74f16b42bd0bca763f7561c4984f.yuta_satoh@gentoo> (raw)

commit:     9548fbfc49ee74f16b42bd0bca763f7561c4984f
Author:     Yuta SATOH <nigoro <AT> gentoo <DOT> gr <DOT> jp>
AuthorDate: Fri Aug 30 17:43:48 2013 +0000
Commit:     Yuta SATOH <nigoro.gentoo <AT> 0x100 <DOT> com>
CommitDate: Fri Aug 30 17:43:48 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-bsd.git;a=commit;h=9548fbfc

freebsd.eclass: import from latest tree

---
 eclass/freebsd.eclass | 220 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 220 insertions(+)

diff --git a/eclass/freebsd.eclass b/eclass/freebsd.eclass
new file mode 100644
index 0000000..ea6b21a
--- /dev/null
+++ b/eclass/freebsd.eclass
@@ -0,0 +1,220 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+#
+# Diego Pettenò <flameeyes@gentoo.org>
+
+inherit versionator eutils flag-o-matic bsdmk
+
+# Drop patch level from ${PV}
+MY_PV=${PV/_p*}
+PLEVEL=${PV##*_p}
+
+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}"
+SECURE="freebsd-secure-${PV}"
+
+# Release version (5.3, 5.4, 6.0, etc)
+RV="$(get_version_component_range 1-2 ${MY_PV})"
+
+# SVN ebuild support.
+#   9.1.0.9999 -->	release/9.1.0
+#	9.1.9999   -->	releng/9.1
+#   9.9999     -->	stable/9
+#	9999 -->	head
+# 
+# svn revision can be specified by patch level:
+#	freebsd-lib-9.9999_p247000 --> set svn -r 247000
+
+if [[ ${MY_PV} == *9999* ]]; then
+	inherit subversion
+
+	# Set SVN revision using patch level.
+	[[ ${PV} == *_p* ]] && ESVN_REVISION="${PLEVEL}"
+
+	case ${MY_PV%.9999} in
+		*.*.*)	BRANCH="release";;
+		*.*)	BRANCH="releng"	;;
+		9999)	BRANCH="head"	;;
+		*)	    BRANCH="stable"	;;
+	esac
+
+	if [[ ${BRANCH} == head ]]  ; then
+		SVN_SUB_URI="${BRANCH}"
+	else
+		SVN_SUB_URI="${BRANCH}/${MY_PV%.9999}"
+	fi
+
+	ESVN_REPO_URI="svn://svn.freebsd.org/base/${SVN_SUB_URI}"
+	ESVN_PROJECT="freebsd-${BRANCH}"
+fi
+
+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
+	epatch_user
+}
+
+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() {
+	if [[ ${MY_PV} == *9999* ]]; then
+		S="${WORKDIR}" subversion_src_unpack
+	else
+		unpack ${A}
+	fi
+	cd "${S}"
+
+	dummy_mk ${REMOVE_SUBDIRS}
+
+	freebsd_do_patches
+	freebsd_rename_libraries
+
+	# Starting from FreeBSD 9.2, its install command supports the -l option and
+	# they now use it. Emulate it if we are on a system that does not have it.
+	if [[ ${RV} > 9.1 ]] && ! has_version '>=sys-freebsd/freebsd-ubin-9.2_beta1' ; then
+		export INSTALL_LINK="ln -f"
+		export INSTALL_SYMLINK="ln -fs"
+	fi
+}
+
+freebsd_src_compile() {
+	use profile && filter-flags "-fomit-frame-pointer"
+	use profile || mymakeopts="${mymakeopts} NO_PROFILE= "
+
+	mymakeopts="${mymakeopts} NO_MANCOMPRESS= NO_INFOCOMPRESS= NO_FSCHG="
+
+	# Make sure to use FreeBSD definitions while crosscompiling
+	[[ -z "${BMAKE}" ]] && BMAKE="$(freebsd_get_bmake)"
+
+	# Create objdir if MAKEOBJDIRPREFIX is defined, so that we can make out of
+	# tree builds easily.
+	if [[ -n "${MAKEOBJDIRPREFIX}" ]] ; then
+		mkmake obj || die
+	fi
+
+	bsdmk_src_compile "$@"
+}
+
+# Helper function to make a multilib build with FreeBSD Makefiles.
+# Usage: 
+# MULTIBUILD_VARIANTS=( $(get_all_abis) )
+# multibuild_foreach_variant freebsd_multilib_multibuild_wrapper my_function
+#
+# Important note: To use this function you _have_ to:
+# - inherit multilib.eclass and multibuild.eclass
+# - set MULTIBUILD_VARIANTS
+
+freebsd_multilib_multibuild_wrapper() {
+	# Get the ABI from multibuild.eclass
+	# This assumes MULTIBUILD_VARIANTS contains only valid ABIs.
+	local ABI=${MULTIBUILD_VARIANT}
+
+	# First, save the variables: CFLAGS, CXXFLAGS, LDFLAGS, LDADD and mymakeopts.
+	for i in CFLAGS CXXFLAGS LDFLAGS LDADD mymakeopts ; do
+		export ${i}_SAVE="${!i}"
+	done
+
+	# Setup the variables specific to this ABI.
+	multilib_toolchain_setup "${ABI}"
+
+	local target="$(tc-arch-kernel ${CHOST})"
+	mymakeopts="${mymakeopts} TARGET=${target} MACHINE=${target} MACHINE_ARCH=${target} SHLIBDIR=/usr/$(get_libdir) LIBDIR=/usr/$(get_libdir)"
+	if [ "${ABI}" != "${DEFAULT_ABI}" ] ; then
+		mymakeopts="${mymakeopts} COMPAT_32BIT="
+	fi
+
+	einfo "Building for ABI=${ABI} and TARGET=${target}"
+
+	export MAKEOBJDIRPREFIX="${BUILD_DIR}"
+	if [ ! -d "${MAKEOBJDIRPREFIX}" ] ; then
+		mkdir "${MAKEOBJDIRPREFIX}" || die "Could not create ${MAKEOBJDIRPREFIX}."
+	fi
+	
+	CTARGET="${CHOST}" "$@"
+	
+	# Restore the variables now.
+	for i in CFLAGS CXXFLAGS LDFLAGS LDADD mymakeopts ; do
+		ii="${i}_SAVE"
+		export ${i}="${!ii}"
+	done
+}
+
+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
+}


             reply	other threads:[~2013-08-30 18:30 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-30 18:30 Yuta SATOH [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-10-11 13:46 [gentoo-commits] proj/gentoo-bsd:master commit in: eclass/ Yuta SATOH
2016-10-09  9:18 Yuta SATOH
2016-10-09  8:28 Yuta SATOH
2016-10-09  8:28 Yuta SATOH
2016-10-09  8:28 Yuta SATOH
2016-10-07 12:12 Yuta SATOH
2016-09-28 12:25 Yuta SATOH
2016-09-28 12:25 Yuta SATOH
2015-07-11 23:32 Yuta SATOH
2014-10-28 12:03 Yuta SATOH
2013-10-31 17:08 Yuta SATOH
2013-08-31 16:01 Yuta SATOH
2013-08-30 18:30 Yuta SATOH
2013-08-30 18:30 Yuta SATOH
2013-08-29 13:46 Yuta SATOH
2013-08-13 13:06 Yuta SATOH
2013-07-23 16:14 Yuta SATOH
2013-07-11 15:11 Yuta SATOH
2013-06-20 12:20 Yuta SATOH
2013-06-18 12:57 Yuta SATOH
2013-02-16 15:05 Yuta SATOH
2013-02-11 11:26 Yuta SATOH
2013-02-07 15:56 Yuta SATOH
2013-02-07 15:48 Yuta SATOH
2013-02-01 11:25 Yuta SATOH
2013-01-10 11:58 Yuta SATOH
2013-01-08 13:55 Yuta SATOH
2013-01-08 11:56 Yuta SATOH
2013-01-06 11:19 Yuta SATOH
2013-01-04 10:59 Yuta SATOH
2013-01-01 15:10 Yuta SATOH
2012-12-31 10:04 Yuta SATOH
2012-12-31  9:51 Yuta SATOH
2012-12-31  9:51 Yuta SATOH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1377884628.9548fbfc49ee74f16b42bd0bca763f7561c4984f.yuta_satoh@gentoo \
    --to=nigoro.gentoo@0x100.com \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox