comparison Makefile @ 803:236a184bf6f0

Merge
author Michael Pavone <pavone@retrodev.com>
date Sun, 26 Jul 2015 16:51:03 -0700
parents 6811f601008f 0b692b5d154b
children 3eced113081c
comparison
equal deleted inserted replaced
802:6811f601008f 803:236a184bf6f0
1 1 ifndef OS
2 ifdef WINDOWS 2 OS:=$(shell uname -s)
3 endif
4
5 ifeq ($(OS),Windows)
6 ifndef SDL2_PREFIX
7 SDL2_PREFIX:="C:/MinGW/usr"
8 endif
9 ifndef GLEW32S_LIB
10 GLEW32S_LIB=glew32s.lib
11 endif
3 12
4 MEM:=mem_win.o 13 MEM:=mem_win.o
14 TERMINAL:=terminal_win.o
5 BLASTEM:=blastem.exe 15 BLASTEM:=blastem.exe
6 RUNTIME32:=runtime_win.S
7
8 CC:=wine gcc.exe 16 CC:=wine gcc.exe
9 CFLAGS:=-O2 -std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -I"C:/MinGW/usr/include/SDL" -DGLEW_STATIC 17 CFLAGS:=-O2 -std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -I"$(SDL2_PREFIX)/include/SDL2" -DGLEW_STATIC
10 LDFLAGS:= -L"C:/MinGW/usr/lib" -lm -lmingw32 -lSDLmain -lSDL -lws2_32 18 LDFLAGS:= $(GLEW32S_LIB) -L"$(SDL2_PREFIX)/lib" -lm -lmingw32 -lSDL2main -lSDL2 -lws2_32 -lopengl32 -lglu32 -mwindows
11 ifndef NOGL
12 LDFLAGS+= -lopengl32 -lglu32
13 endif
14 LDFLAGS+= -mwindows
15 CPU:=i686 19 CPU:=i686
16 20
17 else 21 else
18 22
19 MEM:=mem.o 23 MEM:=mem.o
24 TERMINAL:=terminal.o
20 BLASTEM:=blastem 25 BLASTEM:=blastem
21 RUNTIME32:=runtime_32.S 26
22 27 ifeq ($(OS),Darwin)
23 ifdef NOGL 28 LIBS=sdl2 glew
24 LIBS=sdl 29 else
25 else 30 LIBS=sdl2 glew gl
26 LIBS=sdl glew gl 31 endif #Darwin
27 endif 32
33 HAS_PROC:=$(shell if [ -d /proc ]; then /bin/echo -e -DHAS_PROC; fi)
34 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value -Wno-logical-op-parentheses $(HAS_PROC)
35 FIXUP:=
36 ifdef PORTABLE
37 CFLAGS+= -DGLEW_STATIC -Iglew/include
38 LDFLAGS:=-lm glew/lib/libGLEW.a
39
40 ifeq ($(OS),Darwin)
41 CFLAGS+= -IFrameworks/SDL2.framework/Headers
42 LDFLAGS+= -FFrameworks -framework SDL2 -framework OpenGL
43 FIXUP:=install_name_tool -change @rpath/SDL2.framework/Versions/A/SDL2 @executable_path/Frameworks/SDL2.framework/Versions/A/SDL2 ./blastem
44 else
45 CFLAGS+= -Isdl/include
46 LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -lSDL2 $(shell pkg-config --libs gl)
47 endif #Darwin
48
49 else
50 CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS)
51 LDFLAGS:=-lm $(shell pkg-config --libs $(LIBS))
52
53 ifeq ($(OS),Darwin)
54 LDFLAGS+= -framework OpenGL
55 endif
56
57 endif #PORTABLE
58
28 ifdef DEBUG 59 ifdef DEBUG
29 CFLAGS:=-ggdb -std=gnu99 $(shell pkg-config --cflags-only-I $(LIBS)) -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration 60 CFLAGS:=-ggdb $(CFLAGS)
30 LDFLAGS:=-ggdb -lm $(shell pkg-config --libs $(LIBS)) 61 LDFLAGS:=-ggdb $(LDFLAGS)
31 else 62 else
32 CFLAGS:=-O2 -flto -std=gnu99 $(shell pkg-config --cflags-only-I $(LIBS)) -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration 63 CFLAGS:=-O2 -flto $(CFLAGS)
33 LDFLAGS:=-O2 -flto -lm $(shell pkg-config --libs $(LIBS)) 64 LDFLAGS:=-O2 -flto $(LDFLAGS)
65 endif #DEBUG
66 endif #Windows
67
68 ifdef Z80_LOG_ADDRESS
69 CFLAGS+= -DZ80_LOG_ADDRESS
34 endif 70 endif
35 71
36 ifdef PROFILE 72 ifdef PROFILE
37 CFLAGS+= -pg 73 CFLAGS+= -pg
38 LDFLAGS+= -pg 74 LDFLAGS+= -pg
39 endif 75 endif
40 ifdef NOGL 76 ifdef NOGL
41 CFLAGS+= -DDISABLE_OPENGL 77 CFLAGS+= -DDISABLE_OPENGL
42 endif 78 endif
43 79
80 ifdef M68030
81 CFLAGS+= -DM68030
82 endif
83 ifdef M68020
84 CFLAGS+= -DM68020
85 endif
86 ifdef M68010
87 CFLAGS+= -DM68010
88 endif
89
44 ifndef CPU 90 ifndef CPU
45 CPU:=$(shell uname -m) 91 CPU:=$(shell uname -m)
46 endif 92 endif
47 endif
48
49 93
50 TRANSOBJS=gen.o backend.o $(MEM) 94 TRANSOBJS=gen.o backend.o $(MEM)
51 M68KOBJS=68kinst.o m68k_core.o 95 M68KOBJS=68kinst.o m68k_core.o
52 ifeq ($(CPU),x86_64) 96 ifeq ($(CPU),x86_64)
53 M68KOBJS+= runtime.o m68k_core_x86.o 97 M68KOBJS+= m68k_core_x86.o
54 TRANSOBJS+= gen_x86.o backend_x86.o 98 TRANSOBJS+= gen_x86.o backend_x86.o
55 else 99 else
56 ifeq ($(CPU),i686) 100 ifeq ($(CPU),i686)
57 M68KOBJS+= $(RUNTIME32) m68k_core_x86.o 101 M68KOBJS+= m68k_core_x86.o
58 TRANSOBJS+= gen_x86.o backend_x86.o 102 TRANSOBJS+= gen_x86.o backend_x86.o
59 NOZ80:=1 103 endif
60 endif 104 endif
61 endif 105
62 106 Z80OBJS=z80inst.o z80_to_x86.o
63 Z80OBJS=z80inst.o z80_to_x86.o zruntime.o
64 AUDIOOBJS=ym2612.o psg.o wave.o 107 AUDIOOBJS=ym2612.o psg.o wave.o
65 CONFIGOBJS=config.o tern.o util.o 108 CONFIGOBJS=config.o tern.o util.o
66 109
67 MAINOBJS=blastem.o debug.o gdb_remote.o vdp.o render_sdl.o io.o $(CONFIGOBJS) gst.o $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) 110 MAINOBJS=blastem.o debug.o gdb_remote.o vdp.o render_sdl.o io.o romdb.o $(TERMINAL) $(CONFIGOBJS) gst.o $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS)
68 111
69 ifeq ($(CPU),x86_64) 112 ifeq ($(CPU),x86_64)
70 CFLAGS+=-DX86_64 113 CFLAGS+=-DX86_64 -m64
114 LDFLAGS+=-m64
71 else 115 else
72 ifeq ($(CPU),i686) 116 ifeq ($(CPU),i686)
73 CFLAGS+=-DX86_32 117 CFLAGS+=-DX86_32 -m32
118 LDFLAGS+=-m32
74 endif 119 endif
75 endif 120 endif
76 121
77 ifdef NOZ80 122 ifdef NOZ80
78 CFLAGS+=-DNO_Z80 123 CFLAGS+=-DNO_Z80
79 else 124 else
80 MAINOBJS+= $(Z80OBJS) 125 MAINOBJS+= $(Z80OBJS)
81 endif 126 endif
82 127
83 ifdef WINDOWS 128 ifeq ($(OS),Windows)
84 ifndef NOGL 129 ALL=$(BLASTEM)
85 MAINOBJS+= glew.o 130 else
86 endif 131 ALL= dis zdis stateview vgmplay blastem termhelper
87 endif 132 endif
88 133
89 all : dis zdis stateview vgmplay blastem 134 all : $(ALL)
90 135
91 $(BLASTEM) : $(MAINOBJS) 136 $(BLASTEM) : $(MAINOBJS)
92 $(CC) -o $(BLASTEM) $(MAINOBJS) $(LDFLAGS) 137 $(CC) -o $(BLASTEM) $(MAINOBJS) $(LDFLAGS)
93 138 $(FIXUP)
94 dis : dis.o 68kinst.o 139
95 $(CC) -o dis dis.o 68kinst.o 140 dis : dis.o 68kinst.o tern.o vos_program_module.o
141 $(CC) -o dis dis.o 68kinst.o tern.o vos_program_module.o
96 142
97 zdis : zdis.o z80inst.o 143 zdis : zdis.o z80inst.o
98 $(CC) -o zdis zdis.o z80inst.o 144 $(CC) -o zdis zdis.o z80inst.o
99 145
100 libemu68k.a : $(M68KOBJS) $(TRANSOBJS) 146 libemu68k.a : $(M68KOBJS) $(TRANSOBJS)
116 $(CC) -o stateview stateview.o vdp.o render_sdl.o $(CONFIGOBJS) gst.o $(LDFLAGS) 162 $(CC) -o stateview stateview.o vdp.o render_sdl.o $(CONFIGOBJS) gst.o $(LDFLAGS)
117 163
118 vgmplay : vgmplay.o render_sdl.o $(CONFIGOBJS) $(AUDIOOBJS) 164 vgmplay : vgmplay.o render_sdl.o $(CONFIGOBJS) $(AUDIOOBJS)
119 $(CC) -o vgmplay vgmplay.o render_sdl.o $(CONFIGOBJS) $(AUDIOOBJS) $(LDFLAGS) 165 $(CC) -o vgmplay vgmplay.o render_sdl.o $(CONFIGOBJS) $(AUDIOOBJS) $(LDFLAGS)
120 166
167 test : test.o vdp.o
168 $(CC) -o test test.o vdp.o
169
121 testgst : testgst.o gst.o 170 testgst : testgst.o gst.o
122 $(CC) -o testgst testgst.o gst.o 171 $(CC) -o testgst testgst.o gst.o
123 172
124 test_x86 : test_x86.o gen_x86.o gen.o 173 test_x86 : test_x86.o gen_x86.o gen.o
125 $(CC) -o test_x86 test_x86.o gen_x86.o gen.o 174 $(CC) -o test_x86 test_x86.o gen_x86.o gen.o
131 $(CC) -o gen_fib gen_fib.o gen_x86.o mem.o 180 $(CC) -o gen_fib gen_fib.o gen_x86.o mem.o
132 181
133 offsets : offsets.c z80_to_x86.h m68k_core.h 182 offsets : offsets.c z80_to_x86.h m68k_core.h
134 $(CC) -o offsets offsets.c 183 $(CC) -o offsets offsets.c
135 184
185 vos_prog_info : vos_prog_info.o vos_program_module.o
186 $(CC) -o vos_prog_info vos_prog_info.o vos_program_module.o
187
136 %.o : %.S 188 %.o : %.S
137 $(CC) -c -o $@ $< 189 $(CC) -c -o $@ $<
138 190
139 %.o : %.c 191 %.o : %.c
140 $(CC) $(CFLAGS) -c -o $@ $< 192 $(CC) $(CFLAGS) -c -o $@ $<
141 193
142 %.bin : %.s68 194 %.bin : %.s68
143 vasmm68k_mot -Fbin -m68000 -no-opt -spaces -o $@ $< 195 vasmm68k_mot -Fbin -m68000 -no-opt -spaces -o $@ -L $@.list $<
144 196
145 %.bin : %.sz8 197 %.bin : %.sz8
146 vasmz80_mot -Fbin -spaces -o $@ $< 198 vasmz80_mot -Fbin -spaces -o $@ $<
147 199
148 clean : 200 clean :
149 rm -rf dis trans stateview test_x86 gen_fib *.o 201 rm -rf $(ALL) trans ztestrun ztestgen *.o