# HG changeset patch # User Mike Pavone # Date 1389569000 28800 # Node ID 2fde9ab7308fc936a7f723c01f84e05d58ff14f4 # Parent 3ed112d64b1bba5b4f9cabc4d29f4731056053f1# Parent 16399c067bf13162527206f7582999980001256f Merge diff -r 3ed112d64b1b -r 2fde9ab7308f Makefile.win --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile.win Sun Jan 12 15:23:20 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) $<