add a basic build system skeleton

This commit is contained in:
Morten Delenk 2017-04-23 12:55:10 +00:00
parent 779d5ee325
commit 68b3865f61
6 changed files with 85 additions and 0 deletions

3
CMakeLists.txt Normal file
View file

@ -0,0 +1,3 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)
FIND_PACKAGE(PythonInterp 3 REQUIRED)
ADD_SUBDIRECTORY(kernel)

39
docs/layout.md Normal file
View file

@ -0,0 +1,39 @@
libk/ git submodule containing the (platform-indipendent) kernel library
kernel/
arch/ architecture-dependant code/data
arm/
3ds/
rpi/
aarch64/
rpi3/
x86/
pc/
x86_64/
pc/
cpu/ Contains links to used hw and contains initialization code
arm/
arm7tdmi/
cortexa53-32/
aarch64/
cortexa53/
x86/
486/ (generic x86 cpu)
pentium4/ (current x86 cpu)
x86_64/
pentium4/ (generic x86_64 cpu)
skylake/ (current x86_64 cpu)
hw/
fpu/
x87/
vfp/
sse/
timer/
pit/
During Make period a kernel/curr_config.h gets generated that contains things like endianess, address space size, registers, etc

1
kernel/CMakeLists.txt Normal file
View file

@ -0,0 +1 @@
ENABLE_LANGUAGE(C CXX ASM-ATT)

View file

@ -0,0 +1,14 @@
INCLUDE(CMakeForceCompiler)
SET(CMAKE_SYSTEM_NAME Generic)
SET(CMAKE_SYSTEM_VERSION 0)
#CMAKE_FORCE_C_COMPILER($ENV{HOME}/opt/bin/i686-elf-gcc GNU)
SET(CMAKE_C_COMPILER $ENV{HOME}/opt/bin/arm-none-eabi-gcc)
#CMAKE_FORCE_CXX_COMPILER($ENV{HOME}/opt/bin/i686-elf-g++ GNU)
SET(CMAKE_CXX_COMPILER $ENV{HOME}/opt/bin/arm-none-eabi-g++)
SET(CMAKE_ASM_COMPILER $ENV{HOME}/opt/bin/arm-none-eabi-as)
SET(CMAKE_FIND_ROOT_PATH $ENV{HOME}/opt)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
list(APPEND CMAKE_MODULE_PATH .)
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)

14
toolchains/i686-elf.cmake Normal file
View file

@ -0,0 +1,14 @@
INCLUDE(CMakeForceCompiler)
SET(CMAKE_SYSTEM_NAME Generic)
SET(CMAKE_SYSTEM_VERSION 0)
#CMAKE_FORCE_C_COMPILER($ENV{HOME}/opt/bin/i686-elf-gcc GNU)
SET(CMAKE_C_COMPILER $ENV{HOME}/opt/bin/i686-elf-gcc)
#CMAKE_FORCE_CXX_COMPILER($ENV{HOME}/opt/bin/i686-elf-g++ GNU)
SET(CMAKE_CXX_COMPILER $ENV{HOME}/opt/bin/i686-elf-g++)
SET(CMAKE_ASM_COMPILER $ENV{HOME}/opt/bin/i686-elf-as)
SET(CMAKE_FIND_ROOT_PATH $ENV{HOME}/opt)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
list(APPEND CMAKE_MODULE_PATH .)
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)

View file

@ -0,0 +1,14 @@
INCLUDE(CMakeForceCompiler)
SET(CMAKE_SYSTEM_NAME Generic)
SET(CMAKE_SYSTEM_VERSION 0)
#CMAKE_FORCE_C_COMPILER($ENV{HOME}/opt/bin/i686-elf-gcc GNU)
SET(CMAKE_C_COMPILER $ENV{HOME}/opt/bin/x86_64-elf-gcc)
#CMAKE_FORCE_CXX_COMPILER($ENV{HOME}/opt/bin/i686-elf-g++ GNU)
SET(CMAKE_CXX_COMPILER $ENV{HOME}/opt/bin/x86_64-elf-g++)
SET(CMAKE_ASM_COMPILER $ENV{HOME}/opt/bin/x86_64-elf-as)
SET(CMAKE_FIND_ROOT_PATH $ENV{HOME}/opt)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
list(APPEND CMAKE_MODULE_PATH .)
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)