:: commit 82e62a9678a0b6c694557571f84439989020e53f

mintsuki <mintsuki@protonmail.com> — 2022-07-13 15:17

parents: 2a448febb3

host: Reorganise host-tools layout and add limine-version. Closes #196

diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 4e27deb7..d77f937f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -41,11 +41,14 @@ jobs:
       - name: Build the bootloader
         run: make -C build
 
+      - name: Clean limine-version
+        run: rm build/bin/limine-version
+
       - name: Clean limine-deploy
         run: rm build/bin/limine-deploy
 
       - name: Build limine-deploy-win32
-        run: make -C build CC="i686-w64-mingw32-gcc" CFLAGS="-O2 -pipe" limine-deploy
+        run: make -C build/bin CC="i686-w64-mingw32-gcc" CFLAGS="-O2 -pipe" limine-deploy
 
       - name: Strip limine-deploy-win32
         run: i686-w64-mingw32-strip build/bin/limine-deploy.exe
diff --git a/GNUmakefile.in b/GNUmakefile.in
index c45c5c34..a0ed0b39 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -62,19 +62,33 @@ override LIMINE_VERSION := @PACKAGE_VERSION@
 override STAGE1_FILES := $(shell find '$(call SHESCAPE,$(SRCDIR))/stage1' -type f -name '*.asm')
 
 .PHONY: all
-all: @BUILD_UEFI_X86_64@ @BUILD_UEFI_IA32@ @BUILD_BIOS@
+all: limine-version @BUILD_UEFI_X86_64@ @BUILD_UEFI_IA32@ @BUILD_BIOS@
 	$(MAKE) '$(call SHESCAPE,$(BINDIR))/limine-cd-efi.bin'
 
-$(call MKESCAPE,$(BINDIR))/limine-deploy: $(call MKESCAPE,$(SRCDIR))/limine-deploy/limine-deploy.c $(call MKESCAPE,$(BINDIR))/limine-hdd.bin
+$(call MKESCAPE,$(BINDIR))/limine-hdd.h: $(call MKESCAPE,$(BINDIR))/limine-hdd.bin
 	mkdir -p '$(call SHESCAPE,$(BINDIR))'
-	cd '$(call SHESCAPE,$(BINDIR))' && '$(call SHESCAPE,$(SRCDIR))/limine-deploy/hgen.sh' >limine-hdd.h
-	cp '$(call SHESCAPE,$(SRCDIR))/limine-deploy/Makefile' '$(call SHESCAPE,$(SRCDIR))/limine-deploy/limine-deploy.c' '$(call SHESCAPE,$(SRCDIR))/limine-deploy/.gitignore' '$(call SHESCAPE,$(BINDIR))/'
-	$(MAKE) -C '$(call SHESCAPE,$(BINDIR))'
+	cd '$(call SHESCAPE,$(BINDIR))' && '$(call SHESCAPE,$(SRCDIR))/host/hgen.sh' >limine-hdd.h
+
+$(call MKESCAPE,$(BINDIR))/limine-deploy: $(call MKESCAPE,$(BINDIR))/Makefile $(call MKESCAPE,$(SRCDIR))/host/limine-deploy.c $(call MKESCAPE,$(BINDIR))/limine-hdd.h
+	cp '$(call SHESCAPE,$(SRCDIR))/host/limine-deploy.c' '$(call SHESCAPE,$(BINDIR))/'
+	$(MAKE) -C '$(call SHESCAPE,$(BINDIR))' limine-deploy
+
+$(call MKESCAPE,$(BINDIR))/limine-version: $(call MKESCAPE,$(BINDIR))/Makefile $(call MKESCAPE,$(SRCDIR))/host/limine-version.c
+	$(SED) 's/@LIMINE_VERSION@/@PACKAGE_VERSION@/g' <'$(call SHESCAPE,$(SRCDIR))/host/limine-version.c' >'$(call SHESCAPE,$(BINDIR))/limine-version.c'
+	$(MAKE) -C '$(call SHESCAPE,$(BINDIR))' limine-version
+
+$(call MKESCAPE,$(BINDIR))/Makefile: $(call MKESCAPE,$(SRCDIR))/host/Makefile $(call MKESCAPE,$(SRCDIR))/host/.gitignore
+	mkdir -p '$(call SHESCAPE,$(BINDIR))'
+	cp '$(call SHESCAPE,$(SRCDIR))/host/Makefile' '$(call SHESCAPE,$(SRCDIR))/host/.gitignore' '$(call SHESCAPE,$(BINDIR))/'
 
 .PHONY: limine-deploy
 limine-deploy:
 	$(MAKE) '$(call SHESCAPE,$(BINDIR))/limine-deploy'
 
+.PHONY: limine-version
+limine-version:
+	$(MAKE) '$(call SHESCAPE,$(BINDIR))/limine-version'
+
 .PHONY: clean
 clean: limine-bios-clean limine-uefi-ia32-clean limine-uefi-x86-64-clean
 	rm -rf '$(call SHESCAPE,$(BINDIR))' '$(call SHESCAPE,$(BUILDDIR))/stage1.stamp'
@@ -95,15 +109,18 @@ install-data: all
 .PHONY: install-strip
 install-strip: install-data
 	$(INSTALL) -d '$(call SHESCAPE,$(DESTDIR)$(ACBINDIR))'
+	$(INSTALL) -s '$(call SHESCAPE,$(BINDIR))/limine-version' '$(call SHESCAPE,$(DESTDIR)$(ACBINDIR))/'
 	$(INSTALL) -s '$(call SHESCAPE,$(BINDIR))/limine-deploy' '$(call SHESCAPE,$(DESTDIR)$(ACBINDIR))/' || true
 
 .PHONY: install
 install: install-data
 	$(INSTALL) -d '$(call SHESCAPE,$(DESTDIR)$(ACBINDIR))'
+	$(INSTALL) '$(call SHESCAPE,$(BINDIR))/limine-version' '$(call SHESCAPE,$(DESTDIR)$(ACBINDIR))/'
 	$(INSTALL) '$(call SHESCAPE,$(BINDIR))/limine-deploy' '$(call SHESCAPE,$(DESTDIR)$(ACBINDIR))/' || true
 
 .PHONY: uninstall
 uninstall:
+	rm -f '$(call SHESCAPE,$(DESTDIR)$(ACBINDIR))/limine-version'
 	rm -f '$(call SHESCAPE,$(DESTDIR)$(ACBINDIR))/limine-deploy'
 	rm -rf '$(call SHESCAPE,$(DESTDIR)$(ACDATAROOTDIR))/limine'
 	rm -f '$(call SHESCAPE,$(DESTDIR)$(ACINCLUDEDIR))/limine.h'
diff --git a/host/.gitignore b/host/.gitignore
new file mode 100644
index 00000000..9b9a44b2
--- /dev/null
+++ b/host/.gitignore
@@ -0,0 +1,4 @@
+limine-deploy
+limine-deploy.exe
+limine-version
+limine-version.exe
diff --git a/limine-deploy/Makefile b/host/Makefile
similarity index 79%
rename from limine-deploy/Makefile
rename to host/Makefile
index eaab5474..284df24a 100644
--- a/limine-deploy/Makefile
+++ b/host/Makefile
@@ -6,7 +6,7 @@ PREFIX ?= /usr/local
 CFLAGS ?= -g -O2 -pipe -Wall -Wextra
 
 .PHONY: all
-all: limine-deploy
+all: limine-deploy limine-version
 
 .PHONY: install-data
 install-data: all
@@ -25,15 +25,21 @@ install-data: all
 install: install-data
 	$(INSTALL) -d '$(DESTDIR)$(PREFIX)/bin'
 	$(INSTALL) limine-deploy '$(DESTDIR)$(PREFIX)/bin/'
+	$(INSTALL) limine-version '$(DESTDIR)$(PREFIX)/bin/'
 
 .PHONY: install-strip
 install-strip: install-data
 	$(INSTALL) -d '$(DESTDIR)$(PREFIX)/bin'
 	$(INSTALL) -s limine-deploy '$(DESTDIR)$(PREFIX)/bin/'
+	$(INSTALL) -s limine-version '$(DESTDIR)$(PREFIX)/bin/'
 
 .PHONY: clean
 clean:
 	rm -f limine-deploy limine-deploy.exe
+	rm -f limine-version limine-version.exe
 
 limine-deploy: limine-deploy.c
 	$(CC) $(CFLAGS) $(LDFLAGS) -std=c99 -D__USE_MINGW_ANSI_STDIO limine-deploy.c -o $@
+
+limine-version: limine-version.c
+	$(CC) $(CFLAGS) $(LDFLAGS) -std=c99 -D__USE_MINGW_ANSI_STDIO limine-version.c -o $@
diff --git a/limine-deploy/hgen.sh b/host/hgen.sh
similarity index 100%
rename from limine-deploy/hgen.sh
rename to host/hgen.sh
diff --git a/limine-deploy/limine-deploy.c b/host/limine-deploy.c
similarity index 100%
rename from limine-deploy/limine-deploy.c
rename to host/limine-deploy.c
diff --git a/host/limine-version.c b/host/limine-version.c
new file mode 100644
index 00000000..b49b3cb6
--- /dev/null
+++ b/host/limine-version.c
@@ -0,0 +1,7 @@
+#include <stdio.h>
+
+#define LIMINE_VERSION "@LIMINE_VERSION@"
+
+int main(void) {
+    puts(LIMINE_VERSION);
+}
diff --git a/limine-deploy/.gitignore b/limine-deploy/.gitignore
deleted file mode 100644
index 792db7b3..00000000
--- a/limine-deploy/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-limine-deploy
-limine-deploy.exe
tab: 248 wrap: offon