summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile15
1 files changed, 12 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index af28deb..de590e8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,10 @@
CFLAGS = -Os -pipe -std=c99 -D_POSIX_C_SOURCE=200809L
LDFLAGS =
+BOOTSRCS = $(sort $(wildcard boot/*.c))
+BOOTELFS = $(patsubst %.c,%.elf,$(BOOTSRCS))
+BOOTBINS = $(patsubst boot/%.c,share/%.boot,$(BOOTSRCS))
+
SRCS = $(sort $(wildcard src/*.c))
DATA = $(sort $(wildcard src/*.bin))
OBJS = $(SRCS:.c=.o) $(DATA:.bin=.o)
@@ -8,17 +12,22 @@ BINS = bin/satmkboot
.PHONY: all clean
-all: $(BINS)
+all: $(BINS) $(BOOTBINS)
clean:
- rm -f $(BINS)
- rm -f $(OBJS)
+ rm -f $(BINS) $(OBJS) $(BOOTBINS) $(BOOTELFS)
bin/satmkboot: \
src/satmkboot.o \
src/securitycode.o \
src/symbols.o
+share/%.boot: boot/%.elf
+ saturn-objcopy -O binary $< $@
+
+%.elf: %.c boot/ldscript
+ saturn-gcc -nostdlib -T boot/ldscript $(CFLAGS) $< -o $@
+
%.c: %.bin
tools/bin2c $< > $@