summaryrefslogtreecommitdiff
path: root/eclass/compat-drivers-3.7.eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/compat-drivers-3.7.eclass')
-rw-r--r--eclass/compat-drivers-3.7.eclass543
1 files changed, 0 insertions, 543 deletions
diff --git a/eclass/compat-drivers-3.7.eclass b/eclass/compat-drivers-3.7.eclass
deleted file mode 100644
index 58bcee62..00000000
--- a/eclass/compat-drivers-3.7.eclass
+++ /dev/null
@@ -1,543 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-
-# @ECLASS: compat-drivers-3.7.eclass
-# @MAINTAINER:
-# wuodan@pentoo.ch
-# @BLURB: Implements functionality of driver-select script for several modules
-# @DESCRIPTION:
-# Implements functionality of driver-select script for several modules
-
-# compose IUSE and REQUIRED_USE from the categories
-IUSE+=" +build-all-modules"
-REQUIRED_USE+=" || ("
-for useexp in ${CPD_USE_EXPAND}; do
- USE_TEMP="\$CPD_USE_EXPAND_$useexp"
- for iuse in `eval echo "\$USE_TEMP"`; do
- if [ "${iuse:0:1}" = '+' ]; then
- IUSE+=" ${iuse:0:1}compat_drivers_${useexp}_${iuse:1}" || die
- REQUIRED_USE+=" compat_drivers_${useexp}_${iuse:1}" || die
- else
- IUSE+=" compat_drivers_${useexp}_${iuse}" || die
- REQUIRED_USE+=" compat_drivers_${useexp}_${iuse} build-all-modules" || die
- fi
- done
-done
-REQUIRED_USE+=" )"
-
-# ==============================================================================
-# INTERNAL VARIABLES
-# ==============================================================================
-
-# @VARIABLE: CPD_USE_EXPAND
-# @DESCRIPTION:
-# This variable needs to be set in the ebuild and contains the categories for
-# USE_EXPAND
-
-# @VARIABLE: CPD_USE_EXPAND_category
-# @DESCRIPTION:
-# These variables need to be set in the ebuild, one per category in
-# CPD_USE_EXPAND. They contain the modules of the categories.
-
-# @ECLASS-VARIABLE: CPD_MODULE
-# @DESCRIPTION:
-# This internal variable contains a temporary value, the currently processed
-# module.
-
-# @ECLASS-VARIABLE: CPD_DISABLE_${CPD_MODULE}
-# @DESCRIPTION:
-# These internal variables contains values, the 'disable-actions' of the
-# currently processed module. One variable exists for each active module.
-
-# @ECLASS-VARIABLE: CPD_MAKEFILES
-# @DESCRIPTION:
-# This internal variable contains a list of all 'Makefile's
-CPD_MAKEFILES="
- MAKEFILE
- COMPAT_CONFIG_CW
- DRIVERS_MAKEFILE
- ATH_MAKEFILE
- ATH9K_MAKEFILE
- BRCM80211_MAKEFILE
- RT2X00_MAKEFILE
- TI_MAKEFILE
- NET_WIRELESS_MAKEFILE
- EEPROM_MAKEFILE
- DRIVERS_NET_ATHEROS
- DRIVERS_NET_BROADCOM
- DRIVERS_NET_USB_MAKEFILE
- SSB_MAKEFILE
- BCMA_MAKEFILE"
-
-# @ECLASS-VARIABLE: CPD_MAKEFILES_ARRAY
-# @DESCRIPTION:
-# This internal variable contains an array with paths to all files
-CPD_MAKEFILES_ARRAY=(
- MAKEFILE=Makefile
- COMPAT_CONFIG_CW=config.mk
- DRIVERS_MAKEFILE=drivers/net/wireless/Makefile
- ATH_MAKEFILE=drivers/net/wireless/ath/Makefile
- ATH9K_MAKEFILE=drivers/net/wireless/ath/ath9k/Makefile
- BRCM80211_MAKEFILE=drivers/net/wireless/brcm80211/Makefile
- RT2X00_MAKEFILE=drivers/net/wireless/rt2x00/Makefile
- TI_MAKEFILE=drivers/net/wireless/ti/Makefile
- NET_WIRELESS_MAKEFILE=net/wireless/Makefile
- EEPROM_MAKEFILE=drivers/misc/eeprom/Makefile
- DRIVERS_NET_ATHEROS=drivers/net/ethernet/atheros/Makefile
- DRIVERS_NET_BROADCOM=drivers/net/ethernet/broadcom/Makefile
- DRIVERS_NET_USB_MAKEFILE=drivers/net/usb/Makefile
- SSB_MAKEFILE=drivers/ssb/Makefile
- BCMA_MAKEFILE=drivers/bcma/Makefile
-)
-
-# ==============================================================================
-# INTERNAL FUNCTIONS
-# ==============================================================================
-
-# @FUNCTION: get_makefile
-# @DESCRIPTION:
-# This internal function returns the path to a file from CPD_MAKEFILES_ARRAY
-function get_makefile {
- for file in "${CPD_MAKEFILES_ARRAY[@]}"; do
- if [ "${file%%=*}" = "${1}" ]; then
- echo "${file#*=}"
- return 0
- fi
- done
- die "Not found"
-}
-
-# @FUNCTION: select_drivers_from_makefile
-# @DESCRIPTION:
-# This internal function filters a Makefile
-# It deletes all non matching lines!
-function select_drivers_from_makefile
-{
- local makefile=$(get_makefile "$1")
- shift
- local configs=""
- for i in $@; do
- [ "${configs}" != '' ] && configs+='|'
- configs+="${i}"
- done
- einfo "Filtering file ${makefile} for: ${configs}"
- sed -r "/${configs}/!d" ${makefile} > ${makefile}.tmp || die
- mv ${makefile}.tmp ${makefile} || die
-}
-
-# @FUNCTION: disable
-# @DESCRIPTION:
-# This internal function registers a 'disable' action for a module.
-# It writes to a variable CPD_DISABLE_${CPD_MODULE}
-function disable {
- eval "CPD_DISABLE_${CPD_MODULE}+=\" ${*}\"" || die
-}
-
-# @FUNCTION: disable_makefile
-# @DESCRIPTION:
-# This internal function clears a Makefile completely. Use with care!
-function disable_makefile {
- einfo "Clearing entire file: ${1}"
- echo > $1 || die
-}
-
-# @FUNCTION: disable_staging
-# @DESCRIPTION:
-# This internal function disables "staging"
-function disable_staging
-{
- # perl -i -ne 'print if ! /CONFIG_COMPAT_STAGING/ ' "${MAKEFILE}"
- sed -i '/CONFIG_COMPAT_STAGING/d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_update-initramfs
-# @DESCRIPTION:
-# This internal function disables "update-initramfs"
-function disable_update-initramfs
-{
- # perl -i -ne 'print if ! /update-initramfs/' "${MAKEFILE}"
- sed -i '/update-initramfs/d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_lib80211
-# @DESCRIPTION:
-# This internal function disables "update-initramfs"
-function disable_lib80211
-{
- # perl -i -ne 'print if ! /LIB80211/ ' $NET_WIRELESS_MAKEFILE
- sed -i '/LIB80211/d' "$(get_makefile NET_WIRELESS_MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_b44
-# @DESCRIPTION:
-# This internal function disables "b44"
-function disable_b44 {
- # perl -i -ne 'print if ! /CONFIG_B44/ ' $DRIVERS_NET_BROADCOM
- sed -i '/CONFIG_B44/d' "$(get_makefile DRIVERS_NET_BROADCOM)" || die
-}
-
-# @FUNCTION: disable_ssb
-# @DESCRIPTION:
-# This internal function disables "ssb"
-function disable_ssb
-{
- disable_makefile "$(get_makefile ${SSB_MAKEFILE})"
- # perl -i -ne 'print if ! /drivers\/ssb\//' "${MAKEFILE}"
- sed -i '/drivers\/ssb\//d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_bcma
-# @DESCRIPTION:
-# This internal function disables "bcma"
-function disable_bcma
-{
- disable_makefile "$(get_makefile ${BCMA_MAKEFILE})"
- # perl -i -ne 'print if ! /drivers\/bcma\//' "${MAKEFILE}"
- sed -i '/drivers\/bcma\//d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_rfkill
-# @DESCRIPTION:
-# This internal function disables "rfkill"
-function disable_rfkill
-{
- # perl -i -ne 'print if ! /CONFIG_COMPAT_RFKILL/' "${MAKEFILE}"
- sed -i '/CONFIG_COMPAT_RFKILL/d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_eprom
-# @DESCRIPTION:
-# This internal function disables "eprom"
-function disable_eeprom
-{
- disable_makefile "$(get_makefile ${EEPROM_MAKEFILE})" || die
- # perl -i -ne 'print if ! /drivers\/misc\/eeprom\//' "${MAKEFILE}"
- sed -i '/drivers\/misc\/eeprom\//d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_usbnet
-# @DESCRIPTION:
-# This internal function disables "usbnet"
-function disable_usbnet
-{
- disable_makefile ${DRIVERS_NET_USB_MAKEFILE} || die
- # perl -i -ne 'print if ! /drivers\/net\/usb\//' "${MAKEFILE}"
- sed -i '/drivers\/net\/usb\//d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_usbnet
-# @DESCRIPTION:
-# This internal function disables "usbnet"
-# this function is twice in driver-select script!?!
-function disable_usbnet {
- # perl -i -ne 'print if ! /CONFIG_COMPAT_NET_USB_MODULES/' "${MAKEFILE}"
- sed -i '/CONFIG_COMPAT_NET_USB_MODULES/d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_ethernet
-# @DESCRIPTION:
-# This internal function disables "ethernet"
-function disable_ethernet {
- # perl -i -ne 'print if ! /CONFIG_COMPAT_NETWORK_MODULES/' "${MAKEFILE}"
- sed -i '/CONFIG_COMPAT_NETWORK_MODULES/d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_var_03
-# @DESCRIPTION:
-# This internal function disables "var_03"
-function disable_var_03 {
- # perl -i -ne 'print if ! /CONFIG_COMPAT_VAR_MODULES/' "${MAKEFILE}"
- sed -i '/CONFIG_COMPAT_VAR_MODULES/d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_bt
-# @DESCRIPTION:
-# This internal function disables "bt"
-function disable_bt {
- # perl -i -ne 'print if ! /CONFIG_COMPAT_BLUETOOTH/' "${MAKEFILE}"
- sed -i '/CONFIG_COMPAT_BLUETOOTH/d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_80211
-# @DESCRIPTION:
-# This internal function disables "80211"
-function disable_80211 {
- # perl -i -ne 'print if ! /CONFIG_COMPAT_WIRELESS/' "${MAKEFILE}"
- sed -i '/CONFIG_COMPAT_WIRELESS/d' "$(get_makefile MAKEFILE)" || die
-}
-
-# @FUNCTION: disable_ath9k_rate_control
-# @DESCRIPTION:
-# This internal function disables "ath9k_rate_control"
-# new function, not in driver-select
-function disable_ath9k_rate_control {
- # perl -i -ne 'print if ! /CONFIG_COMPAT_ATH9K_RATE_CONTROL/ ' $COMPAT_CONFIG_CW
- sed -i '/CONFIG_COMPAT_ATH9K_RATE_CONTROL/d' "$(get_makefile COMPAT_CONFIG_CW)" || die
-}
-
-# @FUNCTION: select_drivers
-# @DESCRIPTION:
-# This internal function registers filters for the drivers Makefile
-function select_drivers {
- eval "CPD_DRIVERS_MAKEFILE+=\" ${*}\"" || die
-}
-
-# @FUNCTION: select_ath_driver
-# @DESCRIPTION:
-# This internal function registers filters for the ath Makefile
-function select_ath_driver {
- eval "CPD_ATH_MAKEFILE+=\" ${*}\"" || die
-}
-
-# @FUNCTION: select_ath_driver_common
-# @DESCRIPTION:
-# This internal function registers common filters for the ath Makefile
-function select_ath_driver_common {
- # eval "CPD_ATH_MAKEFILE+=\" CONFIG_ATH_ ath-objs regd.o hw.o\"" || die
- select_ath_driver CONFIG_ATH_ ath-objs regd.o hw.o key.o || die
-}
-
-# @FUNCTION: select_brcm80211_driver
-# @DESCRIPTION:
-# This internal function registers filters for the brcm80211 Makefile
-function select_brcm80211_driver {
- eval "CPD_BRCM80211_MAKEFILE+=\" ${*}\"" || die
-}
-
-# @FUNCTION: select_ti_driver
-# @DESCRIPTION:
-# This internal function registers filters for the ti Makefile
-function select_ti_drivers {
- select_drivers CONFIG_WL_TI
- eval "CPD_TI_MAKEFILE+=\" ${*}\"" || die
-}
-
-# @FUNCTION: set_flag
-# @DESCRIPTION:
-# This internal function contains the configuration for each flag/module
-function set_flag {
- # clear/set global vars
- CPD_MODULE=$1
- case $1 in
- ath5k)
- disable staging usbnet ethernet bt update-initramfs var_03 || die
- select_drivers CONFIG_ATH_COMMON || die
- select_ath_driver CONFIG_ATH5K || die
- select_ath_driver_common || die
- ;;
- ath9k)
- disable staging usbnet ethernet bt update-initramfs var_03 || die
- select_drivers CONFIG_ATH_COMMON || die
- select_ath_driver CONFIG_ATH9K_HW || die
- select_ath_driver_common || die
- ;;
- ath9k_ap)
- disable staging usbnet ethernet bt update-initramfs var_03 || die
- select_drivers CONFIG_ATH_COMMON || die
- select_ath_driver CONFIG_ATH9K_HW || die
- select_ath_driver_common || die
- disable ath9k_rate_control || die
- ;;
- carl9170)
- disable staging usbnet ethernet bt update-initramfs var_03 || die
- select_drivers CONFIG_ATH_COMMON || die
- select_ath_driver CONFIG_CARL9170 || die
- select_ath_driver_common || die
- ;;
- ath9k_htc)
- disable staging usbnet ethernet bt update-initramfs var_03 || die
- select_drivers CONFIG_ATH_COMMON || die
- select_ath_driver CONFIG_ATH9K_HW || die
- select_ath_driver_common || die
- ;;
- ath6kl)
- disable staging usbnet ethernet bt update-initramfs var_03 || die
- select_drivers CONFIG_ATH_COMMON || die
- select_ath_driver CONFIG_ATH6KL || die
- select_ath_driver_common || die
- ;;
- brcmsmac)
- disable staging usbnet ethernet bt update-initramfs var_03 || die
- select_drivers CONFIG_BRCMSMAC || die
- select_brcm80211_driver CONFIG_BRCMSMAC CONFIG_BRCMUTIL || die
- ;;
- brcmfmac)
- disable staging usbnet ethernet bt update-initramfs var_03 || die
- select_drivers CONFIG_BRCMFMAC || die
- select_brcm80211_driver CONFIG_BRCMSMAC CONFIG_BRCMUTIL || die
- ;;
- zd1211rw)
- select_drivers CONFIG_COMPAT_ZD1211RW || die
- disable staging lib80211 ssb bcma usbnet eeprom update-initramfs || die
- ;;
- b43)
- disable staging usbnet ethernet bt update-initramfs || die
- disable eeprom lib80211 || die
- select_drivers CONFIG_B43 || die
- ;;
- rt2x00)
- select_drivers CONFIG_RT2X00 || die
- disable staging usbnet ethernet bt update-initramfs || die
- disable lib80211 ssb bcma usbnet update-initramfs || die
- ;;
- wl1251)
- select_ti_drivers CONFIG_WL1251 || die
- disable staging lib80211 ssb bcma usbnet eeprom update-initramfs || die
- ;;
- wl12xx)
- select_ti_drivers CONFIG_WL12XX || die
- disable staging lib80211 ssb bcma usbnet eeprom update-initramfs || die
- ;;
- wl18xx)
- select_ti_drivers CONFIG_WL18XX || die
- disable staging lib80211 ssb bcma usbnet eeprom update-initramfs || die
- ;;
- # Ethernet and Bluetooth drivers
- atl1)
- disable staging usbnet var_03 bt rfkill 80211 b44 || die
- echo -e "obj-\$(CONFIG_ATL1) += atlx/" > "$(get_makefile DRIVERS_NET_ATHEROS)" || die
- ;;
- atl2)
- disable staging usbnet var_03 bt rfkill 80211 b44 || die
- echo -e "obj-\$(CONFIG_ATL2) += atlx/" > "$(get_makefile DRIVERS_NET_ATHEROS)" || die
- ;;
- atl1e)
- disable staging usbnet var_03 bt rfkill 80211 b44 || die
- echo -e "obj-\$(CONFIG_ATL1E) += atl1e/" > "$(get_makefile DRIVERS_NET_ATHEROS)" || die
- ;;
- atl1c)
- disable staging usbnet var_03 bt rfkill 80211 b44 || die
- echo -e "obj-\$(CONFIG_ATL1C) += atl1c/" > "$(get_makefile DRIVERS_NET_ATHEROS)" || die
- ;;
- atlxx)
- select_drivers CONFIG_ATL1 CONFIG_ATL2 CONFIG_ATL1E CONFIG_ALX || die
- disable staging usbnet var_03 bt rfkill 80211 b44 update-initramfs || die
- ;;
- bt)
- select_drivers CONFIG_BT || die
- disable ssb bcma usbnet eeprom update-initramfs ethernet staging 80211 || die
- ;;
- i915)
- # rfkill may be needed if you enable b44 as you may have b43
- disable ethernet staging usbnet var_03 bt rfkill 80211 || die
- ;;
- drm)
- # rfkill may be needed if you enable b44 as you may have b43
- disable ethernet staging usbnet var_03 bt rfkill 80211 || die
- ;;
- # Manually added options by pentoo
- usbnet)
- # disable everything else
- disable staging update-initramfs lib80211 b44 ssb bcma rfkill eeprom ethernet var_03 bt 80211 ath9k_rate_control || die
- ;;
- staging)
- # disable everything else
- disable usbnet update-initramfs lib80211 b44 ssb bcma rfkill eeprom ethernet var_03 bt 80211 ath9k_rate_control || die
- ;;
- b44)
- disable staging usbnet ethernet bt update-initramfs || die
- disable eeprom lib80211 || die
- select_drivers CONFIG_B44 || die
- ;;
- *)
- die "Unsupported driver: ${1}"
- exit
- ;;
- esac
-}
-
-# @FUNCTION: echo_flag_settings
-# @DESCRIPTION:
-# This internal function outputs the "disable" actions for a flag
-function echo_flag_settings {
- # example:
- # CPD_DISABLE_${iflag}="action1 action2"
- # CPD_DRIVERS_MAKEFILE="flag1 flag1"
- # CPD_ATH_MAKEFILE="flag3"
- # ...
- local iflag=$1
- eval "local disable_list=\"\${CPD_DISABLE_${iflag}}\"" || die
- einfo "Disable list for ${iflag}: ${disable_list}"
-}
-
-# ==============================================================================
-# EXPORTED FUNCTIONS
-# ==============================================================================
-
-# @FUNCTION: compat-drivers-3.7_src_configure
-# @DESCRIPTION:
-# This function reads the configuration (disable-actions and filters) for each
-# single active flag, then constructs and applies the common configuration set.
-compat-drivers-3.7_src_configure() {
- # early exit, skip filtering of configuration and build all modules
- if use build-all-modules; then
- ewarn "You have chosen to build all modules!"
- ewarn "The Pentoo team strives to build only the desired modules and the"
- ewarn "use flag 'build-all-modules' should only be used when"
- ewarn "the desired modules is not available through another flag."
- ewarn "Please open an issue at the Pentoo site and let us know which"
- ewarn "module was missing!"
- return 0
- fi
-
- # loop over all modules
- local use_temp=''
- local use_enabled_list=''
- for useexp in ${CPD_USE_EXPAND}; do
- use_temp="\$CPD_USE_EXPAND_$useexp" || die
- for iuse in `eval echo "\$use_temp"`; do
- if [ "${iuse:0:1}" = '+' ]; then
- local iuse2=${iuse:1} || die
- else
- local iuse2=${iuse} || die
- fi
- local iflag="compat_drivers_${useexp}_${iuse2}" || die
- # check if it's enabled
- if use "${iflag}"; then
- use_enabled_list+=" ${iuse2}" || die
- # fill the disable/enable lists
- # example:
- # CPD_DISABLE_${iflag}="action1 action2"
- # CPD_DRIVERS_MAKEFILE="flag1 flag1"
- # CPD_ATH_MAKEFILE="flag3"
- # ...
- set_flag "${iuse2}" || die
- echo_flag_settings "${iuse2}" || die
- fi
- done
- done
- einfo "List of enabled modules: ${use_enabled_list}"
- # compose common disable list for all flags
- # 1st module/flag
- local iuse1="$(echo $use_enabled_list | cut -d ' ' -f 1)" || die
- eval "local disable_list=\$CPD_DISABLE_${iuse1}" || die
- for iuse in ${use_enabled_list}; do
- if [ "${iuse}" != "${iuse1}" ]; then
- local disable_list_new='' || die
- eval "local disable_list_other=\$CPD_DISABLE_${iuse}" || die
- for dis in ${disable_list}; do
- has "${dis}" ${disable_list_other} && \
- disable_list_new+=" ${dis}"
- done
- disable_list="${disable_list_new}" || die
- fi
- done
- # execute all filters for the Makefiles
- for file in ${CPD_MAKEFILES}; do
- eval "local filter_list=\$CPD_${file}" || die
- if [ -n "${filter_list}" ]; then
- # einfo "Filtering $(get_makefile ${file}) for: ${filter_list}"
- select_drivers_from_makefile "${file}" "${filter_list}" || die
- fi
- done
- # execute common disable list
- einfo "Common disable list: ${disable_list}"
- for dis in ${disable_list}; do
- einfo "Running disable function: disable_${dis}"
- eval "disable_${dis}" || die
- done
-}
-
-EXPORT_FUNCTIONS src_configure || die