From 114d2d515cb3f66429596828fa3a0e7e1be9cc36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Ortega=20Froysa?= Date: Sun, 18 Mar 2018 15:22:19 +0100 Subject: [PATCH] Removed build-iso target. That won't be needed. Since this is more of a kernel project rather than an operating system, it shouldn't need to be booted from an ISO. Later I may create a proper OS using GNU userland. --- CMakeLists.txt | 22 ++++++++++++---------- README | 15 +++++++-------- configs/grub.cfg | 3 --- 3 files changed, 19 insertions(+), 21 deletions(-) delete mode 100644 configs/grub.cfg diff --git a/CMakeLists.txt b/CMakeLists.txt index 2caaa88..b838478 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,10 +14,11 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.3) project(colonel C ASM) set(TARGET_NAME "colonel.bin") +set(TARGET_VERSION "0.1") if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "release") @@ -53,13 +54,14 @@ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "i.86") "src/kernel/arch/x86/") endif() -add_executable(${TARGET_NAME} ${SRCS}) +# version pre-processor definition +add_compile_options($<$:-DVERSION="${TARGET_VERSION}">) -add_custom_target(build-iso - COMMAND mkdir -p isodir/boot/grub/ - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/configs/grub.cfg isodir/boot/grub/ - COMMAND cp ${TARGET_NAME} isodir/boot/ - COMMAND grub-mkrescue -o colonel.iso isodir - DEPENDS ${TARGET_NAME} - COMMENT "Building ISO iamge..." - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/configs/grub.cfg) +# allow debug info to be printed if necessary +if(${CMAKE_BUILD_TYPE} STREQUAL "debug") + add_compile_options($<$:-DDEBUG>) +else() + add_compile_options($<$:-DNDEBUG>) +endif() + +add_executable(${TARGET_NAME} ${SRCS}) diff --git a/README b/README index 21a4a34..f664cef 100644 --- a/README +++ b/README @@ -25,18 +25,17 @@ architecture. You can find the available toolchains for building in the make This should create a release build of the project. If you would like debug -flags then add the `-DCMAKE_BUILD_TYPE=debug' option to the `cmake' command. If -you would like to build an ISO file then run the `build-iso' make target. +flags then add the `-DCMAKE_BUILD_TYPE=debug' option to the `cmake' command. # Testing --------- The safest environment to test this in would be an emulator. The one I use is -QEMU (https://www.qemu.org/). You can run the ISO image directly under QEMU, -and the kernel itself (i.e. `colonel.bin') can be run by using the `-kernel' -option. If you'd like to debug the kernel using QEMU and GDB you can do so by -running `qemu -S -s -kernel colonel.bin', which will open a server on localhost -allowing you to connect with GDB for debugging. At this point you can connect -to the server and load the symbols by running the following in the GDB prompt: +QEMU (https://www.qemu.org/). You can run the kernel directly (i.e. +`colonel.bin') by using the `-kernel' option. If you'd like to debug the kernel +using QEMU and GDB you can do so by running `qemu -S -s -kernel colonel.bin'., +which will open a server on `localhost' allowing you to connect with GDB for +debugging. At this point you can connect to the server and load the symbols by +running the following in the GDB prompt: (gdb) target remote localhost:1234 (gdb) symbol-file colonel.bin diff --git a/configs/grub.cfg b/configs/grub.cfg deleted file mode 100644 index a7c241d..0000000 --- a/configs/grub.cfg +++ /dev/null @@ -1,3 +0,0 @@ -menuentry "ColonelOS" { - multiboot /boot/colonel.bin -}