aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2021-03-09 20:09:32 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2021-03-09 20:20:05 +0200
commit17ef04cc82101dfd33187e98a77cea19293c0fae (patch)
tree1c8f4ff38511214bfef73294d37a3137eb7c2450
parentMap kernel to higher half (diff)
downloadkernel.cpp-17ef04cc82101dfd33187e98a77cea19293c0fae.tar.xz
Move elf and iso to builddir
-rw-r--r--grub/makefile37
-rw-r--r--makefile22
2 files changed, 28 insertions, 31 deletions
diff --git a/grub/makefile b/grub/makefile
index 014b061..a2c2f85 100644
--- a/grub/makefile
+++ b/grub/makefile
@@ -1,26 +1,23 @@
-CURL := curl -OL
-GPG := gpg
+GRUBSRC := grub-2.04
+DESTDIR != printf $$(pwd)/tools
+TARBALL := grub-2.04.tar.xz
+URL := https://ftp.gnu.org/gnu/grub/$(TARBALL)
-F := grub-2.04.tar.xz
-srcdir := $(F:%.tar.xz=%)
-dstdir := $(F:%.tar.xz=%-tools)
+$(TARBALL):
+ @curl $(URL) --output $@
+$(TARBALL).sig:
+ @curl $(URL).sig --output $@
-default:
- @echo $(SRCDIR)
+download: $(TARBALL) $(TARBALL).sig
-$(F):
- $(CURL) https://ftp.gnu.org/gnu/grub/$(F)
+verify: $(TARBALL) $(TARBALL).sig
+ @gpg --verify $(TARBALL).sig
-$(F).sig:
- $(CURL) https://ftp.gnu.org/gnu/grub/$(F).sig
-
-verify: $(F) $(F).sig
- $(GPG) --verify $(F).sig
-
-build: $(F)
- tar -xf $(F)
- cd $(srcdir) && CC=clang BUILD_CC=clang TARGET_CC=clang ./configure --disable-werror --prefix=/
- make -C $(srcdir) -j6 DESTDIR=$(CURDIR)/$(dstdir) install
+# grub requires GNU Make to build
+build: $(TARBALL)
+ tar -xf $(TARBALL)
+ cd $(GRUBSRC) && CC=clang BUILD_CC=clang TARGET_CC=clang ./configure --disable-werror --prefix=/
+ make -C $(GRUBSRC) -j$(nproc) DESTDIR=$(DESTDIR) install
clean:
- rm $(F) $(F).sig
+ rm -rf $(TARBALL) $(TARBALL).sig $(GRUBSRC) $(DESTDIR)
diff --git a/makefile b/makefile
index a7379d1..dd65197 100644
--- a/makefile
+++ b/makefile
@@ -3,7 +3,7 @@ include .config
OBJ_DIR != echo $(CONFIG_OBJ_DIR)
.PHONY: default clean test todo run
-default: glitch.elf
+default: $(OBJ_DIR)/glitch.elf
include libk/makefile
include src/makefile
@@ -16,7 +16,7 @@ CXX_TEST_OBJ := $(addprefix $(OBJ_DIR)/, $(CXX_TEST_OBJ))
CXX_INCLUDE := $(addprefix -I, $(CXX_INCLUDE))
CXX_SYSTEM_INCLUDE := $(addprefix -isystem, $(CXX_SYSTEM_INCLUDE))
-glitch.elf: $(autogen) $(AS_OBJ) $(CXX_OBJ)
+$(OBJ_DIR)/glitch.elf: $(autogen) $(AS_OBJ) $(CXX_OBJ)
@echo " LD $@"
@$(LD) $(LD_FLAGS) -o $@ $(AS_OBJ) $(CXX_OBJ)
@@ -37,7 +37,7 @@ $(CXX_TEST_OBJ): $(OBJ_DIR)/%.o : %.cc
@$(TEST_CXX) -target $(TARGET) $(CXX_TEST_FLAGS) $(CXX_INCLUDE) -MMD -c $< -o $@
clean:
- @rm -rf $(autogen) $(AS_OBJ) $(CXX_OBJ) $(CXX_DEP) $(CXX_TEST_OBJ) glitch.elf isodir
+ @rm -rf $(autogen) $(AS_OBJ) $(CXX_OBJ) $(CXX_DEP) $(CXX_TEST_OBJ) $(OBJ_DIR)/glitch.elf $(OBJ_DIR)/isodir
# testing
test: $(CXX_TEST_OBJ)
@@ -46,14 +46,14 @@ todo:
@grep TODO -r libk/ src/ drivers/
# disk image
-glitch.iso: glitch.elf grub/grub.cfg
- @mkdir -p isodir/boot/grub
- $(GRUB_FILE) --is-x86-multiboot2 glitch.elf
- @cp glitch.elf isodir/boot/glitch.elf
+$(OBJ_DIR)/glitch.iso: $(OBJ_DIR)/glitch.elf grub/grub.cfg
+ @mkdir -p $(OBJ_DIR)/isodir/boot/grub
+ $(GRUB_FILE) --is-x86-multiboot2 $<
+ @cp $< $(OBJ_DIR)/isodir/boot/glitch.elf
$(GRUB_SCRIPT) grub/grub.cfg
- @cp grub/grub.cfg isodir/boot/grub/grub.cfg
- @$(GRUB_MKRESCUE) -o $@ isodir
+ @cp grub/grub.cfg $(OBJ_DIR)/isodir/boot/grub/grub.cfg
+ @$(GRUB_MKRESCUE) -o $@ $(OBJ_DIR)/isodir
-run: glitch.iso
- @$(EMU) $< -no-reboot -no-shutdown -d guest_errors -monitor stdio
+run: $(OBJ_DIR)/glitch.iso
+ @$(EMU) $< -no-reboot -no-shutdown -monitor stdio