Makefile cleanup, default to binary prefix

This commit is contained in:
Jeremy Soller 2019-03-16 19:50:08 -06:00
parent 7f9a82752d
commit 40d9117b17
No known key found for this signature in database
GPG key ID: E988B49EE78A7FB1
4 changed files with 41 additions and 39 deletions

View file

@ -20,7 +20,7 @@ clean:
rm -rf build
distclean:
make clean
$(MAKE) clean
cd cookbook && ./unfetch.sh
pull:
@ -62,7 +62,7 @@ include mk/virtualbox.mk
# CI image target
ci-img: FORCE
make INSTALLER_FLAGS= \
$(MAKE) INSTALLER_FLAGS= \
build/coreboot.elf.gz \
build/harddrive.bin.gz \
build/livedisk.iso.gz \

View file

@ -1,34 +1,48 @@
# Configuration
## Architecture to build Redox for (aarch64 or x86_64)
ARCH?=x86_64
## Flags to pass to the installer (empty to download binary packages)
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
# Filesystem Size in MB
## Filesystem size in MB (256 is the default)
FILESYSTEM_SIZE?=256
# Per host variables
UNAME := $(shell uname)
ifeq ($(UNAME),Darwin)
ECHO=/bin/echo
FUMOUNT=sudo umount
export NPROC=sysctl -n hw.ncpu
PREFIX_BINARY=0
VB_AUDIO=coreaudio
VBM="/Applications/VirtualBox.app/Contents/MacOS/VBoxManage"
VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
else
ECHO=echo
FUMOUNT=fusermount -u
export NPROC=nproc
VB_AUDIO="pulse"
VB_AUDIO=pulse
VBM=VBoxManage
endif
# Automatic variables
ROOT=$(PWD)
ROOT=$(CURDIR)
export RUST_TARGET_PATH=$(ROOT)/kernel/targets
export XARGO_HOME=$(ROOT)/build/xargo
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
AS=$(TARGET)-as
CC=$(TARGET)-gcc
@ -41,18 +55,7 @@ RANLIB=$(TARGET)-gcc-ranlib
READELF=$(TARGET)-readelf
STRIP=$(TARGET)-strip
# Rust cross compile variables
## Rust cross compile variables
export AR_$(subst -,_,$(TARGET))=$(TARGET)-ar
export CC_$(subst -,_,$(TARGET))=$(TARGET)-gcc
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

View file

@ -21,8 +21,8 @@ $(PREFIX)/relibc-install: $(ROOT)/relibc | $(PREFIX)/gcc-install
cd "$<" && \
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
export CARGO=xargo && \
make -j `nproc` all && \
make -j `nproc` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
make -j `$(NPROC)` all && \
make -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
touch "$@.partial"
mv "$@.partial" "$@"
@ -62,8 +62,8 @@ $(PREFIX)/binutils-install: $(PREFIX)/binutils
--prefix="" \
--disable-werror \
&& \
make -j `nproc` all && \
make -j `nproc` install DESTDIR="$(ROOT)/$@.partial"
make -j `$(NPROC)` all && \
make -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial"
touch "$@.partial"
mv "$@.partial" "$@"
@ -93,8 +93,8 @@ $(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install
--enable-languages=c,c++ \
--without-headers \
&& \
make -j `nproc` all-gcc all-target-libgcc && \
make -j `nproc` install-gcc install-target-libgcc DESTDIR="$(ROOT)/$@.partial"
make -j `$(NPROC)` all-gcc all-target-libgcc && \
make -j `$(NPROC)` install-gcc install-target-libgcc DESTDIR="$(ROOT)/$@.partial"
touch "$@.partial"
mv "$@.partial" "$@"
@ -105,8 +105,8 @@ $(PREFIX)/rust-freestanding-install: $(ROOT)/rust | $(PREFIX)/gcc-freestanding-i
cd "$(PREFIX)/rust-freestanding-build" && \
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
"$</configure" --prefix="" --disable-docs && \
make -j `nproc` && \
make -j `nproc` install DESTDIR="$(ROOT)/$@.partial"
make -j `$(NPROC)` && \
make -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial"
mkdir -p "$@.partial/lib/rustlib/x86_64-unknown-linux-gnu/bin"
touch "$@.partial"
mv "$@.partial" "$@"
@ -118,8 +118,8 @@ $(PREFIX)/relibc-freestanding-install: $(ROOT)/relibc | $(PREFIX_FREESTANDING_IN
cd "$<" && \
export PATH="$(PREFIX_FREESTANDING_PATH):$$PATH" && \
export CARGO=xargo && \
make -j `nproc` all && \
make -j `nproc` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
make -j `$(NPROC)` all && \
make -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
touch "$@.partial"
mv "$@.partial" "$@"
@ -141,8 +141,8 @@ $(PREFIX)/gcc-install: $(PREFIX)/gcc | $(PREFIX)/relibc-freestanding-install
--enable-languages=c,c++ \
--enable-threads=posix \
&& \
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)` all-gcc all-target-libgcc all-target-libstdc++-v3 && \
make -j `$(NPROC)` install-gcc install-target-libgcc install-target-libstdc++-v3 DESTDIR="$(ROOT)/$@.partial"
touch "$@.partial"
mv "$@.partial" "$@"
@ -161,8 +161,8 @@ $(PREFIX)/gcc-install.tar.gz: $(PREFIX)/gcc-install
# cd "$(PREFIX)/rust-build" && \
# export PATH="$(PREFIX_PATH):$$PATH" && \
# "$</configure" --target="$(TARGET)" --prefix="$@" --disable-docs && \
# make -j `nproc` && \
# make install -j `nproc`
# make -j `$(NPROC)` && \
# make -j `$(NPROC)` install
# touch "$@"
endif

View file

@ -1,4 +1,3 @@
BUILDDIR = $(abspath $(dir $(firstword $(MAKEFILE_LIST))))/build
virtualbox: build/harddrive.bin
echo "Delete VM"
-$(VBM) unregistervm Redox --delete; \
@ -23,10 +22,10 @@ virtualbox: build/harddrive.bin
$(VBM) modifyvm Redox --nictype1 82540EM; \
$(VBM) modifyvm Redox --cableconnected1 on; \
$(VBM) modifyvm Redox --nictrace1 on; \
$(VBM) modifyvm Redox --nictracefile1 "$(BUILDDIR)/network.pcap"; \
$(VBM) modifyvm Redox --nictracefile1 "$(ROOT)/$(BUILD)/network.pcap"; \
fi
$(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 --keyboard ps2
$(VBM) modifyvm Redox --mouse ps2