# ============================================================================== # Makefile for Dworld API # ============================================================================== TARGET_NAME = libpluginsdk #TARGET_TYPE = exe TARGET_TYPE = lib #TARGET_TYPE = shared IMPORTS = -Iimport -Isrc DFLAGS_RELEASE = -w -wi -O -release DFLAGS_DEBUG = -w -wi -g -unittest LDFLAGS = LIBS = TEMPLATE_DIR = ../plugin_template DWORLD_DIR = ../dworld # ------------------------------------------------------------------------------ # SET DFLAGS # ------------------------------------------------------------------------------ ifeq ($(MAKECMDGOALS), debug) DFLAGS = $(DFLAGS_DEBUG) else DFLAGS = $(DFLAGS_RELEASE) endif # ------------------------------------------------------------------------------ # SET OS Depends # ------------------------------------------------------------------------------ ifeq ($(OS), Windows_NT) EXT_OBJ = .obj EXT_LIB = .lib EXT_EXE = .exe EXT_SHARED = .dll DEFFILE = $(TARGET_NAME).def else EXT_OBJ = .o EXT_LIB = .a EXT_EXE = EXT_SHARED = .so DEFFILE = endif # ------------------------------------------------------------------------------ # SET FILES # ------------------------------------------------------------------------------ SRCS = $(wildcard src/*.d src/*/*.d src/*/*/*.d src/*/*/*/*.d src/*/*/*/*/*.d) OBJS = $(SRCS:.d=$(EXT_OBJ)) # ------------------------------------------------------------------------------ # SET FLASG # ------------------------------------------------------------------------------ ifeq ($(TARGET_TYPE), exe) TARGET = $(TARGET_NAME)$(EXT_EXE) DDFLAGS = $(DFLAGS) DLDFLAGS = $(LDFLAGS) else ifeq ($(TARGET_TYPE), lib) TARGET = $(TARGET_NAME)$(EXT_LIB) DDFLAGS = $(DFLAGS) -Hdapi DLDFLAGS = $(LDFLAGS) -lib else TARGET = $(TARGET_NAME)$(EXT_SHARED) DDFLAGS = $(DFLAGS) -Hdapi DLDFLAGS = $(LDFLAGS) $(DEFFILE) endif endif # ------------------------------------------------------------------------------ # SET COMMANDS # ------------------------------------------------------------------------------ CD = cd CP = cp DMD = dmd MKDIR = mkdir RM = rm # ------------------------------------------------------------------------------ # SET SUFFIXES # ------------------------------------------------------------------------------ .SUFFIXES: .d .o .obj .a .lib .dll .so all: $(TARGET) debug: $(TARGET) release: $(TARGET) $(MKDIR) -p $(TEMPLATE_DIR)/import/dworld $(CP) -f api/*.di $(TEMPLATE_DIR)/import/dworld/ $(MKDIR) -p $(TEMPLATE_DIR)/lib $(CP) -f $(TARGET) $(TEMPLATE_DIR)/lib/ $(MKDIR) -p $(DWORLD_DIR)/import/dworld $(CP) -f api/*.di $(DWORLD_DIR)/import/dworld/ $(MKDIR) -p $(DWORLD_DIR)/lib $(CP) -f $(TARGET) $(DWORLD_DIR)/lib/ $(TARGET): $(OBJS) $(DMD) -of$(TARGET) $(DLDFLAGS) $(OBJS) $(LIBS) .d.obj: $(DMD) -Dddocs $(IMPORTS) -of$@ -c $(DDFLAGS) $< .d.o: $(DMD) -Dddocs $(IMPORTS) -of$@ -c $(DDFLAGS) $< clean: $(RM) -rf $(TARGET) *.map $(RM) -rf $(OBJS) $(RM) -rf docs/* api/* $(RM) -rf *~ */*~