summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorYuta SATOH <nigoro.dev@gmail.com>2016-10-09 17:19:26 +0900
committerYuta SATOH <nigoro.dev@gmail.com>2016-10-09 17:19:26 +0900
commit33612af8cae165e0549873ae64e6713d4de5e004 (patch)
treebd50d562657e37cb5b6d7539934a4983be2e2b93 /eclass
parentfreebsd.eclass: Pass all of arguments to bsdmk_src_install. (diff)
downloadgentoo-bsd-33612af8cae165e0549873ae64e6713d4de5e004.tar.gz
gentoo-bsd-33612af8cae165e0549873ae64e6713d4de5e004.tar.bz2
gentoo-bsd-33612af8cae165e0549873ae64e6713d4de5e004.zip
eclass/bsdmk.eclass: import from latest tree
Diffstat (limited to 'eclass')
-rw-r--r--eclass/bsdmk.eclass83
1 files changed, 83 insertions, 0 deletions
diff --git a/eclass/bsdmk.eclass b/eclass/bsdmk.eclass
new file mode 100644
index 0000000..3ce3572
--- /dev/null
+++ b/eclass/bsdmk.eclass
@@ -0,0 +1,83 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# @ECLASS: bsdmk.eclass
+# @MAINTAINER:
+# maintainer-needed@gentoo.org
+# @BLURB: Some functions for BSDmake
+
+inherit toolchain-funcs portability flag-o-matic
+
+EXPORT_FUNCTIONS src_compile src_install
+
+RDEPEND=""
+# this should actually be BDEPEND, but this works.
+DEPEND="virtual/pmake"
+
+ESED="/usr/bin/sed"
+
+# @ECLASS-VARIABLE: mymakeopts
+# @DESCRIPTION:
+# Options for bsd-make
+
+# @FUNCTION: append-opt
+# @USAGE: < options >
+# @DESCRIPTION:
+# append options to enable or disable features
+append-opt() {
+ mymakeopts="${mymakeopts} $@"
+}
+
+# @FUNCTION: mkmake
+# @USAGE: [ options ]
+# @DESCRIPTION:
+# calls bsd-make command with the given options, passing ${mymakeopts} to
+# enable ports to useflags bridge.
+mkmake() {
+ [[ -z ${BMAKE} ]] && BMAKE="$(get_bmake)"
+
+ tc-export CC CXX LD RANLIB
+
+ ${BMAKE} ${MAKEOPTS} ${EXTRA_EMAKE} ${mymakeopts} NO_WERROR= STRIP= "$@"
+}
+
+# @FUNCTION: mkinstall
+# @USAGE: [ options ]
+# @DESCRIPTION:
+# Calls "bsd-make install" with the given options, passing ${mamakeopts} to
+# enable ports to useflags bridge
+mkinstall() {
+ [[ -z ${BMAKE} ]] && BMAKE="$(get_bmake)"
+
+ # STRIP= will replace the default value of -s, leaving to portage the
+ # task of stripping executables.
+ ${BMAKE} ${mymakeopts} NO_WERROR= STRIP= MANSUBDIR= DESTDIR="${D}" "$@" install
+}
+
+# @FUNCTION: dummy_mk
+# @USAGE: < dirnames >
+# @DESCRIPTION:
+# removes the specified subdirectories and creates a dummy makefile in them
+# useful to remove the need for "minimal" patches
+dummy_mk() {
+ for dir in $@; do
+ [ -d ${dir} ] || ewarn "dummy_mk called on a non-existing directory: $dir"
+ [ -f ${dir}/Makefile ] || ewarn "dummy_mk called on a directory without Makefile: $dir"
+ echo ".include <bsd.lib.mk>" > ${dir}/Makefile
+ done
+}
+
+# @FUNCTION: bsdmk_src_compile
+# @DESCRIPTION:
+# The bsdmk src_compile function, which is exported
+bsdmk_src_compile() {
+ mkmake "$@" || die "make failed"
+}
+
+# @FUNCTION: bsdmk_src_install
+# @DESCRIPTION:
+# The bsdmk src_install function, which is exported
+bsdmk_src_install() {
+ mkinstall || die "install failed"
+}