PageRenderTime 242ms CodeModel.GetById 26ms RepoModel.GetById 0ms app.codeStats 1ms

/Makefile

http://tddbm.googlecode.com/
Makefile | 145 lines | 118 code | 21 blank | 6 comment | 1 complexity | 58511482c43ffb11a913fc3cea2c9173 MD5 | raw file
  1. # TDDBM project
  2. #
  3. # Main Project : http://code.google.com/p/image-proxy/
  4. # http://code.google.com/p/tddbm/
  5. # License : GNU GPL V3
  6. # Contact point : Torden Cho <ioemen@gmail.com>
  7. INSTALL_ROOT_DIR=/usr/local/tddbm
  8. VERSION=0.1
  9. PLATFORM :=$(shell uname -a)
  10. CMD_SUDO :=$(shell which sudo)
  11. CMD_RM :=$(shell which rm)
  12. CMD_CP :=$(shell which cp)
  13. CMD_AR :=$(shell which ar)
  14. CMD_RANLIB :=$(shell which ranlib)
  15. CMD_MV :=$(shell which mv)
  16. CMD_STRIP :=$(shell which strip)
  17. CMD_TAIL :=$(shell which tail)
  18. CMD_FIND :=$(shell which find)
  19. CMD_TIME :=$(shell which time)
  20. CMD_CURL :=$(shell which curl)
  21. CMD_LDD :=$(shell which ldd)
  22. CMD_MKDIR :=$(shell which mkdir)
  23. CMD_CPP :=$(shell which g++)
  24. CMD_TEST :=$(shell which test)
  25. CMD_PATCH :=$(shell which patch)
  26. CMD_SLEEP :=$(shell which sleep)
  27. CMD_UNZIP :=$(shell which unzip)
  28. CMD_GMAKE :=$(shell which gmake)
  29. CMD_VALGRIND :=$(shell which valgrind)
  30. COMMON_INC_PATH=-I./inc/ -I/usr/include/ -I/usr/local/include/
  31. ifeq ($(findstring x86_64,$(PLATFORM)), x86_64)
  32. COMMON_CPP_FLAG=-O2 -g -Wall -Wuninitialized -Wunused -m64
  33. COMMON_LIB_PATH=-L./lib/ -L/usr/lib64/ -L/usr/local/lib64/
  34. else
  35. COMMON_CPP_FLAG=-O2 -g -Wall -Wuninitialized -Wunused -m32
  36. COMMON_LIB_PATH=-L./lib/ -L/usr/lib/ -L/usr/local/lib/
  37. endif
  38. ifeq ($(findstring Linux,$(PLATFORM)), Linux)
  39. CMD_WGET :=$(shell which wget)
  40. GET_UNITTEST=$(CMD_WGET) --quiet -nv "http://downloads.sourceforge.net/project/unittest-cpp/UnitTest%2B%2B/1.4/unittest-cpp-1.4.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Funittest-cpp%2Ffiles%2FUnitTest%252B%252B%2F1.4%2Funittest-cpp-1.4.zip%2Fdownload%3Fuse_mirror%3Dcdnetworks-kr-2&ts=1306544878" -O ./tmp/unittest-cpp-1.4.zip
  41. else
  42. CMD_FETCH :=$(shell which fetch)
  43. GET_UNITTEST=$(CMD_FETCH) -o ./tmp/unittest-cpp-1.4.zip "http://downloads.sourceforge.net/project/unittest-cpp/UnitTest%2B%2B/1.4/unittest-cpp-1.4.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Funittest-cpp%2Ffiles%2FUnitTest%252B%252B%2F1.4%2Funittest-cpp-1.4.zip%2Fdownload%3Fuse_mirror%3Dcdnetworks-kr-2&ts=1306544878"
  44. endif
  45. DEF_INC_PATH=$(COMMON_INC_PATH)
  46. DEF_LIB_PATH=$(COMMON_LIB_PATH)
  47. DEF_STATIC_LIBS=lib/libtdexception.a lib/libtdhashindex.a
  48. DEF_SHARED_LIBS=
  49. all: clean initdir tdexception tdhashindex tddbm test strip install
  50. dev: clean setenv initdir tdexception tdhashindex tddbm test install
  51. test: inittest tddbm
  52. @echo -e "\033[1;40;33mStarting UnitTest..\033[01;m"
  53. @$(CMD_CPP) $(COMMON_CPP_FLAG) -I ./tmp/UnitTest++/src/ -o ./test/testCore test/testCore.cpp ./tmp/UnitTest++/libUnitTest++.a ./lib/libtddbm.a $(COMMON_INC_PATH) $(COMMON_LIB_PATH) $(DEF_STATIC_LIBS) $(DEF_SHARED_LIBS)
  54. @echo -e "==============================================================================================="
  55. @./test/testCore
  56. @echo -e "==============================================================================================="
  57. @echo -e "\033[1;40;36mDone\033[01;m"
  58. debug: tddbm
  59. @echo -e "\033[1;40;33mBuilding [$@] mode ..\033[01;m"
  60. @$(CMD_CPP) $(COMMON_CPP_FLAG) -o sample/test sample/test.cpp -I./inc/ -L./lib -ltddbm -ltdexception
  61. @./sample/test
  62. tddbm: tdexception
  63. @echo -e "\033[1;40;33mBuilding [$@] library..\033[01;m"
  64. @$(CMD_CPP) $(COMMON_CPP_FLAG) -fPIC -o lib/$@.o -c lib/$@.cpp -I./inc/
  65. @$(CMD_AR) rs lib/lib$@.a lib/$@.o
  66. @$(CMD_CPP) $(COMMON_CPP_FLAG) -shared -o lib/lib$@.so.$(VERSION) lib/$@.o $(COMMON_INC_PATH) $(COMMON_LIB_PATH) $(DEF_STATIC_LIBS) $(DEF_SHARED_LIBS)
  67. @echo -e "\033[1;40;36mDone\033[01;m"
  68. tdexception::
  69. @echo -e "\033[1;40;33mBuilding [$@] library..\033[01;m"
  70. @$(CMD_CPP) $(COMMON_CPP_FLAG) -fPIC -o lib/$@.o -c lib/$@.cpp -I./inc/
  71. @$(CMD_AR) rs lib/lib$@.a lib/$@.o
  72. @$(CMD_CPP) $(COMMON_CPP_FLAG) -shared -o lib/lib$@.so.$(VERSION) lib/$@.o $(COMMON_INC_PATH) $(COMMON_LIB_PATH)
  73. @echo -e "\033[1;40;36mDone\033[01;m"
  74. tdhashindex: tdexception
  75. @echo -e "\033[1;40;33mBuilding [$@] library..\033[01;m"
  76. @$(CMD_CPP) $(COMMON_CPP_FLAG) -fPIC -o lib/$@.o -c lib/$@.cpp -I./inc/
  77. @$(CMD_AR) rs lib/lib$@.a lib/$@.o
  78. @$(CMD_CPP) $(COMMON_CPP_FLAG) -shared -o lib/lib$@.so.$(VERSION) lib/$@.o $(COMMON_INC_PATH) $(COMMON_LIB_PATH) lib/lib$<.a
  79. @echo -e "\033[1;40;36mDone\033[01;m"
  80. install: tddbm initdir
  81. @echo -n -e "\033[1;40;32mInstall \033[1;40;31m$< \033[1;40;32mto ..\033[01;m"
  82. @$(CMD_SUDO) $(CMD_CP) -rf lib/lib$<.so.$(VERSION) $(INSTALL_ROOT_DIR)/lib/
  83. @$(CMD_SUDO) $(CMD_CP) -rf lib/lib$<.a $(INSTALL_ROOT_DIR)/lib/
  84. @$(CMD_SUDO) $(CMD_CP) -rf inc/$<.h $(INSTALL_ROOT_DIR)/inc/
  85. @echo -e "\033[1;40;36mOK\033[01;m"
  86. strip: tddbm
  87. @echo -n -e "\033[1;40;32mStrip \033[1;40;31m$< \033[1;40;32m..\033[01;m"
  88. @$(CMD_STRIP) lib/lib$<.so.$(VERSION)
  89. @echo -e "\033[1;40;36mOK\033[01;m"
  90. initdir::
  91. @echo -n -e "\033[1;40;32mInitialization \033[1;40;31mDirectory \033[1;40;32m..\033[01;m"
  92. @$(CMD_SUDO) $(CMD_MKDIR) -p $(INSTALL_ROOT_DIR)/lib/
  93. @$(CMD_SUDO) $(CMD_MKDIR) -p $(INSTALL_ROOT_DIR)/inc/
  94. @echo -e "\033[1;40;36mDone\033[01;m"
  95. clean::
  96. @echo -n -e "\033[1;40;32mCleaning Previusly library objects..\033[01;m"
  97. @$(CMD_RM) -rf lib/*.so* lib/*.o lib/core.* lib/*~ lib/*.core* lib/*.a tmp/* sample/test sample/*.tddbm test/testCore test/testJava.class test/testPHP.php test/testPython.pyc
  98. @$(CMD_RM) -f testCore testPHP testPython testJAVA
  99. @echo -e "\033[1;40;36mDone\033[01;m"
  100. setenv::
  101. @echo -e "\033[1;40;32mSet Debug mode enviroment..\033[01;m"
  102. @$(CMD_SUDO) sysctl -e -q -w kernel.core_pattern="/tmp/%e.core.%u" kernel.suid_dumpable=1 fs.suid_dumpable=1
  103. @$(CMD_SUDO) sysctl -q -w kernel.core_uses_pid=1;
  104. @echo -e "\tkernel.core_pattern=/tmp/*.core.*"
  105. @echo -e "\tkernel.suid_dumpable=1"
  106. @echo -e "\tfs.suid_dumpable=1"
  107. @echo -e "\tkernel.core_users_pid=1"
  108. @echo -e "\033[1;40;36mComplete\033[01;m"
  109. inittest::
  110. @echo -e "\033[1;40;32mInit UnitTestFramework..\033[01;m"
  111. -@if $(CMD_TEST) ! -e "tmp/UnitTest++/libUnitTest++.a"; then \
  112. $(CMD_MKDIR) -p ./tmp/ ; \
  113. $(CMD_RM) -rf ./tmp/* ; \
  114. $(GET_UNITTEST) ; \
  115. $(CMD_UNZIP) ./tmp/unittest-cpp-1.4.zip -d ./tmp/ ; \
  116. cd ./tmp/UnitTest++/ ; $(CMD_GMAKE) ; \
  117. echo -e "\033[1;40;36mComplete Install\033[01;m" ;\
  118. else \
  119. echo -e "\033[1;40;36mExists UnitTest++\033[01;m" ;\
  120. fi
  121. valgrind: debug
  122. @echo -e "\033[1;40;32mVarglind Testing..\033[01;m"
  123. @$(CMD_VALGRIND) --tool=memcheck --leak-check=full --smc-check=all --show-emwarns=yes --show-reachable=yes --track-fds=yes --trace-children=yes --log-file=./valgrind.log sample/test
  124. @echo -e "\033[1;40;36mDone. Please see the valgraling.log\033[01;m"