annotate Makefile @ 2688:b42f00a3a937 default tip

Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
author Michael Pavone <pavone@retrodev.com>
date Mon, 31 Mar 2025 21:06:18 -0700
parents da2e06c42d16
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1818
243f3a7247f9 Include ROM DB in library binary for libretro target
Mike Pavone <pavone@retrodev.com>
parents: 1795
diff changeset
1 #disable built-in rules
243f3a7247f9 Include ROM DB in library binary for libretro target
Mike Pavone <pavone@retrodev.com>
parents: 1795
diff changeset
2 .SUFFIXES :
2688
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
3 .PHONY: all clean
1818
243f3a7247f9 Include ROM DB in library binary for libretro target
Mike Pavone <pavone@retrodev.com>
parents: 1795
diff changeset
4
559
6b248602ab84 blastem builds and almost works on OS X now
Mike Pavone <pavone@retrodev.com>
parents: 557
diff changeset
5 ifndef OS
6b248602ab84 blastem builds and almost works on OS X now
Mike Pavone <pavone@retrodev.com>
parents: 557
diff changeset
6 OS:=$(shell uname -s)
6b248602ab84 blastem builds and almost works on OS X now
Mike Pavone <pavone@retrodev.com>
parents: 557
diff changeset
7 endif
2573
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
8 ifndef SDL
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
9 SDL:=sdl2
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
10 endif
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
11 SDL_UPPER:=$(shell echo $(SDL) | tr '[a-z]' '[A-Z]')
805
3eced113081c Pre-release cleanup
Michael Pavone <pavone@retrodev.com>
parents: 803
diff changeset
12 FIXUP:=true
2600
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
13 Z80_DISPATCH:=goto
559
6b248602ab84 blastem builds and almost works on OS X now
Mike Pavone <pavone@retrodev.com>
parents: 557
diff changeset
14
1795
a02b4ed940b6 Fix Windows build
Michael Pavone <pavone@retrodev.com>
parents: 1779
diff changeset
15 BUNDLED_LIBZ:=zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/deflate.o zlib/gzclose.o zlib/gzlib.o zlib/gzread.o\
a02b4ed940b6 Fix Windows build
Michael Pavone <pavone@retrodev.com>
parents: 1779
diff changeset
16 zlib/gzwrite.o zlib/infback.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o zlib/uncompr.o zlib/zutil.o
a02b4ed940b6 Fix Windows build
Michael Pavone <pavone@retrodev.com>
parents: 1779
diff changeset
17
744
fc68992cf18d Merge windows branch with latest changes
Michael Pavone <pavone@retrodev.com>
parents: 743 735
diff changeset
18 ifeq ($(OS),Windows)
1828
37afb9cf58be Get 64-bit builds working for Windows target
Michael Pavone <pavone@retrodev.com>
parents: 1826
diff changeset
19
1244
0a34e31c4fd0 Update Windows build to use mingw-w64 cross compiler rather than Wine
Michael Pavone <pavone@retrodev.com>
parents: 1228
diff changeset
20 GLEW_PREFIX:=glew
741
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 573
diff changeset
21 MEM:=mem_win.o
794
792be135d3af Spawn a terminal for the debugger when needed if we are not already attached to one
Michael Pavone <pavone@retrodev.com>
parents: 783
diff changeset
22 TERMINAL:=terminal_win.o
1524
b96f9fae757f Fix Windows build, added Windows default_font_path implementation
Michael Pavone <pavone@retrodev.com>
parents: 1522
diff changeset
23 FONT:=nuklear_ui/font_win.o
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
24 CHOOSER:=nuklear_ui/filechooser_win.o
1546
1a09422b87a5 Get Windows build working again. MegaWiFi code probably needs more work before it will actually work on Windows, but at least it doesn't break the build now
Michael Pavone <pavone@retrodev.com>
parents: 1543
diff changeset
25 NET:=net_win.o
805
3eced113081c Pre-release cleanup
Michael Pavone <pavone@retrodev.com>
parents: 803
diff changeset
26 EXE:=.exe
1822
8500bd987dda Make libretro target successfully build for Windows and possibly Mac
Mike Pavone <pavone@retrodev.com>
parents: 1818
diff changeset
27 SO:=dll
8500bd987dda Make libretro target successfully build for Windows and possibly Mac
Mike Pavone <pavone@retrodev.com>
parents: 1818
diff changeset
28 CPU:=i686
8500bd987dda Make libretro target successfully build for Windows and possibly Mac
Mike Pavone <pavone@retrodev.com>
parents: 1818
diff changeset
29 ifeq ($(CPU),i686)
1244
0a34e31c4fd0 Update Windows build to use mingw-w64 cross compiler rather than Wine
Michael Pavone <pavone@retrodev.com>
parents: 1228
diff changeset
30 CC:=i686-w64-mingw32-gcc-win32
1828
37afb9cf58be Get 64-bit builds working for Windows target
Michael Pavone <pavone@retrodev.com>
parents: 1826
diff changeset
31 WINDRES:=i686-w64-mingw32-windres
37afb9cf58be Get 64-bit builds working for Windows target
Michael Pavone <pavone@retrodev.com>
parents: 1826
diff changeset
32 GLUDIR:=Win32
37afb9cf58be Get 64-bit builds working for Windows target
Michael Pavone <pavone@retrodev.com>
parents: 1826
diff changeset
33 SDL2_PREFIX:="sdl/i686-w64-mingw32"
1822
8500bd987dda Make libretro target successfully build for Windows and possibly Mac
Mike Pavone <pavone@retrodev.com>
parents: 1818
diff changeset
34 else
8500bd987dda Make libretro target successfully build for Windows and possibly Mac
Mike Pavone <pavone@retrodev.com>
parents: 1818
diff changeset
35 CC:=x86_64-w64-mingw32-gcc-win32
1828
37afb9cf58be Get 64-bit builds working for Windows target
Michael Pavone <pavone@retrodev.com>
parents: 1826
diff changeset
36 WINDRES:=x86_64-w64-mingw32-windres
37afb9cf58be Get 64-bit builds working for Windows target
Michael Pavone <pavone@retrodev.com>
parents: 1826
diff changeset
37 SDL2_PREFIX:="sdl/x86_64-w64-mingw32"
37afb9cf58be Get 64-bit builds working for Windows target
Michael Pavone <pavone@retrodev.com>
parents: 1826
diff changeset
38 GLUDIR:=x64
1822
8500bd987dda Make libretro target successfully build for Windows and possibly Mac
Mike Pavone <pavone@retrodev.com>
parents: 1818
diff changeset
39 endif
1828
37afb9cf58be Get 64-bit builds working for Windows target
Michael Pavone <pavone@retrodev.com>
parents: 1826
diff changeset
40 GLEW32S_LIB:=$(GLEW_PREFIX)/lib/Release/$(GLUDIR)/glew32s.lib
1952
42c12d141f6e Remove usage of GCC pointer arithmetic on void * extension
Michael Pavone <pavone@retrodev.com>
parents: 1946
diff changeset
41 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wpointer-arith -Werror=pointer-arith
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
42 LDFLAGS:=-lm -lmingw32 -lws2_32 -lcomdlg32 -mwindows
1822
8500bd987dda Make libretro target successfully build for Windows and possibly Mac
Mike Pavone <pavone@retrodev.com>
parents: 1818
diff changeset
43 ifneq ($(MAKECMDGOALS),libblastem.dll)
2573
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
44 CFLAGS+= -I"$(SDL2_PREFIX)/include/$(SDL_UPPER)" -I"$(GLEW_PREFIX)/include" -DGLEW_STATIC
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
45 LDFLAGS+= $(GLEW32S_LIB) -L"$(SDL2_PREFIX)/lib" -l$(SDL_UPPER)main -l$(SDL_UPPER) -lopengl32 -lglu32
1822
8500bd987dda Make libretro target successfully build for Windows and possibly Mac
Mike Pavone <pavone@retrodev.com>
parents: 1818
diff changeset
46 endif
1795
a02b4ed940b6 Fix Windows build
Michael Pavone <pavone@retrodev.com>
parents: 1779
diff changeset
47 LIBZOBJS=$(BUNDLED_LIBZ)
741
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 573
diff changeset
48
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 573
diff changeset
49 else
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 573
diff changeset
50
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 573
diff changeset
51 MEM:=mem.o
794
792be135d3af Spawn a terminal for the debugger when needed if we are not already attached to one
Michael Pavone <pavone@retrodev.com>
parents: 783
diff changeset
52 TERMINAL:=terminal.o
1546
1a09422b87a5 Get Windows build working again. MegaWiFi code probably needs more work before it will actually work on Windows, but at least it doesn't break the build now
Michael Pavone <pavone@retrodev.com>
parents: 1543
diff changeset
53 NET:=net.o
805
3eced113081c Pre-release cleanup
Michael Pavone <pavone@retrodev.com>
parents: 803
diff changeset
54 EXE:=
741
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 573
diff changeset
55
1658
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
56 HAS_PROC:=$(shell if [ -d /proc ]; then /bin/echo -e -DHAS_PROC; fi)
1952
42c12d141f6e Remove usage of GCC pointer arithmetic on void * extension
Michael Pavone <pavone@retrodev.com>
parents: 1946
diff changeset
57 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value -Wpointer-arith -Werror=pointer-arith $(HAS_PROC) -DHAVE_UNISTD_H
1658
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
58
719
019d27995e32 Upgrade to SDL 2.0 and drop support for the non-OpenGL render path
Michael Pavone <pavone@retrodev.com>
parents: 682
diff changeset
59 ifeq ($(OS),Darwin)
2573
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
60 LIBS=$(SDL) glew
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents: 1534
diff changeset
61 FONT:=nuklear_ui/font_mac.o
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
62 CHOOSER:=nuklear_ui/filechooser_null.o
1822
8500bd987dda Make libretro target successfully build for Windows and possibly Mac
Mike Pavone <pavone@retrodev.com>
parents: 1818
diff changeset
63 SO:=dylib
495
39cad98d2789 Allow OpenGL support to be disabled at compile time. Move generic utility functions out of config.c
Mike Pavone <pavone@retrodev.com>
parents: 488
diff changeset
64 else
1822
8500bd987dda Make libretro target successfully build for Windows and possibly Mac
Mike Pavone <pavone@retrodev.com>
parents: 1818
diff changeset
65 SO:=so
1779
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
66
2600
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
67 ifeq ($(CPU),wasm)
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
68 USE_GLES:=1
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
69 endif
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
70
2685
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 2658
diff changeset
71 ifdef USE_RGB565
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 2658
diff changeset
72 CFLAGS+= -DUSE_RGB565
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 2658
diff changeset
73 endif
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 2658
diff changeset
74
1779
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
75 ifdef USE_FBDEV
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
76 LIBS=alsa
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
77 ifndef NOGL
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
78 LIBS+=glesv2 egl
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
79 endif
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
80 CFLAGS+= -DUSE_GLES -DUSE_FBDEV -pthread
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
81 else
1658
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
82 ifdef USE_GLES
2573
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
83 LIBS=$(SDL) glesv2
1658
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
84 CFLAGS+= -DUSE_GLES
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
85 else
2573
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
86 LIBS=$(SDL) glew gl
1658
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
87 endif #USE_GLES
1779
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
88 endif #USE_FBDEV
2600
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
89 ifeq ($(CPU),wasm)
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
90 CHOOSER:=nuklear_ui/filechooser_null.o
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
91 FONT:=nuklear_ui/font_web.o
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
92 Z80_DISPATCH:=call
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
93 else #CPU=wasm
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents: 1534
diff changeset
94 FONT:=nuklear_ui/font.o
2545
c076a96f1668 Get CD titles sort of working in libretro target
Michael Pavone <pavone@retrodev.com>
parents: 2521
diff changeset
95 ifneq ($(MAKECMDGOALS),libblastem.$(SO))
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
96 CHOOSER:=nuklear_ui/filechooser_gtk.o
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
97 GTKFLAGS:=$(shell pkg-config --cflags gtk+-3.0 2>/dev/null)
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
98 ifeq ($(GTKFLAGS),)
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
99 GTKFLAGS:=$(shell pkg-config --cflags gtk+-2.0 2>/dev/null)
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
100 ifeq ($(GTKFLAGS),)
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
101 CHOOSER:=nuklear_ui/filechooser_null.o
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
102 endif
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
103 endif
2545
c076a96f1668 Get CD titles sort of working in libretro target
Michael Pavone <pavone@retrodev.com>
parents: 2521
diff changeset
104 endif #neq ($(MAKECMDGOALS),libblastem.$(SO))
2600
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
105 endif #CPU=wasm
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
106 ifeq ($(GTKFLAGS),)
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
107 else
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
108 EXTRA_NUKLEAR_LDFLAGS:=-ldl
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
109 endif
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
110 CFLAGS+= $(GTKFLAGS)
744
fc68992cf18d Merge windows branch with latest changes
Michael Pavone <pavone@retrodev.com>
parents: 743 735
diff changeset
111 endif #Darwin
559
6b248602ab84 blastem builds and almost works on OS X now
Mike Pavone <pavone@retrodev.com>
parents: 557
diff changeset
112
1693
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
113 ifdef HOST_ZLIB
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
114 LIBS+= zlib
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
115 LIBZOBJS=
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
116 else
1795
a02b4ed940b6 Fix Windows build
Michael Pavone <pavone@retrodev.com>
parents: 1779
diff changeset
117 LIBZOBJS=$(BUNDLED_LIBZ)
1693
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
118 endif
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
119
1073
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
120 ifeq ($(OS),Darwin)
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
121 #This should really be based on whether or not the C compiler is clang rather than based on the OS
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
122 CFLAGS+= -Wno-logical-op-parentheses
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
123 endif
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
124
2600
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
125 ifeq ($(CPU),wasm)
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
126 CFLAGS+= --use-port=sdl2
2619
ba2aba23b48e Up heap memory for web build so large ROMs don't OOM
Michael Pavone <pavone@retrodev.com>
parents: 2616
diff changeset
127 LDFLAGS+= --use-port=sdl2 --embed-file rom.db --embed-file default.cfg --embed-file systems.cfg \
ba2aba23b48e Up heap memory for web build so large ROMs don't OOM
Michael Pavone <pavone@retrodev.com>
parents: 2616
diff changeset
128 --embed-file shaders/ --embed-file images/ --embed-file DroidSans.ttf -sEXPORTED_FUNCTIONS=_main,_handle_chooser_result \
2658
99297d5f4c5d Persist save states and config in emscripten build via IDBFS module
Michael Pavone <pavone@retrodev.com>
parents: 2619
diff changeset
129 -sEXPORTED_RUNTIME_METHODS=ccall,cwrap,callMain -sINITIAL_HEAP=50331648 --pre-js emscripten_pre.js -lidbfs.js
2600
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
130 EXE:=.html
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
131 else #CPU=wasm
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
132
761
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
133 ifdef PORTABLE
1658
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
134 ifdef USE_GLES
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
135 ifndef GLES_LIB
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
136 GLES_LIB:=$(shell pkg-config --libs glesv2)
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
137 endif
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
138 LDFLAGS:=-lm $(GLES_LIB)
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
139 else #USE_GLES
761
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
140 CFLAGS+= -DGLEW_STATIC -Iglew/include
2329
06d5e9b08bdb Add NTSC composite shader by Sik
Michael Pavone <pavone@retrodev.com>
parents: 2302
diff changeset
141 LDFLAGS:=-lm glew/lib/libGLEW.a -lEGL
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
142 endif #USE_GLES
761
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
143
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
144 ifeq ($(OS),Darwin)
2573
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
145 SDL_INCLUDE_PATH:=Frameworks/$(SDL_UPPER).framework/Headers
2007
f612c1bd2c8b Specify min OS X version when making a "portable" build for that platform
Michael Pavone <pavone@retrodev.com>
parents: 1999
diff changeset
146 CFLAGS+= -mmacosx-version-min=10.10
2573
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
147 LDFLAGS+= -FFrameworks -framework $(SDL_UPPER) -framework OpenGL -framework AppKit -mmacosx-version-min=10.10
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
148 FIXUP:=install_name_tool -change @rpath/$(SDL_UPPER).framework/Versions/A/$(SDL_UPPER) @executable_path/Frameworks/$(SDL_UPPER).framework/Versions/A/$(SDL_UPPER)
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
149 else #Darwin
2573
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
150 ifeq ($(SDL),sdl3)
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
151 SDL_INCLUDE_PATH:=sdl/include/SDL3
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
152 CFLAGS+= -Isdl/include -DSDL_ENABLE_OLD_NAMES
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
153 else
1935
f23e70fb6607 Allow override of SDL2 include path for "portable" builds
Michael Pavone <pavone@retrodev.com>
parents: 1934
diff changeset
154 SDL_INCLUDE_PATH:=sdl/include
2573
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
155 endif
639561060a28 Do a little work towards eventual support for building against SDL3
Michael Pavone <pavone@retrodev.com>
parents: 2558
diff changeset
156 LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -l$(SDL_UPPER)
1658
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
157 ifndef USE_GLES
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
158 LDFLAGS+= $(shell pkg-config --libs gl)
fa9ae059e4d3 Added support for GLES in addition to desktop GL
Mike Pavone <pavone@retrodev.com>
parents: 1657
diff changeset
159 endif
761
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
160 endif #Darwin
1935
f23e70fb6607 Allow override of SDL2 include path for "portable" builds
Michael Pavone <pavone@retrodev.com>
parents: 1934
diff changeset
161 CFLAGS+= -I$(SDL_INCLUDE_PATH)
761
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
162
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
163 else #PORTABLE
1822
8500bd987dda Make libretro target successfully build for Windows and possibly Mac
Mike Pavone <pavone@retrodev.com>
parents: 1818
diff changeset
164 ifeq ($(MAKECMDGOALS),libblastem.$(SO))
1687
6c54bb5fe3b3 Hacky WIP libertro implementation
Michael Pavone <pavone@retrodev.com>
parents: 1658
diff changeset
165 LDFLAGS:=-lm
6c54bb5fe3b3 Hacky WIP libertro implementation
Michael Pavone <pavone@retrodev.com>
parents: 1658
diff changeset
166 else
1688
395f684c5379 Fixed the most glaring issues in libretro build
Mike Pavone <pavone@retrodev.com>
parents: 1687
diff changeset
167 CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS)
761
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
168 LDFLAGS:=-lm $(shell pkg-config --libs $(LIBS))
1779
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
169 ifdef USE_FBDEV
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
170 LDFLAGS+= -pthread
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
171 endif
1687
6c54bb5fe3b3 Hacky WIP libertro implementation
Michael Pavone <pavone@retrodev.com>
parents: 1658
diff changeset
172 endif #libblastem.so
761
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
173
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
174 ifeq ($(OS),Darwin)
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents: 1534
diff changeset
175 LDFLAGS+= -framework OpenGL -framework AppKit
761
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
176 endif
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
177
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
178 endif #PORTABLE
2600
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
179 endif #CPU=wasm
824
3b8267fd1687 Allow for LTO on Windows
Michael Pavone <pavone@retrodev.com>
parents: 820
diff changeset
180 endif #Windows
761
ffb8cc5845fa Add support for making a "portable" build on OSX to Makefile
Michael Pavone <pavone@retrodev.com>
parents: 755
diff changeset
181
749
6f439a197f61 Fix check for DEBUG in Makefile
Michael Pavone <pavone@retrodev.com>
parents: 746
diff changeset
182 ifdef DEBUG
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
183 OBJDIR:=obj/debug
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents: 1534
diff changeset
184 OPT:=-g3 -O0
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents: 1534
diff changeset
185 else
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
186 OBJDIR:=obj/release
1073
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
187 ifdef NOLTO
1505
f5d693bd694a Enable LTO on certain targets that don't need the full LDFLAGS by splitting out the optimization flags into a separate var
Michael Pavone <pavone@retrodev.com>
parents: 1427
diff changeset
188 OPT:=-O2
1073
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
189 else
1505
f5d693bd694a Enable LTO on certain targets that don't need the full LDFLAGS by splitting out the optimization flags into a separate var
Michael Pavone <pavone@retrodev.com>
parents: 1427
diff changeset
190 OPT:=-O2 -flto
1073
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
191 endif #NOLTO
744
fc68992cf18d Merge windows branch with latest changes
Michael Pavone <pavone@retrodev.com>
parents: 743 735
diff changeset
192 endif #DEBUG
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
193 LIBOBJDIR:=$(OBJDIR)/lib
18
3e7bfde7606e M68K to x86 translation works for a limited subset of instructions and addressing modes
Mike Pavone <pavone@retrodev.com>
parents: 16
diff changeset
194
1505
f5d693bd694a Enable LTO on certain targets that don't need the full LDFLAGS by splitting out the optimization flags into a separate var
Michael Pavone <pavone@retrodev.com>
parents: 1427
diff changeset
195 CFLAGS:=$(OPT) $(CFLAGS)
f5d693bd694a Enable LTO on certain targets that don't need the full LDFLAGS by splitting out the optimization flags into a separate var
Michael Pavone <pavone@retrodev.com>
parents: 1427
diff changeset
196 LDFLAGS:=$(OPT) $(LDFLAGS)
f5d693bd694a Enable LTO on certain targets that don't need the full LDFLAGS by splitting out the optimization flags into a separate var
Michael Pavone <pavone@retrodev.com>
parents: 1427
diff changeset
197
735
539d12fa6a4d Add a define in both the source and Makefile for enabling logging of z80 instruction address/cycle counts. Fix Z80 in/out instructions to eliminate assumptions about which registers are stored in native regs. Fix read_16 to not corrupt the low byte when the read has to call into a C function.
Michael Pavone <pavone@retrodev.com>
parents: 727
diff changeset
198 ifdef Z80_LOG_ADDRESS
539d12fa6a4d Add a define in both the source and Makefile for enabling logging of z80 instruction address/cycle counts. Fix Z80 in/out instructions to eliminate assumptions about which registers are stored in native regs. Fix read_16 to not corrupt the low byte when the read has to call into a C function.
Michael Pavone <pavone@retrodev.com>
parents: 727
diff changeset
199 CFLAGS+= -DZ80_LOG_ADDRESS
539d12fa6a4d Add a define in both the source and Makefile for enabling logging of z80 instruction address/cycle counts. Fix Z80 in/out instructions to eliminate assumptions about which registers are stored in native regs. Fix read_16 to not corrupt the low byte when the read has to call into a C function.
Michael Pavone <pavone@retrodev.com>
parents: 727
diff changeset
200 endif
539d12fa6a4d Add a define in both the source and Makefile for enabling logging of z80 instruction address/cycle counts. Fix Z80 in/out instructions to eliminate assumptions about which registers are stored in native regs. Fix read_16 to not corrupt the low byte when the read has to call into a C function.
Michael Pavone <pavone@retrodev.com>
parents: 727
diff changeset
201
426
add9e2f5c0e3 Make VDP render in native pixel format of the renderer for a modest performance gain and to make it easier to use OpenGL for rendering
Mike Pavone <pavone@retrodev.com>
parents: 419
diff changeset
202 ifdef PROFILE
1751
c5d4e1d14dac Allow profiling blastcpm with perftools
Michael Pavone <pavone@retrodev.com>
parents: 1749
diff changeset
203 PROFFLAGS:= -Wl,--no-as-needed -lprofiler -Wl,--as-needed
c5d4e1d14dac Allow profiling blastcpm with perftools
Michael Pavone <pavone@retrodev.com>
parents: 1749
diff changeset
204 CFLAGS+= -g3
426
add9e2f5c0e3 Make VDP render in native pixel format of the renderer for a modest performance gain and to make it easier to use OpenGL for rendering
Mike Pavone <pavone@retrodev.com>
parents: 419
diff changeset
205 endif
495
39cad98d2789 Allow OpenGL support to be disabled at compile time. Move generic utility functions out of config.c
Mike Pavone <pavone@retrodev.com>
parents: 488
diff changeset
206 ifdef NOGL
39cad98d2789 Allow OpenGL support to be disabled at compile time. Move generic utility functions out of config.c
Mike Pavone <pavone@retrodev.com>
parents: 488
diff changeset
207 CFLAGS+= -DDISABLE_OPENGL
39cad98d2789 Allow OpenGL support to be disabled at compile time. Move generic utility functions out of config.c
Mike Pavone <pavone@retrodev.com>
parents: 488
diff changeset
208 endif
426
add9e2f5c0e3 Make VDP render in native pixel format of the renderer for a modest performance gain and to make it easier to use OpenGL for rendering
Mike Pavone <pavone@retrodev.com>
parents: 419
diff changeset
209
630
47123183c336 Improve support for disassembling 68010+ binaries
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
210 ifdef M68030
47123183c336 Improve support for disassembling 68010+ binaries
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
211 CFLAGS+= -DM68030
47123183c336 Improve support for disassembling 68010+ binaries
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
212 endif
47123183c336 Improve support for disassembling 68010+ binaries
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
213 ifdef M68020
47123183c336 Improve support for disassembling 68010+ binaries
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
214 CFLAGS+= -DM68020
47123183c336 Improve support for disassembling 68010+ binaries
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
215 endif
47123183c336 Improve support for disassembling 68010+ binaries
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
216 ifdef M68010
47123183c336 Improve support for disassembling 68010+ binaries
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
217 CFLAGS+= -DM68010
47123183c336 Improve support for disassembling 68010+ binaries
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
218 endif
47123183c336 Improve support for disassembling 68010+ binaries
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
219
548
a3afee2271ce Initial work on the x86-32 target
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
220 ifndef CPU
a3afee2271ce Initial work on the x86-32 target
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
221 CPU:=$(shell uname -m)
a3afee2271ce Initial work on the x86-32 target
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
222 endif
a3afee2271ce Initial work on the x86-32 target
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
223
1073
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
224 #OpenBSD uses different names for these architectures
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
225 ifeq ($(CPU),amd64)
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
226 CPU:=x86_64
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
227 else
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
228 ifeq ($(CPU),i386)
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
229 CPU:=i686
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
230 endif
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
231 endif
2595
eb4b37c14c93 Default to new interpreter when non-x86 CPU detected
Michael Pavone <pavone@retrodev.com>
parents: 2573
diff changeset
232 ifeq ($(CPU),x86_64)
eb4b37c14c93 Default to new interpreter when non-x86 CPU detected
Michael Pavone <pavone@retrodev.com>
parents: 2573
diff changeset
233 CFLAGS+=-DX86_64 -m64
eb4b37c14c93 Default to new interpreter when non-x86 CPU detected
Michael Pavone <pavone@retrodev.com>
parents: 2573
diff changeset
234 LDFLAGS+=-m64
eb4b37c14c93 Default to new interpreter when non-x86 CPU detected
Michael Pavone <pavone@retrodev.com>
parents: 2573
diff changeset
235 else
eb4b37c14c93 Default to new interpreter when non-x86 CPU detected
Michael Pavone <pavone@retrodev.com>
parents: 2573
diff changeset
236 ifeq ($(CPU),i686)
eb4b37c14c93 Default to new interpreter when non-x86 CPU detected
Michael Pavone <pavone@retrodev.com>
parents: 2573
diff changeset
237 CFLAGS+=-DX86_32 -m32
eb4b37c14c93 Default to new interpreter when non-x86 CPU detected
Michael Pavone <pavone@retrodev.com>
parents: 2573
diff changeset
238 LDFLAGS+=-m32
eb4b37c14c93 Default to new interpreter when non-x86 CPU detected
Michael Pavone <pavone@retrodev.com>
parents: 2573
diff changeset
239 else
eb4b37c14c93 Default to new interpreter when non-x86 CPU detected
Michael Pavone <pavone@retrodev.com>
parents: 2573
diff changeset
240 NEW_CORE:=1
eb4b37c14c93 Default to new interpreter when non-x86 CPU detected
Michael Pavone <pavone@retrodev.com>
parents: 2573
diff changeset
241 endif
eb4b37c14c93 Default to new interpreter when non-x86 CPU detected
Michael Pavone <pavone@retrodev.com>
parents: 2573
diff changeset
242 endif
1073
0eb4264c2287 Make the Makefile more OpenBSD friendly. LTO is not supported on the super old version of GCC it uses. uname -m reports different names than Linux. compiler will return error on rather than just warning for unknown options
Michael Pavone <pavone@retrodev.com>
parents: 1025
diff changeset
243
1303
208803173ebc Implemented M68K trace mode. Some edge cases/SR update paths still need work
Michael Pavone <pavone@retrodev.com>
parents: 1299
diff changeset
244 TRANSOBJS=gen.o backend.o $(MEM) arena.o tern.o
2213
53411df7fc71 More 68K disassembler refactoring and fix Windows build failure
Michael Pavone <pavone@retrodev.com>
parents: 2206
diff changeset
245 M68KOBJS=68kinst.o disasm.o
1838
0c1491818f4b WIP new 68K core using CPU DSL
Michael Pavone <pavone@retrodev.com>
parents: 1823
diff changeset
246
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
247 ifdef NO_FILE_CHOOSER
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
248 CHOOSER:=nuklear_ui/filechooser_nulll.o
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
249 endif
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
250
1838
0c1491818f4b WIP new 68K core using CPU DSL
Michael Pavone <pavone@retrodev.com>
parents: 1823
diff changeset
251 ifdef NEW_CORE
2058
70260f6051dd Initial work on CDC emulation
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
252 Z80OBJS=z80.o z80inst.o
1838
0c1491818f4b WIP new 68K core using CPU DSL
Michael Pavone <pavone@retrodev.com>
parents: 1823
diff changeset
253 M68KOBJS+= m68k.o
0c1491818f4b WIP new 68K core using CPU DSL
Michael Pavone <pavone@retrodev.com>
parents: 1823
diff changeset
254 CFLAGS+= -DNEW_CORE
0c1491818f4b WIP new 68K core using CPU DSL
Michael Pavone <pavone@retrodev.com>
parents: 1823
diff changeset
255 else
0c1491818f4b WIP new 68K core using CPU DSL
Michael Pavone <pavone@retrodev.com>
parents: 1823
diff changeset
256 Z80OBJS=z80inst.o z80_to_x86.o
550
96489fb27dbf Apart from the Z80 core, BlastEm now supports 32-bit x86
Michael Pavone <pavone@retrodev.com>
parents: 548
diff changeset
257 ifeq ($(CPU),x86_64)
1838
0c1491818f4b WIP new 68K core using CPU DSL
Michael Pavone <pavone@retrodev.com>
parents: 1823
diff changeset
258 M68KOBJS+= m68k_core.o m68k_core_x86.o
568
19e517735215 Small Makefile change that was missed in the last commit
Michael Pavone <pavone@retrodev.com>
parents: 565
diff changeset
259 TRANSOBJS+= gen_x86.o backend_x86.o
550
96489fb27dbf Apart from the Z80 core, BlastEm now supports 32-bit x86
Michael Pavone <pavone@retrodev.com>
parents: 548
diff changeset
260 else
96489fb27dbf Apart from the Z80 core, BlastEm now supports 32-bit x86
Michael Pavone <pavone@retrodev.com>
parents: 548
diff changeset
261 ifeq ($(CPU),i686)
1838
0c1491818f4b WIP new 68K core using CPU DSL
Michael Pavone <pavone@retrodev.com>
parents: 1823
diff changeset
262 M68KOBJS+= m68k_core.o m68k_core_x86.o
568
19e517735215 Small Makefile change that was missed in the last commit
Michael Pavone <pavone@retrodev.com>
parents: 565
diff changeset
263 TRANSOBJS+= gen_x86.o backend_x86.o
550
96489fb27dbf Apart from the Z80 core, BlastEm now supports 32-bit x86
Michael Pavone <pavone@retrodev.com>
parents: 548
diff changeset
264 endif
96489fb27dbf Apart from the Z80 core, BlastEm now supports 32-bit x86
Michael Pavone <pavone@retrodev.com>
parents: 548
diff changeset
265 endif
1703
49a52c737bf0 Fix zero flag calculation in CPU DSL
Michael Pavone <pavone@retrodev.com>
parents: 1693
diff changeset
266 endif
2558
3f58fec775df Initial work on YMF262 (aka OPL3) emulation
Michael Pavone <pavone@retrodev.com>
parents: 2545
diff changeset
267 AUDIOOBJS=ym2612.o ymf262.o ym_common.o psg.o wave.o flac.o vgm.o event_log.o render_audio.o rf5c164.o
2058
70260f6051dd Initial work on CDC emulation
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
268 CONFIGOBJS=config.o tern.o util.o paths.o
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
269 NUKLEAROBJS=$(FONT) $(CHOOSER) nuklear_ui/blastem_nuklear.o nuklear_ui/sfnt.o
1927
9fd4bedc1a31 Update libretro target to use render_audio shared audio code
Mike Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
270 RENDEROBJS=ppm.o controller_info.o
1779
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
271 ifdef USE_FBDEV
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
272 RENDEROBJS+= render_fbdev.o
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
273 else
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
274 RENDEROBJS+= render_sdl.o
3a8c4ee68568 Added raw fbdev/evdev/ALSA render backend
Michael Pavone <pavone@retrodev.com>
parents: 1762
diff changeset
275 endif
2058
70260f6051dd Initial work on CDC emulation
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
276
1543
bed941c9bc86 Fix no-default targets
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
277 ifdef NOZLIB
bed941c9bc86 Fix no-default targets
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
278 CFLAGS+= -DDISABLE_ZLIB
bed941c9bc86 Fix no-default targets
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
279 else
bed941c9bc86 Fix no-default targets
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
280 RENDEROBJS+= $(LIBZOBJS) png.o
bed941c9bc86 Fix no-default targets
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
281 endif
419
d1bf9734ce94 Cleanup makefile and link math library
Mike Pavone <pavone@retrodev.com>
parents: 408
diff changeset
282
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
283 COREOBJS:=system.o genesis.o vdp.o io.o romdb.o hash.o xband.o realtec.o i2c.o nor.o $(M68KOBJS) \
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
284 sega_mapper.o multi_game.o megawifi.o $(NET) serialize.o $(TERMINAL) $(CONFIGOBJS) gst.o \
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
285 $(TRANSOBJS) $(AUDIOOBJS) saves.o jcart.o gen_player.o coleco.o pico_pcm.o ymz263b.o \
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
286 segacd.o lc8951.o cdimage.o cdd_mcu.o cd_graphics.o cdd_fader.o sft_mapper.o mediaplayer.o
1687
6c54bb5fe3b3 Hacky WIP libertro implementation
Michael Pavone <pavone@retrodev.com>
parents: 1658
diff changeset
287
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
288 ifdef NOZ80
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
289 CFLAGS+=-DNO_Z80
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
290 else
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
291 COREOBJS+= sms.o i8255.o $(Z80OBJS)
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
292 endif
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
293
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
294 MAINOBJS:=$(COREOBJS) blastem.o $(RENDEROBJS) zip.o menu.o debug.o gdb_remote.o bindings.o oscilloscope.o
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
295
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
296 LIBOBJS:=$(COREOBJS) libblastem.o rom.db.o $(LIBZOBJS)
2058
70260f6051dd Initial work on CDC emulation
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
297
1483
001120e91fed Skip loading menu ROM if Nuklear UI is enabled. Allow disabling Nuklear UI in favor of old menu ROM both at compile time and in config. Fall back to ROM UI if GL is unavailable
Michael Pavone <pavone@retrodev.com>
parents: 1478
diff changeset
298 ifdef NONUKLEAR
001120e91fed Skip loading menu ROM if Nuklear UI is enabled. Allow disabling Nuklear UI in favor of old menu ROM both at compile time and in config. Fall back to ROM UI if GL is unavailable
Michael Pavone <pavone@retrodev.com>
parents: 1478
diff changeset
299 CFLAGS+= -DDISABLE_NUKLEAR
001120e91fed Skip loading menu ROM if Nuklear UI is enabled. Allow disabling Nuklear UI in favor of old menu ROM both at compile time and in config. Fall back to ROM UI if GL is unavailable
Michael Pavone <pavone@retrodev.com>
parents: 1478
diff changeset
300 else
001120e91fed Skip loading menu ROM if Nuklear UI is enabled. Allow disabling Nuklear UI in favor of old menu ROM both at compile time and in config. Fall back to ROM UI if GL is unavailable
Michael Pavone <pavone@retrodev.com>
parents: 1478
diff changeset
301 MAINOBJS+= $(NUKLEAROBJS)
2355
94cf5cc89227 Add an option to use the system file picker on Linux and Windows
Michael Pavone <pavone@retrodev.com>
parents: 2329
diff changeset
302 LDFLAGS+=$(EXTRA_NUKLEAR_LDFLAGS)
1483
001120e91fed Skip loading menu ROM if Nuklear UI is enabled. Allow disabling Nuklear UI in favor of old menu ROM both at compile time and in config. Fall back to ROM UI if GL is unavailable
Michael Pavone <pavone@retrodev.com>
parents: 1478
diff changeset
303 endif
548
a3afee2271ce Initial work on the x86-32 target
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
304
977
4cbc349a82a9 Inclue menu.bin in release directories. Added a Windows RC file and icon
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
305 ifeq ($(OS),Windows)
4cbc349a82a9 Inclue menu.bin in release directories. Added a Windows RC file and icon
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
306 MAINOBJS+= res.o
4cbc349a82a9 Inclue menu.bin in release directories. Added a Windows RC file and icon
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
307 endif
4cbc349a82a9 Inclue menu.bin in release directories. Added a Windows RC file and icon
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
308
1693
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
309 ifdef CONFIG_PATH
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
310 CFLAGS+= -DCONFIG_PATH='"'$(CONFIG_PATH)'"'
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
311 endif
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
312
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
313 ifdef DATA_PATH
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
314 CFLAGS+= -DDATA_PATH='"'$(DATA_PATH)'"'
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
315 endif
ba3fb7a3be6b Added some Makefile options to build a packaging friendly executable
Michael Pavone <pavone@retrodev.com>
parents: 1688
diff changeset
316
1934
253c62b7144e Allow specifying a default font path at build time
Michael Pavone <pavone@retrodev.com>
parents: 1930
diff changeset
317 ifdef FONT_PATH
253c62b7144e Allow specifying a default font path at build time
Michael Pavone <pavone@retrodev.com>
parents: 1930
diff changeset
318 CFLAGS+= -DFONT_PATH='"'$(FONT_PATH)'"'
253c62b7144e Allow specifying a default font path at build time
Michael Pavone <pavone@retrodev.com>
parents: 1930
diff changeset
319 endif
253c62b7144e Allow specifying a default font path at build time
Michael Pavone <pavone@retrodev.com>
parents: 1930
diff changeset
320
2289
92449b47cce8 Integrate VGM player into main blastem binary
Michael Pavone <pavone@retrodev.com>
parents: 2253
diff changeset
321 ALL=dis$(EXE) zdis$(EXE) blastem$(EXE)
805
3eced113081c Pre-release cleanup
Michael Pavone <pavone@retrodev.com>
parents: 803
diff changeset
322 ifneq ($(OS),Windows)
3eced113081c Pre-release cleanup
Michael Pavone <pavone@retrodev.com>
parents: 803
diff changeset
323 ALL+= termhelper
742
2e1b3b258523 Make Windows port a little less half-assed
Michael Pavone <pavone@retrodev.com>
parents: 741
diff changeset
324 endif
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
325 DISOBJS:=dis.o disasm.o backend.o 68kinst.o tern.o vos_program_module.o util.o
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
326 MTESTOBJS:=trans.o serialize.o $(M68KOBJS) $(TRANSOBJS) util.o
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
327 ZTESTOBJS:=ztestrun.o serialize.o $(Z80OBJS) $(TRANSOBJS) util.o
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
328 CPMOBJS:=blastcpm.o util.o serialize.o $(Z80OBJS) $(TRANSOBJS)
548
a3afee2271ce Initial work on the x86-32 target
Michael Pavone <pavone@retrodev.com>
parents: 524
diff changeset
329
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
330 LIBCFLAGS=$(CFLAGS) -fpic -DIS_LIB -DDISABLE_ZLIB
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
331
2688
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
332 all : $(ALL)
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
333
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
334 ORDERONLY:=$(OBJDIR)
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
335 LIBORDERONLY:=$(LIBOBJDIR)
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
336 ifdef NEW_CORE
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
337 ifeq ($(wildcard $(OBJDIR)/*.d),)
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
338 ORDERONLY+= m68k.c z80.c
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
339 endif
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
340 ifeq ($(wildcard $(LIBOBJDIR)/*.d),)
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
341 LIBORDERONLY+= m68k.c z80.c
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
342 endif
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
343 endif
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
344
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
345 -include $(MAINOBJS:%.o=$(OBJDIR)/%.d)
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
346 -include $(LIBOBJS:%.o=$(LIBOBJDIR)/%.d)
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
347 -include $(DISOBJS:.o=$(OBJDIR)/%.d)
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
348 -include $(OBJDIR)/trans.d
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
349 -include $(OBJDIR)/ztestrun.d
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
350 -include $(OBJDIR)/blastcpm.d
1687
6c54bb5fe3b3 Hacky WIP libertro implementation
Michael Pavone <pavone@retrodev.com>
parents: 1658
diff changeset
351
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
352 $(OBJDIR) :
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
353 mkdir -p $(OBJDIR)/nuklear_ui
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
354 mkdir -p $(OBJDIR)/zlib
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
355
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
356 $(LIBOBJDIR) :
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
357 mkdir -p $(LIBOBJDIR)/zlib
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
358
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
359 libblastem.$(SO) : $(LIBOBJS:%.o=$(LIBOBJDIR)/%.o)
1687
6c54bb5fe3b3 Hacky WIP libertro implementation
Michael Pavone <pavone@retrodev.com>
parents: 1658
diff changeset
360 $(CC) -shared -o $@ $^ $(LDFLAGS)
6c54bb5fe3b3 Hacky WIP libertro implementation
Michael Pavone <pavone@retrodev.com>
parents: 1658
diff changeset
361
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
362 blastem$(EXE) : $(MAINOBJS:%.o=$(OBJDIR)/%.o)
1751
c5d4e1d14dac Allow profiling blastcpm with perftools
Michael Pavone <pavone@retrodev.com>
parents: 1749
diff changeset
363 $(CC) -o $@ $^ $(LDFLAGS) $(PROFFLAGS)
805
3eced113081c Pre-release cleanup
Michael Pavone <pavone@retrodev.com>
parents: 803
diff changeset
364 $(FIXUP) ./$@
2058
70260f6051dd Initial work on CDC emulation
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
365
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
366 termhelper : $(OBJDIR)/termhelper.o
1080
382614130914 Some initial work on Atari Jaguar emulation
Michael Pavone <pavone@retrodev.com>
parents: 1073
diff changeset
367 $(CC) -o $@ $^ $(LDFLAGS)
16
54fba9ef781b Add Makefile
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
368
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
369 dis$(EXE) : $(DISOBJS:%.o=$(OBJDIR)/%.o)
1505
f5d693bd694a Enable LTO on certain targets that don't need the full LDFLAGS by splitting out the optimization flags into a separate var
Michael Pavone <pavone@retrodev.com>
parents: 1427
diff changeset
370 $(CC) -o $@ $^ $(OPT)
2058
70260f6051dd Initial work on CDC emulation
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
371
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
372 jagdis : $(OBJDIR)/jagdis.o $(OBJDIR)/jagcpu.o $(OBJDIR)/tern.o
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
373 $(CC) -o $@ $^ $(OPT)
199
69585e7d474f Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents: 118
diff changeset
374
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
375 zdis$(EXE) : $(OBJDIR)/zdis.o $(OBJDIR)/z80inst.o
1990
57ae42c3ab45 Fix 68k test harness target, add cycle count to output and add a cycle limit
Michael Pavone <pavone@retrodev.com>
parents: 1986
diff changeset
376 $(CC) -o $@ $^ $(OPT)
235
d9bf8e61c33c Get Z80 core working for simple programs
Mike Pavone <pavone@retrodev.com>
parents: 229
diff changeset
377
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
378 trans : $(MTESTOBJS:%.o=$(OBJDIR)/%.o)
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
379 $(CC) -o $@ $^ $(OPT)
18
3e7bfde7606e M68K to x86 translation works for a limited subset of instructions and addressing modes
Mike Pavone <pavone@retrodev.com>
parents: 16
diff changeset
380
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
381 ztestrun : $(ZTESTOBJS:%.o=$(OBJDIR)/%.o)
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
382 $(CC) -o $@ $^ $(OPT)
292
b970ea214ecb Added z80 test generator and z80 test runner.
Mike Pavone <pavone@retrodev.com>
parents: 288
diff changeset
383
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
384 ztestgen : $(OBJDIR)/ztestgen.o $(OBJDIR)/z80inst.o
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
385 $(CC) -o $@ $^ $(OPT)
292
b970ea214ecb Added z80 test generator and z80 test runner.
Mike Pavone <pavone@retrodev.com>
parents: 288
diff changeset
386
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
387 blastcpm : $(CPMOBJS:%.o=$(OBJDIR)/%.o)
1751
c5d4e1d14dac Allow profiling blastcpm with perftools
Michael Pavone <pavone@retrodev.com>
parents: 1749
diff changeset
388 $(CC) -o $@ $^ $(OPT) $(PROFFLAGS)
408
a13a83934ba3 Add primitive vgm player for testing
Mike Pavone <pavone@retrodev.com>
parents: 407
diff changeset
389
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
390 vos_prog_info : $(OBJDIR)/vos_prog_info.o $(OBJDIR)/vos_program_module.o
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
391 $(CC) -o $@ $^ $(OPT)
631
de6f00204fa2 Add support for disassembling VOS program modules
Michael Pavone <pavone@retrodev.com>
parents: 630
diff changeset
392
2600
251cc75574af Basic emscripten support
Michael Pavone <pavone@retrodev.com>
parents: 2595
diff changeset
393 .PRECIOUS: %.c
2606
486e07a62469 GNU make before 4.3 does not support :& syntax, but apparently pattern rules support grouped targets without it
Michael Pavone <pavone@retrodev.com>
parents: 2605
diff changeset
394 %.c %.h : %.cpu cpu_dsl.py
486e07a62469 GNU make before 4.3 does not support :& syntax, but apparently pattern rules support grouped targets without it
Michael Pavone <pavone@retrodev.com>
parents: 2605
diff changeset
395 ./cpu_dsl.py -d $(shell echo $@ | sed -E -e "s/^z80.*$$/$(Z80_DISPATCH)/" -e '/^goto/! s/^.*$$/call/') $< > $(shell echo $@ | sed -E 's/\.[ch]$$/./')c
631
de6f00204fa2 Add support for disassembling VOS program modules
Michael Pavone <pavone@retrodev.com>
parents: 630
diff changeset
396
1818
243f3a7247f9 Include ROM DB in library binary for libretro target
Mike Pavone <pavone@retrodev.com>
parents: 1795
diff changeset
397 %.db.c : %.db
243f3a7247f9 Include ROM DB in library binary for libretro target
Mike Pavone <pavone@retrodev.com>
parents: 1795
diff changeset
398 sed $< -e 's/"/\\"/g' -e 's/^\(.*\)$$/"\1\\n"/' -e'1s/^\(.*\)$$/const char $(shell echo $< | tr '.' '_')_data[] = \1/' -e '$$s/^\(.*\)$$/\1;/' > $@
243f3a7247f9 Include ROM DB in library binary for libretro target
Mike Pavone <pavone@retrodev.com>
parents: 1795
diff changeset
399
2688
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
400 $(OBJDIR)/%.o : %.S | $(ORDERONLY)
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
401 $(CC) -c -MMD -o $@ $<
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
402
2688
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
403 $(OBJDIR)/%.o : %.c | $(ORDERONLY)
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
404 $(CC) $(CFLAGS) -c -MMD -o $@ $<
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
405
2688
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
406 $(OBJDIR)/%.o : %.m | $(ORDERONLY)
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
407 $(CC) $(CFLAGS) -c -MMD -o $@ $<
16
54fba9ef781b Add Makefile
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
408
2688
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
409 $(LIBOBJDIR)/%.o : %.S | $(LIBORDERONLY)
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
410 $(CC) -c -MMD -o $@ $<
2058
70260f6051dd Initial work on CDC emulation
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
411
2688
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
412 $(LIBOBJDIR)/%.o : %.c | $(LIBORDERONLY)
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
413 $(CC) $(LIBCFLAGS) -c -MMD -o $@ $<
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
414
2688
b42f00a3a937 Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
Michael Pavone <pavone@retrodev.com>
parents: 2685
diff changeset
415 $(LIBOBJDIR)/%.o : %.m | $(LIBORDERONLY)
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
416 $(CC) $(LIBCFLAGS) -c -MMD -o $@ $<
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents: 1534
diff changeset
417
864
40703069bb68 Get everything needed to build menu.bin either committed or buildable via the Makefile
Michael Pavone <pavone@retrodev.com>
parents: 836
diff changeset
418 %.png : %.xcf
2166
3a6680e9204a xcftools is no longer packaged by Debian/Ubuntu so switched to imagemagick
Michael Pavone <pavone@retrodev.com>
parents: 2114
diff changeset
419 convert -background none -flatten $< $@
864
40703069bb68 Get everything needed to build menu.bin either committed or buildable via the Makefile
Michael Pavone <pavone@retrodev.com>
parents: 836
diff changeset
420
40703069bb68 Get everything needed to build menu.bin either committed or buildable via the Makefile
Michael Pavone <pavone@retrodev.com>
parents: 836
diff changeset
421 %.tiles : %.spec
40703069bb68 Get everything needed to build menu.bin either committed or buildable via the Makefile
Michael Pavone <pavone@retrodev.com>
parents: 836
diff changeset
422 ./img2tiles.py -s $< $@
18
3e7bfde7606e M68K to x86 translation works for a limited subset of instructions and addressing modes
Mike Pavone <pavone@retrodev.com>
parents: 16
diff changeset
423
3e7bfde7606e M68K to x86 translation works for a limited subset of instructions and addressing modes
Mike Pavone <pavone@retrodev.com>
parents: 16
diff changeset
424 %.bin : %.s68
646
fa345ce3e5bd Produce a listing file when assembling 68K test ROMs
Michael Pavone <pavone@retrodev.com>
parents: 631
diff changeset
425 vasmm68k_mot -Fbin -m68000 -no-opt -spaces -o $@ -L $@.list $<
16
54fba9ef781b Add Makefile
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
426
2035
33f454232aee Added open source TMSS replacement
Michael Pavone <pavone@retrodev.com>
parents: 2007
diff changeset
427 %.md : %.s68
33f454232aee Added open source TMSS replacement
Michael Pavone <pavone@retrodev.com>
parents: 2007
diff changeset
428 vasmm68k_mot -Fbin -m68000 -no-opt -spaces -o $@ -L $@.list $<
33f454232aee Added open source TMSS replacement
Michael Pavone <pavone@retrodev.com>
parents: 2007
diff changeset
429
199
69585e7d474f Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents: 118
diff changeset
430 %.bin : %.sz8
69585e7d474f Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents: 118
diff changeset
431 vasmz80_mot -Fbin -spaces -o $@ $<
2607
6b3b411f3339 Fix Windows build
Michael Pavone <pavone@retrodev.com>
parents: 2606
diff changeset
432 $(OBJDIR)/res.o : blastem.rc
6b3b411f3339 Fix Windows build
Michael Pavone <pavone@retrodev.com>
parents: 2606
diff changeset
433 $(WINDRES) $< $@
199
69585e7d474f Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents: 118
diff changeset
434
864
40703069bb68 Get everything needed to build menu.bin either committed or buildable via the Makefile
Michael Pavone <pavone@retrodev.com>
parents: 836
diff changeset
435 arrow.tiles : arrow.png
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 883
diff changeset
436 cursor.tiles : cursor.png
864
40703069bb68 Get everything needed to build menu.bin either committed or buildable via the Makefile
Michael Pavone <pavone@retrodev.com>
parents: 836
diff changeset
437 font_interlace_variable.tiles : font_interlace_variable.png
917
f057975212e9 Added button graphic for menu
Michael Pavone <pavone@retrodev.com>
parents: 909
diff changeset
438 button.tiles : button.png
1025
01a91df5b87c Add missing dependency for font.tiles in Makefile
Michael Pavone <pavone@retrodev.com>
parents: 977
diff changeset
439 font.tiles : font.png
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
440
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
441 menu.bin : font_interlace_variable.tiles arrow.tiles cursor.tiles button.tiles font.tiles
2035
33f454232aee Added open source TMSS replacement
Michael Pavone <pavone@retrodev.com>
parents: 2007
diff changeset
442 tmss.md : font.tiles
864
40703069bb68 Get everything needed to build menu.bin either committed or buildable via the Makefile
Michael Pavone <pavone@retrodev.com>
parents: 836
diff changeset
443
16
54fba9ef781b Add Makefile
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
444 clean :
2601
6a84a38b3cf9 Handle dependencies properly in makefile
Michael Pavone <pavone@retrodev.com>
parents: 2600
diff changeset
445 rm -rf $(ALL) trans ztestrun ztestgen *.o nuklear_ui/*.o zlib/*.o $(OBJDIR)