Return-path: Received: from mail-wi0-f170.google.com ([209.85.212.170]:42290 "EHLO mail-wi0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754743Ab2HISB5 (ORCPT ); Thu, 9 Aug 2012 14:01:57 -0400 Received: by mail-wi0-f170.google.com with SMTP id hq12so549871wib.1 for ; Thu, 09 Aug 2012 11:01:57 -0700 (PDT) From: =?UTF-8?q?Ozan=20=C3=87a=C4=9Flayan?= To: linux-wireless@vger.kernel.org Cc: =?UTF-8?q?Ozan=20=C3=87a=C4=9Flayan?= Subject: [PATCH 06/13] compat-wireless: Conditionally build network drivers Date: Thu, 9 Aug 2012 21:01:25 +0300 Message-Id: <1344535292-4451-7-git-send-email-ozancag@gmail.com> (sfid-20120809_200204_541054_9452F929) In-Reply-To: <1344535292-4451-1-git-send-email-ozancag@gmail.com> References: <1344535292-4451-1-git-send-email-ozancag@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: Separate building of network drivers into its own conditional block. Pass network as the last cmdline argument to mimic older compat-wireless behaviour. Signed-off-by: Ozan Çağlayan --- scripts/admin-update.sh | 254 ++++++++++++++++++------------------------------ 1 file changed, 92 insertions(+), 162 deletions(-) diff --git a/scripts/admin-update.sh b/scripts/admin-update.sh index 1c516e9..05ec449 100755 --- a/scripts/admin-update.sh +++ b/scripts/admin-update.sh @@ -75,7 +75,7 @@ patchRefresh() { ### usage() { printf "Usage: $0 [refresh] [ --help | -h | -s | -n | -p | -c ] \n - Where subsystems are: wlan, bluetooth, ethernet and drm.\n" + Where subsystems are: network and drm.\n" printf "\n" printf "${GREEN}%10s${NORMAL} - Update all your patch offsets using quilt\n" "refresh" @@ -199,10 +199,8 @@ copyDirectories() { # can not be applied correctly after a code update in $GIT_URL. # These switches determines which drivers to fetch in. -ENABLE_WLAN= -ENABLE_ETH= +ENABLE_NETWORK= ENABLE_DRM= -ENABLE_BT= EXTRA_PATCHES="patches" REFRESH="n" @@ -247,16 +245,8 @@ if [ $# -ge 1 ]; then REFRESH="y" shift ;; - "wlan") - ENABLE_WLAN=1 - shift - ;; - "bluetooth") - ENABLE_BT=1 - shift - ;; - "ethernet") - ENABLE_ETH=1 + "net") + ENABLE_NETWORK=1 shift ;; "drm") @@ -323,26 +313,26 @@ INCLUDE_NET_BT="hci_core.h smp.h a2mp.h" -# Bluetooth related directories -NET_BT_DIRS="bluetooth - bluetooth/bnep - bluetooth/cmtp - bluetooth/rfcomm - bluetooth/hidp" - # Required headers from include/linux -INCLUDE_LINUX="ieee80211.h - nl80211.h - pci_ids.h - eeprom_93cx6.h - ath9k_platform.h - wl12xx.h - rndis.h" +INCLUDE_LINUX_WLAN="ieee80211.h + nl80211.h + eeprom_93cx6.h + ath9k_platform.h + wl12xx.h + rndis.h" # For rndis_wext -INCLUDE_LINUX_USB="usbnet.h rndis_host.h" +INCLUDE_LINUX_USB_WLAN="usbnet.h + rndis_host.h" -INCLUDE_LINUX_SPI="libertas_spi.h" +# For rndis_wlan, we need a new rndis_host.ko, cdc_ether.ko and usbnet.ko +RNDIS_REQUIREMENTS="Makefile + rndis_host.c + cdc_ether.c + usbnet.c" + +# For libertas +INCLUDE_LINUX_LIBERTAS_WLAN="libertas_spi.h" # 802.11 related headers INCLUDE_NET="cfg80211.h @@ -352,7 +342,17 @@ INCLUDE_NET="cfg80211.h mac80211.h regulatory.h" -NET_DIRS="wireless mac80211 rfkill" +# Core 802.11 and rfkill code +NET_WLAN_DIRS="net/wireless + net/mac80211 + net/rfkill" + +# Bluetooth related directories +NET_BT_DIRS="net/bluetooth + net/bluetooth/bnep + net/bluetooth/cmtp + net/bluetooth/rfcomm + net/bluetooth/hidp" # WLAN drivers that have their own directory DRIVERS_WLAN="drivers/bcma @@ -433,97 +433,58 @@ mkdir -p \ include/trace \ include/pcmcia \ include/crypto \ - net/mac80211/ \ - net/wireless/ \ - net/rfkill/ \ - drivers/ssb/ \ - drivers/bcma/ \ - drivers/net/usb/ \ - drivers/net/wireless/ \ - drivers/net/ethernet/atheros \ - drivers/net/ethernet/broadcom - -# include/linux -DIR="include/linux" -for i in $INCLUDE_LINUX; do - echo "Copying $GIT_TREE/$DIR/$i" - cp "$GIT_TREE/$DIR/$i" $DIR/ -done - -cp -a $GIT_TREE/include/linux/ssb include/linux/ -cp -a $GIT_TREE/include/linux/bcma include/linux/ -cp -a $GIT_TREE/include/linux/rfkill.h include/linux/rfkill_backport.h - -# include/net -DIR="include/net" -for i in $INCLUDE_NET; do - echo "Copying $GIT_TREE/$DIR/$i" - cp "$GIT_TREE/$DIR/$i" $DIR/ -done - -DIR="include/net/bluetooth" -for i in $INCLUDE_NET_BT; do - echo "Copying $GIT_TREE/$DIR/$i" - cp $GIT_TREE/$DIR/$i $DIR/ -done - -DIR="include/linux/usb" -for i in $INCLUDE_LINUX_USB; do - echo "Copying $GIT_TREE/$DIR/$i" - cp $GIT_TREE/$DIR/$i $DIR/ -done - -DIR="include/linux/spi" -for i in $INCLUDE_LINUX_SPI; do - echo "Copying $GIT_TREE/$DIR/$i" - cp $GIT_TREE/$DIR/$i $DIR/ -done - -# net/wireless and net/mac80211 -for i in $NET_DIRS; do - echo "Copying $GIT_TREE/net/$i/*.[ch]" - cp $GIT_TREE/net/$i/*.[ch] net/$i/ - cp $GIT_TREE/net/$i/Makefile net/$i/ - cp $GIT_TREE/net/$i/Kconfig net/$i/ -done - -cp $GIT_TREE/MAINTAINERS ./ - -# Copy files needed for statically compiled regulatory rules database -cp $GIT_TREE/net/wireless/db.txt net/wireless/ -cp $GIT_TREE/net/wireless/genregdb.awk net/wireless/ - -# net/bluetooth -for i in $NET_BT_DIRS; do - mkdir -p net/$i - echo "Copying $GIT_TREE/net/$i/*.[ch]" - cp $GIT_TREE/net/$i/*.[ch] net/$i/ - cp $GIT_TREE/net/$i/Makefile net/$i/ -done - -# Drivers in their own directory -for i in $DRIVERS; do - mkdir -p $i - - # -print -quit will just print once, so we don't burden - # this script with searching for further files if one is - # found - FILES_FOUND=$(find $GIT_TREE/$i/ -maxdepth 1 -type f -name \*.[ch] -print -quit | wc -l) - if [ $FILES_FOUND -eq 1 ]; then - echo "Copying $GIT_TREE/$i/*.[ch]" - cp $GIT_TREE/$i/*.[ch] $i/ - fi - if [ -f $GIT_TREE/$i/Makefile ]; then - cp $GIT_TREE/$i/Makefile $i/ - fi - if [ -f $GIT_TREE/$i/Kconfig ]; then - cp $GIT_TREE/$i/Kconfig $i/ - fi -done + drivers/bcma \ + drivers/misc/eeprom \ + drivers/net/usb \ + drivers/net/ethernet/broadcom \ + drivers/ssb \ + drivers/staging \ + $NET_WLAN_DIRS \ + $NET_BT_DIRS \ + $DRIVERS_WLAN \ + $DRIVERS_ETH \ + $DRIVERS_BT + +# Copy pci_ids.h for every situation +cp $GIT_TREE/include/linux/pci_ids.h include/linux + +if [[ -n "$ENABLE_NETWORK" ]]; then + # WLAN and bluetooth files + copyFiles "$INCLUDE_LINUX_WLAN" "include/linux" + copyFiles "$INCLUDE_NET" "include/net" + copyFiles "$INCLUDE_NET_BT" "include/net/bluetooth" + copyFiles "$INCLUDE_LINUX_USB_WLAN" "include/linux/usb" + copyFiles "$INCLUDE_LINUX_LIBERTAS_WLAN" "include/linux/spi" + copyFiles "$DRIVERS_WLAN_FILES" "drivers/net/wireless" + copyFiles "$RNDIS_REQUIREMENTS" "drivers/net/usb" + + copyDirectories "$NET_WLAN_DIRS" + copyDirectories "$NET_BT_DIRS" + copyDirectories "$DRIVERS_BT" + copyDirectories "$DRIVERS_WLAN" + copyDirectories "$DRIVERS_ETH" + + cp -a $GIT_TREE/include/linux/ssb include/linux/ + cp -a $GIT_TREE/include/linux/bcma include/linux/ + cp -a $GIT_TREE/include/linux/rfkill.h include/linux/rfkill_backport.h + + # Misc + cp $GIT_TREE/drivers/misc/eeprom/{Makefile,eeprom_93cx6.c} drivers/misc/eeprom/ + + # Copy files needed for statically compiled regulatory rules database + cp $GIT_TREE/net/wireless/{db.txt,genregdb.awk} net/wireless/ + + # Top level wireless driver Makefile + cp $GIT_TREE/drivers/net/wireless/Makefile drivers/net/wireless + + # Broadcom case + DIR="drivers/net/ethernet/broadcom" + cp $GIT_TREE/$DIR/b44.[ch] drivers/net/ethernet/broadcom + # Not yet + echo "obj-\$(CONFIG_B44) += b44.o" > drivers/net/ethernet/broadcom/Makefile +fi # Staging drivers in their own directory -rm -rf drivers/staging/ -mkdir -p drivers/staging/ for i in $STAGING_DRIVERS; do if [ ! -d $GIT_TREE/$i ]; then continue @@ -534,59 +495,28 @@ for i in $STAGING_DRIVERS; do cp -a $GIT_TREE/$i drivers/staging/ done -for i in $DRIVERS_BT; do - mkdir -p $i - echo "Copying $GIT_TREE/$i/*.[ch]" - cp $GIT_TREE/$i/*.[ch] $i/ - cp $GIT_TREE/$i/Makefile $i/ -done - -# For rndis_wlan, we need a new rndis_host.ko, cdc_ether.ko and usbnet.ko -RNDIS_REQS="Makefile rndis_host.c cdc_ether.c usbnet.c" -DIR="drivers/net/usb" -for i in $RNDIS_REQS; do - echo "Copying $GIT_TREE/$DIR/$i" - cp $GIT_TREE/$DIR/$i $DIR/ -done - -DIR="drivers/net/ethernet/broadcom" -echo > $DIR/Makefile -cp $GIT_TREE/$DIR/b44.[ch] $DIR -# Not yet -echo "obj-\$(CONFIG_B44) += b44.o" >> $DIR/Makefile - -# Misc -mkdir -p drivers/misc/eeprom/ -cp $GIT_TREE/drivers/misc/eeprom/eeprom_93cx6.c drivers/misc/eeprom/ -cp $GIT_TREE/drivers/misc/eeprom/Makefile drivers/misc/eeprom/ - -DIR="drivers/net/wireless" -# Drivers part of the wireless directory -for i in $DRIVERS_WLAN_FILES; do - cp $GIT_TREE/$DIR/$i $DIR/ -done - -# Top level wireless driver Makefile -cp $GIT_TREE/$DIR/Makefile $DIR +########################### +# Suck in compat.git tree # +########################### -# Compat stuff COMPAT="compat" mkdir -p $COMPAT echo "Copying $GIT_COMPAT_TREE/ files..." -cp $GIT_COMPAT_TREE/compat/*.[ch] $COMPAT/ -cp $GIT_COMPAT_TREE/compat/Makefile $COMPAT/ cp -a $GIT_COMPAT_TREE/udev . cp -a $GIT_COMPAT_TREE/scripts $COMPAT/ cp $GIT_COMPAT_TREE/bin/ckmake $COMPAT/ -cp -a $GIT_COMPAT_TREE/include/linux/* include/linux/ -cp -a $GIT_COMPAT_TREE/include/net/* include/net/ -cp -a $GIT_COMPAT_TREE/include/trace/* include/trace/ -cp -a $GIT_COMPAT_TREE/include/pcmcia/* include/pcmcia/ -cp -a $GIT_COMPAT_TREE/include/crypto/* include/crypto/ +cp $GIT_COMPAT_TREE/compat/{Makefile,*.[ch]} $COMPAT/ +DIRS="linux net trace crypto pcmcia" +for dir in $DIRS; do + cp -a $GIT_COMPAT_TREE/include/$dir/* include/$dir/ +done # Clean up possible *.mod.c leftovers find -type f -name "*.mod.c" -exec rm -f {} \; +# Finally copy MAINTAINERS file +cp $GIT_TREE/MAINTAINERS ./ + # files we suck in for wireless drivers export WSTABLE=" net/wireless/ -- 1.7.11.2