Advertisement
Guest User

tty_build

a guest
Apr 4th, 2022
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.52 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. JOBS=$((`grep -c ^processor /proc/cpuinfo`+1))
  4.  
  5. declare -a MAKE_OPTS=()
  6. declare -a DFF=()
  7.  
  8. while getopts "d:cC:" OPT; do
  9.     case "$OPT" in
  10.         c)
  11.             MAKE_OPTS+=('C=1')
  12.             ;;
  13.         C)
  14.             MAKE_OPTS+=("CC=$OPTARG")
  15.             ;;
  16.         d) readarray -t DFF < <(git diff --name-only "$OPTARG"|sed -n 's@\.c$@.o@ p')
  17.             echo Files: "${DFF[@]}"
  18.             if [ "${#DFF[@]}" -eq 0 ]; then
  19.                 exit 1
  20.             fi
  21.             ;;
  22.         *) exit 1
  23.             ;;
  24.     esac
  25. done
  26.  
  27. if [ "${#DFF[@]}" -ne 0 ]; then
  28.     set -- "${DFF[@]}"
  29. else
  30.     shift $(($OPTIND-1))
  31. fi
  32.  
  33. declare -A DRV_ARCH=(
  34.     arch/m68k/emu/nfcon.o m68k
  35.     arch/parisc/kernel/pdc_cons.o parisc
  36.     arch/xtensa/platforms/iss/console.o xtensa
  37.     drivers/s390/char/con3215.o s390
  38.     drivers/s390/char/sclp_rw.o s390
  39.     drivers/s390/char/sclp_tty.o s390
  40.     drivers/s390/char/sclp_vt220.o s390
  41.     drivers/s390/char/tty3270.o s390
  42.     drivers/tty/amiserial.o m68k
  43.     drivers/tty/ehv_bytechan.o powerpc
  44.     drivers/tty/hvc/hvc_dcc.o arm64
  45.     drivers/tty/hvc/hvcs.o powerpc
  46.     drivers/tty/hvc/hvsi.o powerpc
  47.     drivers/tty/serial/amba-pl010.o arm64
  48.     drivers/tty/serial/amba-pl011.o arm64
  49.     drivers/tty/serial/apbuart.o sparc
  50.     drivers/tty/serial/ar933x_uart.o mips
  51.     drivers/tty/serial/cpm_uart/cpm_uart_core.o powerpc_mpc5200
  52.     drivers/tty/serial/dz.o mips_decstation
  53.     drivers/tty/serial/earlycon-arm-semihost.o arm64
  54.     drivers/tty/serial/earlycon-riscv-sbi.o riscv
  55.     drivers/tty/serial/ip22zilog.o mips
  56.     drivers/tty/serial/mcf.o m68k_coldfire
  57.     drivers/tty/serial/mpc52xx_uart.o powerpc_mpc5200
  58.     drivers/tty/serial/mux.o parisc
  59.     drivers/tty/serial/pic32_uart.o mips
  60.     drivers/tty/serial/pmac_zilog.o powerpc
  61.     drivers/tty/serial/pxa.o arm_pxa
  62.     drivers/tty/serial/serial_txx9.o mips_rbtx49xx
  63.     drivers/tty/serial/sa1100.o arm_sa1100
  64.     drivers/tty/serial/sunsab.o sparc
  65.     drivers/tty/serial/sunsu.o sparc
  66.     drivers/tty/serial/sunzilog.o sparc
  67.     drivers/tty/serial/vr41xx_siu.o mips_e55
  68.     drivers/tty/serial/zs.o mips_decstation
  69.     drivers/tty/serial/21285.o arm_footbridge
  70.     drivers/tty/serial/8250/8250_aspeed_vuart.o arm64
  71.     drivers/tty/serial/8250/8250_em.o arm
  72.     drivers/tty/serial/8250/8250_fsl.o arm64
  73.     drivers/tty/serial/8250/8250_gsc.o parisc
  74.     drivers/tty/serial/8250/8250_acorn.o arm_rpc
  75.     drivers/tty/serial/8250/8250_hp300.o m68k
  76.     drivers/tty/serial/8250/8250_pxa.o arm_pxa
  77.     drivers/tty/vcc.o sparc
  78.  
  79.     drivers/tty/mips_ejtag_fdc.o mips_special # MIPS_EJTAG_FDC_TTY -> MIPS_CDMM -> CPU_MIPSR2 || CPU_MIPSR5
  80.     drivers/tty/serial/sb1250-duart.o mips #SIBYTE_SB1xxx_SOC
  81.     drivers/tty/serial/8250/8250_ioc3.o mips_special # SGI_MFD_IOC3 -> 64BIT
  82.     sound/soc/ti/ams-delta.o arm_special # SND_SOC_OMAP_AMS_DELTA -> MACH_AMS_DELTA -> OMAP1
  83. )
  84.  
  85. function echo_red() {
  86.     tput setaf 9
  87.     echo "$@"
  88.     tput sgr0
  89. }
  90.  
  91. declare -a UNHANDLED
  92. declare -a BU
  93. declare -A ARCHS
  94.  
  95. for FILE; do
  96.     ARCH="${DRV_ARCH[$FILE]}"
  97.     if [ -n "$ARCH" ]; then
  98.         declare -n ref="$ARCH"
  99.         ref+=($FILE)
  100.         ARCHS[$ARCH]=1
  101.     else
  102.         BU+=($FILE)
  103.     fi
  104. done
  105.  
  106. for ARCH in "${!ARCHS[@]}"; do
  107.     declare -n ref="$ARCH"
  108.     echo
  109.     echo_red "=== BUILDING for $ARCH ==="
  110.     echo Files: "${ref[@]}"
  111.     ../a/arch/build.sh "$ARCH" "${ref[@]}"
  112.     RETVAL=$?
  113.     if [ $RETVAL -eq 200 ]; then
  114.         UNHANDLED+=("${ref[@]}")
  115.     elif [ $RETVAL -ne 0 ]; then
  116.            exit 1
  117.     fi
  118.     echo "=== done $ARCH ==="
  119.     echo
  120. done
  121.  
  122. if [ "${#BU[@]}" -ne 0 ]; then
  123.     echo_red "=== BUILDING ==="
  124.     echo Files: "${BU[@]}"
  125.     set -x
  126.     make O=../bu -k "-j$JOBS" CC=gcc-12 C=1 "${BU[@]}"
  127.     set +x
  128.     echo "=== done ==="
  129. fi
  130.  
  131. if [ "${#UNHANDLED[@]}" -ne 0 ]; then
  132.     echo
  133.     echo_red "=== UNHANDLED files ==="
  134.     ( IFS=$'\n'; echo "${UNHANDLED[*]}" )
  135. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement