Mercurial > repos > blastem
diff Makefile @ 803:236a184bf6f0
Merge
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 26 Jul 2015 16:51:03 -0700 |
parents | 6811f601008f 0b692b5d154b |
children | 3eced113081c |
line wrap: on
line diff
--- a/Makefile Sun Jul 26 16:48:25 2015 -0700 +++ b/Makefile Sun Jul 26 16:51:03 2015 -0700 @@ -1,36 +1,72 @@ +ifndef OS +OS:=$(shell uname -s) +endif -ifdef WINDOWS +ifeq ($(OS),Windows) +ifndef SDL2_PREFIX +SDL2_PREFIX:="C:/MinGW/usr" +endif +ifndef GLEW32S_LIB +GLEW32S_LIB=glew32s.lib +endif MEM:=mem_win.o +TERMINAL:=terminal_win.o BLASTEM:=blastem.exe -RUNTIME32:=runtime_win.S - CC:=wine gcc.exe -CFLAGS:=-O2 -std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -I"C:/MinGW/usr/include/SDL" -DGLEW_STATIC -LDFLAGS:= -L"C:/MinGW/usr/lib" -lm -lmingw32 -lSDLmain -lSDL -lws2_32 -ifndef NOGL -LDFLAGS+= -lopengl32 -lglu32 -endif -LDFLAGS+= -mwindows +CFLAGS:=-O2 -std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -I"$(SDL2_PREFIX)/include/SDL2" -DGLEW_STATIC +LDFLAGS:= $(GLEW32S_LIB) -L"$(SDL2_PREFIX)/lib" -lm -lmingw32 -lSDL2main -lSDL2 -lws2_32 -lopengl32 -lglu32 -mwindows CPU:=i686 else MEM:=mem.o +TERMINAL:=terminal.o BLASTEM:=blastem -RUNTIME32:=runtime_32.S + +ifeq ($(OS),Darwin) +LIBS=sdl2 glew +else +LIBS=sdl2 glew gl +endif #Darwin -ifdef NOGL -LIBS=sdl +HAS_PROC:=$(shell if [ -d /proc ]; then /bin/echo -e -DHAS_PROC; fi) +CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value -Wno-logical-op-parentheses $(HAS_PROC) +FIXUP:= +ifdef PORTABLE +CFLAGS+= -DGLEW_STATIC -Iglew/include +LDFLAGS:=-lm glew/lib/libGLEW.a + +ifeq ($(OS),Darwin) +CFLAGS+= -IFrameworks/SDL2.framework/Headers +LDFLAGS+= -FFrameworks -framework SDL2 -framework OpenGL +FIXUP:=install_name_tool -change @rpath/SDL2.framework/Versions/A/SDL2 @executable_path/Frameworks/SDL2.framework/Versions/A/SDL2 ./blastem else -LIBS=sdl glew gl +CFLAGS+= -Isdl/include +LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -lSDL2 $(shell pkg-config --libs gl) +endif #Darwin + +else +CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS) +LDFLAGS:=-lm $(shell pkg-config --libs $(LIBS)) + +ifeq ($(OS),Darwin) +LDFLAGS+= -framework OpenGL endif + +endif #PORTABLE + ifdef DEBUG -CFLAGS:=-ggdb -std=gnu99 $(shell pkg-config --cflags-only-I $(LIBS)) -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -LDFLAGS:=-ggdb -lm $(shell pkg-config --libs $(LIBS)) +CFLAGS:=-ggdb $(CFLAGS) +LDFLAGS:=-ggdb $(LDFLAGS) else -CFLAGS:=-O2 -flto -std=gnu99 $(shell pkg-config --cflags-only-I $(LIBS)) -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -LDFLAGS:=-O2 -flto -lm $(shell pkg-config --libs $(LIBS)) +CFLAGS:=-O2 -flto $(CFLAGS) +LDFLAGS:=-O2 -flto $(LDFLAGS) +endif #DEBUG +endif #Windows + +ifdef Z80_LOG_ADDRESS +CFLAGS+= -DZ80_LOG_ADDRESS endif ifdef PROFILE @@ -41,36 +77,45 @@ CFLAGS+= -DDISABLE_OPENGL endif +ifdef M68030 +CFLAGS+= -DM68030 +endif +ifdef M68020 +CFLAGS+= -DM68020 +endif +ifdef M68010 +CFLAGS+= -DM68010 +endif + ifndef CPU CPU:=$(shell uname -m) endif -endif - TRANSOBJS=gen.o backend.o $(MEM) M68KOBJS=68kinst.o m68k_core.o ifeq ($(CPU),x86_64) -M68KOBJS+= runtime.o m68k_core_x86.o +M68KOBJS+= m68k_core_x86.o TRANSOBJS+= gen_x86.o backend_x86.o else ifeq ($(CPU),i686) -M68KOBJS+= $(RUNTIME32) m68k_core_x86.o +M68KOBJS+= m68k_core_x86.o TRANSOBJS+= gen_x86.o backend_x86.o -NOZ80:=1 endif endif -Z80OBJS=z80inst.o z80_to_x86.o zruntime.o +Z80OBJS=z80inst.o z80_to_x86.o AUDIOOBJS=ym2612.o psg.o wave.o CONFIGOBJS=config.o tern.o util.o -MAINOBJS=blastem.o debug.o gdb_remote.o vdp.o render_sdl.o io.o $(CONFIGOBJS) gst.o $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) +MAINOBJS=blastem.o debug.o gdb_remote.o vdp.o render_sdl.o io.o romdb.o $(TERMINAL) $(CONFIGOBJS) gst.o $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) ifeq ($(CPU),x86_64) -CFLAGS+=-DX86_64 +CFLAGS+=-DX86_64 -m64 +LDFLAGS+=-m64 else ifeq ($(CPU),i686) -CFLAGS+=-DX86_32 +CFLAGS+=-DX86_32 -m32 +LDFLAGS+=-m32 endif endif @@ -80,19 +125,20 @@ MAINOBJS+= $(Z80OBJS) endif -ifdef WINDOWS -ifndef NOGL -MAINOBJS+= glew.o -endif +ifeq ($(OS),Windows) +ALL=$(BLASTEM) +else +ALL= dis zdis stateview vgmplay blastem termhelper endif -all : dis zdis stateview vgmplay blastem +all : $(ALL) $(BLASTEM) : $(MAINOBJS) $(CC) -o $(BLASTEM) $(MAINOBJS) $(LDFLAGS) + $(FIXUP) -dis : dis.o 68kinst.o - $(CC) -o dis dis.o 68kinst.o +dis : dis.o 68kinst.o tern.o vos_program_module.o + $(CC) -o dis dis.o 68kinst.o tern.o vos_program_module.o zdis : zdis.o z80inst.o $(CC) -o zdis zdis.o z80inst.o @@ -118,6 +164,9 @@ vgmplay : vgmplay.o render_sdl.o $(CONFIGOBJS) $(AUDIOOBJS) $(CC) -o vgmplay vgmplay.o render_sdl.o $(CONFIGOBJS) $(AUDIOOBJS) $(LDFLAGS) +test : test.o vdp.o + $(CC) -o test test.o vdp.o + testgst : testgst.o gst.o $(CC) -o testgst testgst.o gst.o @@ -133,6 +182,9 @@ offsets : offsets.c z80_to_x86.h m68k_core.h $(CC) -o offsets offsets.c +vos_prog_info : vos_prog_info.o vos_program_module.o + $(CC) -o vos_prog_info vos_prog_info.o vos_program_module.o + %.o : %.S $(CC) -c -o $@ $< @@ -140,10 +192,10 @@ $(CC) $(CFLAGS) -c -o $@ $< %.bin : %.s68 - vasmm68k_mot -Fbin -m68000 -no-opt -spaces -o $@ $< + vasmm68k_mot -Fbin -m68000 -no-opt -spaces -o $@ -L $@.list $< %.bin : %.sz8 vasmz80_mot -Fbin -spaces -o $@ $< clean : - rm -rf dis trans stateview test_x86 gen_fib *.o + rm -rf $(ALL) trans ztestrun ztestgen *.o