changeset 5:11fbaecc6c5e

copied the windows makefile straight from SGDK.
author William Morgan <bill@mrgn.org>
date Sun, 12 Jan 2014 13:43:51 -0800
parents 8f23be2db808
children 16399c067bf1
files Makefile.win
diffstat 1 files changed, 209 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.win	Sun Jan 12 13:43:51 2014 -0800
@@ -0,0 +1,209 @@
+BIN= $(GDK)/bin
+LIB= $(GDK)/lib
+
+LIBSRC= $(GDK)/src
+LIBINCLUDE= $(GDK)/include
+
+SRC= src
+RES= res
+INCLUDE= include
+
+SHELL=$(BIN)/sh
+RM= $(BIN)/rm
+AR= $(BIN)/ar
+CC= $(BIN)/gcc
+LD= $(BIN)/ld
+ECHO=echo
+OBJCPY= $(BIN)/objcopy
+ASMZ80= $(BIN)/sjasm
+MACCER= $(BIN)/mac68k
+SIZEBND= $(BIN)/sizebnd
+BINTOS= $(BIN)/bintos
+WAVTORAW= $(BIN)/wavtoraw
+PCMTORAW= $(BIN)/pcmtoraw
+GENRES= $(BIN)/genres
+TFMCOM= $(BIN)/tfmcom
+NM= $(BIN)/nm
+MKDIR= $(BIN)/mkdir
+NM2WCH= $(BIN)/nm2wch
+ADDR2LINE=$(BIN)/addr2line
+OUT2GSRC=$(BIN)/out2gsrc
+
+OPTION=
+
+SRC_C= $(wildcard *.c)
+SRC_C+= $(wildcard $(SRC)/*.c)
+SRC_S= $(wildcard *.s)
+SRC_S+= $(wildcard $(SRC)/*.s)
+SRC_SZ80= $(wildcard *.s80)
+SRC_SZ80+= $(wildcard $(SRC)/*.s80)
+
+RES_C= $(wildcard $(RES)/*.c)
+RES_S= $(wildcard $(RES)/*.s)
+RES_BMP= $(wildcard *.bmp)
+RES_BMP+= $(wildcard $(RES)/*.bmp)
+RES_WAV= $(wildcard *.wav)
+RES_WAV+= $(wildcard $(RES)/*.wav)
+RES_WAVPCM= $(wildcard *.wavpcm)
+RES_WAVPCM+= $(wildcard $(RES)/*.wavpcm)
+RES_DAT= $(wildcard *.dat)
+RES_DAT+= $(wildcard $(RES)/*.dat)
+RES_RAW= $(wildcard *.raw)
+RES_RAW+= $(wildcard $(RES)/*.raw)
+RES_PCM= $(wildcard *.pcm)
+RES_PCM+= $(wildcard $(RES)/*.pcm)
+RES_TFD= $(wildcard *.tfd)
+RES_TFD+= $(wildcard $(RES)/*.tfd)
+RES_TFC= $(wildcard *.tfc)
+RES_TFC+= $(wildcard $(RES)/*.tfc)
+RES_MVS= $(wildcard *.mvs)
+RES_MVS+= $(wildcard $(RES)/*.mvs)
+RES_EIF= $(wildcard *.eif)
+RES_EIF+= $(wildcard $(RES)/*.eif)
+RES_ESF= $(wildcard *.esf)
+RES_ESF+= $(wildcard $(RES)/*.esf)
+RES_VGM= $(wildcard *.vgm)
+RES_VGM+= $(wildcard $(RES)/*.vgm)
+RES_RC= $(wildcard *.rc)
+RES_RC+= $(wildcard $(RES)/*.rc)
+RES_ASM= $(wildcard *.asm)
+RES_ASM+= $(wildcard $(RES)/*.asm)
+
+OBJ= $(RES_BMP:.bmp=.o)
+OBJ+= $(RES_WAV:.wav=.o)
+OBJ+= $(RES_WAVPCM:.wavpcm=.o)
+OBJ+= $(RES_RC:.rc=.o)
+OBJ+= $(RES_ASM:.asm=.o)
+OBJ+= $(RES_DAT:.dat=.o)
+OBJ+= $(RES_RAW:.raw=.o)
+OBJ+= $(RES_PCM:.pcm=.o)
+OBJ+= $(RES_TFD:.tfd=.o)
+OBJ+= $(RES_TFC:.tfc=.o)
+OBJ+= $(RES_MVS:.mvs=.o)
+OBJ+= $(RES_VGM:.vgm=.o)
+OBJ+= $(RES_EIF:.eif=.o)
+OBJ+= $(RES_ESF:.esf=.o)
+OBJ+= $(RES_S:.s=.o)
+OBJ+= $(RES_C:.c=.o)
+OBJ+= $(SRC_SZ80:.s80=.o)
+OBJ+= $(SRC_S:.s=.o)
+OBJ+= $(SRC_C:.c=.o)
+
+OBJS = $(addprefix out/, $(OBJ))
+
+INCS= -I$(LIBINCLUDE) -I$(INCLUDE) -I$(SRC) -I$(RES)
+#FLAGS= $(OPTION) -g3 -m68000 -Wall -O1 -fomit-frame-pointer -fno-builtin-memset -fno-builtin-memcpy $(INCS)
+FLAGS= $(OPTION) -m68000 -Wall -O1 -fomit-frame-pointer -fno-builtin-memset -fno-builtin-memcpy $(INCS)
+#FLAGS= $(OPTION) -m68000 -Wall -O3 -fno-web -fno-gcse -fno-unit-at-a-time -fomit-frame-pointer -fno-builtin-memset -fno-builtin-memcpy $(INCS)
+FLAGSZ80= -i$(LIBSRC) -i$(LIBINCLUDE) -i$(SRC) -i$(INCLUDE) -i$(RES)
+
+
+release: out/rom.bin
+debug: out/rom.bin out/rom.wch
+debugall: out/rom.bin out/rom.wch out/rom.gsrc
+
+all: release
+default: release
+
+.PHONY: clean
+
+clean:
+	$(RM) -f $(OBJS) out.lst out/cmd_ out/sega.o out/rom_head.bin out/rom_head.o out/rom.nm out/rom.wch out/rom.out out/rom.bin
+
+cleanobj:
+	$(RM) -f $(OBJS) out/sega.o out/rom_head.bin out/rom_head.o out/rom.out
+
+out/rom.bin: out/rom.out
+	$(OBJCPY) -O binary out/rom.out out/rom.bin
+	$(SIZEBND) out/rom.bin -sizealign 131072
+
+out/rom.wch: out/rom.out
+	$(NM) -n -S -t x out/rom.out >out/rom.nm
+	$(NM2WCH) out/rom.nm out/rom.wch
+
+out/rom.gsrc: out/rom.bin
+	$(OUT2GSRC) i out/rom.bin out/rom.addr
+	$(ADDR2LINE) -e out/rom.out < out/rom.addr > out/rom.gsrc
+
+out/rom.out: out/sega.o out/cmd_ $(LIB)/libmd.a
+	$(CC) -n -T $(GDK)/md.ld -nostdlib out/sega.o @out/cmd_ $(LIB)/libmd.a $(LIB)/libgcc.a -o out/rom.out
+	$(RM) out/cmd_
+
+out/cmd_: $(OBJS)
+	$(ECHO) "$(OBJS)" > out/cmd_
+
+out/sega.o: $(LIBSRC)/boot/sega.s out/rom_head.bin
+	$(MKDIR) -p out
+	$(CC) $(FLAGS) -c $(LIBSRC)/boot/sega.s -o $@
+
+out/rom_head.bin: out/rom_head.o
+	$(LD) -T $(GDK)/md.ld -nostdlib --oformat binary -o $@ $<
+
+out/rom_head.o: $(LIBSRC)/boot/rom_head.c
+	$(MKDIR) -p out
+	$(CC) $(FLAGS) -c $< -o $@
+
+
+out/%.o: %.c
+	$(MKDIR) -p out
+	$(MKDIR) -p out/src
+	$(MKDIR) -p out/res
+	$(CC) $(FLAGS) -c $< -o $@
+
+out/%.o: %.s
+	$(MKDIR) -p out
+	$(MKDIR) -p out/src
+	$(MKDIR) -p out/res
+	$(CC) $(FLAGS) -c $< -o $@
+
+
+%.asm: %.rc
+	$(GENRES) $< $@
+
+%.s: %.asm
+	$(MACCER) -o $@ $<
+
+%.s: %.bmp
+	$(BINTOS) -bmp $<
+
+%.raw: %.wav
+	$(WAVTORAW) $< $@ 16000
+
+%.pcm: %.wavpcm
+	$(WAVTORAW) $< $@ 22050
+
+%.rawpcm: %.pcm
+	$(PCMTORAW) $< $@
+
+%.tfc: %.tfd
+	$(TFMCOM) $<
+
+%.o80: %.s80
+	$(ASMZ80) $(FLAGSZ80) $< $@ out.lst
+
+%.s: %.tfc
+	$(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: %.dat
+	$(BINTOS) -align 256 -sizealign 256 $<
+
+%.s: %.o80
+	$(BINTOS) $<