Added support for building targetutils.
This commit is contained in:
@@ -74,6 +74,9 @@ MKINC = $(GEOS) \
|
||||
atari \
|
||||
nes
|
||||
|
||||
TARGETUTIL = apple2 \
|
||||
geos-apple
|
||||
|
||||
GEOSDIRS = common \
|
||||
conio \
|
||||
disk \
|
||||
@@ -90,59 +93,65 @@ GEOSDIRS = common \
|
||||
ifeq ($(TARGET),apple2enh)
|
||||
OBJPFX = a2
|
||||
DRVPFX = a2e
|
||||
DIRS = apple2
|
||||
SRCDIR = apple2
|
||||
else
|
||||
DIRS = $(TARGET)
|
||||
SRCDIR = $(TARGET)
|
||||
endif
|
||||
|
||||
SRCDIRS = $(SRCDIR)
|
||||
|
||||
ifeq ($(TARGET),$(filter $(TARGET),$(CBMS)))
|
||||
DIRS += cbm
|
||||
SRCDIRS += cbm
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET),$(filter $(TARGET),$(GEOS)))
|
||||
DIRS += $(addprefix $(TARGET)/, $(GEOSDIRS))
|
||||
DIRS += $(addprefix geos-common/,$(GEOSDIRS))
|
||||
SRCDIRS += $(addprefix $(TARGET)/, $(GEOSDIRS))
|
||||
SRCDIRS += $(addprefix geos-common/,$(GEOSDIRS))
|
||||
endif
|
||||
|
||||
DIRS += common \
|
||||
conio \
|
||||
dbg \
|
||||
em \
|
||||
joystick \
|
||||
mouse \
|
||||
runtime \
|
||||
serial \
|
||||
tgi \
|
||||
zlib
|
||||
SRCDIRS += common \
|
||||
conio \
|
||||
dbg \
|
||||
em \
|
||||
joystick \
|
||||
mouse \
|
||||
runtime \
|
||||
serial \
|
||||
tgi \
|
||||
zlib
|
||||
|
||||
vpath %.s $(DIRS)
|
||||
vpath %.c $(DIRS)
|
||||
vpath %.s $(SRCDIRS)
|
||||
vpath %.c $(SRCDIRS)
|
||||
|
||||
OBJS := $(patsubst %.s,%.o,$(foreach dir,$(DIRS),$(wildcard $(dir)/*.s)))
|
||||
OBJS += $(patsubst %.c,%.o,$(foreach dir,$(DIRS),$(wildcard $(dir)/*.c)))
|
||||
OBJS := $(patsubst %.s,%.o,$(foreach dir,$(SRCDIRS),$(wildcard $(dir)/*.s)))
|
||||
OBJS += $(patsubst %.c,%.o,$(foreach dir,$(SRCDIRS),$(wildcard $(dir)/*.c)))
|
||||
|
||||
OBJS := $(addprefix ../wrk/$(TARGET)/,$(sort $(notdir $(OBJS))))
|
||||
|
||||
DEPS = $(OBJS:.o=.d)
|
||||
|
||||
EXTRA_SRCPAT = $(firstword $(DIRS))/extra/%.s
|
||||
EXTRA_SRCPAT = $(SRCDIR)/extra/%.s
|
||||
EXTRA_OBJPAT = ../lib/$(TARGET)-%.o
|
||||
EXTRA_OBJS := $(patsubst $(EXTRA_SRCPAT),$(EXTRA_OBJPAT),$(wildcard $(firstword $(DIRS))/extra/*.s))
|
||||
EXTRA_OBJS := $(patsubst $(EXTRA_SRCPAT),$(EXTRA_OBJPAT),$(wildcard $(SRCDIR)/extra/*.s))
|
||||
|
||||
ZPOBJ = ../wrk/$(TARGET)/zeropage.o
|
||||
ifeq ($(TARGET),$(filter $(TARGET),$(EXTZP)))
|
||||
ZPOBJ += ../wrk/$(TARGET)/extzp.o
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET),$(filter $(TARGET),$(MKINC)))
|
||||
include $(TARGET)/Makefile.inc
|
||||
ifeq ($(SRCDIR),$(filter $(SRCDIR),$(MKINC)))
|
||||
include $(SRCDIR)/Makefile.inc
|
||||
endif
|
||||
|
||||
ifeq ($(SRCDIR),$(filter $(SRCDIR),$(TARGETUTIL)))
|
||||
include $(SRCDIR)/targetutil/Makefile.inc
|
||||
endif
|
||||
|
||||
##########
|
||||
|
||||
define DRVTYPE_template
|
||||
|
||||
$1_SRCDIR = $$(firstword $$(DIRS))/$1
|
||||
$1_SRCDIR = $$(SRCDIR)/$1
|
||||
$1_OBJDIR = ../wrk/$$(TARGET)/$1
|
||||
$1_DRVDIR = ../$1
|
||||
|
||||
@@ -158,14 +167,11 @@ $1_STCS = $$(patsubst $$($1_DRVPAT),$$($1_STCPAT),$$($1_DRVS))
|
||||
|
||||
$$($1_OBJS): | $$($1_OBJDIR)
|
||||
|
||||
$$($1_OBJDIR):
|
||||
@$$(call MKDIR,$$@)
|
||||
|
||||
$$($1_DRVPAT): $$($1_OBJPAT) $$(ZPOBJ) | $$($1_DRVDIR)
|
||||
@echo $$(TARGET) - $$(@F)
|
||||
@$$(LD) -o $$@ -t module $$^
|
||||
|
||||
$$($1_DRVDIR):
|
||||
$$($1_OBJDIR) $$($1_DRVDIR):
|
||||
@$$(call MKDIR,$$@)
|
||||
|
||||
$(TARGET): $$($1_DRVS)
|
||||
@@ -191,17 +197,32 @@ CC = $(if $(wildcard ../bin/cc65*),../bin/cc65,cc65)
|
||||
CO = $(if $(wildcard ../bin/co65*),../bin/co65,co65)
|
||||
LD = $(if $(wildcard ../bin/ld65*),../bin/ld65,ld65)
|
||||
|
||||
##########
|
||||
|
||||
define ASSEMBLE_recipe
|
||||
|
||||
@echo $(TARGET) - $<
|
||||
@$(CA) -t $(TARGET) $(AFLAGS) --create-dep $(@:.o=.d) -o $@ $<
|
||||
|
||||
endef
|
||||
|
||||
##########
|
||||
|
||||
define COMPILE_recipe
|
||||
|
||||
@echo $(TARGET) - $<
|
||||
@$(CC) -t $(TARGET) $(CFLAGS) --create-dep $(@:.o=.d) -o $(@:.o=.s) $<
|
||||
@$(CA) -t $(TARGET) -o $@ $(@:.o=.s)
|
||||
|
||||
endef
|
||||
|
||||
##########
|
||||
|
||||
../wrk/$(TARGET)/%.o: %.s | ../wrk/$(TARGET)
|
||||
@echo $(TARGET) - $<
|
||||
@$(CA) -t $(TARGET) $(AFLAGS) --create-dep $(@:.o=.d) -o $@ $<
|
||||
$(ASSEMBLE_recipe)
|
||||
|
||||
../wrk/$(TARGET)/%.o: %.c | ../wrk/$(TARGET)
|
||||
@echo $(TARGET) - $<
|
||||
@$(CC) -t $(TARGET) $(CFLAGS) --create-dep $(@:.o=.d) -o $(@:.o=.s) $<
|
||||
@$(CA) -t $(TARGET) -o $@ $(@:.o=.s)
|
||||
|
||||
../wrk/$(TARGET):
|
||||
@$(call MKDIR,$@)
|
||||
$(COMPILE_recipe)
|
||||
|
||||
$(EXTRA_OBJPAT): $(EXTRA_SRCPAT) | ../lib
|
||||
@echo $(TARGET) - $<
|
||||
@@ -210,7 +231,7 @@ $(EXTRA_OBJPAT): $(EXTRA_SRCPAT) | ../lib
|
||||
../lib/$(TARGET).lib: $(OBJS) | ../lib
|
||||
$(AR) a $@ $?
|
||||
|
||||
../lib:
|
||||
../wrk/$(TARGET) ../lib ../targetutil:
|
||||
@$(call MKDIR,$@)
|
||||
|
||||
$(TARGET): $(EXTRA_OBJS) ../lib/$(TARGET).lib
|
||||
|
||||
Reference in New Issue
Block a user