build: Move to using external cross-detect package
diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml
index 14d06ab8..3046a768 100644
--- a/.github/workflows/check.yml
+++ b/.github/workflows/check.yml
@@ -19,7 +19,7 @@ jobs:
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Build the bootloader (LLVM)
- run: ./bootstrap && ./configure TOOLCHAIN=llvm --enable-werror --enable-all && make all && make maintainer-clean
+ run: ./bootstrap && ./configure CROSS_TOOLCHAIN=llvm --enable-werror --enable-all && make all && make maintainer-clean
- name: Build the bootloader (GCC)
- run: ./bootstrap && ./configure LIMINE_CC=gcc LIMINE_LD=ld LIMINE_OBJCOPY=objcopy LIMINE_OBJDUMP=objdump LIMINE_READELF=readelf --enable-werror --enable-all && make all && make maintainer-clean
+ run: ./bootstrap && ./configure CROSS_CC=gcc CROSS_LD=ld CROSS_OBJCOPY=objcopy CROSS_OBJDUMP=objdump CROSS_READELF=readelf --enable-werror --enable-all && make all && make maintainer-clean
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 476582e1..4e27deb7 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -36,7 +36,7 @@ jobs:
run: mkdir -p build
- name: Configure
- run: cd build && ../configure --enable-all TOOLCHAIN=llvm
+ run: cd build && ../configure --enable-all CROSS_TOOLCHAIN=llvm
- name: Build the bootloader
run: make -C build
diff --git a/.gitignore b/.gitignore
index 5ab8e676..16c809c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,7 @@
/bin
/build
/toolchain
-/toolchain-files
+/cross-files
/limine-efi
/freestanding-headers
/make_toolchain.sh
@@ -26,10 +26,7 @@
/stivale
/test_image
!/common/font.bin
-/toolchain-detect/configure
-/toolchain-detect/configure.ac.save
-/toolchain-detect/*~
-/toolchain-detect/autom4te.cache
+/cross-detect
/configure
/configure.ac.save
/build-aux
diff --git a/GNUmakefile.in b/GNUmakefile.in
index c775d63b..c6aa7f0e 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -52,23 +52,23 @@ export CFLAGS
LDFLAGS ?= @LDFLAGS@
export LDFLAGS
-LIMINE_CFLAGS ?= @LIMINE_CFLAGS@
-export LIMINE_CFLAGS
-LIMINE_LDFLAGS ?= @LIMINE_LDFLAGS@
-export LIMINE_LDFLAGS
-
-TOOLCHAIN ?= @TOOLCHAIN@
-export TOOLCHAIN
-LIMINE_CC ?= @LIMINE_CC@
-export LIMINE_CC
-LIMINE_LD ?= @LIMINE_LD@
-export LIMINE_LD
-LIMINE_OBJCOPY ?= @LIMINE_OBJCOPY@
-export LIMINE_OBJCOPY
-LIMINE_OBJDUMP ?= @LIMINE_OBJDUMP@
-export LIMINE_OBJDUMP
-LIMINE_READELF ?= @LIMINE_READELF@
-export LIMINE_READELF
+CROSS_CFLAGS ?= @CROSS_CFLAGS@
+export CROSS_CFLAGS
+CROSS_LDFLAGS ?= @CROSS_LDFLAGS@
+export CROSS_LDFLAGS
+
+CROSS_TOOLCHAIN ?= @CROSS_TOOLCHAIN@
+export CROSS_TOOLCHAIN
+CROSS_CC ?= @CROSS_CC@
+export CROSS_CC
+CROSS_LD ?= @CROSS_LD@
+export CROSS_LD
+CROSS_OBJCOPY ?= @CROSS_OBJCOPY@
+export CROSS_OBJCOPY
+CROSS_OBJDUMP ?= @CROSS_OBJDUMP@
+export CROSS_OBJDUMP
+CROSS_READELF ?= @CROSS_READELF@
+export CROSS_READELF
override LIMINE_VERSION := @PACKAGE_VERSION@
@@ -193,11 +193,13 @@ dist:
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/limine-efi/.git"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/limine-efi/.gitignore"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/stivale/.git"
+ rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/cross-detect/.git"
+ rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/cross-detect/.gitignore"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/.git"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/.gitignore"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/.github"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/autom4te.cache"
- rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/toolchain-detect/autom4te.cache"
+ rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/cross-detect/autom4te.cache"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/test"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/screenshot.png"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/bochsrc"
@@ -208,17 +210,16 @@ dist:
.PHONY: distclean
distclean: clean
- rm -rf toolchain ovmf* config.log config.status GNUmakefile config.h toolchain-files
+ rm -rf toolchain ovmf* config.log config.status GNUmakefile config.h cross-files
.PHONY: maintainer-clean
maintainer-clean: distclean
- cd '$(call SHESCAPE,$(SRCDIR))' && rm -rf freestanding-headers stivale libgcc-binaries make_toolchain.sh limine-efi configure build-aux *'~' autom4te.cache *.tar.xz *.tar.gz
- cd '$(call SHESCAPE,$(SRCDIR))'/toolchain-detect && rm -rf configure *'~' autom4te.cache
+ cd '$(call SHESCAPE,$(SRCDIR))' && rm -rf freestanding-headers stivale libgcc-binaries make_toolchain.sh limine-efi cross-detect configure build-aux *'~' autom4te.cache *.tar.xz *.tar.gz
.PHONY: common-uefi-x86-64
common-uefi-x86-64:
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' all \
- TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/x86_64-toolchain.mk' \
+ CROSS_FILE='$(call SHESCAPE,$(BUILDDIR))/cross-files/x86_64-toolchain.mk' \
TARGET=uefi-x86-64 \
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64'
@@ -229,7 +230,7 @@ common-uefi-x86-64-clean:
.PHONY: common-uefi-ia32
common-uefi-ia32: $(call MKESCAPE,$(SRCDIR))/stivale
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' all \
- TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/i686-toolchain.mk' \
+ CROSS_FILE='$(call SHESCAPE,$(BUILDDIR))/cross-files/i686-toolchain.mk' \
TARGET=uefi-ia32 \
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32'
@@ -240,7 +241,7 @@ common-uefi-ia32-clean:
.PHONY: common-bios
common-bios: $(call MKESCAPE,$(SRCDIR))/stivale
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' all \
- TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/i686-toolchain.mk' \
+ CROSS_FILE='$(call SHESCAPE,$(BUILDDIR))/cross-files/i686-toolchain.mk' \
TARGET=bios \
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-bios'
@@ -251,7 +252,7 @@ common-bios-clean:
.PHONY: decompressor
decompressor:
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/decompressor' all \
- TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/i686-toolchain.mk' \
+ CROSS_FILE='$(call SHESCAPE,$(BUILDDIR))/cross-files/i686-toolchain.mk' \
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/decompressor-build'
.PHONY: decompressor-clean
diff --git a/bootstrap b/bootstrap
index 382fc67c..e833176d 100755
--- a/bootstrap
+++ b/bootstrap
@@ -7,6 +7,7 @@ test -z "$srcdir" && srcdir=.
cd "$srcdir"
+[ -d cross-detect ] || git clone https://github.com/mintsuki/cross-detect.git
[ -d freestanding-headers ] || git clone https://github.com/mintsuki/freestanding-headers.git
[ -d stivale ] || git clone https://github.com/stivale/stivale.git
[ -d libgcc-binaries ] || git clone https://github.com/mintsuki/libgcc-binaries.git
diff --git a/common/GNUmakefile b/common/GNUmakefile
index d23ae3cb..16e96534 100644
--- a/common/GNUmakefile
+++ b/common/GNUmakefile
@@ -1,4 +1,4 @@
-include $(TOOLCHAIN_FILE)
+include $(CROSS_FILE)
TARGET ?=
BUILDDIR ?=
@@ -28,7 +28,7 @@ endif
COM_OUTPUT ?= false
E9_OUTPUT ?= false
-override S2CFLAGS := $(LIMINE_CFLAGS) -Os
+override S2CFLAGS := $(CROSS_CFLAGS) -Os
override INTERNAL_CFLAGS := \
-g \
@@ -181,11 +181,11 @@ $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.bin: sys/smp_trampoline.real
$(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o: $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.bin
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
cd '$(call SHESCAPE,$(BUILDDIR))/sys' && \
- $(LIMINE_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) smp_trampoline.bin '$(call SHESCAPE,$@)'
+ $(CROSS_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) smp_trampoline.bin '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/font.o: font.bin
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- $(LIMINE_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) font.bin '$(call SHESCAPE,$@)'
+ $(CROSS_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) font.bin '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/tinf-copied: ../tinf/*
rm -rf '$(call SHESCAPE,$(BUILDDIR))/tinf'
@@ -195,11 +195,11 @@ $(call MKESCAPE,$(BUILDDIR))/tinf-copied: ../tinf/*
$(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o: $(call MKESCAPE,$(BUILDDIR))/tinf-copied
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- $(LIMINE_CC) $(LIMINE_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(@:.o=.c))' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(@:.o=.c))' -o '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o: $(call MKESCAPE,$(BUILDDIR))/tinf-copied
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- $(LIMINE_CC) $(LIMINE_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(@:.o=.c))' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(@:.o=.c))' -o '$(call SHESCAPE,$@)'
ifeq ($(TARGET), bios)
@@ -207,62 +207,62 @@ $(call MKESCAPE,$(BUILDDIR))/stage2.bin.gz: $(call MKESCAPE,$(BUILDDIR))/stage2.
gzip -n -9 < '$(call SHESCAPE,$<)' > '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/stage2.bin: $(call MKESCAPE,$(BUILDDIR))/limine.sys
- dd if='$(call SHESCAPE,$<)' bs=$$(( 0x$$("$(LIMINE_READELF)" -S '$(call SHESCAPE,$(BUILDDIR))/limine.elf' | $(GREP) .text.stage3 | $(SED) 's/^.*] //' | $(AWK) '{print $$3}' | $(SED) 's/^0*//') - 0x8000 )) count=1 of='$(call SHESCAPE,$@)' 2>/dev/null
+ dd if='$(call SHESCAPE,$<)' bs=$$(( 0x$$("$(CROSS_READELF)" -S '$(call SHESCAPE,$(BUILDDIR))/limine.elf' | $(GREP) .text.stage3 | $(SED) 's/^.*] //' | $(AWK) '{print $$3}' | $(SED) 's/^0*//') - 0x8000 )) count=1 of='$(call SHESCAPE,$@)' 2>/dev/null
$(call MKESCAPE,$(BUILDDIR))/stage2.map.o: $(call MKESCAPE,$(BUILDDIR))/limine_stage2only.elf
cd '$(call SHESCAPE,$(BUILDDIR))' && \
'$(call SHESCAPE,$(SRCDIR))/gensyms.sh' '$(call SHESCAPE,$<)' stage2 32 '\.text'
- $(LIMINE_CC) $(LIMINE_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(BUILDDIR))/stage2.map.S' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(BUILDDIR))/stage2.map.S' -o '$(call SHESCAPE,$@)'
rm -f '$(call SHESCAPE,$(BUILDDIR))/stage2.map.S' '$(call SHESCAPE,$(BUILDDIR))/stage2.map.d'
$(call MKESCAPE,$(BUILDDIR))/full.map.o: $(call MKESCAPE,$(BUILDDIR))/limine_nomap.elf
cd '$(call SHESCAPE,$(BUILDDIR))' && \
'$(call SHESCAPE,$(SRCDIR))/gensyms.sh' '$(call SHESCAPE,$<)' full 32 '\.text'
- $(LIMINE_CC) $(LIMINE_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(BUILDDIR))/full.map.S' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(BUILDDIR))/full.map.S' -o '$(call SHESCAPE,$@)'
rm -f '$(call SHESCAPE,$(BUILDDIR))/full.map.S' '$(call SHESCAPE,$(BUILDDIR))/full.map.d'
$(call MKESCAPE,$(BUILDDIR))/limine.sys: $(call MKESCAPE,$(BUILDDIR))/limine.elf
- $(LIMINE_OBJCOPY) -O binary '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)'
+ $(CROSS_OBJCOPY) -O binary '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/linker_stage2only.ld: linker_bios.ld.in
mkdir -p '$(call SHESCAPE,$(BUILDDIR))'
- $(LIMINE_CC) -x c -E -P -undef -DLINKER_STAGE2ONLY linker_bios.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker_stage2only.ld'
+ $(CROSS_CC) -x c -E -P -undef -DLINKER_STAGE2ONLY linker_bios.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker_stage2only.ld'
$(call MKESCAPE,$(BUILDDIR))/limine_stage2only.elf: $(OBJ) ../libgcc-binaries/libgcc-i686.a
$(MAKE) '$(call SHESCAPE,$(BUILDDIR))/linker_stage2only.ld'
- $(LIMINE_LD) '$(call OBJESCAPE,$^)' $(LIMINE_LDFLAGS) $(INTERNAL_LDFLAGS) -T'$(call SHESCAPE,$(BUILDDIR))/linker_stage2only.ld' -o '$(call SHESCAPE,$@)' || \
+ $(CROSS_LD) '$(call OBJESCAPE,$^)' $(CROSS_LDFLAGS) $(INTERNAL_LDFLAGS) -T'$(call SHESCAPE,$(BUILDDIR))/linker_stage2only.ld' -o '$(call SHESCAPE,$@)' || \
( echo "This error may mean that stage 2 was trying to use stage 3 symbols before loading stage 3" && \
false )
$(call MKESCAPE,$(BUILDDIR))/linker_nomap.ld: linker_bios.ld.in
mkdir -p '$(call SHESCAPE,$(BUILDDIR))'
- $(LIMINE_CC) -x c -E -P -undef -DLINKER_NOMAP linker_bios.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld'
+ $(CROSS_CC) -x c -E -P -undef -DLINKER_NOMAP linker_bios.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld'
$(call MKESCAPE,$(BUILDDIR))/limine_nomap.elf: $(OBJ) ../libgcc-binaries/libgcc-i686.a $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o $(call MKESCAPE,$(BUILDDIR))/stage2.map.o
$(MAKE) '$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld'
- $(LIMINE_LD) '$(call OBJESCAPE,$^)' $(LIMINE_LDFLAGS) $(INTERNAL_LDFLAGS) -T'$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld' -o '$(call SHESCAPE,$@)'
- $(LIMINE_OBJCOPY) -O binary --only-section=.note.gnu.build-id '$(call SHESCAPE,$@)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s2.bin'
+ $(CROSS_LD) '$(call OBJESCAPE,$^)' $(CROSS_LDFLAGS) $(INTERNAL_LDFLAGS) -T'$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld' -o '$(call SHESCAPE,$@)'
+ $(CROSS_OBJCOPY) -O binary --only-section=.note.gnu.build-id '$(call SHESCAPE,$@)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s2.bin'
cd '$(call SHESCAPE,$(BUILDDIR))' && \
- $(LIMINE_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) build-id.s2.bin build-id.s2.o
- $(LIMINE_OBJCOPY) -O binary --only-section=.note.gnu.build-id '$(call SHESCAPE,$@)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s3.bin'
+ $(CROSS_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) build-id.s2.bin build-id.s2.o
+ $(CROSS_OBJCOPY) -O binary --only-section=.note.gnu.build-id '$(call SHESCAPE,$@)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s3.bin'
cd '$(call SHESCAPE,$(BUILDDIR))' && \
- $(LIMINE_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) build-id.s3.bin build-id.s3.o
- $(LIMINE_LD) '$(call OBJESCAPE,$^)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s2.o' '$(call SHESCAPE,$(BUILDDIR))/build-id.s3.o' $(LIMINE_LDFLAGS) $(INTERNAL_LDFLAGS) -T'$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld' -o '$(call SHESCAPE,$@)'
+ $(CROSS_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) build-id.s3.bin build-id.s3.o
+ $(CROSS_LD) '$(call OBJESCAPE,$^)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s2.o' '$(call SHESCAPE,$(BUILDDIR))/build-id.s3.o' $(CROSS_LDFLAGS) $(INTERNAL_LDFLAGS) -T'$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld' -o '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/linker.ld: linker_bios.ld.in
mkdir -p '$(call SHESCAPE,$(BUILDDIR))'
- $(LIMINE_CC) -x c -E -P -undef linker_bios.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker.ld'
+ $(CROSS_CC) -x c -E -P -undef linker_bios.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker.ld'
$(call MKESCAPE,$(BUILDDIR))/limine.elf: $(OBJ) ../libgcc-binaries/libgcc-i686.a $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o $(call MKESCAPE,$(BUILDDIR))/stage2.map.o $(call MKESCAPE,$(BUILDDIR))/full.map.o
$(MAKE) '$(call SHESCAPE,$(BUILDDIR))/linker.ld'
- $(LIMINE_LD) '$(call OBJESCAPE,$^)' $(LIMINE_LDFLAGS) $(INTERNAL_LDFLAGS) -T'$(call SHESCAPE,$(BUILDDIR))/linker.ld' -o '$(call SHESCAPE,$@)'
- $(LIMINE_OBJCOPY) -O binary --only-section=.note.gnu.build-id '$(call SHESCAPE,$@)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s2.bin'
+ $(CROSS_LD) '$(call OBJESCAPE,$^)' $(CROSS_LDFLAGS) $(INTERNAL_LDFLAGS) -T'$(call SHESCAPE,$(BUILDDIR))/linker.ld' -o '$(call SHESCAPE,$@)'
+ $(CROSS_OBJCOPY) -O binary --only-section=.note.gnu.build-id '$(call SHESCAPE,$@)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s2.bin'
cd '$(call SHESCAPE,$(BUILDDIR))' && \
- $(LIMINE_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) build-id.s2.bin build-id.s2.o
- $(LIMINE_OBJCOPY) -O binary --only-section=.note.gnu.build-id '$(call SHESCAPE,$@)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s3.bin'
+ $(CROSS_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) build-id.s2.bin build-id.s2.o
+ $(CROSS_OBJCOPY) -O binary --only-section=.note.gnu.build-id '$(call SHESCAPE,$@)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s3.bin'
cd '$(call SHESCAPE,$(BUILDDIR))' && \
- $(LIMINE_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) build-id.s3.bin build-id.s3.o
- $(LIMINE_LD) '$(call OBJESCAPE,$^)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s2.o' '$(call SHESCAPE,$(BUILDDIR))/build-id.s3.o' $(LIMINE_LDFLAGS) $(INTERNAL_LDFLAGS) -T'$(call SHESCAPE,$(BUILDDIR))/linker.ld' -o '$(call SHESCAPE,$@)'
+ $(CROSS_OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) build-id.s3.bin build-id.s3.o
+ $(CROSS_LD) '$(call OBJESCAPE,$^)' '$(call SHESCAPE,$(BUILDDIR))/build-id.s2.o' '$(call SHESCAPE,$(BUILDDIR))/build-id.s3.o' $(CROSS_LDFLAGS) $(INTERNAL_LDFLAGS) -T'$(call SHESCAPE,$(BUILDDIR))/linker.ld' -o '$(call SHESCAPE,$@)'
endif
@@ -275,11 +275,11 @@ ifeq ($(TARGET), uefi-x86-64)
$(call MKESCAPE,$(BUILDDIR))/full.map.o: $(call MKESCAPE,$(BUILDDIR))/limine_nomap.elf
cd '$(call SHESCAPE,$(BUILDDIR))' && \
'$(call SHESCAPE,$(SRCDIR))/gensyms.sh' '$(call SHESCAPE,$<)' full 64 '\.text'
- $(LIMINE_CC) $(LIMINE_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(BUILDDIR))/full.map.S' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(BUILDDIR))/full.map.S' -o '$(call SHESCAPE,$@)'
rm -f '$(call SHESCAPE,$(BUILDDIR))/full.map.S' '$(call SHESCAPE,$(BUILDDIR))/full.map.d'
$(call MKESCAPE,$(BUILDDIR))/BOOTX64.EFI: $(call MKESCAPE,$(BUILDDIR))/limine.elf
- $(LIMINE_OBJCOPY) -O binary '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)'
+ $(CROSS_OBJCOPY) -O binary '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/crt0-efi-x86_64.o: limine-efi
true
@@ -291,30 +291,30 @@ $(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/reloc_x86_64.o: limine-efi
limine-efi: $(call MKESCAPE,$(BUILDDIR))/limine-efi
unset CPPFLAGS; \
$(MAKE) -C '$(call SHESCAPE,$(BUILDDIR))/limine-efi/gnuefi' \
- CC="$(LIMINE_CC) -m64 -march=x86-64 -mtune=generic" \
+ CC="$(CROSS_CC) -m64 -march=x86-64 -mtune=generic" \
CFLAGS='-nostdinc' \
INCDIR='-I$(call SHESCAPE,$(SRCDIR))/../freestanding-headers' \
ARCH=x86_64
$(call MKESCAPE,$(BUILDDIR))/linker_nomap.ld: linker_uefi_x86_64.ld.in
mkdir -p '$(call SHESCAPE,$(BUILDDIR))'
- $(LIMINE_CC) -x c -E -P -undef -DLINKER_NOMAP linker_uefi_x86_64.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld'
+ $(CROSS_CC) -x c -E -P -undef -DLINKER_NOMAP linker_uefi_x86_64.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld'
$(call MKESCAPE,$(BUILDDIR))/limine_nomap.elf: $(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/crt0-efi-x86_64.o $(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/reloc_x86_64.o $(OBJ) ../libgcc-binaries/libgcc-x86_64-no-red-zone.a $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o
$(MAKE) '$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld'
- $(LIMINE_LD) \
+ $(CROSS_LD) \
-T'$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld' \
- '$(call OBJESCAPE,$^)' $(LIMINE_LDFLAGS) $(INTERNAL_LDFLAGS) -o '$(call SHESCAPE,$@)'
+ '$(call OBJESCAPE,$^)' $(CROSS_LDFLAGS) $(INTERNAL_LDFLAGS) -o '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/linker.ld: linker_uefi_x86_64.ld.in
mkdir -p '$(call SHESCAPE,$(BUILDDIR))'
- $(LIMINE_CC) -x c -E -P -undef linker_uefi_x86_64.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker.ld'
+ $(CROSS_CC) -x c -E -P -undef linker_uefi_x86_64.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker.ld'
$(call MKESCAPE,$(BUILDDIR))/limine.elf: $(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/crt0-efi-x86_64.o $(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/reloc_x86_64.o $(OBJ) ../libgcc-binaries/libgcc-x86_64-no-red-zone.a $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o $(call MKESCAPE,$(BUILDDIR))/full.map.o
$(MAKE) '$(call SHESCAPE,$(BUILDDIR))/linker.ld'
- $(LIMINE_LD) \
+ $(CROSS_LD) \
-T'$(call SHESCAPE,$(BUILDDIR))/linker.ld' \
- '$(call OBJESCAPE,$^)' $(LIMINE_LDFLAGS) $(INTERNAL_LDFLAGS) -o '$(call SHESCAPE,$@)'
+ '$(call OBJESCAPE,$^)' $(CROSS_LDFLAGS) $(INTERNAL_LDFLAGS) -o '$(call SHESCAPE,$@)'
endif
@@ -323,11 +323,11 @@ ifeq ($(TARGET), uefi-ia32)
$(call MKESCAPE,$(BUILDDIR))/full.map.o: $(call MKESCAPE,$(BUILDDIR))/limine_nomap.elf
cd '$(call SHESCAPE,$(BUILDDIR))' && \
'$(call SHESCAPE,$(SRCDIR))/gensyms.sh' '$(call SHESCAPE,$<)' full 32 '\.text'
- $(LIMINE_CC) $(LIMINE_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(BUILDDIR))/full.map.S' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(BUILDDIR))/full.map.S' -o '$(call SHESCAPE,$@)'
rm -f '$(call SHESCAPE,$(BUILDDIR))/full.map.S' '$(call SHESCAPE,$(BUILDDIR))/full.map.d'
$(call MKESCAPE,$(BUILDDIR))/BOOTIA32.EFI: $(call MKESCAPE,$(BUILDDIR))/limine.elf
- $(LIMINE_OBJCOPY) -O binary '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)'
+ $(CROSS_OBJCOPY) -O binary '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/crt0-efi-ia32.o: limine-efi
true
@@ -339,30 +339,30 @@ $(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/reloc_ia32.o: limine-efi
limine-efi: $(call MKESCAPE,$(BUILDDIR))/limine-efi
unset CPPFLAGS; \
$(MAKE) -C '$(call SHESCAPE,$(BUILDDIR))/limine-efi/gnuefi' \
- CC="$(LIMINE_CC) -m32 -march=i686 -mtune=generic" \
+ CC="$(CROSS_CC) -m32 -march=i686 -mtune=generic" \
CFLAGS='-nostdinc' \
INCDIR='-I$(call SHESCAPE,$(SRCDIR))/../freestanding-headers' \
ARCH=ia32
$(call MKESCAPE,$(BUILDDIR))/linker_nomap.ld: linker_uefi_ia32.ld.in
mkdir -p '$(call SHESCAPE,$(BUILDDIR))'
- $(LIMINE_CC) -x c -E -P -undef -DLINKER_NOMAP linker_uefi_ia32.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld'
+ $(CROSS_CC) -x c -E -P -undef -DLINKER_NOMAP linker_uefi_ia32.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld'
$(call MKESCAPE,$(BUILDDIR))/limine_nomap.elf: $(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/crt0-efi-ia32.o $(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/reloc_ia32.o $(OBJ) ../libgcc-binaries/libgcc-i686.a $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o
$(MAKE) '$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld'
- $(LIMINE_LD) \
+ $(CROSS_LD) \
-T'$(call SHESCAPE,$(BUILDDIR))/linker_nomap.ld' \
- '$(call OBJESCAPE,$^)' $(LIMINE_LDFLAGS) $(INTERNAL_LDFLAGS) -o '$(call SHESCAPE,$@)'
+ '$(call OBJESCAPE,$^)' $(CROSS_LDFLAGS) $(INTERNAL_LDFLAGS) -o '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/linker.ld: linker_uefi_ia32.ld.in
mkdir -p '$(call SHESCAPE,$(BUILDDIR))'
- $(LIMINE_CC) -x c -E -P -undef linker_uefi_ia32.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker.ld'
+ $(CROSS_CC) -x c -E -P -undef linker_uefi_ia32.ld.in -o '$(call SHESCAPE,$(BUILDDIR))/linker.ld'
$(call MKESCAPE,$(BUILDDIR))/limine.elf: $(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/crt0-efi-ia32.o $(call MKESCAPE,$(BUILDDIR))/limine-efi/gnuefi/reloc_ia32.o $(OBJ) ../libgcc-binaries/libgcc-i686.a $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o $(call MKESCAPE,$(BUILDDIR))/full.map.o
$(MAKE) '$(call SHESCAPE,$(BUILDDIR))/linker.ld'
- $(LIMINE_LD) \
+ $(CROSS_LD) \
-T'$(call SHESCAPE,$(BUILDDIR))/linker.ld' \
- '$(call OBJESCAPE,$^)' $(LIMINE_LDFLAGS) $(INTERNAL_LDFLAGS) -o '$(call SHESCAPE,$@)'
+ '$(call OBJESCAPE,$^)' $(CROSS_LDFLAGS) $(INTERNAL_LDFLAGS) -o '$(call SHESCAPE,$@)'
endif
@@ -371,19 +371,19 @@ endif
ifeq ($(TARGET), uefi-x86-64)
$(call MKESCAPE,$(BUILDDIR))/%.o: %.c $(call MKESCAPE,$(BUILDDIR))/tinf-copied $(call MKESCAPE,$(BUILDDIR))/limine-efi
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- $(LIMINE_CC) $(LIMINE_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@)'
endif
ifeq ($(TARGET), uefi-ia32)
$(call MKESCAPE,$(BUILDDIR))/%.o: %.c $(call MKESCAPE,$(BUILDDIR))/tinf-copied $(call MKESCAPE,$(BUILDDIR))/limine-efi
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- $(LIMINE_CC) $(LIMINE_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@)'
endif
ifeq ($(TARGET), bios)
$(call MKESCAPE,$(BUILDDIR))/%.o: %.c $(call MKESCAPE,$(BUILDDIR))/tinf-copied
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- $(LIMINE_CC) $(LIMINE_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@)'
endif
-include $(HEADER_DEPS)
@@ -391,7 +391,7 @@ endif
ifeq ($(TARGET), bios)
$(call MKESCAPE,$(BUILDDIR))/%.s2.o: %.s2.c
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- $(LIMINE_CC) $(S2CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(S2CFLAGS) $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@)'
endif
-include $(HEADER_DEPS)
@@ -399,8 +399,8 @@ endif
ifeq ($(TARGET), uefi-x86-64)
$(call MKESCAPE,$(BUILDDIR))/%.32.o: %.32.c $(call MKESCAPE,$(BUILDDIR))/limine-efi
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- $(LIMINE_CC) $(LIMINE_CFLAGS) $(INTERNAL_CFLAGS32) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@).32'
- $(LIMINE_OBJCOPY) -I elf32-i386 -O elf64-x86-64 '$(call SHESCAPE,$@).32' '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) $(INTERNAL_CFLAGS32) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@).32'
+ $(CROSS_OBJCOPY) -I elf32-i386 -O elf64-x86-64 '$(call SHESCAPE,$@).32' '$(call SHESCAPE,$@)'
rm '$(call SHESCAPE,$@).32'
endif
diff --git a/common/gensyms.sh b/common/gensyms.sh
index d79a710a..55ec0f69 100755
--- a/common/gensyms.sh
+++ b/common/gensyms.sh
@@ -28,7 +28,7 @@ TMP4="$(mktemp)"
trap "rm -f '$TMP1' '$TMP2' '$TMP3' '$TMP4'; trap - EXIT; exit" EXIT INT TERM QUIT HUP
-"$LIMINE_OBJDUMP" -t "$1" | ( "$SED" '/[[:<:]]d[[:>:]]/d' 2>/dev/null || "$SED" '/\bd\b/d' ) | sort > "$TMP1"
+"$CROSS_OBJDUMP" -t "$1" | ( "$SED" '/[[:<:]]d[[:>:]]/d' 2>/dev/null || "$SED" '/\bd\b/d' ) | sort > "$TMP1"
"$GREP" "$4" < "$TMP1" | cut -d' ' -f1 > "$TMP2"
"$GREP" "$4" < "$TMP1" | "$AWK" 'NF{ print $NF }' > "$TMP3"
diff --git a/configure.ac b/configure.ac
index 908df8bc..3b339971 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_INIT([Limine], m4_esyscmd([./version.sh]), [https://github.com/limine-bootloa
AC_PREREQ(2.69)
AC_CONFIG_AUX_DIR([build-aux])
-AC_CONFIG_SUBDIRS([toolchain-detect])
+AC_CONFIG_SUBDIRS([cross-detect])
SRCDIR="$(cd "$srcdir" && pwd -P)"
BUILDDIR="$(pwd -P)"
@@ -47,7 +47,7 @@ if ! test "x$GZIP_FOUND" = "xyes"; then
AC_MSG_ERROR([gzip not found, please install gzip before configuring])
fi
-rm -rf "$BUILDDIR/toolchain-files"
+rm -rf "$BUILDDIR/cross-files"
BUILD_ALL="no"
@@ -65,9 +65,9 @@ if test "x$BUILD_BIOS" = "xno"; then
BUILD_BIOS=""
else
(
- mkdir -p "$BUILDDIR/toolchain-files"
- cd "$BUILDDIR/toolchain-files"
- ARCHITECTURE=i686 "$SRCDIR/toolchain-detect/configure"
+ mkdir -p "$BUILDDIR/cross-files"
+ cd "$BUILDDIR/cross-files"
+ TRIPLET=i686-elf "$SRCDIR/cross-detect/configure"
) || exit 1
BUILD_BIOS="limine-bios"
fi
@@ -108,9 +108,9 @@ if test "x$BUILD_UEFI_IA32" = "xno"; then
BUILD_UEFI_IA32=""
else
(
- mkdir -p "$BUILDDIR/toolchain-files"
- cd "$BUILDDIR/toolchain-files"
- ARCHITECTURE=i686 "$SRCDIR/toolchain-detect/configure"
+ mkdir -p "$BUILDDIR/cross-files"
+ cd "$BUILDDIR/cross-files"
+ TRIPLET=i686-elf "$SRCDIR/cross-detect/configure"
) || exit 1
BUILD_UEFI_IA32="limine-uefi-ia32"
fi
@@ -127,9 +127,9 @@ if test "x$BUILD_UEFI_X86_64" = "xno"; then
BUILD_UEFI_X86_64=""
else
(
- mkdir -p "$BUILDDIR/toolchain-files"
- cd "$BUILDDIR/toolchain-files"
- ARCHITECTURE=x86_64 "$SRCDIR/toolchain-detect/configure"
+ mkdir -p "$BUILDDIR/cross-files"
+ cd "$BUILDDIR/cross-files"
+ TRIPLET=x86_64-elf "$SRCDIR/cross-detect/configure"
) || exit 1
BUILD_UEFI_X86_64="limine-uefi-x86-64"
fi
@@ -155,20 +155,20 @@ fi
AC_SUBST(BUILD_CD_EFI, [$BUILD_CD_EFI])
-AC_ARG_VAR(TOOLCHAIN, [alternative toolchain prefix (or 'llvm')])
-AC_ARG_VAR(LIMINE_CC, [C compiler command for Limine])
-AC_ARG_VAR(LIMINE_LD, [linker command for Limine])
-AC_ARG_VAR(LIMINE_OBJCOPY, [objcopy command for Limine])
-AC_ARG_VAR(LIMINE_OBJDUMP, [objdump command for Limine])
-AC_ARG_VAR(LIMINE_READELF, [readelf command for Limine])
+AC_ARG_VAR(CROSS_TOOLCHAIN, [alternative toolchain prefix (or 'llvm')])
+AC_ARG_VAR(CROSS_CC, [C compiler command for Limine])
+AC_ARG_VAR(CROSS_LD, [linker command for Limine])
+AC_ARG_VAR(CROSS_OBJCOPY, [objcopy command for Limine])
+AC_ARG_VAR(CROSS_OBJDUMP, [objdump command for Limine])
+AC_ARG_VAR(CROSS_READELF, [readelf command for Limine])
-m4_define([DEFAULT_LIMINE_CFLAGS], [-O3 -pipe -Wall -Wextra])
-AC_ARG_VAR(LIMINE_CFLAGS, [C flags for Limine @<:@default: ]DEFAULT_LIMINE_CFLAGS[@:>@])
-test "x$LIMINE_CFLAGS" = "x" && LIMINE_CFLAGS="DEFAULT_LIMINE_CFLAGS"
+m4_define([DEFAULT_CROSS_CFLAGS], [-O3 -pipe -Wall -Wextra])
+AC_ARG_VAR(CROSS_CFLAGS, [C flags for Limine @<:@default: ]DEFAULT_CROSS_CFLAGS[@:>@])
+test "x$CROSS_CFLAGS" = "x" && CROSS_CFLAGS="DEFAULT_CROSS_CFLAGS"
-m4_define([DEFAULT_LIMINE_LDFLAGS], [])
-AC_ARG_VAR(LIMINE_LDFLAGS, [Linker flags for Limine @<:@default: ]DEFAULT_LIMINE_LDFLAGS[@:>@])
-test "x$LIMINE_LDFLAGS" = "x" && LIMINE_LDFLAGS="DEFAULT_LIMINE_LDFLAGS"
+m4_define([DEFAULT_CROSS_LDFLAGS], [])
+AC_ARG_VAR(CROSS_LDFLAGS, [Linker flags for Limine @<:@default: ]DEFAULT_CROSS_LDFLAGS[@:>@])
+test "x$CROSS_LDFLAGS" = "x" && CROSS_LDFLAGS="DEFAULT_CROSS_LDFLAGS"
LIMINE_COPYRIGHT=$($GREP Copyright "$SRCDIR/LICENSE.md")
AC_SUBST(LIMINE_COPYRIGHT, [$LIMINE_COPYRIGHT])
diff --git a/decompressor/GNUmakefile b/decompressor/GNUmakefile
index e963aad1..7468593e 100644
--- a/decompressor/GNUmakefile
+++ b/decompressor/GNUmakefile
@@ -1,4 +1,4 @@
-include $(TOOLCHAIN_FILE)
+include $(CROSS_FILE)
BUILDDIR ?=
@@ -57,8 +57,8 @@ override HEADER_DEPS := $(addprefix $(call MKESCAPE,$(BUILDDIR))/, $(C_FILES:.c=
all: $(call MKESCAPE,$(BUILDDIR))/decompressor.bin
$(call MKESCAPE,$(BUILDDIR))/decompressor.bin: $(OBJ) ../libgcc-binaries/libgcc-i686.a $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o
- $(LIMINE_LD) '$(call OBJESCAPE,$^)' $(LIMINE_LDFLAGS) $(INTERNAL_LDFLAGS) -o '$(call SHESCAPE,$(BUILDDIR))/decompressor.elf'
- $(LIMINE_OBJCOPY) -O binary '$(call SHESCAPE,$(BUILDDIR))/decompressor.elf' '$(call SHESCAPE,$@)'
+ $(CROSS_LD) '$(call OBJESCAPE,$^)' $(CROSS_LDFLAGS) $(INTERNAL_LDFLAGS) -o '$(call SHESCAPE,$(BUILDDIR))/decompressor.elf'
+ $(CROSS_OBJCOPY) -O binary '$(call SHESCAPE,$(BUILDDIR))/decompressor.elf' '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/tinf-copied: ../tinf/*
rm -rf '$(call SHESCAPE,$(BUILDDIR))/tinf'
@@ -68,17 +68,17 @@ $(call MKESCAPE,$(BUILDDIR))/tinf-copied: ../tinf/*
$(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o: $(call MKESCAPE,$(BUILDDIR))/tinf-copied
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- $(LIMINE_CC) $(LIMINE_CFLAGS) -Os $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(@:.o=.c))' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) -Os $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(@:.o=.c))' -o '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o: $(call MKESCAPE,$(BUILDDIR))/tinf-copied
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- $(LIMINE_CC) $(LIMINE_CFLAGS) -Os $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(@:.o=.c))' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) -Os $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$(@:.o=.c))' -o '$(call SHESCAPE,$@)'
-include $(HEADER_DEPS)
$(call MKESCAPE,$(BUILDDIR))/%.o: %.c $(call MKESCAPE,$(BUILDDIR))/tinf-copied
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- $(LIMINE_CC) $(LIMINE_CFLAGS) -Os $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@)'
+ $(CROSS_CC) $(CROSS_CFLAGS) -Os $(INTERNAL_CFLAGS) -c '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/%.o: %.asm
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
diff --git a/toolchain-detect/configure.ac b/toolchain-detect/configure.ac
deleted file mode 100644
index 84f1a25f..00000000
--- a/toolchain-detect/configure.ac
+++ /dev/null
@@ -1,135 +0,0 @@
-AC_INIT([Limine], m4_esyscmd([../version.sh]), [https://github.com/limine-bootloader/limine/issues], [limine], [https://limine-bootloader.org/])
-
-AC_PREREQ(2.69)
-
-BUILDDIR="$(pwd -P)"
-
-if test -f "$BUILDDIR/$ARCHITECTURE-toolchain.mk"; then
- exit 0
-fi
-
-AC_PROG_GREP
-AC_PROG_SED
-
-ENFORCE_TOOLCHAIN=no
-if test "x$TOOLCHAIN" = "x"; then
- TOOLCHAIN=$ARCHITECTURE-elf
-else
- ENFORCE_TOOLCHAIN=yes
-fi
-
-AC_DEFUN([CC_ERROR_MSG], [
- AC_MSG_ERROR([no suitable LIMINE_CC found, run $srcdir/make_toolchain.sh or install the appropriate GCC/Clang])
-])
-
-if ! test "x$LIMINE_CC" = "x"; then
- AC_CHECK_PROG([LIMINE_CC_0], [$LIMINE_CC], [yes])
- if ! test "x$LIMINE_CC_0" = "xyes"; then
- AC_MSG_ERROR([LIMINE_CC ($LIMINE_CC) not found])
- fi
-else
- if test "$TOOLCHAIN" = 'llvm'; then
- LIMINE_CC='clang'
- else
- LIMINE_CC="$TOOLCHAIN-gcc"
- fi
- AC_CHECK_PROG([LIMINE_CC_1], [$LIMINE_CC], [yes])
- if ! test "x$LIMINE_CC_1" = "xyes"; then
- if test "x$ENFORCE_TOOLCHAIN" = "xyes"; then
- CC_ERROR_MSG
- fi
- LIMINE_CC="clang"
- AC_CHECK_PROG([LIMINE_CC_2], [$LIMINE_CC], [yes])
- if ! test "x$LIMINE_CC_2" = "xyes"; then
- LIMINE_CC="gcc"
- AC_CHECK_PROG([LIMINE_CC_3], [$LIMINE_CC], [yes])
- if ! test "x$LIMINE_CC_3" = "xyes"; then
- LIMINE_CC="cc"
- AC_CHECK_PROG([LIMINE_CC_4], [$LIMINE_CC], [yes])
- if ! test "x$LIMINE_CC_4" = "xyes"; then
- CC_ERROR_MSG
- fi
- fi
- fi
- fi
-fi
-AC_SUBST(LIMINE_CC, $LIMINE_CC)
-
-if ! $LIMINE_CC --version >/dev/null 2>&1; then
- CC_ERROR_MSG
-fi
-
-if $LIMINE_CC --version | $GREP clang >/dev/null 2>&1; then
- LIMINE_CC="$LIMINE_CC --target=$ARCHITECTURE-elf"
-elif $LIMINE_CC --version | $GREP 'Free Software Foundation' >/dev/null 2>&1; then
- true
-else
- CC_ERROR_MSG
-fi
-
-if ! $LIMINE_CC -dumpmachine >/dev/null 2>&1; then
- CC_ERROR_MSG
-fi
-
-CC_MACHINE="$($LIMINE_CC -dumpmachine | $SED 's/-.*//g')"
-
-if test "x$CC_MACHINE" = "xamd64"; then
- CC_MACHINE=x86_64
-fi
-
-if test "x$CC_MACHINE" = "xx86_64"; then
- case "$ARCHITECTURE" in
- i?86)
- CC_MACHINE="$ARCHITECTURE"
- ;;
- *)
- ;;
- esac
-fi
-
-if ! test "x$CC_MACHINE" = "x$ARCHITECTURE"; then
- CC_ERROR_MSG
-fi
-
-AC_DEFUN([GET_BINUTILS_PROG], [
- if ! test "x$LIMINE_$1" = "x"; then
- AC_CHECK_PROG([LIMINE_$1_0], [$LIMINE_$1], [yes])
- if ! test "x$LIMINE_$1_0" = "xyes"; then
- AC_MSG_ERROR([LIMINE_$1 ($LIMINE_$1) not found])
- fi
- else
- if test "$TOOLCHAIN" = 'llvm' && test '$2' = 'ld'; then
- LIMINE_$1='ld.lld'
- else
- LIMINE_$1="$TOOLCHAIN-$2"
- fi
- AC_CHECK_PROG([LIMINE_$1_1], [$LIMINE_$1], [yes])
- if ! test "x$LIMINE_$1_1" = "xyes"; then
- if test "x$ENFORCE_TOOLCHAIN" = "xyes"; then
- AC_MSG_ERROR([LIMINE_$1 ($LIMINE_$1) not found])
- fi
- if test '$2' = 'ld'; then
- LIMINE_$1='ld.lld'
- else
- LIMINE_$1='llvm-$2'
- fi
- AC_CHECK_PROG([LIMINE_$1_2], [$LIMINE_$1], [yes])
- if ! test "x$LIMINE_$1_2" = "xyes"; then
- LIMINE_$1='$2'
- AC_CHECK_PROG([LIMINE_$1_3], [$LIMINE_$1], [yes])
- if ! test "x$LIMINE_$1_3" = "xyes"; then
- AC_MSG_ERROR([no suitable LIMINE_$1 found, run $srcdir/make_toolchain.sh or install the appropriate LLVM/GNU binutils])
- fi
- fi
- fi
- fi
- AC_SUBST(LIMINE_$1, $LIMINE_$1)
-])
-
-GET_BINUTILS_PROG(LD, ld, linker)
-GET_BINUTILS_PROG(OBJCOPY, objcopy, objcopy)
-GET_BINUTILS_PROG(OBJDUMP, objdump, objdump)
-GET_BINUTILS_PROG(READELF, readelf, readelf)
-
-AC_CONFIG_FILES([$ARCHITECTURE-toolchain.mk:toolchain.mk.in])
-AC_OUTPUT
diff --git a/toolchain-detect/configure.gnu b/toolchain-detect/configure.gnu
deleted file mode 100644
index a3c4c486..00000000
--- a/toolchain-detect/configure.gnu
+++ /dev/null
@@ -1,3 +0,0 @@
-#! /bin/sh
-
-exit 0
diff --git a/toolchain-detect/toolchain.mk.in b/toolchain-detect/toolchain.mk.in
deleted file mode 100644
index 7aed92bd..00000000
--- a/toolchain-detect/toolchain.mk.in
+++ /dev/null
@@ -1,10 +0,0 @@
-override LIMINE_CC := @LIMINE_CC@
-export LIMINE_CC
-override LIMINE_LD := @LIMINE_LD@
-export LIMINE_LD
-override LIMINE_OBJCOPY := @LIMINE_OBJCOPY@
-export LIMINE_OBJCOPY
-override LIMINE_OBJDUMP := @LIMINE_OBJDUMP@
-export LIMINE_OBJDUMP
-override LIMINE_READELF := @LIMINE_READELF@
-export LIMINE_READELF
