Replaced whole bunch for Makefiles with a single generic Makefile.

- No complex shell logic.
- "Source file shadowing" for all targets via vpath.
- Dependency handling.
- True incremental build.
- Don't write into source directories.
- Easy cleanup by just removing 'wrk'.
This commit is contained in:
Oliver Schmidt
2013-05-04 22:10:48 +02:00
parent 2cd8e140ad
commit 008b4c4e1d
138 changed files with 36 additions and 3707 deletions

View File

@@ -1,87 +0,0 @@
#
# makefile for CC65 runtime library
#
.SUFFIXES: .o .s .c
#--------------------------------------------------------------------------
# Programs and flags
SYS = geos-cbm
AS = ../../src/ca65/ca65
CC = ../../src/cc65/cc65
LD = ../../src/ld65/ld65
AFLAGS = -t $(SYS) --forget-inc-paths -I. -I../geos-common -I../../asminc
CFLAGS = -Osir -g -T -t $(SYS) --forget-inc-paths -I . -I ../../include
#--------------------------------------------------------------------------
# Rules
%.o: %.c
@$(CC) -o $(notdir $(*).s) $(CFLAGS) $<
@$(AS) -o $@ $(AFLAGS) $(*).s
%.o: %.s
@$(AS) -g -o $@ $(AFLAGS) $<
%.emd: %.o ../runtime/zeropage.o
@$(LD) -o $@ -t module $^
%.joy: %.o ../runtime/zeropage.o
@$(LD) -o $@ -t module $^
%.mou: %.o ../runtime/zeropage.o
@$(LD) -o $@ -t module $^
%.ser: %.o ../runtime/zeropage.o
@$(LD) -o $@ -t module $^
%.tgi: %.o ../runtime/zeropage.o
@$(LD) -o $@ -t module $^
#--------------------------------------------------------------------------
# Directories
DIRS = disk \
drivers \
file \
memory \
system
#--------------------------------------------------------------------------
# Drivers
EMDS = geos-vdc.emd
JOYS = geos-stdjoy.joy
MOUS =
SERS =
TGIS = geos-tgi.tgi
#--------------------------------------------------------------------------
# Directives
include $(addsuffix /Makefile, $(DIRS))
vpath %.c $(DIRS)
vpath %.s $(DIRS)
#--------------------------------------------------------------------------
# Targets
.PHONY: all clean zap
all: $(C_OBJS) $(S_OBJS) $(EMDS) $(JOYS) $(MOUS) $(SERS) $(TGIS)
../runtime/zeropage.o:
$(MAKE) -C $(dir $@) $(notdir $@)
clean:
@$(RM) $(C_OBJS:.o=.s) $(C_OBJS) $(S_OBJS) $(EMDS:.emd=.o) $(JOYS:.joy=.o) $(MOUS:.mou=.o) $(SERS:.ser=.o) $(TGIS:.tgi=.o)
zap: clean
@$(RM) $(EMDS) $(JOYS) $(MOUS) $(SERS) $(TGIS)

View File

@@ -0,0 +1 @@
CFLAGS += -Wa -Igeos-cbm,-Igeos-common

View File

@@ -1,29 +0,0 @@
#
# makefile for CC65 runtime library
#
#--------------------------------------------------------------------------
# Object files
S_OBJS += changediskdevice.o \
chkdkgeos.o \
dio_cts.o \
dio_openclose.o \
dio_params.o \
dio_qcount.o \
dio_qsize.o \
dio_read.o \
dio_stc.o \
dio_write.o \
dio_writev.o \
enterturbo.o \
exitturbo.o \
findbambit.o \
newdisk.o \
purgeturbo.o \
readblock.o \
readbuff.o \
setgeosdisk.o \
writeblock.o \
writebuff.o \
verwriteblock.o

View File

@@ -1,10 +0,0 @@
#
# makefile for CC65 runtime library
#
#--------------------------------------------------------------------------
# Object files
S_OBJS += joy_stddrv.o \
tgi_colors.o \
tgi_stddrv.o

View File

@@ -1,15 +0,0 @@
;
; Name of the standard joystick driver
;
; Ullrich von Bassewitz, 2002-12-21
;
; const char joy_stddrv[];
;
.export _joy_stddrv
.rodata
_joy_stddrv:
.asciiz "geos-stdjoy.joy"

View File

@@ -1,8 +0,0 @@
;
; Target-specific black & white values, for use by the target-shared TGI kernel
;
.include "tgi-kernel.inc"
tgi_color_black = $00
tgi_color_white = $01

View File

@@ -1,14 +0,0 @@
;
; Name of the standard tgi driver
;
; Oliver Schmidt, 2011-05-02
;
; const char tgi_stddrv[];
;
.export _tgi_stddrv
.rodata
_tgi_stddrv:
.asciiz "geos-tgi.tgi"

View File

@@ -1,8 +0,0 @@
#
# makefile for CC65 runtime library
#
#--------------------------------------------------------------------------
# Object files
S_OBJS += followchain.o

View File

@@ -1,12 +0,0 @@
#
# makefile for CC65 runtime library
#
#--------------------------------------------------------------------------
# Object files
S_OBJS += fetchram.o \
reuregs.o \
stashram.o \
swapram.o \
verifyram.o

View File

@@ -1,12 +0,0 @@
#
# makefile for CC65 runtime library
#
#--------------------------------------------------------------------------
# Object files
S_OBJS += get_ostype.o \
getserialnumber.o \
initdoneio.o \
setdevice.o \
tobasic.o