build: Run toolchain-detect at configure time
This commit is contained in:
parent
5b181e10a3
commit
7eac8416e7
|
@ -1,6 +1,7 @@
|
||||||
/bin
|
/bin
|
||||||
/build
|
/build
|
||||||
/toolchain
|
/toolchain
|
||||||
|
/toolchain-files
|
||||||
/limine-efi
|
/limine-efi
|
||||||
/freestanding_headers
|
/freestanding_headers
|
||||||
/ovmf*
|
/ovmf*
|
||||||
|
|
|
@ -203,7 +203,7 @@ dist:
|
||||||
|
|
||||||
.PHONY: distclean
|
.PHONY: distclean
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -rf toolchain ovmf* config.log config.status GNUmakefile config.h
|
rm -rf toolchain ovmf* config.log config.status GNUmakefile config.h toolchain-files
|
||||||
|
|
||||||
.PHONY: maintainer-clean
|
.PHONY: maintainer-clean
|
||||||
maintainer-clean: distclean
|
maintainer-clean: distclean
|
||||||
|
@ -212,11 +212,8 @@ maintainer-clean: distclean
|
||||||
|
|
||||||
.PHONY: common-uefi-x86-64
|
.PHONY: common-uefi-x86-64
|
||||||
common-uefi-x86-64:
|
common-uefi-x86-64:
|
||||||
mkdir -p '$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64'
|
|
||||||
cd '$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64' && \
|
|
||||||
TARGET=uefi-x86-64 '$(call SHESCAPE,$(SRCDIR))'/toolchain-detect/configure
|
|
||||||
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' all \
|
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' all \
|
||||||
TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64/toolchain.mk' \
|
TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/x86_64-toolchain.mk' \
|
||||||
TARGET=uefi-x86-64 \
|
TARGET=uefi-x86-64 \
|
||||||
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64'
|
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64'
|
||||||
|
|
||||||
|
@ -226,11 +223,8 @@ common-uefi-x86-64-clean:
|
||||||
|
|
||||||
.PHONY: common-uefi-ia32
|
.PHONY: common-uefi-ia32
|
||||||
common-uefi-ia32:
|
common-uefi-ia32:
|
||||||
mkdir -p '$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32'
|
|
||||||
cd '$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32' && \
|
|
||||||
TARGET=uefi-ia32 '$(call SHESCAPE,$(SRCDIR))'/toolchain-detect/configure
|
|
||||||
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' all \
|
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' all \
|
||||||
TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32/toolchain.mk' \
|
TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/i686-toolchain.mk' \
|
||||||
TARGET=uefi-ia32 \
|
TARGET=uefi-ia32 \
|
||||||
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32'
|
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32'
|
||||||
|
|
||||||
|
@ -240,11 +234,8 @@ common-uefi-ia32-clean:
|
||||||
|
|
||||||
.PHONY: common-bios
|
.PHONY: common-bios
|
||||||
common-bios:
|
common-bios:
|
||||||
mkdir -p '$(call SHESCAPE,$(BUILDDIR))/common-bios'
|
|
||||||
cd '$(call SHESCAPE,$(BUILDDIR))/common-bios' && \
|
|
||||||
TARGET=bios '$(call SHESCAPE,$(SRCDIR))'/toolchain-detect/configure
|
|
||||||
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' all \
|
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' all \
|
||||||
TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/common-bios/toolchain.mk' \
|
TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/i686-toolchain.mk' \
|
||||||
TARGET=bios \
|
TARGET=bios \
|
||||||
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-bios'
|
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-bios'
|
||||||
|
|
||||||
|
@ -254,11 +245,8 @@ common-bios-clean:
|
||||||
|
|
||||||
.PHONY: decompressor
|
.PHONY: decompressor
|
||||||
decompressor:
|
decompressor:
|
||||||
mkdir -p '$(call SHESCAPE,$(BUILDDIR))/decompressor-build'
|
|
||||||
cd '$(call SHESCAPE,$(BUILDDIR))/decompressor-build' && \
|
|
||||||
TARGET=bios '$(call SHESCAPE,$(SRCDIR))'/toolchain-detect/configure
|
|
||||||
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/decompressor' all \
|
$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/decompressor' all \
|
||||||
TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/common-bios/toolchain.mk' \
|
TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/i686-toolchain.mk' \
|
||||||
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/decompressor-build'
|
BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/decompressor-build'
|
||||||
|
|
||||||
.PHONY: decompressor-clean
|
.PHONY: decompressor-clean
|
||||||
|
|
17
configure.ac
17
configure.ac
|
@ -13,6 +13,8 @@ AC_SUBST(SRCDIR, [$SRCDIR])
|
||||||
AC_SUBST(BUILDDIR, [$BUILDDIR])
|
AC_SUBST(BUILDDIR, [$BUILDDIR])
|
||||||
AC_SUBST(PATH, [$PATH])
|
AC_SUBST(PATH, [$PATH])
|
||||||
|
|
||||||
|
rm -rf "$BUILDDIR/toolchain-files"
|
||||||
|
|
||||||
test "x$CFLAGS" = "x" && CFLAGS='-g -O2 -pipe -Wall -Wextra'
|
test "x$CFLAGS" = "x" && CFLAGS='-g -O2 -pipe -Wall -Wextra'
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
|
|
||||||
|
@ -61,6 +63,11 @@ AC_ARG_ENABLE([bios],
|
||||||
if test "x$BUILD_BIOS" = "xno"; then
|
if test "x$BUILD_BIOS" = "xno"; then
|
||||||
BUILD_BIOS=""
|
BUILD_BIOS=""
|
||||||
else
|
else
|
||||||
|
(
|
||||||
|
mkdir -p "$BUILDDIR/toolchain-files"
|
||||||
|
cd "$BUILDDIR/toolchain-files"
|
||||||
|
ARCHITECTURE=i686 "$SRCDIR/toolchain-detect/configure" || exit 1
|
||||||
|
)
|
||||||
BUILD_BIOS="limine-bios"
|
BUILD_BIOS="limine-bios"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -99,6 +106,11 @@ AC_ARG_ENABLE([uefi-ia32],
|
||||||
if test "x$BUILD_UEFI_IA32" = "xno"; then
|
if test "x$BUILD_UEFI_IA32" = "xno"; then
|
||||||
BUILD_UEFI_IA32=""
|
BUILD_UEFI_IA32=""
|
||||||
else
|
else
|
||||||
|
(
|
||||||
|
mkdir -p "$BUILDDIR/toolchain-files"
|
||||||
|
cd "$BUILDDIR/toolchain-files"
|
||||||
|
ARCHITECTURE=i686 "$SRCDIR/toolchain-detect/configure" || exit 1
|
||||||
|
)
|
||||||
BUILD_UEFI_IA32="limine-uefi-ia32"
|
BUILD_UEFI_IA32="limine-uefi-ia32"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -113,6 +125,11 @@ AC_ARG_ENABLE([uefi-x86-64],
|
||||||
if test "x$BUILD_UEFI_X86_64" = "xno"; then
|
if test "x$BUILD_UEFI_X86_64" = "xno"; then
|
||||||
BUILD_UEFI_X86_64=""
|
BUILD_UEFI_X86_64=""
|
||||||
else
|
else
|
||||||
|
(
|
||||||
|
mkdir -p "$BUILDDIR/toolchain-files"
|
||||||
|
cd "$BUILDDIR/toolchain-files"
|
||||||
|
ARCHITECTURE=x86_64 "$SRCDIR/toolchain-detect/configure" || exit 1
|
||||||
|
)
|
||||||
BUILD_UEFI_X86_64="limine-uefi-x86-64"
|
BUILD_UEFI_X86_64="limine-uefi-x86-64"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -2,21 +2,18 @@ AC_INIT([Limine], m4_esyscmd([../version.sh]), [https://github.com/limine-bootlo
|
||||||
|
|
||||||
AC_PREREQ(2.69)
|
AC_PREREQ(2.69)
|
||||||
|
|
||||||
case "$TARGET" in
|
BUILDDIR="$(pwd -P)"
|
||||||
uefi-x86-64)
|
|
||||||
ARCHITECTURE=x86_64
|
if test -f "$BUILDDIR/$ARCHITECTURE-toolchain.mk"; then
|
||||||
;;
|
exit 0
|
||||||
uefi-ia32|bios)
|
fi
|
||||||
ARCHITECTURE=i686
|
|
||||||
;;
|
AC_PROG_GREP
|
||||||
*)
|
|
||||||
AC_MSG_ERROR([invalid target])
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN" = "x"; then
|
if test "x$TOOLCHAIN" = "x"; then
|
||||||
TOOLCHAIN=$ARCHITECTURE-elf
|
TOOLCHAIN=$ARCHITECTURE-elf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(TOOLCHAIN, $TOOLCHAIN)
|
AC_SUBST(TOOLCHAIN, $TOOLCHAIN)
|
||||||
|
|
||||||
AC_DEFUN([CC_ERROR_MSG], [
|
AC_DEFUN([CC_ERROR_MSG], [
|
||||||
|
@ -108,5 +105,5 @@ GET_BINUTILS_PROG(OBJCOPY, objcopy, objcopy)
|
||||||
GET_BINUTILS_PROG(OBJDUMP, objdump, objdump)
|
GET_BINUTILS_PROG(OBJDUMP, objdump, objdump)
|
||||||
GET_BINUTILS_PROG(READELF, readelf, readelf)
|
GET_BINUTILS_PROG(READELF, readelf, readelf)
|
||||||
|
|
||||||
AC_CONFIG_FILES(toolchain.mk)
|
AC_CONFIG_FILES([$ARCHITECTURE-toolchain.mk:toolchain.mk.in])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
Loading…
Reference in New Issue