Newer
Older
snipet / project / trunk / modules / sc / unittest / Makefile
# ==============================================================================
#  Makefile  for テストモジュール生成
# ==============================================================================
#  ★トップディレクトリ指定
# ==============================================================================
TOPDIR=../../..

# ------------------------------------------------------------------------------
#  共通設定などの読み込み
# ------------------------------------------------------------------------------
-include $(TOPDIR)/config/*.mk
-include $(TOPDIR)/env.mk
PROJECT_CONFIG=$(TOPDIR)/project-config

# ==============================================================================
#  ★モジュール名, バージョン設定
# ==============================================================================
TARGET_NAME=unittest

MAJOR_VER=1
MINOR_VER=0

TARGET_TYPE=$(TARGET_OS)-execute
#TARGET_TYPE=$(TARGET_OS)-static-library
#TARGET_TYPE=$(TARGET_OS)-shared-library

# ==============================================================================
#  以下, あまり変更することは無いと思われる
# ==============================================================================

# ------------------------------------------------------------------------------
#  ディレクトリ, ソース・オブジェクトファイル設定
# ------------------------------------------------------------------------------
SRCDIR    = ../src
TESTDIR   = src
OBJDIR    = obj
CSRCS     = $(wildcard $(SRCDIR)/*.c)
CSRCST    = $(wildcard $(TESTDIR)/*.c)
CXXSRCS   = $(wildcard $(SRCDIR)/*.cpp)
CXXSRCST  = $(wildcard $(TESTDIR)/*.cpp)
COBJS     = $(CSRCS:$(SRCDIR)/%.c=$(OBJDIR)/%.o)
COBJST    = $(CSRCST:$(TESTDIR)/%.c=$(OBJDIR)/%.o)
CXXOBJS   = $(CXXSRCS:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o)
CXXOBJST  = $(CXXSRCST:$(TESTDIR)/%.cpp=%(OBJDIR)/%.o)
SRCS      = $(CSRCS) $(CXXSRCS) $(CSRCST) $(CXXSRCST)
OBJS      = $(COBJS) $(CXXOBJS) $(COBJST) $(CXXOBJST)

INCLUDES  = -Iinclude

CFLAGS    = $(INCLUDES)
CFLAGS   += `$(PROJECT_CONFIG) --target=$(TARGET_OS) --prefix=$(TOPDIR) --cflags`
CFLAGS   += $(COM_CFLAGS_TEST)

CXXFLAGS  = $(INCLUDES)
CXXFLAGS += `$(PROJECT_CONFIG) --target=$(TARGET_OS) --prefix=$(TOPDIR) --cxxflags`
CXXFLAGS += $(COM_CXXFLAGS_TEST)

LDFLAGS   = `$(PROJECT_CONFIG) --target=$(TARGET_OS) --prefix=$(TOPDIR) --ldflags`
LDFLAGS  += $(COM_LDFLAGS_TEST)

LIBS      = `$(PROJECT_CONFIG) --target=$(TARGET_OS) --prefix=$(TOPDIR) --libs`
LIBS     += $(COM_LIBS_TEST)


# ------------------------------------------------------------------------------
#  target settings
# ------------------------------------------------------------------------------

ifeq ($(TARGET_TYPE), OS_LINUX-execute)
TARGET=$(TARGET_NAME)

else ifeq ($(TARGET_TYPE), OS_LINUX-static-library)
TARGET=lib$(TARGET_NAME).a

else ifeq ($(TARGET_TYPE), OS_LINUX-shared-library)
TARGET=lib$(TARGET_NAME).so.$(MAJOR_VER).$(MINOR_VER)

else ifeq ($(TARGET_TYPE), OS_WINDOWS-execute)
TARGET=$(TARGET_NAME).exe

else ifeq ($(TARGET_TYPE), OS_WINDOWS-static-library)
TARGET=$(TARGET_NAME).lib

else ifeq ($(TARGET_TYPE), OS_WINDOWS-shared-library)
TARGET=$(TARGET_NAME).dll

endif



# ------------------------------------------------------------------------------
#  make rule
# ------------------------------------------------------------------------------
all: $(TARGET)

clean:
	$(RM) -f lib$(TARGET_NAME).a lib$(TARGET_NAME).so.* $(TARGET_NAME)
	$(RM) -f $(TARGET_NAME).dll $(TARGET_NAME).exe
	$(RM) -f $(OBJDIR)/*.o
	$(RM) -f $(DEPEND_FILE)
	$(RM) -f *~ */*~ *.bak */*.bak
	$(RM) -f ./$(TESTDIR)/unittest_main.cpp
	$(RM) -f ./$(COVREPORTDIR)/*

-include $(TOPDIR)/config/*-com.rule
-include $(TOPDIR)/config/o-c.rule
-include $(TOPDIR)/config/*-cpp.rule
-include $(TOPDIR)/config/*-test.rule

-include $(DEPEND_FILE)