diff --git a/CMakeLists.txt b/CMakeLists.txt index 107cc55..abb61f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,6 +48,8 @@ else() pkg_check_modules(SDL2TTF IMPORTED_TARGET SDL2_ttf) optional_pkg_check_modules(SDL2MIXER IMPORTED_TARGET SDL2_mixer) + option(ENABLE_DEBUGGER "Enable built-in debugger" ON) + include(FindJPEG) if (JPEG_FOUND) set(HAVE_JPEG 1) diff --git a/config.h.in b/config.h.in index 1588378..46f54a9 100644 --- a/config.h.in +++ b/config.h.in @@ -10,6 +10,7 @@ #cmakedefine ENABLE_CDROM_EMSCRIPTEN @ENABLE_CDROM_EMSCRIPTEN@ #cmakedefine ENABLE_CDROM_LINUX @ENABLE_CDROM_LINUX@ #cmakedefine ENABLE_CDROM_MP3 @ENABLE_CDROM_MP3@ +#cmakedefine ENABLE_DEBUGGER @ENABLE_DEBUGGER@ #cmakedefine ENABLE_GTK @ENABLE_GTK@ #cmakedefine ENABLE_MIDI_RAWMIDI @ENABLE_MIDI_RAWMIDI@ #cmakedefine ENABLE_MIDI_SDLMIXER @ENABLE_MIDI_SDLMIXER@ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e4487eb..51c1ec7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -21,9 +21,6 @@ target_sources(xsystem35 PRIVATE dri.c ald_manager.c cache.c - debug_symbol.c - debugger.c - debugger_cui.c ${SRC_AUDIO} ${SRC_CDROM} ${SRC_MIDI} @@ -71,6 +68,12 @@ target_sources(xsystem35 PRIVATE target_sources(xsystem35 PRIVATE network.c) +# Debugger +if (ENABLE_DEBUGGER) + target_sources(xsystem35 PRIVATE + debug_symbol.c debugger.c debugger_cui.c) +endif() + if (WIN32) target_sources(xsystem35 PRIVATE win/dialog.c win/resources.rc win/menubar.c win/console.c) endif() diff --git a/src/debugger.h b/src/debugger.h index c4e04ce..c5274e3 100644 --- a/src/debugger.h +++ b/src/debugger.h @@ -35,10 +35,23 @@ extern DebuggerState dbg_state; #define BREAKPOINT 0x0f + +#ifdef ENABLE_DEBUGGER + #define dbg_trapped() (dbg_state != DBG_RUNNING) #define dbg_interrupted() (dbg_state == DBG_STOPPED_INTERRUPT) void dbg_init(const char *symbols_path); void dbg_main(void); BYTE dbg_handle_breakpoint(int page, int addr); +#else // ENABLE_DEBUGGER + +#define dbg_trapped() false +#define dbg_interrupted() false +#define dbg_init(symbols_path) +#define dbg_main() +#define dbg_handle_breakpoint(page, addr) BREAKPOINT + +#endif // ENABLE_DEBUGGER + #endif // __DEBUGGER_H__