Makefile cleanup, default to binary prefix
This commit is contained in:
parent
7f9a82752d
commit
40d9117b17
4
Makefile
4
Makefile
|
@ -20,7 +20,7 @@ clean:
|
||||||
rm -rf build
|
rm -rf build
|
||||||
|
|
||||||
distclean:
|
distclean:
|
||||||
make clean
|
$(MAKE) clean
|
||||||
cd cookbook && ./unfetch.sh
|
cd cookbook && ./unfetch.sh
|
||||||
|
|
||||||
pull:
|
pull:
|
||||||
|
@ -62,7 +62,7 @@ include mk/virtualbox.mk
|
||||||
|
|
||||||
# CI image target
|
# CI image target
|
||||||
ci-img: FORCE
|
ci-img: FORCE
|
||||||
make INSTALLER_FLAGS= \
|
$(MAKE) INSTALLER_FLAGS= \
|
||||||
build/coreboot.elf.gz \
|
build/coreboot.elf.gz \
|
||||||
build/harddrive.bin.gz \
|
build/harddrive.bin.gz \
|
||||||
build/livedisk.iso.gz \
|
build/livedisk.iso.gz \
|
||||||
|
|
43
mk/config.mk
43
mk/config.mk
|
@ -1,34 +1,48 @@
|
||||||
# Configuration
|
# Configuration
|
||||||
|
## Architecture to build Redox for (aarch64 or x86_64)
|
||||||
ARCH?=x86_64
|
ARCH?=x86_64
|
||||||
|
## Flags to pass to the installer (empty to download binary packages)
|
||||||
INSTALLER_FLAGS?=--cookbook=cookbook
|
INSTALLER_FLAGS?=--cookbook=cookbook
|
||||||
PREFIX_BINARY?=0
|
## Enabled to use binary prefix (much faster)
|
||||||
|
PREFIX_BINARY?=1
|
||||||
|
## Enabled to build custom rustc
|
||||||
PREFIX_RUSTC?=0
|
PREFIX_RUSTC?=0
|
||||||
# Filesystem Size in MB
|
## Filesystem size in MB (256 is the default)
|
||||||
FILESYSTEM_SIZE?=256
|
FILESYSTEM_SIZE?=256
|
||||||
|
|
||||||
# Per host variables
|
# Per host variables
|
||||||
UNAME := $(shell uname)
|
UNAME := $(shell uname)
|
||||||
ifeq ($(UNAME),Darwin)
|
ifeq ($(UNAME),Darwin)
|
||||||
ECHO=/bin/echo
|
|
||||||
FUMOUNT=sudo umount
|
FUMOUNT=sudo umount
|
||||||
export NPROC=sysctl -n hw.ncpu
|
export NPROC=sysctl -n hw.ncpu
|
||||||
|
PREFIX_BINARY=0
|
||||||
VB_AUDIO=coreaudio
|
VB_AUDIO=coreaudio
|
||||||
VBM="/Applications/VirtualBox.app/Contents/MacOS/VBoxManage"
|
VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
|
||||||
else
|
else
|
||||||
ECHO=echo
|
|
||||||
FUMOUNT=fusermount -u
|
FUMOUNT=fusermount -u
|
||||||
export NPROC=nproc
|
export NPROC=nproc
|
||||||
VB_AUDIO="pulse"
|
VB_AUDIO=pulse
|
||||||
VBM=VBoxManage
|
VBM=VBoxManage
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Automatic variables
|
# Automatic variables
|
||||||
ROOT=$(PWD)
|
ROOT=$(CURDIR)
|
||||||
export RUST_TARGET_PATH=$(ROOT)/kernel/targets
|
export RUST_TARGET_PATH=$(ROOT)/kernel/targets
|
||||||
export XARGO_HOME=$(ROOT)/build/xargo
|
export XARGO_HOME=$(ROOT)/build/xargo
|
||||||
export XARGO_RUST_SRC=$(ROOT)/rust/src
|
export XARGO_RUST_SRC=$(ROOT)/rust/src
|
||||||
|
|
||||||
# Cross compiler variables
|
## Kernel variables
|
||||||
|
KTARGET=$(ARCH)-unknown-none
|
||||||
|
KBUILD=build/kernel
|
||||||
|
|
||||||
|
## Userspace variables
|
||||||
|
export TARGET=$(ARCH)-unknown-redox
|
||||||
|
BUILD=build/userspace
|
||||||
|
|
||||||
|
## Bootloader variables
|
||||||
|
EFI_TARGET=$(ARCH)-efi-pe
|
||||||
|
|
||||||
|
## Cross compiler variables
|
||||||
AR=$(TARGET)-gcc-ar
|
AR=$(TARGET)-gcc-ar
|
||||||
AS=$(TARGET)-as
|
AS=$(TARGET)-as
|
||||||
CC=$(TARGET)-gcc
|
CC=$(TARGET)-gcc
|
||||||
|
@ -41,18 +55,7 @@ RANLIB=$(TARGET)-gcc-ranlib
|
||||||
READELF=$(TARGET)-readelf
|
READELF=$(TARGET)-readelf
|
||||||
STRIP=$(TARGET)-strip
|
STRIP=$(TARGET)-strip
|
||||||
|
|
||||||
# Rust cross compile variables
|
## Rust cross compile variables
|
||||||
export AR_$(subst -,_,$(TARGET))=$(TARGET)-ar
|
export AR_$(subst -,_,$(TARGET))=$(TARGET)-ar
|
||||||
export CC_$(subst -,_,$(TARGET))=$(TARGET)-gcc
|
export CC_$(subst -,_,$(TARGET))=$(TARGET)-gcc
|
||||||
export CXX_$(subst -,_,$(TARGET))=$(TARGET)-g++
|
export CXX_$(subst -,_,$(TARGET))=$(TARGET)-g++
|
||||||
|
|
||||||
# Bootloader variables
|
|
||||||
EFI_TARGET=$(ARCH)-efi-pe
|
|
||||||
|
|
||||||
# Kernel variables
|
|
||||||
KTARGET=$(ARCH)-unknown-none
|
|
||||||
KBUILD=build/kernel
|
|
||||||
|
|
||||||
# Userspace variables
|
|
||||||
export TARGET=$(ARCH)-unknown-redox
|
|
||||||
BUILD=build/userspace
|
|
||||||
|
|
28
mk/prefix.mk
28
mk/prefix.mk
|
@ -21,8 +21,8 @@ $(PREFIX)/relibc-install: $(ROOT)/relibc | $(PREFIX)/gcc-install
|
||||||
cd "$<" && \
|
cd "$<" && \
|
||||||
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
|
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
|
||||||
export CARGO=xargo && \
|
export CARGO=xargo && \
|
||||||
make -j `nproc` all && \
|
make -j `$(NPROC)` all && \
|
||||||
make -j `nproc` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
|
make -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
|
||||||
touch "$@.partial"
|
touch "$@.partial"
|
||||||
mv "$@.partial" "$@"
|
mv "$@.partial" "$@"
|
||||||
|
|
||||||
|
@ -62,8 +62,8 @@ $(PREFIX)/binutils-install: $(PREFIX)/binutils
|
||||||
--prefix="" \
|
--prefix="" \
|
||||||
--disable-werror \
|
--disable-werror \
|
||||||
&& \
|
&& \
|
||||||
make -j `nproc` all && \
|
make -j `$(NPROC)` all && \
|
||||||
make -j `nproc` install DESTDIR="$(ROOT)/$@.partial"
|
make -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial"
|
||||||
touch "$@.partial"
|
touch "$@.partial"
|
||||||
mv "$@.partial" "$@"
|
mv "$@.partial" "$@"
|
||||||
|
|
||||||
|
@ -93,8 +93,8 @@ $(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install
|
||||||
--enable-languages=c,c++ \
|
--enable-languages=c,c++ \
|
||||||
--without-headers \
|
--without-headers \
|
||||||
&& \
|
&& \
|
||||||
make -j `nproc` all-gcc all-target-libgcc && \
|
make -j `$(NPROC)` all-gcc all-target-libgcc && \
|
||||||
make -j `nproc` install-gcc install-target-libgcc DESTDIR="$(ROOT)/$@.partial"
|
make -j `$(NPROC)` install-gcc install-target-libgcc DESTDIR="$(ROOT)/$@.partial"
|
||||||
touch "$@.partial"
|
touch "$@.partial"
|
||||||
mv "$@.partial" "$@"
|
mv "$@.partial" "$@"
|
||||||
|
|
||||||
|
@ -105,8 +105,8 @@ $(PREFIX)/rust-freestanding-install: $(ROOT)/rust | $(PREFIX)/gcc-freestanding-i
|
||||||
cd "$(PREFIX)/rust-freestanding-build" && \
|
cd "$(PREFIX)/rust-freestanding-build" && \
|
||||||
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
|
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
|
||||||
"$</configure" --prefix="" --disable-docs && \
|
"$</configure" --prefix="" --disable-docs && \
|
||||||
make -j `nproc` && \
|
make -j `$(NPROC)` && \
|
||||||
make -j `nproc` install DESTDIR="$(ROOT)/$@.partial"
|
make -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial"
|
||||||
mkdir -p "$@.partial/lib/rustlib/x86_64-unknown-linux-gnu/bin"
|
mkdir -p "$@.partial/lib/rustlib/x86_64-unknown-linux-gnu/bin"
|
||||||
touch "$@.partial"
|
touch "$@.partial"
|
||||||
mv "$@.partial" "$@"
|
mv "$@.partial" "$@"
|
||||||
|
@ -118,8 +118,8 @@ $(PREFIX)/relibc-freestanding-install: $(ROOT)/relibc | $(PREFIX_FREESTANDING_IN
|
||||||
cd "$<" && \
|
cd "$<" && \
|
||||||
export PATH="$(PREFIX_FREESTANDING_PATH):$$PATH" && \
|
export PATH="$(PREFIX_FREESTANDING_PATH):$$PATH" && \
|
||||||
export CARGO=xargo && \
|
export CARGO=xargo && \
|
||||||
make -j `nproc` all && \
|
make -j `$(NPROC)` all && \
|
||||||
make -j `nproc` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
|
make -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
|
||||||
touch "$@.partial"
|
touch "$@.partial"
|
||||||
mv "$@.partial" "$@"
|
mv "$@.partial" "$@"
|
||||||
|
|
||||||
|
@ -141,8 +141,8 @@ $(PREFIX)/gcc-install: $(PREFIX)/gcc | $(PREFIX)/relibc-freestanding-install
|
||||||
--enable-languages=c,c++ \
|
--enable-languages=c,c++ \
|
||||||
--enable-threads=posix \
|
--enable-threads=posix \
|
||||||
&& \
|
&& \
|
||||||
make -j `nproc` all-gcc all-target-libgcc all-target-libstdc++-v3 && \
|
make -j `$(NPROC)` all-gcc all-target-libgcc all-target-libstdc++-v3 && \
|
||||||
make -j `nproc` install-gcc install-target-libgcc install-target-libstdc++-v3 DESTDIR="$(ROOT)/$@.partial"
|
make -j `$(NPROC)` install-gcc install-target-libgcc install-target-libstdc++-v3 DESTDIR="$(ROOT)/$@.partial"
|
||||||
touch "$@.partial"
|
touch "$@.partial"
|
||||||
mv "$@.partial" "$@"
|
mv "$@.partial" "$@"
|
||||||
|
|
||||||
|
@ -161,8 +161,8 @@ $(PREFIX)/gcc-install.tar.gz: $(PREFIX)/gcc-install
|
||||||
# cd "$(PREFIX)/rust-build" && \
|
# cd "$(PREFIX)/rust-build" && \
|
||||||
# export PATH="$(PREFIX_PATH):$$PATH" && \
|
# export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||||
# "$</configure" --target="$(TARGET)" --prefix="$@" --disable-docs && \
|
# "$</configure" --target="$(TARGET)" --prefix="$@" --disable-docs && \
|
||||||
# make -j `nproc` && \
|
# make -j `$(NPROC)` && \
|
||||||
# make install -j `nproc`
|
# make -j `$(NPROC)` install
|
||||||
# touch "$@"
|
# touch "$@"
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
BUILDDIR = $(abspath $(dir $(firstword $(MAKEFILE_LIST))))/build
|
|
||||||
virtualbox: build/harddrive.bin
|
virtualbox: build/harddrive.bin
|
||||||
echo "Delete VM"
|
echo "Delete VM"
|
||||||
-$(VBM) unregistervm Redox --delete; \
|
-$(VBM) unregistervm Redox --delete; \
|
||||||
|
@ -23,10 +22,10 @@ virtualbox: build/harddrive.bin
|
||||||
$(VBM) modifyvm Redox --nictype1 82540EM; \
|
$(VBM) modifyvm Redox --nictype1 82540EM; \
|
||||||
$(VBM) modifyvm Redox --cableconnected1 on; \
|
$(VBM) modifyvm Redox --cableconnected1 on; \
|
||||||
$(VBM) modifyvm Redox --nictrace1 on; \
|
$(VBM) modifyvm Redox --nictrace1 on; \
|
||||||
$(VBM) modifyvm Redox --nictracefile1 "$(BUILDDIR)/network.pcap"; \
|
$(VBM) modifyvm Redox --nictracefile1 "$(ROOT)/$(BUILD)/network.pcap"; \
|
||||||
fi
|
fi
|
||||||
$(VBM) modifyvm Redox --uart1 0x3F8 4
|
$(VBM) modifyvm Redox --uart1 0x3F8 4
|
||||||
$(VBM) modifyvm Redox --uartmode1 file "$(BUILDDIR)/serial.log"
|
$(VBM) modifyvm Redox --uartmode1 file "$(ROOT)/$(BUILD)/serial.log"
|
||||||
$(VBM) modifyvm Redox --usb off # on
|
$(VBM) modifyvm Redox --usb off # on
|
||||||
$(VBM) modifyvm Redox --keyboard ps2
|
$(VBM) modifyvm Redox --keyboard ps2
|
||||||
$(VBM) modifyvm Redox --mouse ps2
|
$(VBM) modifyvm Redox --mouse ps2
|
||||||
|
|
Loading…
Reference in a new issue