You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
1.5KB

  1. #!/bin/bash
  2. set -e
  3. LINUX=0
  4. MAC=0
  5. MINGW=0
  6. if [ "$1" = "" ]; then
  7. echo "usage: $0 linux|mac|mingw"
  8. exit
  9. fi
  10. if [ "$1" = "linux" ]; then
  11. LINUX=1
  12. elif [ "$1" = "mac" ]; then
  13. MAC=1
  14. elif [ "$1" = "mingw" ]; then
  15. MINGW=1
  16. else
  17. echo "parameter must be linux, mac or mingw"
  18. exit
  19. fi
  20. if [ -d ../libs ]; then
  21. cd ..
  22. fi
  23. run_premake()
  24. {
  25. premake --os $1 --target gnu --cc gcc
  26. if [ $MAC == 1 ]; then
  27. sed -i -e "s|BLDCMD = ar -rcs \$(OUTDIR)/\$(TARGET) \$(OBJECTS) \$(TARGET_ARCH)|BLDCMD = ar -rcs \$(OUTDIR)/\$(TARGET) \$(OBJECTS)|" `find . -name \*.make`
  28. else
  29. sed -i -e "s/\$(LDFLAGS)/\$(LDFLAGS) \$(LDFLAGS)/" `find . -name \*.make`
  30. fi
  31. }
  32. # ------------------------------------------------------------------------------------------------------------
  33. FOLDERS="."
  34. if [ -d libs ]; then
  35. FOLDERS="libs"
  36. fi
  37. if [ -d ports ]; then
  38. FOLDERS="$FOLDERS ports"
  39. fi
  40. if [ -d ports-legacy ]; then
  41. FOLDERS="$FOLDERS ports-legacy"
  42. fi
  43. FILES=`find $FOLDERS -name premake.lua`
  44. for i in $FILES; do
  45. FOLDER=`echo $i | awk sub'("/premake.lua","")'`
  46. cd $FOLDER
  47. if [ $LINUX = 1 ]; then
  48. run_premake "linux"
  49. elif [ $MAC = 1 ]; then
  50. run_premake "macosx"
  51. elif [ $MINGW = 1 ]; then
  52. run_premake "windows"
  53. fi
  54. if [ -d ../libs ]; then
  55. cd ..
  56. elif [ -d ../../libs ]; then
  57. cd ../..
  58. elif [ -d ../../../libs ]; then
  59. cd ../../..
  60. else
  61. cd ../../../..
  62. fi
  63. done
  64. # ------------------------------------------------------------------------------------------------------------