aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mikisabate@gmail.com>2024-11-25 21:21:17 +0100
committerMiquel Sabaté Solà <mikisabate@gmail.com>2024-11-25 21:21:17 +0100
commit816044987ec4fbee3b88e04aabcf0a2edf83f908 (patch)
treeee2646f8bb953b7d85a88f0b508e999c32e6e273 /Makefile
parent2429f8aaf1584084b4d8c7c85c27c1d78ccab153 (diff)
downloadfbos-816044987ec4fbee3b88e04aabcf0a2edf83f908.tar.gz
fbos-816044987ec4fbee3b88e04aabcf0a2edf83f908.zip
Add a make target for producing a release archive
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile30
1 files changed, 22 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 03febb5..a408630 100644
--- a/Makefile
+++ b/Makefile
@@ -56,13 +56,15 @@ endif
##
# Paths
-SRC = $(filter-out kernel/fbos.ld.S, $(wildcard kernel/*.S kernel/*.c lib/*.c))
-OBJ = $(patsubst %.c,%.o,$(patsubst %.S,%.o,$(SRC)))
-LINKER = kernel/fbos.ld
-KRNL = fbos
-USR = usr/bin/init usr/bin/fizz usr/bin/buzz usr/bin/fizzbuzz
-INIT = usr/initramfs.cpio
-TESTS = test/test_dt test/test_initrd
+SRC = $(filter-out kernel/fbos.ld.S, $(wildcard kernel/*.S kernel/*.c lib/*.c))
+OBJ = $(patsubst %.c,%.o,$(patsubst %.S,%.o,$(SRC)))
+LINKER = kernel/fbos.ld
+KRNL = fbos
+USR = usr/bin/init usr/bin/fizz usr/bin/buzz usr/bin/fizzbuzz
+INIT = usr/initramfs.cpio
+TESTS = test/test_dt test/test_initrd
+TMP = tmp/
+ARCHIVE = fbos.tar.gz
LDFLAGS += -T $(LINKER)
@@ -128,6 +130,18 @@ test/%: test/%.o
$(Q) $(HOSTCC) -Iinclude/ $< test/lib/*.o -o $@
##
+# Produce an archive for releases.
+
+.PHONY: archive
+archive: all
+ $(Q) rm -rf $(TMP) && mkdir -p $(TMP)
+ $(Q) cp -r usr/ $(TMP) && rm -r $(TMP)/usr/src
+ $(Q) cp $(KRNL) $(TMP)
+ $(Q) tar czf $(ARCHIVE) $(TMP)
+ $(Q) rm -rf $(TMP)
+ $(E) " TAR $(ARCHIVE)"
+
+##
# Hacking
.PHONY: qemu
@@ -144,7 +158,7 @@ gdb:
.PHONY: clean
clean:
- $(Q) rm -f $(OBJ) $(KRNL) $(LINKER) $(USR) usr/src/*.o $(INIT) test/*.o test/lib/*.o $(TESTS)
+ $(Q) rm -rf $(OBJ) $(KRNL) $(LINKER) $(USR) usr/src/*.o $(INIT) test/*.o test/lib/*.o $(TESTS) $(TMP) $(ARCHIVE)
.PHONY: lint
lint: