diff options
author | David Oberhollenzer <goliath@infraroot.at> | 2021-02-13 14:57:50 +0100 |
---|---|---|
committer | David Oberhollenzer <goliath@infraroot.at> | 2021-02-13 15:00:49 +0100 |
commit | bf376b4c70e4b7c7623008ff95be2d498cc6f4f2 (patch) | |
tree | 6b7b51bae0a56f151c72bcee9f6c932594153447 /setup.md | |
parent | bdca65ac71681663ddc86cca06127898ab3df99a (diff) |
Cleanup: prefix the individual chapters with a numeric index
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
Diffstat (limited to 'setup.md')
-rw-r--r-- | setup.md | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/setup.md b/setup.md deleted file mode 100644 index 465c1d7..0000000 --- a/setup.md +++ /dev/null @@ -1,72 +0,0 @@ -# Prerequisites and Directory Setup - -This section deals with the packages we need on our system to cross bootstrap -our mini distro, as well as the basic directory setup before we get started. - -## Prerequisites - -For compiling the packages you will need: - -* gcc -* g++ -* make -* flex -* bison -* gperf -* makeinfo -* ncurses (with headers) -* awk -* automake -* help2man -* curl -* pkg-config -* libtool -* openssl (with headers) - - -In case you wonder: even if you don't build any C++ package, you need the C++ -compiler to build GCC. The GCC code base mainly uses C99, but with some -additional C++ features. `makeinfo` is used by the GNU utilities that generate -info pages from texinfo. ncurses is mainly needed by the kernel build system -for `menuconfig`. OpenSSL is also requried to compile the kernel later on. - -The list should be fairly complete, but I can't guarantee that I didn't miss -something. Normally I work on systems with tons of development tools and -libraries already installed, so if something is missing, please install it -and maybe let me know. - -## Directory Setup - -First of all, you should create an empty directory somewhere where you want -to build the cross toolchain and later the entire system. - -For convenience, we will store the absolute path to this directory inside a -shell variable called **BUILDROOT** and create a few directories to organize -our stuff in: - - BUILDROOT=$(pwd) - - mkdir -p "build" "src" "download" "toolchain/bin" "sysroot" - -I stored the downloaded packages in the **download** directory and extracted -them to a directory called **src**. - -We will later build packages outside the source tree (GCC even requires that -nowadays), inside a sub directory of **build**. - -Our final toolchain will end up in a directory called **toolchain**. - -We store the toolchain location inside another shell variable that I called -**TCDIR** and prepend the executable path of our toolchain to the **PATH** -variable: - - TCDIR="$BUILDROOT/toolchain" - export PATH="$TCDIR/bin:$PATH" - - -The **sysroot** directory will hold the cross compiled binaries for our target -system, as well as headers and libraries used for cross compiling stuff. It is -basically the `/` directory of the system we are going to build. For -convenience, we will also store its absolute path in a shell variable: - - SYSROOT="$BUILDROOT/sysroot" |