set-up.sh 3.1 KB

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