/Makefile
Makefile | 145 lines | 118 code | 21 blank | 6 comment | 1 complexity | 58511482c43ffb11a913fc3cea2c9173 MD5 | raw file
- # TDDBM project
- #
- # Main Project : http://code.google.com/p/image-proxy/
- # http://code.google.com/p/tddbm/
- # License : GNU GPL V3
- # Contact point : Torden Cho <ioemen@gmail.com>
- INSTALL_ROOT_DIR=/usr/local/tddbm
- VERSION=0.1
- PLATFORM :=$(shell uname -a)
- CMD_SUDO :=$(shell which sudo)
- CMD_RM :=$(shell which rm)
- CMD_CP :=$(shell which cp)
- CMD_AR :=$(shell which ar)
- CMD_RANLIB :=$(shell which ranlib)
- CMD_MV :=$(shell which mv)
- CMD_STRIP :=$(shell which strip)
- CMD_TAIL :=$(shell which tail)
- CMD_FIND :=$(shell which find)
- CMD_TIME :=$(shell which time)
- CMD_CURL :=$(shell which curl)
- CMD_LDD :=$(shell which ldd)
- CMD_MKDIR :=$(shell which mkdir)
- CMD_CPP :=$(shell which g++)
- CMD_TEST :=$(shell which test)
- CMD_PATCH :=$(shell which patch)
- CMD_SLEEP :=$(shell which sleep)
- CMD_UNZIP :=$(shell which unzip)
- CMD_GMAKE :=$(shell which gmake)
- CMD_VALGRIND :=$(shell which valgrind)
- COMMON_INC_PATH=-I./inc/ -I/usr/include/ -I/usr/local/include/
- ifeq ($(findstring x86_64,$(PLATFORM)), x86_64)
- COMMON_CPP_FLAG=-O2 -g -Wall -Wuninitialized -Wunused -m64
- COMMON_LIB_PATH=-L./lib/ -L/usr/lib64/ -L/usr/local/lib64/
- else
- COMMON_CPP_FLAG=-O2 -g -Wall -Wuninitialized -Wunused -m32
- COMMON_LIB_PATH=-L./lib/ -L/usr/lib/ -L/usr/local/lib/
- endif
- ifeq ($(findstring Linux,$(PLATFORM)), Linux)
- CMD_WGET :=$(shell which wget)
- 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
- else
- CMD_FETCH :=$(shell which fetch)
- 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"
- endif
- DEF_INC_PATH=$(COMMON_INC_PATH)
- DEF_LIB_PATH=$(COMMON_LIB_PATH)
- DEF_STATIC_LIBS=lib/libtdexception.a lib/libtdhashindex.a
- DEF_SHARED_LIBS=
- all: clean initdir tdexception tdhashindex tddbm test strip install
- dev: clean setenv initdir tdexception tdhashindex tddbm test install
- test: inittest tddbm
- @echo -e "\033[1;40;33mStarting UnitTest..\033[01;m"
- @$(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)
- @echo -e "==============================================================================================="
- @./test/testCore
- @echo -e "==============================================================================================="
- @echo -e "\033[1;40;36mDone\033[01;m"
- debug: tddbm
- @echo -e "\033[1;40;33mBuilding [$@] mode ..\033[01;m"
- @$(CMD_CPP) $(COMMON_CPP_FLAG) -o sample/test sample/test.cpp -I./inc/ -L./lib -ltddbm -ltdexception
- @./sample/test
- tddbm: tdexception
- @echo -e "\033[1;40;33mBuilding [$@] library..\033[01;m"
- @$(CMD_CPP) $(COMMON_CPP_FLAG) -fPIC -o lib/$@.o -c lib/$@.cpp -I./inc/
- @$(CMD_AR) rs lib/lib$@.a lib/$@.o
- @$(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)
- @echo -e "\033[1;40;36mDone\033[01;m"
- tdexception::
- @echo -e "\033[1;40;33mBuilding [$@] library..\033[01;m"
- @$(CMD_CPP) $(COMMON_CPP_FLAG) -fPIC -o lib/$@.o -c lib/$@.cpp -I./inc/
- @$(CMD_AR) rs lib/lib$@.a lib/$@.o
- @$(CMD_CPP) $(COMMON_CPP_FLAG) -shared -o lib/lib$@.so.$(VERSION) lib/$@.o $(COMMON_INC_PATH) $(COMMON_LIB_PATH)
- @echo -e "\033[1;40;36mDone\033[01;m"
- tdhashindex: tdexception
- @echo -e "\033[1;40;33mBuilding [$@] library..\033[01;m"
- @$(CMD_CPP) $(COMMON_CPP_FLAG) -fPIC -o lib/$@.o -c lib/$@.cpp -I./inc/
- @$(CMD_AR) rs lib/lib$@.a lib/$@.o
- @$(CMD_CPP) $(COMMON_CPP_FLAG) -shared -o lib/lib$@.so.$(VERSION) lib/$@.o $(COMMON_INC_PATH) $(COMMON_LIB_PATH) lib/lib$<.a
- @echo -e "\033[1;40;36mDone\033[01;m"
- install: tddbm initdir
- @echo -n -e "\033[1;40;32mInstall \033[1;40;31m$< \033[1;40;32mto ..\033[01;m"
- @$(CMD_SUDO) $(CMD_CP) -rf lib/lib$<.so.$(VERSION) $(INSTALL_ROOT_DIR)/lib/
- @$(CMD_SUDO) $(CMD_CP) -rf lib/lib$<.a $(INSTALL_ROOT_DIR)/lib/
- @$(CMD_SUDO) $(CMD_CP) -rf inc/$<.h $(INSTALL_ROOT_DIR)/inc/
- @echo -e "\033[1;40;36mOK\033[01;m"
- strip: tddbm
- @echo -n -e "\033[1;40;32mStrip \033[1;40;31m$< \033[1;40;32m..\033[01;m"
- @$(CMD_STRIP) lib/lib$<.so.$(VERSION)
- @echo -e "\033[1;40;36mOK\033[01;m"
- initdir::
- @echo -n -e "\033[1;40;32mInitialization \033[1;40;31mDirectory \033[1;40;32m..\033[01;m"
- @$(CMD_SUDO) $(CMD_MKDIR) -p $(INSTALL_ROOT_DIR)/lib/
- @$(CMD_SUDO) $(CMD_MKDIR) -p $(INSTALL_ROOT_DIR)/inc/
- @echo -e "\033[1;40;36mDone\033[01;m"
- clean::
- @echo -n -e "\033[1;40;32mCleaning Previusly library objects..\033[01;m"
- @$(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
- @$(CMD_RM) -f testCore testPHP testPython testJAVA
- @echo -e "\033[1;40;36mDone\033[01;m"
- setenv::
- @echo -e "\033[1;40;32mSet Debug mode enviroment..\033[01;m"
- @$(CMD_SUDO) sysctl -e -q -w kernel.core_pattern="/tmp/%e.core.%u" kernel.suid_dumpable=1 fs.suid_dumpable=1
- @$(CMD_SUDO) sysctl -q -w kernel.core_uses_pid=1;
- @echo -e "\tkernel.core_pattern=/tmp/*.core.*"
- @echo -e "\tkernel.suid_dumpable=1"
- @echo -e "\tfs.suid_dumpable=1"
- @echo -e "\tkernel.core_users_pid=1"
- @echo -e "\033[1;40;36mComplete\033[01;m"
- inittest::
- @echo -e "\033[1;40;32mInit UnitTestFramework..\033[01;m"
- -@if $(CMD_TEST) ! -e "tmp/UnitTest++/libUnitTest++.a"; then \
- $(CMD_MKDIR) -p ./tmp/ ; \
- $(CMD_RM) -rf ./tmp/* ; \
- $(GET_UNITTEST) ; \
- $(CMD_UNZIP) ./tmp/unittest-cpp-1.4.zip -d ./tmp/ ; \
- cd ./tmp/UnitTest++/ ; $(CMD_GMAKE) ; \
- echo -e "\033[1;40;36mComplete Install\033[01;m" ;\
- else \
- echo -e "\033[1;40;36mExists UnitTest++\033[01;m" ;\
- fi
- valgrind: debug
- @echo -e "\033[1;40;32mVarglind Testing..\033[01;m"
- @$(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
- @echo -e "\033[1;40;36mDone. Please see the valgraling.log\033[01;m"