]> git.sur5r.net Git - cc65/blobdiff - libsrc/pet/Makefile
Ignore only top level directories.
[cc65] / libsrc / pet / Makefile
index a09bde862baca2ed6e29a4ee64686c6d970aa405..4243d1942f80b4c84b1cf9d548653f2ba65e5213 100644 (file)
 
 .SUFFIXES: .o .s .c
 
+#--------------------------------------------------------------------------
+# Programs and flags
+
+SYS    = pet
+
+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
+%.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
+
+%-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 $^
+
+%.tgi: %.o ../runtime/zeropage.o
+       @$(LD) -o $@ -t module $^
+
 #--------------------------------------------------------------------------
 # Object files
 
-OBJS = _scrsize.o      \
-       break.o         \
-       cgetc.o         \
-        checkst.o       \
-       clrscr.o        \
-       color.o         \
-       conio.o         \
-       cputc.o         \
-       crt0.o          \
-       kbhit.o         \
-        kbsout.o        \
-        kchkin.o        \
-        kckout.o        \
-        kclose.o        \
-        kernal.o        \
-        kopen.o         \
-        kplot.o         \
-        krdtim.o        \
-        kreadst.o       \
-        ksetlfs.o       \
-        ksetnam.o       \
-        mainargs.o      \
-        randomize.o    \
-       revers.o
+OBJS = _scrsize.o              \
+        break.o                 \
+        cgetc.o                 \
+        checkst.o               \
+        clrscr.o                \
+        color.o                 \
+        conio.o                 \
+        cputc.o                 \
+        crt0.o                  \
+        devnum.o                \
+        get_tv.o                \
+        irq.o                   \
+        joy_stat_stddrv.o       \
+        joy_stddrv.o            \
+        kbhit.o                 \
+        kbsout.o                \
+        kchkin.o                \
+        kckout.o                \
+        kclose.o                \
+        kernal.o                \
+        kopen.o                 \
+        kplot.o                 \
+        krdtim.o                \
+        kreadst.o               \
+        ksetlfs.o               \
+        ksetnam.o               \
+        mainargs.o              \
+        randomize.o             \
+        revers.o                \
+        status.o                \
+        sysuname.o              \
+        $(EMDS:.emd=-emd.o)     \
+        $(JOYS:.joy=-joy.o)     \
+        $(TGIS:.tgi=-tgi.o)
+
+#--------------------------------------------------------------------------
+# Drivers
+
+EMDS =
+
+JOYS = pet-ptvjoy.joy pet-stdjoy.joy
+
+TGIS =
 
 #--------------------------------------------------------------------------
 # Targets
 
 .PHONY:        all clean zap
 
-all:   $(OBJS)
+all:   $(OBJS) $(EMDS) $(JOYS) $(TGIS)
+
+../runtime/zeropage.o:
+       $(MAKE) -C $(dir $@) $(notdir $@)
 
 clean:
-       @rm -f $(OBJS)
+       @$(RM) $(OBJS) \
+              $(EMDS:.emd=.o) $(EMDS:.emd=-emd.s) \
+              $(JOYS:.joy=.o) $(JOYS:.joy=-joy.s) \
+              $(TGIS:.tgi=.o) $(TGIS:.tgi=-tgi.s)
 
 zap:   clean
-
+       @$(RM) $(EMDS) $(JOYS) $(TGIS)