Newer
Older
sample / dworld / sal / Makefile
# ==============================================================================
#  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