# ============================================================================== # Makefile for モジュール生成 # ============================================================================== # ★トップディレクトリ指定 # ============================================================================== TOPDIR=../.. # ------------------------------------------------------------------------------ # 共通設定などの読み込み # ------------------------------------------------------------------------------ -include $(TOPDIR)/config/*.mk -include $(TOPDIR)/env.mk PROJECT_CONFIG=$(TOPDIR)/project-config # ============================================================================== # ★モジュール名, バージョン設定 # ============================================================================== TARGET_NAME=sc 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 OBJDIR = obj CSRCS = $(wildcard $(SRCDIR)/*.c) CXXSRCS = $(wildcard $(SRCDIR)/*.cpp) COBJS = $(CSRCS:$(SRCDIR)/%.c=$(OBJDIR)/%.o) CXXOBJS = $(CXXSRCS:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o) SRCS = $(CSRCS) $(CXXSRCS) OBJS = $(COBJS) $(CXXOBJS) INCLUDES = -Iinclude CFLAGS = $(INCLUDES) CFLAGS += `$(PROJECT_CONFIG) --target=$(TARGET_OS) --prefix=$(TOPDIR) --cflags` CFLAGS += $(COM_CFLAGS) CXXFLAGS = $(INCLUDES) CXXFLAGS += `$(PROJECT_CONFIG) --target=$(TARGET_OS) --prefix=$(TOPDIR) --cxxflags` CXXFLAGS += $(COM_CXXFLAGS) LDFLAGS = `$(PROJECT_CONFIG) --target=$(TARGET_OS) --prefix=$(TOPDIR) --ldflags` LDFLAGS += $(COM_LDFLAGS) LIBS = `$(PROJECT_CONFIG) --target=$(TARGET_OS) --prefix=$(TOPDIR) --libs` LIBS += $(COM_LIBS) # ------------------------------------------------------------------------------ # 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=lib$(TARGET_NAME).a #TARGET=$(TARGET_NAME).lib else ifeq ($(TARGET_TYPE), OS_WINDOWS-shared-library) TARGET=$(TARGET_NAME).dll endif # ------------------------------------------------------------------------------ # make rule # ------------------------------------------------------------------------------ all: $(TARGET) test: $(MAKE) -C unittest 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 $(MAKE) clean -C unittest -include $(TOPDIR)/config/*-com.rule -include $(TOPDIR)/config/o-c.rule -include $(TOPDIR)/config/*-cpp.rule -include $(DEPEND_FILE)