set-up.ra.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. #!/bin/bash
  2. # NOTA: el script no se ha probado correctamente
  3. # Este script prepara las variables de entorno para la compulacion cruzada
  4. # de babeld para la arquitecutra RAMIPS
  5. # Se utiliza el sdk del proyecto lede.
  6. # Se asume que el sdk esta dos directorios antes de este
  7. # Tambien se puede usar para compilar:
  8. #
  9. # ./set-up.sh build
  10. # ./set-up.sh clean
  11. # para copiarlo directamente al enrutador con <IP> dada (lo copia en /tmp/babeld
  12. #
  13. # ./set-up.sh export <IP>
  14. OP1=$1
  15. OP2=$2
  16. ayuda()
  17. {
  18. echo "Uso:"
  19. echo "Construye usando el cross compiler gcc mips-openwrt-musl-gcc (RA-MIPS):"
  20. echo " ./set-up.sh build"
  21. echo "Equivalente a 'make clean':"
  22. echo " ./set-up.sh clean"
  23. echo "Construye y copia al enrutador con IP (usa root@IP y copia en /tmp/):"
  24. echo " ./set-up.sh export IP"
  25. echo "Ejemplo:"
  26. echo " ./set-up.sh export 192.168.1.1"
  27. echo ""
  28. echo "NOTA Antes de ejecutar:"
  29. echo " La ruta hacia el SDK de LEDE debe estar en este mismo directorio"
  30. echo " puede ser con un enlace simbolico con el nombre 'SDK'"
  31. echo " ln --symbolic /ruta/absoluta/hacia/el/sdk/ SDK"
  32. }
  33. ####
  34. # setup inicial
  35. setup()
  36. {
  37. # agregando al path
  38. if ! echo $PATH | grep "toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16"
  39. then
  40. RUTA_SDK=$(readlink SDK-ramips)
  41. PATH=$PATH:"$RUTA_SDK"staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16/bin/
  42. export PATH
  43. fi
  44. # agregando staging dir
  45. if ! echo $STAGING_DIR | grep "lede-sdk-17.01.2-ramips-rt305x_gcc-5.4.0_musl-1.1.16.Linux-x86_64/staging_dir"
  46. then
  47. RUTA_SDK=$(readlink SDK-ramips)
  48. STAGING_DIR="$RUTA_SDK"staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16/bin/
  49. export STAGING_DIR
  50. fi
  51. echo
  52. echo "PATH:$PATH"
  53. echo "STAGING_DIR:$STAGING_DIR"
  54. }
  55. ####
  56. build()
  57. {
  58. echo "Construyendo..."
  59. setup
  60. echo
  61. echo "CROSS COMPILER:"
  62. mips-openwrt-linux-musl-gcc --version
  63. make CC=mipsel-openwrt-linux-musl-gcc PLATFORM_DEFINES='-march=mips32'
  64. #file babeld
  65. echo "Hecho"
  66. }
  67. clean()
  68. {
  69. echo "Limpiando..."
  70. setup
  71. make clean
  72. }
  73. exportar()
  74. {
  75. "Exportando..."
  76. build
  77. scp babeld root@$OP2:/tmp/
  78. }
  79. ####
  80. # opciones
  81. if [ -z "$OP1" ]
  82. then
  83. ayuda
  84. exit 2
  85. fi
  86. if [ $OP1 == "build" ]
  87. then
  88. build
  89. exit 0
  90. fi
  91. if [ $OP1 == "clean" ]
  92. then
  93. clean
  94. exit 0
  95. fi
  96. if [ $OP1 == "export" ]
  97. then
  98. R=$(echo $OP2 | grep "[a-z,A-Z]")
  99. if [ -z $OP2 ] || [ $R != "" ]
  100. then
  101. ayuda
  102. exit 2
  103. else
  104. exportar
  105. exit 0
  106. fi
  107. fi
  108. ayuda
  109. exit 2
  110. ####
  111. # make CC=mipsel-linux-gcc PLATFORM_DEFINES='-march=mips32'