include config/toolchain.conf TOOLCHAIN_PREFIX = $(abspath toolchain/$(TARGET)) export PATH := $(TOOLCHAIN_PREFIX)/bin:$(PATH) toolchain: toolchain_binutils toolchain_gcc BINUTILS_SRC = toolchain/binutils-$(BINUTILS_VERSION) BINUTILS_BUILD = toolchain/binutils-build-$(BINUTILS_VERSION) toolchain_binutils: $(TOOLCHAIN_PREFIX)/bin/i686-elf-ld $(TOOLCHAIN_PREFIX)/bin/i686-elf-ld: $(BINUTILS_SRC).tar.xz cd toolchain && tar -xf binutils-$(BINUTILS_VERSION).tar.xz mkdir $(BINUTILS_BUILD) cd $(BINUTILS_BUILD) && CFLAGS= ASMFLAGS= CC= CXX= LD= ASM= LINKFLAGS= LIBS= ../binutils-$(BINUTILS_VERSION)/configure \ --prefix="$(TOOLCHAIN_PREFIX)" \ --target=$(TARGET) \ --with-sysroot \ --disable-nls \ --disable-werror $(MAKE) -j8 -C $(BINUTILS_BUILD) $(MAKE) -C $(BINUTILS_BUILD) install $(BINUTILS_SRC).tar.xz: mkdir -p toolchain cd toolchain && wget $(BINUTILS_URL) GCC_SRC = $(abspath toolchain/gcc-$(GCC_VERSION)) GCC_BUILD = toolchain/gcc-build-$(GCC_VERSION) toolchain_gcc: $(TOOLCHAIN_PREFIX)/bin/i686-elf-gcc $(TOOLCHAIN_PREFIX)/bin/i686-elf-gcc: $(TOOLCHAIN_PREFIX)/bin/i686-elf-ld $(GCC_SRC).tar.gz cd toolchain && tar -xf $(GCC_SRC).tar.gz cd toolchain/gcc-$(GCC_VERSION) && ./contrib/download_prerequisites mkdir -p $(GCC_BUILD) cd $(GCC_BUILD) && CFLAGS= ASMFLAGS= CC= CXX= LD= ASM= LINKFLAGS= LIBS= ../gcc-$(GCC_VERSION)/configure \ --prefix="$(TOOLCHAIN_PREFIX)" \ --target=$(TARGET) \ --disable-nls \ --enable-languages=c,c++ \ --without-headers $(MAKE) -j8 -C $(GCC_BUILD) all-gcc all-target-libgcc $(MAKE) -C $(GCC_BUILD) install-gcc install-target-libgcc $(GCC_SRC).tar.gz: mkdir -p toolchain cd toolchain && wget $(GCC_URL) # # Clean # clean-toolchain: rm -rf $(GCC_BUILD) $(GCC_SRC) $(BINUTILS_BUILD) $(BINUTILS_SRC) clean-toolchain-all: rm -rf toolchain/* .PHONY: toolchain toolchain_binutils toolchain_gcc clean-toolchain clean-toolchain-all