diff --git a/CMakeLists.txt b/CMakeLists.txt
index d72ca76fc2a7f8a550ef2820f870c6f8536b2d83..9c5fcf1a12aaf0cbbefad3ccba1e54d1cdc73a31 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,7 +68,13 @@ cmake_dependent_option(
 )
 option(SRB2_CONFIG_HWRENDER "Enable hardware render (OpenGL) support" ON)
 option(SRB2_CONFIG_STATIC_OPENGL "Enable static linking GL (do not do this)" OFF)
-option(SRB2_CONFIG_ERRORMODE "Compile C code with warnings treated as errors. (C++ warnings are always treated as errors)" OFF)
+option(SRB2_CONFIG_ERRORMODE "Compile C code with warnings treated as errors." OFF)
+option(SRB2_CONFIG_DEBUGMODE "Compile with PARANOIA, ZDEBUG, RANGECHECK and PACKETDROP defined." OFF)
+option(SRB2_CONFIG_MOBJCONSISTANCY "Compile with MOBJCONSISTANCY defined." OFF)
+option(SRB2_CONFIG_PACKETDROP "Compile with PACKETDROP defined." OFF)
+option(SRB2_CONFIG_ZDEBUG "Compile with ZDEBUG defined." OFF)
+# SRB2_CONFIG_PROFILEMODE is probably superceded by some CMake setting.
+option(SRB2_CONFIG_PROFILEMODE "Compile for profiling (GCC only)." OFF)
 set(SRB2_CONFIG_ASSET_DIRECTORY "" CACHE PATH "Path to directory that contains all asset files for the installer. If set, assets will be part of installation and cpack.")
 
 # Enable CCache
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a7de293d10d25f5d5b7bf3a50468b191eaedf507..746aa1517dbcf90845cc70dc3190e5e3899c6282 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -348,6 +348,24 @@ if(${SRB2_CONFIG_DEV_BUILD})
 endif()
 target_compile_definitions(SRB2SDL2 PRIVATE -DCMAKECONFIG)
 
+# Misc. build options from Makefiles
+if(SRB2_CONFIG_DEBUGMODE)
+	target_compile_definitions(SRB2SDL2 PRIVATE -DZDEBUG -DPARANOIA -DRANGECHECK -DPACKETDROP)
+endif()
+if(SRB2_CONFIG_MOBJCONSISTANCY)
+	target_compile_definitions(SRB2SDL2 PRIVATE -DMOBJCONSISTANCY)
+endif()
+if(SRB2_CONFIG_PACKETDROP)
+	target_compile_definitions(SRB2SDL2 PRIVATE -DPACKETDROP)
+endif()
+if(SRB2_CONFIG_ZDEBUG)
+	target_compile_definitions(SRB2SDL2 PRIVATE -DZDEBUG)
+endif()
+if(SRB2_CONFIG_PROFILEMODE AND "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
+	target_compile_options(SRB2SDL2 PRIVATE -pg)
+	target_link_options(SRB2SDL2 PRIVATE -pg)
+endif()
+
 add_subdirectory(sdl)
 add_subdirectory(objects)