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 825529c6..6030da74 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
