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 + +#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