]> git.sur5r.net Git - c128-kasse/blobdiff - Makefile
Fix handling of maybe-absent files
[c128-kasse] / Makefile
index fa5677e303ed1daed35460d8e8707f4913a0b61c..7c4a2027fce189fbb164ad42d4383d4363492f7a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,56 +1,48 @@
-# Note: this are my paths to cc65 as there is no gentoo ebuild, sorry for that.
-# Please use the path below if you've installed cc65 system-wide
-#CC=~/customSoftware/cc65-2.11.0/src/cc65/cc65 -I ~/customSoftware/cc65-2.11.0/include
-#CA=~/customSoftware/cc65-2.11.0/src/ca65/ca65
-#CL=~/customSoftware/cc65-2.11.0/src/cl65/cl65
 CC=cc65
-CA=ca65
-CL=cl65
+AS=ca65
+LD=cl65
+INCLUDES:=$(wildcard include/*.h) include/version.h
+GV:=$(shell git describe --tags --always)
+CFLAGS= -I include -t c128
 
-src/%.o: src/%.c include/%.h
-       ${CC} -O -I include -t c128 $<
-       ${CA} -I include -t c128 src/$$(basename $< .c).s
+.PHONY: include/version.h clean dist-clean
 
-test/%.o: test/%.c
-       ${CC} -O -I include -t c128 $<
-       ${CA} -I include -t c128 test/$$(basename $< .c).s
+all: kasse itemz
 
-kasse: src/config.o src/kasse.o src/general.o src/credit_manager.o src/c128time.o
-       # See above, please just kill the PATH-definition
-       # cp /tmp/cc65/lib/c128* .
-       PATH=${PATH}:~/customSoftware/cc65-2.11.0/src/ld65:/tmp/cc65/lib ${CL} -t c128 src/*.o -o kasse
+%.o: %.c ${INCLUDES}
+       ${CC} ${CFLAGS} -O $<
+       ${AS} ${CFLAGS} $(addsuffix .s,$(basename $< ))
 
-itemz: src/config.o src/itemz.o src/general.o src/credit_manager.o
-       # See above, please just kill the PATH-definition
-       # cp /tmp/cc65/lib/c128* .
-       PATH=${PATH}:~/customSoftware/cc65-2.11.0/src/ld65:/tmp/cc65/lib ${CL} -t c128 src/config.o src/itemz.o src/general.o src/credit_manager.o -o itemz
+include/version.h:
+       echo "#define GV \"${GV}\"" > $@
 
-all: kasse itemz
+kasse: src/config.o src/kasse.o src/general.o src/credit_manager.o src/c128time.o src/print.o
+       ${LD} -t c128 $^ -o $@
+
+itemz: src/config.o src/itemz.o src/general.o src/credit_manager.o src/c128time.o src/print.o
+       ${LD} -t c128 $^ -o $@
+
+cat: src/general.o src/cat.o
+       ${LD} -t c128 $^ -o $@
 
 package: all
-       cp images/kasse.d64 .
-       c1541 -attach kasse.d64 -delete state || exit 0 
-       c1541 -attach kasse.d64 -delete items  || exit 0
-       c1541 -attach kasse.d64 -delete kasse  || exit 0
-       c1541 -attach kasse.d64 -delete itemz  || exit 0
-       c1541 -attach kasse.d64 -write kasse  || exit 0
-       c1541 -attach kasse.d64 -write itemz  || exit 0
-#      c1541 -attach kasse.d64 -write state || exit 0 
-#      c1541 -attach kasse.d64 -write items  || exit 0
+       c1541 -format "${GV}",KA d64 kasse.d64
+       c1541 -attach kasse.d64 -write kasse
+       c1541 -attach kasse.d64 -write itemz
+       [ -e state ] && c1541 -attach kasse.d64 -write state || exit 0
+       [ -e items ] && c1541 -attach kasse.d64 -write items || exit 0
 
 test: src/config.o test/test.o src/general.o
-       ${CL} -t c128 src/config.o test/test.o src/general.o -o test
+       cl65 -t c128 src/config.o test/test.o src/general.o -o test
 
 test-package: test
-       c1541 -attach test.d64 -delete state || exit 0 
-       c1541 -attach test.d64 -delete items  || exit 0
-       c1541 -attach test.d64 -delete test  || exit 0
-       c1541 -attach test.d64 -write test  || exit 0
-       c1541 -attach test.d64 -write state || exit 0 
-       c1541 -attach test.d64 -write items  || exit 0
+       c1541 -format "test",TE d64 test.d64
+       c1541 -attach test.d64 -write test || exit 0
+       c1541 -attach test.d64 -write state || exit 0
+       c1541 -attach test.d64 -write items || exit 0
 
 clean:
        rm -rf src/*.o src/*.s test/*.o test/*.s
-       
+
 dist-clean: clean
-       rm kasse itemz kasse.d64
+       rm -f kasse itemz kasse.d64