get_linux_config.sh 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. }
  35. # Try to be careful...
  36. DBG_PRINT MAJOR=\"${LINUX_MAJOR_VERSION}\"
  37. DBG_PRINT MINOR=\"${LINUX_MINOR_VERSION}\"
  38. for i in ${CONFIGS} ; do
  39. DBG_PRINT FILE=$i
  40. linux_version $i
  41. DBG_PRINT KERNEL=${KERNEL}
  42. if [ ${THIS_MAJOR} -lt ${LINUX_MAJOR_VERSION} ] ; then
  43. echo Copying `basename $i`.config ...
  44. cp $i.config ${LINUX26_CONFIG}
  45. elif [ ${THIS_MAJOR} -eq ${LINUX_MAJOR_VERSION} ] ; then
  46. if [ "${LINUX_MINOR_VERSION}X" == "X" ] ; then
  47. if [ "${THIS_MINOR}X" == "X" ] ; then
  48. echo Copying `basename $i`.config ...
  49. cp $i.config ${LINUX26_CONFIG}
  50. else
  51. return
  52. fi
  53. elif [ ${THIS_MINOR} -le ${LINUX_MINOR_VERSION} ] ; then
  54. echo Copying `basename $i`.config ...
  55. cp $i.config ${LINUX26_CONFIG}
  56. fi
  57. else
  58. return
  59. fi
  60. done
  61. # Did not work... - be promisceous
  62. if [ ! -f "${LINUX26_CONFIG}" ] ; then \
  63. for i in `ls $1/*linux*.config` ; do
  64. echo Copying `basename $i` ...
  65. cp $i ${LINUX26_CONFIG}
  66. done
  67. fi