# ============================================================================== # Makefile for Dworld API # ============================================================================== TARGET_NAME = sal #TARGET_TYPE = exe TARGET_TYPE = lib #TARGET_TYPE = shared IMPORTS = -Iimport -Isrc DFLAGS_RELEASE = -w -wi -O -release DFLAGS_DEBUG = -w -wi -g -unittest -cov LDFLAGS = LIBS = # ------------------------------------------------------------------------------ # 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 SHARED_OPT = else EXT_OBJ = .o EXT_LIB = .a EXT_EXE = EXT_SHARED = .so DEFFILE = SHARED_OPT = -shared 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) $(SHARED_OPT) endif endif # ------------------------------------------------------------------------------ # SET COMMANDS # ------------------------------------------------------------------------------ CD = cd DMD = dmd RM = rm # ------------------------------------------------------------------------------ # SET SUFFIXES # ------------------------------------------------------------------------------ .SUFFIXES: .d .o .obj .a .lib .dll .so all: $(TARGET) debug: $(TARGET) $(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 *~ */*~ */*/*~ src/*/*/*~ src/*/*/*/*~ src/*/*/*/*/*~ rm -rf *.lst