Newer
Older
snipet / project / trunk / modules / sc / Makefile
# ==============================================================================
#  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)