37 lines
833 B
Makefile
37 lines
833 B
Makefile
DEST=$(O)/elfboot
|
|
CFLAGS=-c -Wall -O
|
|
CFLAGS_TEST=-DTEST
|
|
|
|
all: $(DEST) $(DEST)/elfboot
|
|
|
|
$(DEST)/elfboot: $(DEST)/elfboot.bin
|
|
cp $^ $@
|
|
truncate -s $(shell expr '(' `stat -c '%s' $^` + 4095 ')' / 4096 '*' 4096) $@
|
|
|
|
$(DEST)/elfboot.bin: $(DEST)/elfboot.elf
|
|
$(OBJCOPY) -O binary $^ $@
|
|
|
|
$(DEST)/elfboot.elf: $(DEST)/head.o $(DEST)/elfboot.raw.o raw.lds
|
|
$(LD) $(LDFLAGS_RAW) -T raw.lds -o $@ $^
|
|
|
|
$(DEST)/elfboot_test: $(DEST)/elfboot.test.o $(DEST)/test_main.o
|
|
$(CC) -o $@ $^
|
|
|
|
$(DEST)/head.o: head.S
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
$(DEST)/elfboot.raw.o: elfboot.c
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
$(DEST)/elfboot.test.o: elfboot.c
|
|
$(CC) $(CFLAGS) $(CFLAGS_TEST) -o $@ $^
|
|
|
|
clean:
|
|
$(RM) $(DEST)/elfboot *.bin $(DEST)/*.elf $(DEST)/elfboot_test *.o
|
|
|
|
disas:
|
|
$(OBJDUMP) -b binary -m i386:x86-64 -D $(DEST)/elfboot.bin
|
|
|
|
$(DEST):
|
|
@mkdir -p $(DEST)
|