makefile 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. cc_cross=/toolchains/tmp/OpenWrt-SDK-15.05.1-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-g++ -s
  2. cc_local=g++
  3. #cc_mips34kc=/toolchains/OpenWrt-SDK-ar71xx-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-g++
  4. cc_mips24kc_be=/toolchains/lede-sdk-17.01.2-ar71xx-generic_gcc-5.4.0_musl-1.1.16.Linux-x86_64/staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl-1.1.16/bin/mips-openwrt-linux-musl-g++
  5. cc_mips24kc_le=/toolchains/lede-sdk-17.01.2-ramips-mt7621_gcc-5.4.0_musl-1.1.16.Linux-x86_64/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16/bin/mipsel-openwrt-linux-musl-g++
  6. #cc_arm= /toolchains/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++ -march=armv6 -marm
  7. cc_arm= /toolchains/arm-2014.05/bin/arm-none-linux-gnueabi-g++
  8. #cc_bcm2708=/home/wangyu/raspberry/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++
  9. FLAGS= -std=c++11 -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-missing-field-initializers -ggdb -I. -IUDPspeeder -isystem UDPspeeder/libev ${OPT}
  10. SOURCES=`ls UDPspeeder/*.cpp UDPspeeder/lib/*.cpp|grep -v main.cpp|grep -v tunnel.cpp` main.cpp tun_dev.cpp tun_dev_client.cpp tun_dev_server.cpp
  11. #INCLUDE= -I. -IUDPspeeder
  12. NAME=tinyvpn
  13. TARGETS=amd64 arm mips24kc_be x86 mips24kc_le
  14. TAR=${NAME}_binaries.tar.gz `echo ${TARGETS}|sed -r 's/([^ ]+)/tinyvpn_\1/g'` version.txt
  15. export STAGING_DIR=/tmp/ #just for supress warning of staging_dir not define
  16. all:git_version
  17. rm -f ${NAME}
  18. ${cc_local} -o ${NAME} ${INCLUDE} ${SOURCES} ${FLAGS} -lrt -ggdb -static -O2
  19. debug: git_version
  20. rm -f ${NAME}
  21. ${cc_local} -o ${NAME} -I. ${SOURCES} ${FLAGS} -lrt -Wformat-nonliteral -D MY_DEBUG
  22. debug2: git_version
  23. rm -f ${NAME}
  24. ${cc_local} -o ${NAME} -I. ${SOURCES} ${FLAGS} -lrt -Wformat-nonliteral -ggdb
  25. init:
  26. git submodule init
  27. git submodule update
  28. mips24kc_be: git_version
  29. ${cc_mips24kc_be} -o ${NAME}_$@ -I. ${SOURCES} ${FLAGS} -lrt -lgcc_eh -static -O3
  30. mips24kc_be_debug: git_version
  31. ${cc_mips24kc_be} -o ${NAME}_$@ -I. ${SOURCES} ${FLAGS} -lrt -lgcc_eh -static -ggdb
  32. mips24kc_le: git_version
  33. ${cc_mips24kc_le} -o ${NAME}_$@ -I. ${SOURCES} ${FLAGS} -lrt -lgcc_eh -static -O3
  34. amd64:git_version
  35. ${cc_local} -o ${NAME}_$@ -I. ${SOURCES} ${FLAGS} -lrt -static -O3
  36. amd64_debug:git_version
  37. ${cc_local} -o ${NAME}_$@ -I. ${SOURCES} ${FLAGS} -lrt -static -ggdb
  38. x86:git_version
  39. ${cc_local} -o ${NAME}_$@ -I. ${SOURCES} ${FLAGS} -lrt -static -O3 -m32
  40. arm:git_version
  41. ${cc_arm} -o ${NAME}_$@ -I. ${SOURCES} ${FLAGS} -lrt -static -O3
  42. arm_debug:git_version
  43. ${cc_arm} -o ${NAME}_$@ -I. ${SOURCES} ${FLAGS} -lrt -static -ggdb
  44. cross:git_version
  45. ${cc_cross} -o ${NAME}_cross -I. ${SOURCES} ${FLAGS} -lrt -O3
  46. cross2:git_version
  47. ${cc_cross} -o ${NAME}_cross -I. ${SOURCES} ${FLAGS} -lrt -static -lgcc_eh -O3
  48. cross3:git_version
  49. ${cc_cross} -o ${NAME}_cross -I. ${SOURCES} ${FLAGS} -lrt -static -O3
  50. release: ${TARGETS}
  51. cp git_version.h version.txt
  52. tar -zcvf ${TAR}
  53. clean:
  54. rm -f ${TAR}
  55. rm -f speeder speeder_cross
  56. rm -f git_version.h
  57. git_version:
  58. echo "const char * const gitversion = \"$(shell git rev-parse HEAD)\";" > git_version.h
  59. # targets without restrictions:
  60. nolimit:
  61. make OPT=-DNOLIMIT
  62. nolimit_all:
  63. make OPT=-DNOLIMIT
  64. nolimit_cross:
  65. make cross OPT=-DNOLIMIT
  66. nolimit_cross2:
  67. make cross2 OPT=-DNOLIMIT
  68. nolimit_cross3:
  69. make cross3 OPT=-DNOLIMIT
  70. nolimit_release:
  71. make release OPT=-DNOLIMIT