33 lines
848 B
Plaintext
33 lines
848 B
Plaintext
#
|
|
# Makefile fragment for the JOS kernel.
|
|
# This is NOT a complete makefile;
|
|
# you must run GNU make in the top-level directory
|
|
# where the GNUmakefile is located.
|
|
#
|
|
|
|
OBJDIRS += boot
|
|
|
|
BOOT_OBJS := $(OBJDIR)/boot/boot.o $(OBJDIR)/boot/main.o
|
|
|
|
$(OBJDIR)/boot/%.o: boot/%.c
|
|
@echo + cc -Os $<
|
|
@mkdir -p $(@D)
|
|
$(V)$(CC) -nostdinc $(KERN_CFLAGS) -Os -c -o $@ $<
|
|
|
|
$(OBJDIR)/boot/%.o: boot/%.S
|
|
@echo + as $<
|
|
@mkdir -p $(@D)
|
|
$(V)$(CC) -nostdinc $(KERN_CFLAGS) -c -o $@ $<
|
|
|
|
$(OBJDIR)/boot/main.o: boot/main.c
|
|
@echo + cc -Os $<
|
|
$(V)$(CC) -nostdinc $(KERN_CFLAGS) -Os -c -o $(OBJDIR)/boot/main.o boot/main.c
|
|
|
|
$(OBJDIR)/boot/boot: $(BOOT_OBJS)
|
|
@echo + ld boot/boot
|
|
$(V)$(LD) $(LDFLAGS) -N -e start -Ttext 0x7C00 -o $@.out $^
|
|
$(V)$(OBJDUMP) -S $@.out >$@.asm
|
|
$(V)$(OBJCOPY) -S -O binary -j .text $@.out $@
|
|
$(V)perl boot/sign.pl $(OBJDIR)/boot/boot
|
|
|