Files
x86-bare-metal-examples/Makefile

30 lines
516 B
Makefile
Raw Normal View History

2015-09-06 16:17:39 +02:00
.POSIX:
IN_EXT ?= .S
LD ?= ld
# Use gcc so that the preprocessor will run first.
MYAS ?= gcc
2015-09-06 16:17:39 +02:00
OBJ_EXT ?= .o
OUT_EXT ?= .img
RUN ?= bios_hello_world
INS := $(wildcard *$(IN_EXT))
OUTS := $(patsubst %$(IN_EXT),%$(OUT_EXT),$(INS))
.PRECIOUS: %$(OBJ_EXT)
.PHONY: all clean run
all: $(OUTS)
%$(OUT_EXT): %$(OBJ_EXT) a.ld
2015-09-06 16:17:39 +02:00
$(LD) --oformat binary -o '$@' '$<' -T a.ld #-Ttext 0x7C00
%$(OBJ_EXT): %$(IN_EXT)
$(MYAS) -c -o '$@' '$<'
2015-09-06 16:17:39 +02:00
clean:
rm -f *$(OBJ_EXT) *$(OUT_EXT)
run: all
qemu-system-i386 '$(RUN)$(OUT_EXT)'