| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | MAKEFLAGS += -R -rSUBDIRS  := include test roms fatfs/source zlibCROSS	  = ../tools/gnu/bin/riscv32-unknown-elf-CC	  = $(CROSS)gccLD	  = $(CROSS)ldOBJCOPY   = $(CROSS)objcopyAR        = $(CROSS)arNM	  = $(CROSS)nmPERL      = perlGZIP	  = gzipINCLUDE   = -I. -I./include -I../common -I./zlib -I./fatfs/sourceinclude ../riscv-opts.mkCPPFLAGS  = $(INCLUDE) $(riscv_flags)CFLAGS    = $(CPPFLAGS) -W -WextraSFLAGS    = $(CPPFLAGS) -D__ASSEMBLY__LDFLAGS   = $(CFLAGS) \	    -Wl,-Map=$*.map \	    -Wl,--gc-sections \	    -Wl,--sort-section=alignment \	    -Wl,-z,common-page-size=16 \	    -Wl,-z,max-page-size=16 \	    -Wl,-z muldefs \	    -Wl,--require-defined=IODEV_BASEgendeps   = -MD -MF $(@D)/.$(@F).d -MT $@VPATH    := .:../common# Delete output files on error.DELETE_ON_ERROR:# Don't delete intermediate files.SECONDARY:genhdrs = iodevs.h irqtable.hgensrcs =all: sram.bin jtagupd.bin dram.bin dram.hex checksum.hLIBS    = max80.a fatfs.a zlib.aROMS    := $(wildcard roms/*.rom)ROMOBJS  = $(ROMS:.rom=.o)LIBOBJ   = head.o dummy.o die.o system.o \	   ioregsa.o irqasm.o irqtable.o spurious_irq.o \	   console.o i2c.o rtc.o romcopy.o spiflash.o esp.o matchver.o \	   sdcard.o \	   abcmem.o abcio.o abcdisk.o abcrtc.o abcpun80.o \	   memset.o memcpy.o \	   runtest.o start_test.o \	   $(ROMOBJS)max80.a: $(LIBOBJ)	rm -f $@	$(AR) cq $@ $(LIBOBJ)FATFS_C = $(wildcard fatfs/source/*.c)FATFS_O = $(FATFS_C:.c=.o)fatfs.a: $(FATFS_O)	rm -f $@	$(AR) cq $@ $(FATFS_O)ZLIB_C = $(wildcard zlib/*.c)ZLIB_O = $(ZLIB_C:.c=.o)zlib.a: $(ZLIB_O)	rm -f $@	$(AR) cq $@ $(ZLIB_O)CFLAGS_zlib/inflate.c := -Wno-implicit-fallthroughCFLAGS_zlib/infback.c := -Wno-implicit-fallthroughCFLAGS_memset.c := -O2%.hex: %.elf	$(OBJCOPY) -O ihex $< $@%.mem: %.bin	$(BIN2MEM) $< > $@sram.bin: max80.elf	$(OBJCOPY) -O binary -R '.dram*' $< $@dram.bin: max80.elf	$(OBJCOPY) -O binary -j '.dram*' $< $@%.bin: %.elf	$(OBJCOPY) -O binary $< $@%.gz: %	$(GZIP) -9 < $< > $@checksum.h: dram.bin sram.bin checksum.pl	$(PERL) checksum.pl -o $@ -p sram.bin \		-l $$(($$($(NM) -n max80.elf --radix=decimal | \			grep ' [A-Z] __dram_init_end$$' | \	                awk '{ print $$1; }') - (1 << 30))) \		dram.bintestimg.bin: testimg.elf	$(OBJCOPY) -O binary $< $@testimg.o: testimg.S testimg.bin%.hex: %.bin	$(OBJCOPY) -I binary -O ihex $< $@# Objects specific to certain executablesmax80.elf: diskcache.ojtagupd.elf: sbrk.o%.elf: %.ild %.o $(LIBS)	$(CC) $(LDFLAGS) -Wl,-T,$< -o $@ \		-Wl,--start-group $(filter-out $<,$^) -Wl,--end-group%.o: %.c | $(genhdrs)	$(CC) $(CFLAGS) $(CFLAGS_$<) $(gendeps) -c -o $@ $<%.s: %.c | $(genhdrs)	$(CC) $(CFLAGS) $(CFLAGS_$<) $(gendeps) -S -o $@ $<%.i: %.c | $(genhdrs)	$(CC) $(CFLAGS) $(CFLAGS_$<) $(gendeps) -E -o $@ $<%.o: %.S | $(genhdrs)	$(CC) $(SFLAGS) $(SFLAGS_$<) $(gendeps) -c -o $@ $<%.s: %.S | $(genhdrs)	$(CC) $(SFLAGS) $(SFLAGS_$<) $(gendeps) -E -o $@ $<ioregsa.S: ioregs.h ioregsa.pl | $(genhdrs)	$(PERL) ioregsa.pl $< $@roms/%.o: roms/%.rom rom.S	$(CC) $(SFLAGS) $(SFLAGS_$(F<)) -DNAME='rom_$*' -DFILE='"$<"' \		-c -o $@ rom.S%.ild: %.ld | $(genhdrs)	$(CC) $(CFLAGS) $(CFLAGS_$<) $(gendeps) \		-x assembler-with-cpp \		-fdollars-in-identifiers \		-C -P -E $< | $(PERL) -pe 's:^(#.*)$$:/* $$1 */:' > $@iodevs.h: ../iodevs.conf ../tools/iodevs.pl	$(PERL) ../tools/iodevs.pl h $< $@irqtable.h: ../iodevs.conf ../tools/iodevs.pl	$(PERL) ../tools/iodevs.pl irqh $< $@clean:	for d in . $(SUBDIRS); do \		rm -f $$d/*.a $$d/*.o $$d/*.i $$d/*.s $$d/*.elf $$d/*.bin \		$$d/.*.d $$d/*.ild $$d/*.map; \	done	rm -f $(genhdrs) $(gensrcs)spotless: clean	rm -f *.mem *.hex *.mif checksum.h-include $(patsubst %,%/.*.d,. $(SUBDIRS))
 |