build: Add more granular configure options
diff --git a/GNUmakefile.in b/GNUmakefile.in
index af7a80a5..9a093cda 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -17,6 +17,9 @@ override PATH := @PATH@
export PATH
override BUILD_ELTORITO_EFI := @BUILD_ELTORITO_EFI@
+override BUILD_PXE := @BUILD_PXE@
+override BUILD_CD := @BUILD_CD@
+override BUILD_LIMINE_INSTALL := @BUILD_LIMINE_INSTALL@
WERROR ?= @WERROR@
export WERROR
@@ -77,7 +80,7 @@ export LIMINE_COPYRIGHT
override STAGE1_FILES := $(shell find '$(call SHESCAPE,$(SRCDIR))/stage1' -type f -name '*.asm')
.PHONY: all
-all: limine-uefi limine-bios
+all: @BUILD_UEFI@ @BUILD_BIOS@
.PHONY: limine-hdd.h
limine-hdd.h: $(call MKESCAPE,$(BINDIR))/limine-hdd.h
@@ -125,15 +128,21 @@ uninstall:
$(call MKESCAPE,$(BUILDDIR))/stage1.stamp: $(STAGE1_FILES) $(call MKESCAPE,$(BUILDDIR))/decompressor-build/decompressor.bin $(call MKESCAPE,$(BUILDDIR))/common-bios/stage2.bin.gz
mkdir -p '$(call SHESCAPE,$(BINDIR))'
cd '$(call SHESCAPE,$(SRCDIR))/stage1/hdd' && nasm bootsect.asm @WERROR@ -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-hdd.bin'
+ifneq ($(BUILD_CD), no)
cd '$(call SHESCAPE,$(SRCDIR))/stage1/cd' && nasm bootsect.asm @WERROR@ -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-cd.bin'
+endif
+ifneq ($(BUILD_PXE), no)
cd '$(call SHESCAPE,$(SRCDIR))/stage1/pxe' && nasm bootsect.asm @WERROR@ -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-pxe.bin'
+endif
cp '$(call SHESCAPE,$(BUILDDIR))/common-bios/limine.sys' '$(call SHESCAPE,$(BINDIR))/'
touch '$(call SHESCAPE,$(BUILDDIR))/stage1.stamp'
.PHONY: limine-bios
limine-bios: common-bios decompressor
$(MAKE) '$(call SHESCAPE,$(BUILDDIR))/stage1.stamp'
+ifneq ($(BUILD_LIMINE_INSTALL), no)
$(MAKE) limine-install
+endif
.PHONY: limine-eltorito-efi
limine-eltorito-efi:
@@ -151,7 +160,7 @@ ifneq ($(BUILD_ELTORITO_EFI), no)
endif
.PHONY: limine-uefi
-limine-uefi: limine-uefi32 limine-uefi64
+limine-uefi: @BUILD_UEFI32@ @BUILD_UEFI64@
$(MAKE) limine-eltorito-efi
.PHONY: limine-uefi64
diff --git a/configure.ac b/configure.ac
index b380afef..5116ff1e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,6 +46,86 @@ if ! test "x$GZIP_FOUND" = "xyes"; then
AC_MSG_ERROR([gzip not found, please install gzip before configuring])
fi
+BUILD_BIOS="default"
+
+AC_ARG_ENABLE([bios],
+ AS_HELP_STRING([--disable-bios], [disable building the BIOS port]),
+ BUILD_BIOS="$enableval")
+
+if test "x$BUILD_BIOS" = "xno"; then
+ BUILD_BIOS=""
+else
+ BUILD_BIOS="limine-bios"
+fi
+
+AC_SUBST(BUILD_BIOS, [$BUILD_BIOS])
+
+BUILD_LIMINE_INSTALL="default"
+
+AC_ARG_ENABLE([limine-install],
+ AS_HELP_STRING([--disable-limine-install], [disable building limine-install]),
+ BUILD_LIMINE_INSTALL="$enableval")
+
+AC_SUBST(BUILD_LIMINE_INSTALL, [$BUILD_LIMINE_INSTALL])
+
+BUILD_CD="default"
+
+AC_ARG_ENABLE([bios-cd],
+ AS_HELP_STRING([--disable-bios-cd], [disable building the BIOS CD image]),
+ BUILD_CD="$enableval")
+
+AC_SUBST(BUILD_CD, [$BUILD_CD])
+
+BUILD_PXE="default"
+
+AC_ARG_ENABLE([bios-pxe],
+ AS_HELP_STRING([--disable-bios-pxe], [disable building the BIOS PXE image]),
+ BUILD_PXE="$enableval")
+
+AC_SUBST(BUILD_PXE, [$BUILD_PXE])
+
+BUILD_UEFI="default"
+
+AC_ARG_ENABLE([uefi],
+ AS_HELP_STRING([--disable-uefi], [disable building both UEFI ports]),
+ BUILD_UEFI="$enableval")
+
+if test "x$BUILD_UEFI" = "xno"; then
+ BUILD_UEFI=""
+else
+ BUILD_UEFI="limine-uefi"
+fi
+
+AC_SUBST(BUILD_UEFI, [$BUILD_UEFI])
+
+BUILD_UEFI32="default"
+
+AC_ARG_ENABLE([uefi32],
+ AS_HELP_STRING([--disable-uefi32], [disable building the 32-bit UEFI port]),
+ BUILD_UEFI32="$enableval")
+
+if test "x$BUILD_UEFI32" = "xno"; then
+ BUILD_UEFI32=""
+else
+ BUILD_UEFI32="limine-uefi32"
+fi
+
+AC_SUBST(BUILD_UEFI32, [$BUILD_UEFI32])
+
+BUILD_UEFI64="default"
+
+AC_ARG_ENABLE([uefi64],
+ AS_HELP_STRING([--disable-uefi64], [disable building the 64-bit UEFI port]),
+ BUILD_UEFI64="$enableval")
+
+if test "x$BUILD_UEFI64" = "xno"; then
+ BUILD_UEFI64=""
+else
+ BUILD_UEFI64="limine-uefi64"
+fi
+
+AC_SUBST(BUILD_UEFI64, [$BUILD_UEFI64])
+
BUILD_ELTORITO_EFI="default"
AC_ARG_ENABLE([eltorito-efi],
