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,150 +0,0 @@
#
# makefile for CC65 runtime library
#
.SUFFIXES: .o .s .c
#--------------------------------------------------------------------------
# Programs and flags
SYS = nes
AS = ../../src/ca65/ca65
CC = ../../src/cc65/cc65
CO = ../../src/co65/co65
LD = ../../src/ld65/ld65
AFLAGS = -t $(SYS) --forget-inc-paths -I../../asminc
CFLAGS = -Osir -g -T -t $(SYS) --forget-inc-paths -I . -I ../../include
#--------------------------------------------------------------------------
# Rules
%.o: %.c
@$(CC) $(CFLAGS) $<
@$(AS) -o $@ $(AFLAGS) $(*).s
%.o: %.s
@$(AS) -g -o $@ $(AFLAGS) $<
%-emd.o: %.emd
@$(CO) -o $(*)-emd.s --code-label _$(subst -,_,$(*)) $<
@$(AS) -o $@ $(AFLAGS) $(*)-emd.s
%-joy.o: %.joy
@$(CO) -o $(*)-joy.s --code-label _$(subst -,_,$(*)) $<
@$(AS) -o $@ $(AFLAGS) $(*)-joy.s
%-mou.o: %.mou
@$(CO) -o $(*)-mou.s --code-label _$(subst -,_,$(*)) $<
@$(AS) -o $@ $(AFLAGS) $(*)-mou.s
%-ser.o: %.ser
@$(CO) -o $(*)-ser.s --code-label _$(subst -,_,$(*)) $<
@$(AS) -o $@ $(AFLAGS) $(*)-ser.s
%-tgi.o: %.tgi
@$(CO) -o $(*)-tgi.s --code-label _$(subst -,_,$(*)) $<
@$(AS) -o $@ $(AFLAGS) $(*)-tgi.s
%.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 $^
#--------------------------------------------------------------------------
# Object files
OBJS = _scrsize.o \
cclear.o \
chline.o \
clock.o \
clrscr.o \
color.o \
cputc.o \
crt0.o \
ctype.o \
cvline.o \
get_tv.o \
gotox.o \
gotoxy.o \
gotoy.o \
joy_stat_stddrv.o \
joy_stddrv.o \
mainargs.o \
ppu.o \
ppubuf.o \
randomize.o \
revers.o \
setcursor.o \
sysuname.o \
tgi_colors.o \
tgi_stat_stddrv.o \
tgi_stddrv.o \
waitvblank.o \
wherex.o \
wherey.o \
$(EMDS:.emd=-emd.o) \
$(JOYS:.joy=-joy.o) \
$(MOUS:.mou=-mou.o) \
$(SERS:.ser=-ser.o) \
$(TGIS:.tgi=-tgi.o)
#--------------------------------------------------------------------------
# Drivers
EMDS =
JOYS = nes-stdjoy.joy
MOUS =
SERS =
TGIS = nes-64-56-2.tgi
#--------------------------------------------------------------------------
# Targets
.PHONY: all clean zap
all: $(OBJS) $(EMDS) $(JOYS) $(MOUS) $(SERS) $(TGIS)
../runtime/popa.o:
$(MAKE) -C $(dir $@) $(notdir $@)
../runtime/zeropage.o:
$(MAKE) -C $(dir $@) $(notdir $@)
nes-64-56-2.tgi: nes-64-56-2.o \
../runtime/popa.o \
../runtime/zeropage.o \
clrscr.o \
cputc.o \
get_tv.o \
gotoxy.o \
ppu.o \
ppubuf.o \
setcursor.o
@$(LD) -o $@ -t module $^
clean:
@$(RM) $(OBJS) \
$(EMDS:.emd=.o) $(EMDS:.emd=-emd.s) \
$(JOYS:.joy=.o) $(JOYS:.joy=-joy.s) \
$(MOUS:.mou=.o) $(MOUS:.mou=-mou.s) \
$(SERS:.ser=.o) $(SERS:.ser=-ser.s) \
$(TGIS:.tgi=.o) $(TGIS:.tgi=-tgi.s)
zap: clean
@$(RM) $(EMDS) $(JOYS) $(MOUS) $(SERS) $(TGIS)

8
libsrc/nes/Makefile.inc Normal file
View File

@@ -0,0 +1,8 @@
../tgi/nes-64-56-2.tgi: ../wrk/nes/clrscr.o \
../wrk/nes/cputc.o \
../wrk/nes/get_tv.o \
../wrk/nes/gotoxy.o \
../wrk/nes/popa.o \
../wrk/nes/ppu.o \
../wrk/nes/ppubuf.o \
../wrk/nes/setcursor.o

View File

@@ -491,4 +491,4 @@ CALC: lda xres
; ------------------------------------------------------------------------
.include "../tgi/tgidrv_line.inc"
.include "../../tgi/tgidrv_line.inc"