2017-01-05 22:07:20 +01:00
|
|
|
# Configuration
|
2019-03-17 02:50:08 +01:00
|
|
|
## Architecture to build Redox for (aarch64 or x86_64)
|
2017-01-05 22:07:20 +01:00
|
|
|
ARCH?=x86_64
|
2019-03-17 02:50:08 +01:00
|
|
|
## Flags to pass to the installer (empty to download binary packages)
|
2017-06-30 04:06:16 +02:00
|
|
|
INSTALLER_FLAGS?=--cookbook=cookbook
|
2019-03-17 02:50:08 +01:00
|
|
|
## Enabled to use binary prefix (much faster)
|
2019-06-19 04:10:30 +02:00
|
|
|
PREFIX_BINARY?=1
|
2019-03-17 02:50:08 +01:00
|
|
|
## Filesystem size in MB (256 is the default)
|
2019-03-16 22:18:30 +01:00
|
|
|
FILESYSTEM_SIZE?=256
|
2017-01-05 22:07:20 +01:00
|
|
|
|
2017-02-01 22:15:48 +01:00
|
|
|
# Per host variables
|
|
|
|
UNAME := $(shell uname)
|
|
|
|
ifeq ($(UNAME),Darwin)
|
|
|
|
FUMOUNT=sudo umount
|
|
|
|
export NPROC=sysctl -n hw.ncpu
|
2020-05-04 00:57:52 +02:00
|
|
|
export REDOX_MAKE=make
|
2019-03-17 02:50:08 +01:00
|
|
|
PREFIX_BINARY=0
|
2017-02-01 22:15:48 +01:00
|
|
|
VB_AUDIO=coreaudio
|
2019-03-17 02:50:08 +01:00
|
|
|
VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
|
2020-05-03 02:45:15 +02:00
|
|
|
else ifeq ($(UNAME),FreeBSD)
|
2020-05-03 02:13:21 +02:00
|
|
|
FUMOUNT=sudo umount
|
|
|
|
export NPROC=sysctl -n hw.ncpu
|
2020-05-04 00:57:52 +02:00
|
|
|
export REDOX_MAKE=gmake
|
2020-05-03 02:13:21 +02:00
|
|
|
PREFIX_BINARY=0
|
|
|
|
VB_AUDIO=pulse # To check, will probaly be OSS on most setups
|
|
|
|
VBM=VBoxManage
|
2017-02-01 22:15:48 +01:00
|
|
|
else
|
|
|
|
FUMOUNT=fusermount -u
|
|
|
|
export NPROC=nproc
|
2020-05-04 00:57:52 +02:00
|
|
|
export REDOX_MAKE=make
|
2019-03-17 02:50:08 +01:00
|
|
|
VB_AUDIO=pulse
|
2017-02-01 22:15:48 +01:00
|
|
|
VBM=VBoxManage
|
|
|
|
endif
|
|
|
|
|
2017-01-05 22:07:20 +01:00
|
|
|
# Automatic variables
|
2019-03-17 02:50:08 +01:00
|
|
|
ROOT=$(CURDIR)
|
2019-06-07 23:59:45 +02:00
|
|
|
export RUST_COMPILER_RT_ROOT=$(ROOT)/rust/src/llvm-project/compiler-rt
|
2017-01-16 18:10:56 +01:00
|
|
|
export RUST_TARGET_PATH=$(ROOT)/kernel/targets
|
2017-06-20 04:15:56 +02:00
|
|
|
export XARGO_HOME=$(ROOT)/build/xargo
|
2017-05-11 05:39:05 +02:00
|
|
|
export XARGO_RUST_SRC=$(ROOT)/rust/src
|
2017-01-05 22:07:20 +01:00
|
|
|
|
2019-03-17 02:50:08 +01:00
|
|
|
## Kernel variables
|
|
|
|
KTARGET=$(ARCH)-unknown-none
|
|
|
|
KBUILD=build/kernel
|
|
|
|
|
|
|
|
## Userspace variables
|
|
|
|
export TARGET=$(ARCH)-unknown-redox
|
|
|
|
BUILD=build/userspace
|
2020-05-23 03:56:04 +02:00
|
|
|
INSTALLER=\
|
|
|
|
export REDOXER_TOOLCHAIN="$(ROOT)/$(PREFIX_INSTALL)" && \
|
|
|
|
export PATH="$(PREFIX_PATH):$$PATH" && \
|
|
|
|
installer/target/release/redox_installer $(INSTALLER_FLAGS)
|
2019-03-17 02:50:08 +01:00
|
|
|
|
|
|
|
## Bootloader variables
|
|
|
|
EFI_TARGET=$(ARCH)-efi-pe
|
|
|
|
|
|
|
|
## Cross compiler variables
|
2018-12-23 00:45:16 +01:00
|
|
|
AR=$(TARGET)-gcc-ar
|
2018-11-28 03:45:52 +01:00
|
|
|
AS=$(TARGET)-as
|
|
|
|
CC=$(TARGET)-gcc
|
|
|
|
CXX=$(TARGET)-g++
|
|
|
|
LD=$(TARGET)-ld
|
2018-12-23 00:45:16 +01:00
|
|
|
NM=$(TARGET)-gcc-nm
|
2018-11-28 03:45:52 +01:00
|
|
|
OBJCOPY=$(TARGET)-objcopy
|
|
|
|
OBJDUMP=$(TARGET)-objdump
|
2018-12-23 00:45:16 +01:00
|
|
|
RANLIB=$(TARGET)-gcc-ranlib
|
2018-11-28 03:45:52 +01:00
|
|
|
READELF=$(TARGET)-readelf
|
|
|
|
STRIP=$(TARGET)-strip
|
|
|
|
|
2019-03-17 02:50:08 +01:00
|
|
|
## Rust cross compile variables
|
2018-11-28 03:45:52 +01:00
|
|
|
export AR_$(subst -,_,$(TARGET))=$(TARGET)-ar
|
|
|
|
export CC_$(subst -,_,$(TARGET))=$(TARGET)-gcc
|
|
|
|
export CXX_$(subst -,_,$(TARGET))=$(TARGET)-g++
|