Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- GTEST_DIR = lib/gtest-1.6.0
- GTEST_LIB = libgtest.a
- CC = g++
- SRC_FOLDER = src
- SRC_OBJ_FOLDER = obj/src
- SRC_CPP_FILES = $(wildcard ${SRC_FOLDER}/*.cc)
- SRC_OBJ_FILES = $(addprefix ${SRC_OBJ_FOLDER}/,$(notdir $(SRC_CPP_FILES:.cc=.o)))
- TESTS_FOLDER = test
- TESTS_OBJ_FOLDER = obj/test
- TESTS_CPP_FILES = $(wildcard ${TESTS_FOLDER}/*.cc)
- TESTS_OBJ_FILES = $(addprefix ${TESTS_OBJ_FOLDER}/,$(notdir $(TESTS_CPP_FILES:.cc=.o)))
- TESTS_CC_FLAGS = -I${GTEST_DIR}/include -I${SRC_FOLDER} -Wall -Werror
- TESTS_LD_FLAGS = -lpthread
- .phony: test
- default: test
- all: ${SRC_OBJ_FILES}
- ${CC} -o $@ $<
- ${SRC_OBJ_FOLDER}/%.o: ${SRC_FOLDER}/%.cc
- ${CC} -Wall -c -o $@ $<
- build-dir:
- @mkdir -p ${SRC_OBJ_FOLDER}
- @mkdir -p ${TESTS_OBJ_FOLDER}
- build-gtest:
- ${CC} -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest-all.cc
- ar -rv ${GTEST_LIB} gtest-all.o
- build-tests: ${TESTS_OBJ_FILES}
- # Hack to get rid of the main in src/ and not get "multiple definition" error
- ${CC} ${TESTS_LD_FLAGS} -o $@ $< ${GTEST_LIB} $(subst obj/src/main.o,,${SRC_OBJ_FILES})
- ${TESTS_OBJ_FOLDER}/%.o: ${TESTS_FOLDER}/%.cc
- ${CC} ${TESTS_CC_FLAGS} -c -o $@ $<
- test: build-dir build-gtest all build-tests
- ./build-tests
- clean:
- @rm -rf ${SRC_OBJ_FOLDER}
- @rm -rf ${TESTS_OBJ_FOLDER}
- @rm -rf obj
- @rm -f gtest-all.o
- @rm -f ${GTEST_LIB}
- @rm -f build-tests
- @rm -f all
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement