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.
This commit is contained in:
parent
5ae9ea5e7e
commit
114d2d515c
@ -14,10 +14,11 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
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($<$<COMPILE_LANGUAGE:C>:-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($<$<COMPILE_LANGUAGE:C>:-DDEBUG>)
|
||||
else()
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C>:-DNDEBUG>)
|
||||
endif()
|
||||
|
||||
add_executable(${TARGET_NAME} ${SRCS})
|
||||
|
15
README
15
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
|
||||
|
@ -1,3 +0,0 @@
|
||||
menuentry "ColonelOS" {
|
||||
multiboot /boot/colonel.bin
|
||||
}
|
Loading…
Reference in New Issue
Block a user