get_linux_config.sh 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/bash
  2. #######################################################################
  3. #
  4. # Copy successively all configs from the BSP directory (par #1)
  5. # to the Linux directory (par #2)
  6. # Do not copy config files for later linux versions than the current
  7. # A well-behaved filename is
  8. # "<name>-linux-2.6.<major>.<minor>.config" or
  9. # "<name>-linux-2.6.<major>.config"
  10. #
  11. #######################################################################
  12. TOPDIR=`pwd`
  13. DEBUG=0
  14. # parameter #1 BOARD_PATH
  15. # parameter #2 LINUX26_DIR
  16. CONFIGS=`ls -X $1/*linux-2.6.*.config | sed s/[.]config// - | sort`
  17. LINUX26_DIR=`basename $2`
  18. LINUX26_CONFIG=${2}/.config
  19. LINUX_MAJOR_VERSION=${LINUX26_DIR:10:2}
  20. LINUX_MINOR_VERSION=${LINUX26_DIR:13}
  21. function DBG_PRINT
  22. {
  23. if [ ${DEBUG} = 1 ] ; then
  24. echo $1
  25. fi
  26. }
  27. function linux_version()
  28. {
  29. local KCONFIG
  30. KCONFIG=`basename $1`
  31. KERNEL=`echo ${KCONFIG} | sed s/.*linux-2.6./linux-2.6./g -`
  32. THIS_MAJOR=${KERNEL:10:2}
  33. THIS_MINOR=${KERNEL:13}
  34. THIS_MINOR=${THIS_MINOR:=0}
  35. }
  36. # Try to be careful...
  37. DBG_PRINT MAJOR=\"${LINUX_MAJOR_VERSION}\"
  38. DBG_PRINT MINOR=\"${LINUX_MINOR_VERSION}\"
  39. for i in ${CONFIGS} ; do
  40. DBG_PRINT FILE=$i
  41. linux_version $i
  42. DBG_PRINT KERNEL=${KERNEL}
  43. if [ ${THIS_MAJOR} -lt ${LINUX_MAJOR_VERSION} ] ; then
  44. echo Copying `basename $i`.config ...
  45. cp $i.config ${LINUX26_CONFIG}
  46. elif [ ${THIS_MAJOR} -eq ${LINUX_MAJOR_VERSION} ] ; then
  47. if [ "${LINUX_MINOR_VERSION}X" = "X" ] ; then
  48. if [ "${THIS_MINOR}X" = "X" ] ; then
  49. echo Copying `basename $i`.config ...
  50. cp $i.config ${LINUX26_CONFIG}
  51. else
  52. return
  53. fi
  54. elif [ ${THIS_MINOR} -le ${LINUX_MINOR_VERSION} ] ; then
  55. echo Copying `basename $i`.config ...
  56. cp $i.config ${LINUX26_CONFIG}
  57. fi
  58. else
  59. return
  60. fi
  61. done
  62. # Did not work... - be promisceous
  63. if [ ! -f "${LINUX26_CONFIG}" ] ; then \
  64. for i in `ls $1/*linux*.config` ; do
  65. echo Copying `basename $i` ...
  66. cp $i ${LINUX26_CONFIG}
  67. done
  68. fi