Jak si tak hraju s tím C pro Z80, tak jsem narazila na divnou věc při kompilaci. Když make skončí kompilaci, tak mi smaže některé soubory, které vznikly při kompilaci. Nemůžu přijít na to, proč to dělá a jak mu v tom zabránit. Poradí prosím někdo? Přikládám výpis makefile a výpis z překladu. Konkrétně jde o tu poslední řádku "rm cat.ihx sh.ihx", kde smaže hexa soubory z překladu.
Kód: Vybrat vše
AS = sdasz80.exe
LD = sdldz80.exe
AR = sdar.exe
CC = sdcc.exe
CFLAGS = -mz80 --nostdinc -Ilibc/include
CPP = sdcc.exe --nostdinc -Ilibc/include
LIBS = libc/libc.lib
OBJS := $(patsubst %.c,%.bin,$(wildcard *.c))
# kompilace C
%.rel: %.c
$(CC) $(CFLAGS) -c $< -o $@
# kompilace asm
%.rel: %.s
$(AS) -o $<
%.ihx: %.rel
# Vytvoreni souboru s parametry pro linker
echo "-mjwx" > link.lk
echo "-i $@" >> link.lk
echo "-b _CODE = 0x1020" >> link.lk
for i in $(LIBS); do echo "-l $$i" >> link.lk; done
echo "libc/crt0.rel" >> link.lk
echo "$<" >> link.lk
echo "-e " >> link.lk
$(LD) -f link.lk
%.bin: %.ihx
hex2bin -s 0x0FF8 $<
rm -f $(@:.bin=.sym)
rm -f $(@:.bin=.noi)
all: $(OBJS)
.\pack.exe sh.bin bin/sh
clean:
rm -f *.bin *.ihx *.rel *.asm *.lst *.sym *.noi *.map
dep:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
for i in *.c;do $(CPP) -M $$i;done >> tmp_make
cp tmp_make Makefile
### Dependencies:
cat.rel: cat.c libc/include/stdio.h libc/include/stdarg.h \
libc/include/fs.h libc/include/sys.h
echo.rel: echo.c libc/include/stdio.h libc/include/stdarg.h \
libc/include/sys.h
ls.rel: ls.c libc/include/fs.h libc/include/stdio.h libc/include/stdarg.h \
libc/include/string.h libc/include/stddef.h libc/include/sys.h
mkdir.rel: mkdir.c libc/include/stdio.h libc/include/stdarg.h \
libc/include/sys.h
mknod.rel: mknod.c libc/include/stdio.h libc/include/stdarg.h \
libc/include/sys.h
nop.rel: nop.c libc/include/stdio.h libc/include/stdarg.h \
libc/include/sys.h
rm.rel: rm.c libc/include/stdio.h libc/include/stdarg.h \
libc/include/sys.h
sh.rel: sh.c libc/include/stdio.h libc/include/stdarg.h \
libc/include/sys.h libc/include/string.h libc/include/stddef.h
sync.rel: sync.c libc/include/stdio.h libc/include/stdarg.h \
libc/include/sys.h
test.rel: test.c libc/include/stdio.h libc/include/stdarg.h \
libc/include/sys.h
Kód: Vybrat vše
sdcc.exe -mz80 --nostdinc -Ilibc/include -c cat.c -o cat.rel
echo "-mjwx" > link.lk
echo "-i cat.ihx" >> link.lk
echo "-b _CODE = 0x1020" >> link.lk
for i in libc/libc.lib ; do echo "-l $i" >> link.lk; done
echo "libc/crt0.rel" >> link.lk
echo "cat.rel" >> link.lk
echo "-e " >> link.lk
sdldz80.exe -f link.lk
ASlink >> -f link.lk
ASlink >> -mjwx
ASlink >> -i cat.ihx
ASlink >> -b _CODE = 0x1020
ASlink >> -l libc/libc.lib
ASlink >> libc/crt0.rel
ASlink >> cat.rel
ASlink >> -e
hex2bin -s 0x0FF8 cat.ihx
hex2bin v1.0.1, Copyright (C) 1999 Jacques Pelletier
Lowest address = 00000FF8
Highest address = 000015E7
rm -f cat.sym
rm -f cat.noi
sdcc.exe -mz80 --nostdinc -Ilibc/include -c sh.c -o sh.rel
echo "-mjwx" > link.lk
echo "-i sh.ihx" >> link.lk
echo "-b _CODE = 0x1020" >> link.lk
for i in libc/libc.lib ; do echo "-l $i" >> link.lk; done
echo "libc/crt0.rel" >> link.lk
echo "sh.rel" >> link.lk
echo "-e " >> link.lk
sdldz80.exe -f link.lk
ASlink >> -f link.lk
ASlink >> -mjwx
ASlink >> -i sh.ihx
ASlink >> -b _CODE = 0x1020
ASlink >> -l libc/libc.lib
ASlink >> libc/crt0.rel
ASlink >> sh.rel
ASlink >> -e
hex2bin -s 0x0FF8 sh.ihx
hex2bin v1.0.1, Copyright (C) 1999 Jacques Pelletier
Lowest address = 00000FF8
Highest address = 00001CB3
rm -f sh.sym
rm -f sh.noi
.\pack.exe sh.bin bin/sh
Size of sh.bin is 3260.
Size of name bin/sh is 6.
rm cat.ihx sh.ihx