diff Makefile @ 0:826a1cb3f873

Copied SGDK project skeleton
author Mike Pavone <pavone@retrodev.com>
date Sun, 12 Jan 2014 11:24:36 -0800
parents
children b4d360d2e66c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile	Sun Jan 12 11:24:36 2014 -0800
@@ -0,0 +1,173 @@
+CC = m68k-elf-gcc
+AS = m68k-elf-as
+OBJC = m68k-elf-objcopy
+LD = m68k-elf-ld
+RM = rm -f
+ASMZ80 = zasm
+BINTOS = bintos
+PCMTORAW = pcmtoraw
+WAVTORAW = wavtoraw
+NM = nm
+NM2WCH = nm2wch
+SIZEBND = sizebnd
+MKISOFS = mkisofs
+
+SCD_LOADER = scd/LukeProjectCD
+
+OPTION =
+INCS = -I. -I$(GENDEV)/m68k-elf/include -I$(GENDEV)/m68k-elf/m68k-elf/include -Isrc -Ires
+CCFLAGS = $(OPTION) -m68000 -Wall -O2 -c -fomit-frame-pointer
+HWCCFLAGS = $(OPTION) -m68000 -Wall -O1 -c -fomit-frame-pointer
+Z80FLAGS = -vb2
+ASFLAGS = -m68000 --register-prefix-optional
+#LIBS =  -L$(GENDEV)/m68k-elf/lib -L$(GENDEV)/m68k-elf/lib/gcc/m68k-elf/4.5.2 -L$(GENDEV)/m68k-elf/m68k-elf/lib -lmd -lc -lgcc -lnosys -lm 
+LIBS =  -L$(GENDEV)/m68k-elf/lib -L$(GENDEV)/m68k-elf/lib/gcc/m68k-elf/4.5.2 -L$(GENDEV)/m68k-elf/m68k-elf/lib -lmd -lnosys 
+LINKFLAGS = -T $(GENDEV)/ldscripts/sgdk.ld -nostdlib 
+SCDLINKFLAGS = -T scd/mdcd.ld -nostdlib 
+ARCHIVES = $(GENDEV)/m68k-elf/lib/libmd.a $(GENDEV)/m68k-elf/lib/gcc/m68k-elf/4.5.2/libgcc.a 
+
+RESOURCES=
+BOOT_RESOURCES=
+
+BOOTSS=$(wildcard boot/*.s)
+BOOTSS+=$(wildcard src/boot/*.s)
+BOOT_RESOURCES+=$(BOOTSS:.s=.o)
+
+SCDBOOTSS=$(wildcard scd/*.s)
+SCDBOOTSS+=$(wildcard src/scd/*.s)
+SCDBOOT_RESOURCES=$(SCDBOOTSS:.s=.o)
+
+BMPS=$(wildcard res/*.bmp)
+VGMS=$(wildcard res/*.vgm)
+RAWS=$(wildcard res/*.raw)
+PCMS=$(wildcard res/*.pcm)
+MVSS=$(wildcard res/*.mvs)
+TFDS=$(wildcard res/*.tfd)
+WAVS=$(wildcard res/*.wav)
+WAVPCMS=$(wildcard res/*.wavpcm)
+BMPS+=$(wildcard *.bmp)
+VGMS+=$(wildcard *.vgm)
+RAWS+=$(wildcard *.raw)
+PCMS+=$(wildcard *.pcm)
+MVSS+=$(wildcard *.mvs)
+TFDS+=$(wildcard *.tfd)
+WAVS+=$(wildcard *.wav)
+WAVPCMS+=$(wildcard *.wavpcm)
+RESOURCES+=$(BMPS:.bmp=.o)
+RESOURCES+=$(VGMS:.vgm=.o)
+RESOURCES+=$(RAWS:.raw=.o)
+RESOURCES+=$(PCMS:.pcm=.o)
+RESOURCES+=$(MVSS:.mvs=.o)
+RESOURCES+=$(TFDS:.tfd=.o)
+RESOURCES+=$(WAVS:.wav=.o)
+RESOURCES+=$(WAVPCMS:.wavpcm=.o)
+
+CS=$(wildcard src/*.c)
+SS=$(wildcard src/*.s)
+S80S=$(wildcard src/*.s80)
+CS+=$(wildcard *.c)
+SS+=$(wildcard *.s)
+S80S+=$(wildcard *.s80)
+RESOURCES+=$(CS:.c=.o)
+RESOURCES+=$(SS:.s=.o)
+RESOURCES+=$(S80S:.s80=.o)
+
+OBJS = $(RESOURCES)
+
+all: out.bin 
+
+boot/sega.o: boot/rom_head.bin
+	$(AS) $(ASFLAGS) boot/sega.s -o $@
+
+scd/segacd.o: 
+	$(AS) $(ASFLAGS) scd/segacd.s -o $@
+
+
+out.iso: out.elf_scd
+	#
+	# Create a sega cd image.  Limited to 256K or smaller Roms
+	#
+	$(NM) -n -S -t x out.elf_scd > out.nm
+	$(OBJC) -O binary out.elf_scd out.bin
+	$(SIZEBND) out.bin -sizealign 131072   
+	$(OBJC) -O binary out.elf_scd $(SCD_LOADER)/_filesystem/M_INIT.PRG
+	$(SIZEBND) $(SCD_LOADER)/_filesystem/M_INIT.PRG -sizealign 131072    
+	$(MKISOFS) -iso-level 1 -o $(SCD_LOADER)/filesystem.img -pad $(SCD_LOADER)/_filesystem
+	tail -c +32769 $(SCD_LOADER)/filesystem.img > $(SCD_LOADER)/filesystem.bin
+	$(RM) -f $(SCD_LOADER)/filesystem.img
+	cd $(SCD_LOADER) && $(AS) $(ASFLAGS) -M -ahlsm=listing.asm  main-us-as.asm -o out.iso
+	tail -c +53 $(SCD_LOADER)/out.iso > out.iso
+	$(RM) -f $(SCD_LOADER)/filesystem.bin
+
+%.bin: %.elf
+	$(OBJC) -O binary $< temp.bin
+	dd if=temp.bin of=$@ bs=8K conv=sync
+
+%.elf: $(OBJS) $(BOOT_RESOURCES)
+	$(CC) -o $@ $(LINKFLAGS) $(BOOT_RESOURCES) $(ARCHIVES) $(OBJS) $(LIBS)
+
+%.elf_scd: $(OBJS) $(SCDBOOT_RESOURCES)
+	$(CC) -o $@ $(SCDLINKFLAGS) $(SCDBOOT_RESOURCES) $(ARCHIVES) $(OBJS) $(LIBS)
+
+%.o80: %.s80
+	$(ASMZ80) $(Z80FLAGS) -o $@ $<
+
+%.c: %.o80
+	$(BINTOS) $<
+
+%.o: %.c
+	$(CC) $(CCFLAGS) $(INCS) -c $< -o $@
+
+%.o: %.s 
+	$(AS) $(ASFLAGS) $< -o $@
+
+%.s: %.bmp
+	bintos -bmp $<
+
+%.rawpcm: %.pcm
+	$(PCMTORAW) $< $@
+
+%.raw: %.wav
+	$(WAVTORAW) $< $@ 16000
+
+%.pcm: %.wavpcm
+	$(WAVTORAW) $< $@ 22050
+
+#%.tfc: %.tfd
+#	$(TFMCOM) $<
+
+#%.o80: %.s80
+#	$(ASMZ80) $(FLAGSZ80) $< $@ out.lst
+
+%.s: %.tfd
+	$(BINTOS) -align 32768 $<
+
+%.s: %.mvs
+	$(BINTOS) -align 256 $<
+
+%.s: %.esf
+	$(BINTOS) -align 32768 $<
+
+%.s: %.eif
+	$(BINTOS) -align 256 $<
+
+%.s: %.vgm 
+	$(BINTOS) -align 256 $<
+
+%.s: %.raw
+	$(BINTOS) -align 256 -sizealign 256 $<
+
+%.s: %.rawpcm
+	$(BINTOS) -align 128 -sizealign 128 -nullfill 136 $<
+
+%.s: %.rawpcm
+	$(BINTOS) -align 128 -sizealign 128 -nullfill 136 $<
+
+boot/rom_head.bin: boot/rom_head.o
+	$(LD) $(LINKFLAGS) --oformat binary -o $@ $<
+	
+
+clean:
+	$(RM) $(RESOURCES)
+	$(RM) *.o *.bin *.elf *.elf_scd *.map *.iso
+	$(RM) boot/*.o boot/*.bin