Browse Source

update makefile

master
philipp schoenberger 10 years ago
parent
commit
e47a818406
  1. 80
      lwrserv/Makefile

80
lwrserv/Makefile

@ -7,25 +7,48 @@
# ph.schoenberger@googlemail.com #
################################################################################
LIBS = pthread
TOP_DIR = $(PWD)
TEST_DIR = $(BUILD_DIR)/test
# comment this out if you want debug compile info
#Q=@
ifeq ($(MAKECMDGOALS),test)
GCOV := --coverage
CPPUTEST_HOME := $(TOP_DIR)/test/cpputest
TEST_FW_INCS := -I$(CPPUTEST_HOME)/include -I.
SUPRESS_WARNINGS := -Wno-write-strings
CFLAGS_TEST := -DUNIT_TEST $(TEST_FW_INCS) $(GCOV) -include $(CPPUTEST_HOME)/include/CppUTest/MemoryLeakDetectorMallocMacros.h
CXXFLAGS_TEST := -DUNIT_TEST $(TEST_FW_INCS) -include $(CPPUTEST_HOME)/include/CppUTest/MemoryLeakDetectorNewMacros.h $(SUPRESS_WARNINGS)
APP_PREFIX := test_
LIBS += CppUTest pthread gcov dl
CPPUTEST_BUILD := $(CPPUTEST_HOME)/cpputest_build
LIBS_TEST = -L $(CPPUTEST_BUILD)/lib/
TEST_SRC_FOLDER = test
BUILD_DIR = $(PWD)/build/test
# Sources
SRC_C := $(wildcard $(TEST_SRC_FOLDER)/*.c)
SRC_H := $(wildcard $(TEST_SRC_FOLDER)/*.h)
SRC_CPP := $(wildcard $(TEST_SRC_FOLDER)/*.cpp)
SRC_HPP := $(wildcard $(TEST_SRC_FOLDER)/*.hpp)
else
BUILD_DIR = $(PWD)/build/app
# Sources
SRC_C := $(wildcard *.c)
SRC_CPP := $(wildcard *.cpp)
endif
SRC_H += $(wildcard *.h)
SRC_HPP += $(wildcard *.hpp)
OUT_BINARY = lwrserv
OUT_BINARY = $(APP_PREFIX)lwrserv
CC = g++
GLOBAL_FLAGS = -g -o2 -ansi -pedantic -DHAVE_SOCKLEN_T
CFLAGS = $(GLOBAL_FLAGS)
CXXFLAGS = $(GLOBAL_FLAGS)
CPPFLAGS = $(GLOBAL_FLAGS)
LDFLAGS = $(patsubst %,-l%,$(LIBS))
BUILD_DIR = build
# Sources
SRC_C := $(wildcard *.c)
SRC_H := $(wildcard *.h)
SRC_CPP := $(wildcard *.cpp)
SRC_HPP := $(wildcard *.hpp)
#SRC_CXX := $(wildcard *.cxx)
#SRC_CC := $(wildcard *.C)
CFLAGS = $(GLOBAL_FLAGS) $(CFLAGS_TEST)
CXXFLAGS = $(GLOBAL_FLAGS) $(CFLAGS_TEST)
CPPFLAGS = $(GLOBAL_FLAGS) $(CFLAGS_TEST)
LDFLAGS = $(patsubst %,-l%,$(LIBS)) $(CFLAGS_TEST) $(LIBS_TEST)
# Objects
OBJS_C = $(patsubst %.c,$(BUILD_DIR)/%.o,$(SRC_C))
@ -43,13 +66,20 @@ DEPS=$(OBJS:%.o=%.d)
#DEPS+=$(DEPS_HPP)
.DEFAULT: all
Q=@
all: $(BUILD_DIR) $(BUILD_DIR)/$(OUT_BINARY)
$(BUILD_DIR):
$(Q)echo " [mk] $(BUILD_DIR)"
$(Q)mkdir -p $(BUILD_DIR)
test: CPPUTEST $(BUILD_DIR)/$(OUT_BINARY) $(TEST_DIR)
CPPUTEST: $(CPPUTEST_HOME)
rm $(CPPUTEST_BUILD) -rf && mkdir $(CPPUTEST_BUILD) -p
cd $(CPPUTEST_BUILD) && autoreconf .. -i
cd $(CPPUTEST_BUILD) && ../configure
cd $(CPPUTEST_BUILD) && $(MAKE)
$(BUILD_DIR) $(TEST_DIR):
$(Q)echo " [mk] $@"
$(Q)mkdir -p $@
clean:
$(Q)echo " [rm] $(BUILD_DIR)"
@ -59,24 +89,24 @@ $(BUILD_DIR)/$(OUT_BINARY): $(BUILD_DIR) $(DEPS) $(DEP_LIBS) $(OBJS)
$(Q)echo " [ld] $@"
$(Q)( $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o $@ ) || exit 1
$(BUILD_DIR)/%.o : %.c $(BUILD_DIR)
$(BUILD_DIR)/%.o : %.c $(BUILD_DIR) $(TEST_DIR)
$(Q)echo " [CC] $@"
$(Q)( $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ ) || exit 1
$(BUILD_DIR)/%.o : %.cpp $(BUILD_DIR)
$(BUILD_DIR)/%.o : %.cpp $(BUILD_DIR) $(TEST_DIR)
$(Q)echo " [CXX] $@"
$(Q)( $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@ ) || exit 1
$(BUILD_DIR)/%.d: $(BUILD_DIR) %.c
$(BUILD_DIR)/%.d: $(BUILD_DIR) $(TEST_DIR) %.c
$(Q)echo " [DEP] $@"
$(Q)touch $@
$(Q)echo -n "$@ $(patsubst %.d,%.o,$@):" >$@
$(Q)$(CC) -M $(CFLAGS) $(filter %.cpp,$^ ) | sed 's:$*.o\:::' >> $@
$(BUILD_DIR)/%.d: $(BUILD_DIR) %.cpp
$(BUILD_DIR)/%.d: $(BUILD_DIR) $(TEST_DIR) %.cpp
$(Q)echo " [DEP] $@"
$(Q)touch $@
$(Q)echo -n "$@ $(patsubst %.d,%.o,$@):" >$@
$(Q)$(CC) -M $(filter-out -g -o0 -o1 -o2 ,$(CPPFLAGS)) $(filter %.cpp,$^) | sed 's:$*.o\:::' >> $@
$(Q)$(CC) -M $(filter-out -g -o0 -o1 -o2 ,$(CPPFLAGS)) $(filter %.cpp,$^) >> $@
#$(Q)echo -n "$@ $(patsubst %.d,%.o,$@): " >$@
-include $(DEPS)
Loading…
Cancel
Save