Fix the install-cross-compiler target.

Run sysroot-base-headers so the headers are available when directly invoked.

Use --build as the toolchain currently cannot guess Sortix.

Set V=1 for a verbose binutils build.

Pass --with-sysroot appropriately when doing a native non-cross build.

Pass --with-system-zlib to the gcc build.
This commit is contained in:
Jonas 'Sortie' Termansen 2024-08-23 14:58:52 +02:00
parent e2c726e38d
commit 956d919732

View file

@ -128,29 +128,40 @@ clean-cross-compiler:
rm -rf ports/binutils/binutils.build rm -rf ports/binutils/binutils.build
rm -rf ports/gcc/gcc.build rm -rf ports/gcc/gcc.build
ifeq ($(BUILD),$(TARGET))
CROSS_COMPILER_WITH_SYSROOT=--with-sysroot=/
else
CROSS_COMPILER_WITH_SYSROOT=--with-sysroot="$(SYSROOT)"
endif
.PHONY: install-cross-compiler .PHONY: install-cross-compiler
install-cross-compiler: install-cross-compiler:
$(MAKE) clean-sysroot
$(MAKE) sysroot-base-headers HOST=$(TARGET) PREFIX=
PATH="$(PREFIX)/sbin:$(PREFIX)/bin:$(PATH)" \ PATH="$(PREFIX)/sbin:$(PREFIX)/bin:$(PATH)" \
$(MAKE) extract-ports PACKAGES='binutils gcc' $(MAKE) extract-ports PACKAGES='binutils gcc'
rm -rf ports/binutils/binutils.build rm -rf ports/binutils/binutils.build
mkdir ports/binutils/binutils.build mkdir ports/binutils/binutils.build
cd ports/binutils/binutils.build && \ cd ports/binutils/binutils.build && \
../binutils/configure \ ../binutils/configure \
--build="$(BUILD)" \
--target="$(TARGET)" \ --target="$(TARGET)" \
--prefix="$(PREFIX)" \ --prefix="$(PREFIX)" \
--with-sysroot="$(SYSROOT)" \ $(CROSS_COMPILER_WITH_SYSROOT) \
--disable-werror --disable-werror
$(MAKE) -C ports/binutils/binutils.build V=1 $(MAKE) -C ports/binutils/binutils.build
$(MAKE) -C ports/binutils/binutils.build install V=1 $(MAKE) -C ports/binutils/binutils.build install
rm -rf ports/gcc/gcc.build rm -rf ports/gcc/gcc.build
mkdir ports/gcc/gcc.build mkdir ports/gcc/gcc.build
cd ports/gcc/gcc.build && \ cd ports/gcc/gcc.build && \
PATH="$(PREFIX)/bin:$(PATH)" \ PATH="$(PREFIX)/bin:$(PATH)" \
../gcc/configure \ ../gcc/configure \
--build="$(BUILD)" \
--target="$(TARGET)" \ --target="$(TARGET)" \
--prefix="$(PREFIX)" \ --prefix="$(PREFIX)" \
--with-sysroot="$(SYSROOT)" \ $(CROSS_COMPILER_WITH_SYSROOT) \
--enable-languages=c,c++ --enable-languages=c,c++ \
--with-system-zlib
PATH="$(PREFIX)/bin:$(PATH)" \ PATH="$(PREFIX)/bin:$(PATH)" \
$(MAKE) -C ports/gcc/gcc.build all-gcc all-target-libgcc $(MAKE) -C ports/gcc/gcc.build all-gcc all-target-libgcc
PATH="$(PREFIX)/bin:$(PATH)" \ PATH="$(PREFIX)/bin:$(PATH)" \
@ -162,8 +173,6 @@ clean-cross-toolchain: clean-sysroot clean-build-tools clean-cross-compiler
.PHONY: install-cross-toolchain .PHONY: install-cross-toolchain
install-cross-toolchain: install-build-tools install-cross-toolchain: install-build-tools
$(MAKE) clean-sysroot
$(MAKE) sysroot-base-headers HOST=$(TARGET) PREFIX=
$(MAKE) install-cross-compiler $(MAKE) install-cross-compiler
.PHONY: sysroot-fsh .PHONY: sysroot-fsh