80 lines
2 KiB
Makefile
80 lines
2 KiB
Makefile
# DOS (DJGPP) build rules.
|
|
|
|
include $(dir $(lastword $(MAKEFILE_LIST)))/common.mk
|
|
|
|
PLATFORM := dos
|
|
BUILD := $(REPO_DIR)/build/$(PLATFORM)
|
|
LIBDIR := $(BUILD)/lib
|
|
BINDIR := $(BUILD)/bin
|
|
|
|
CFLAGS := $(COMMON_CFLAGS) -DJOEYLIB_PLATFORM_DOS -march=i386 -m32
|
|
ASFLAGS := -f coff
|
|
LDFLAGS :=
|
|
|
|
PORT_C_SRCS := $(wildcard $(SRC_PORT)/dos/*.c)
|
|
PORT_S_SRCS := $(wildcard $(SRC_PORT)/dos/*.asm)
|
|
|
|
LIB_OBJS := \
|
|
$(patsubst $(SRC_CORE)/%.c,$(BUILD)/obj/core/%.o,$(CORE_C_SRCS)) \
|
|
$(patsubst $(SRC_PORT)/dos/%.c,$(BUILD)/obj/port/%.o,$(PORT_C_SRCS)) \
|
|
$(patsubst $(SRC_PORT)/dos/%.asm,$(BUILD)/obj/port/%.o,$(PORT_S_SRCS))
|
|
|
|
LIB := $(LIBDIR)/libjoey.a
|
|
|
|
HELLO_SRC := $(EXAMPLES)/hello/hello.c
|
|
HELLO_BIN := $(BINDIR)/HELLO.EXE
|
|
PATTERN_SRC := $(EXAMPLES)/pattern/pattern.c
|
|
PATTERN_BIN := $(BINDIR)/PATTERN.EXE
|
|
KEYS_SRC := $(EXAMPLES)/keys/keys.c
|
|
KEYS_BIN := $(BINDIR)/KEYS.EXE
|
|
JOY_SRC := $(EXAMPLES)/joy/joy.c
|
|
JOY_BIN := $(BINDIR)/JOY.EXE
|
|
SPRITE_SRC := $(EXAMPLES)/sprite/sprite.c
|
|
SPRITE_BIN := $(BINDIR)/SPRITE.EXE
|
|
|
|
.PHONY: all dos clean-dos
|
|
all dos: $(LIB) $(HELLO_BIN) $(PATTERN_BIN) $(KEYS_BIN) $(JOY_BIN) $(SPRITE_BIN)
|
|
|
|
$(BUILD)/obj/core/%.o: $(SRC_CORE)/%.c
|
|
@mkdir -p $(dir $@)
|
|
$(DOS_CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(BUILD)/obj/port/%.o: $(SRC_PORT)/dos/%.c
|
|
@mkdir -p $(dir $@)
|
|
$(DOS_CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(BUILD)/obj/port/%.o: $(SRC_PORT)/dos/%.asm
|
|
@mkdir -p $(dir $@)
|
|
$(DOS_AS) $(ASFLAGS) $< -o $@
|
|
|
|
$(LIB): $(LIB_OBJS)
|
|
@mkdir -p $(dir $@)
|
|
$(DOS_AR) rcs $@ $^
|
|
|
|
$(HELLO_BIN): $(HELLO_SRC) $(LIB)
|
|
@mkdir -p $(dir $@)
|
|
$(DOS_CC) $(CFLAGS) $< $(LIB) -o $@
|
|
$(DOS_EMBED_DPMI) $@
|
|
|
|
$(PATTERN_BIN): $(PATTERN_SRC) $(LIB)
|
|
@mkdir -p $(dir $@)
|
|
$(DOS_CC) $(CFLAGS) $< $(LIB) -o $@
|
|
$(DOS_EMBED_DPMI) $@
|
|
|
|
$(KEYS_BIN): $(KEYS_SRC) $(LIB)
|
|
@mkdir -p $(dir $@)
|
|
$(DOS_CC) $(CFLAGS) $< $(LIB) -o $@
|
|
$(DOS_EMBED_DPMI) $@
|
|
|
|
$(JOY_BIN): $(JOY_SRC) $(LIB)
|
|
@mkdir -p $(dir $@)
|
|
$(DOS_CC) $(CFLAGS) $< $(LIB) -o $@
|
|
$(DOS_EMBED_DPMI) $@
|
|
|
|
$(SPRITE_BIN): $(SPRITE_SRC) $(LIB)
|
|
@mkdir -p $(dir $@)
|
|
$(DOS_CC) $(CFLAGS) $< $(LIB) -o $@
|
|
$(DOS_EMBED_DPMI) $@
|
|
|
|
clean-dos:
|
|
rm -rf $(BUILD)
|