# If this is the first time you build 'Minimal Linux Live', then I suggest you
# go through the README file first.

###################################################
#                                                 #
#  This section contains the main source bundles  #
#                                                 #
###################################################

# You can find the latest Linux kernel source bundles here:
#
#   http://kernel.org
#
KERNEL_SOURCE_URL=http://kernel.org/pub/linux/kernel/v5.x/linux-5.13.8.tar.xz

# You can find the latest GNU C library source bundles here:
#
#   http://gnu.org/software/libc
#
GLIBC_SOURCE_URL=http://ftp.gnu.org/gnu/glibc/glibc-2.33.tar.bz2

# You can find the latest Busybox source bundles here:
#
#   http://busybox.net
#
BUSYBOX_SOURCE_URL=http://busybox.net/downloads/busybox-1.32.1.tar.bz2

# You can find the latest Syslinux source bundles here:
#
#   http://syslinux.org (official website)
#
#   http://kernel.org/pub/linux/utils/boot/syslinux
#
SYSLINUX_SOURCE_URL=http://kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.xz

# You can find the latest 'systemd-boot' source bundles here:
#
#   http://github.com/ivandavidov/systemd-boot
#
SYSTEMD-BOOT_SOURCE_URL=https://github.com/ivandavidov/systemd-boot/releases/download/systemd-boot_26-May-2018/systemd-boot_26-May-2018.tar.xz

####################################################
#                                                  #
#  This section contains configuration properties  #
#                                                  #
####################################################

# This property defines the firmware compatibility, i.e. on which systems MLL
# will be bootable.
#
#  bios - the generated ISO image will be compatible with legacy BIOS systems.
#         This is the default option and it does not require root privileges.
#
#  uefi - the generated ISO image will be compatible with UEFI systems. This
#         option requires root privileges.
#
#  both - the generated ISO image will be compatible with both legacy BIOS and
#         modern UEFI systems. This option requires root privileges.
#
FIRMWARE_TYPE=bios

# Use predefined '.config' file when building the kernel. This overrides the
# config generation in 'xx_build_kernel.sh' and the build process uses the
# config file provided in this parameter. Place the configuration file here:
#
# minimal_config/kernel.config
#
USE_PREDEFINED_KERNEL_CONFIG=false

# Build kernel modules and make them available in the overlayfs / rootfs in the
# /lib/modules directory. The modules can be loaded via 'insmod' to support
# additional periphery and software devices.
# Note however, that the essential drivers to load the overlayfs have to be
# included in the kernel as the overlayfs might not be loaded otherwise.
BUILD_KERNEL_MODULES=false

# Use predefined '.config' file when building Busybox. This overrides the
# config generation in 'xx_build_busybox.sh' and the build process uses the
# config file provided in this parameter. Place the configuration file here:
#
# minimal_config/busybox.config
#
USE_PREDEFINED_BUSYBOX_CONFIG=false

# Define the overlay type to use. Possible values are 'sparse' and 'folder'.
# You can use any other value, no value, or comment the property in order to
# disable it. Put your overlay content in the folder 'minimal_overlay/rootfs'
# and it will be automatically merged with the root file system on boot. The
# build process creates either '/minimal.img/rootfs' or '/minimal/rootfs' (read
# below) and this folder contains all overlay content in it. The build process
# also creates '/minimal.img/work' or '/minimal/work'. This folder is used by
# the overlay driver to store modifications related to the read only storage.
# If the overlay media is writeable, then all changes on the root filesystem
# are automatically persisted and preserved on reboot.
#
# sparse - use sparse file 'minimal.img' with hardcoded maximal size of 3MB
#          (see 'xx_generate_overlay.sh'). The generated ISO image is larger,
#          because the sparse file is treated as regular file. This option
#          requires root permissions or otherwise sparse file generation is
#          silently skipped. Sparse file is treated as separate disk image and
#          works fine on FAT.
#
# folder - use normal folder structure (/minimal/). Note that this doesn't work
#          if the file system is FAT because FAT requires special handling,
#          e.g. POSIX overlay (http://sf.net/p/posixovl). This is the default
#          option because it doesn't require root permissions.
#
OVERLAY_TYPE=folder

# This property defines one or more additional overlay software pieces which
# will be generated and placed in the directory 'work/overlay_rootfs'. These
# software pieces will be visible and fully usable after boot. Note that the
# build process for most of the overlay bundles depends on the softawre that
# is already installed on the host machine. The only overlay bundles that are
# guaranteed to work are the ones declared by default. The build process for
# most of the other overlay bundles may fail and therefore these bundles are
# not enabled by default. It is up to you to prepare your host environment and
# install all prerequisites for the overlay bundles that you want to build.
# For starters, you might want to install the 'libncurses-dev' library which
# is required by some of the overlay bundles.
#
# In the future Minimal Linux Live aims to provide fully functional 'sysroot'
# and all development host dependencies should be eliminated. However, for now
# it is up to you to maintain your host build environment.
#
# Note that if you build any overlay software and you are using sparse image
# file for the overlay structure then most probably something will go wrong,
# because the overlay software requires more than 3MB free space. The solution
# is to use folder overlay or to edit the script 'xx_generate_overlay.sh' and
# modify it to create sparse image file with bigger size.
#
# Currently available overlay software:
#
# all            - all available overlay bundles.
# glibc_full     - all core GNU C libraries.
#
# adopt_openjdk  - JDK from AdoptOpenJDK with either HotSpot or OpenJ9.
# bosh_cli       - BOSH CLI (command line interface).
# c2048          - console version of the game 2048.
# cf_cli         - Cloud Foundry CLI (command line interface).
# cf_tools       - all BOSH and Cloud Foundry tools.
# coreutils      - set of commonly used GNU executable utilities.
# dhcp           - DHCP and DNS functionality.
# dialog         - shell scripting for ncurses
# dropbear       - SSH server and client.
# felix          - Apache Felix OSGi framework.
# fio            - I/O load generator.
# golang         - Google's Go programming language.
# graalvm        - VM for Java, JavaScript, Python, Ruby, R, LLVM.
# kbd            - keyboard utilities.
# kernel_modules - default MLL kernel modules and 'mdev' hotplug manager.
# kexec_tools    - execute another kernel from userspace
# libevent       - event notification library.
# links          - text browser for the web.
# lua            - scripting language.
# make           - GNU make utility.
# mll_hello      - simple educational overlay bundle. Type 'hello' to run it.
# mll_logo       - custom MLL boot logo.
# mll_nikola     - the meaning of life.
# mll_utils      - set of executable utilities (mll-*).
# mll_source     - MLL source code provided in directory '/usr/src'.
# nano           - simple command-line text editor with on-screen shortcuts.
# ncurses        - 'GUI-like' API that runs within a terminal emulator.
# nweb           - simple mini http server.
# openjdk        - installs Open JDK. All operations are automated.
# python         - Python3 scripting support (pip and packages optional).
# screen         - GNU screen utility to interact with VT100 terminals
# static_get     - portable binaries for Linux (http://s.minos.io).
# stress         - CPU and RAM load generator.
# util_linux     - executable utilities distributed by the Linux Kernel org.
# vim            - advanced text editor.
# vitetris       - console mode tetris game.
# zlib           - DEFLATE compression/decompression library.
# zulujdk        - Zulu is certified build of OpenJDK with better support.
#
# Refer to the README file for more information.
#
# Each bundle can have separate '.config' file which overrides any property
# which has been provided in this configuration file. Refer to the README
# file for more information.
#
# The line below is sample which provides Open JDK, Apache Felix and Links.
# There is also network functionality provided by the 'dhcp' overlay bundle.
#
# OVERLAY_BUNDLES=dhcp,felix,links,openjdk
#
# The default overlay bundles are:
# * dhcp
# * mll_hello
# * mll_logo
# * mll_source
#
OVERLAY_BUNDLES=dhcp,mll_hello,mll_logo,mll_source

# The location where the overlay bundle software will be stored.
#
# rootfs - all overlay bundles will be embedded in the initramfs. In this way
#          the software will be available on boot but the initramfs size may
#          grow significantly and MLL will require more RAM in order to boot.
#
# iso    - all overlay bundles will be packed in the ISO image structure. The
#          actual location depends on the value of the configuration property
#          'OVERLAY_TYPE'.
#
OVERLAY_LOCATION=iso

# Always use local source bundles. This is useful when you have downloaded the
# sources and have no internet connection, or if you want to share your version
# of 'Minimal Linux Live' with predefined sources.
#
USE_LOCAL_SOURCE=false

# This property enables the standard penguin boot logo in the upper left corner
# of the screen. The property is used in 'xx_build_kernel.sh'. The default
# value is 'true' for demonstration purposes.
#
USE_BOOT_LOGO=true

# This property is the multiplicator which is used during the build process.
# The total number of each 'make' jobs will be equal to the number of detected
# CPU cores mutiplied by this property. For example, if you set this property
# with value '2' and if your CPU has 4 cores, then the number of 'make' jobs
# will be 4 * 2 = 8.
#
JOB_FACTOR=1

# This property defines the default GCC flags to be used during the compilation
# process. You can use your own flags here or even completely remove the flags.
#
CFLAGS=-Os -s -fno-stack-protector -fomit-frame-pointer -U_FORTIFY_SOURCE