1 ifneq ($(_BOOT_MAKE
),1)
4 # include targets we depend on
6 include kernel
/kernel.mk
10 BOOT_DIR
= boot
/$(ARCH
)
11 BOOT_OBJ_DIR
= $(BOOT_DIR
)/$(OBJ_DIR
)
12 STAGE2_OBJS
= $(BOOT_OBJ_DIR
)/stage2.o \
13 $(BOOT_OBJ_DIR
)/stage2_asm.o \
14 $(BOOT_OBJ_DIR
)/stage2_mmu.o \
15 $(BOOT_OBJ_DIR
)/stage2_of.o \
16 $(BOOT_OBJ_DIR
)/stage2_text.o \
17 $(BOOT_OBJ_DIR
)/stage2_faults.o
19 DEPS
+= $(STAGE2_OBJS
:.o
=.d
)
21 STAGE2
= $(BOOT_OBJ_DIR
)/stage2
23 $(STAGE2
): $(STAGE2_OBJS
) $(LIBC
)
24 $(LD
) $(GLOBAL_LDFLAGS
) -dN
--script
=$(BOOT_DIR
)/stage2.
ld -L
$(LIBGCC_PATH
) $(STAGE2_OBJS
) $(LIBC
) $(LIBGCC
) -o
$@
29 rm -f
$(STAGE2_OBJS
) $(STAGE2
)
33 SEMIFINAL
= $(BOOT_DIR
)/final.bootdir
35 $(SEMIFINAL
): $(STAGE2
) $(KERNEL
) $(APPS
) tools
36 $(BOOTMAKER
) --bigendian
$(BOOT_DIR
)/config.ini
-o
$(SEMIFINAL
)
39 $(BOOT_OBJ_DIR
)/stage1.o
41 DEPS
+= $(STAGE1_OBJS
:.o
=.d
)
43 FINAL
= $(BOOT_DIR
)/final
45 $(FINAL
): $(STAGE1_OBJS
)
46 $(LD
) $(GLOBAL_LDFLAGS
) -dN
--script
=$(BOOT_DIR
)/stage1.
ld $(STAGE1_OBJS
) -o
$@
48 FINAL_ASMINCLUDE
= $(BOOT_DIR
)/final.asminclude
50 $(FINAL_ASMINCLUDE
): $(SEMIFINAL
) tools
51 $(BIN2ASM
) < $(SEMIFINAL
) > $(FINAL_ASMINCLUDE
)
54 rm -f
$(STAGE1_OBJS
) $(FINAL
) $(SEMIFINAL
) $(FINAL_ASMINCLUDE
)
59 $(BOOT_OBJ_DIR
)/stage1.o
: $(BOOT_DIR
)/stage1.S
60 @mkdir
-p
$(BOOT_OBJ_DIR
)
61 $(CC
) $(GLOBAL_CFLAGS
) -g
-I.
-Iinclude
-I
$(BOOT_DIR
) -c
$< -o
$@
63 $(BOOT_OBJ_DIR
)/%.o
: $(BOOT_DIR
)/%.c
64 @mkdir
-p
$(BOOT_OBJ_DIR
)
65 $(CC
) $(GLOBAL_CFLAGS
) -g
-Iinclude
-I
$(BOOT_DIR
) -c
$< -o
$@
67 $(BOOT_OBJ_DIR
)/%.d
: $(BOOT_DIR
)/%.c
68 @mkdir
-p
$(BOOT_OBJ_DIR
)
69 @echo
"making deps for $<..."
70 @
($(ECHO
) -n
$(dir $@
);$(CC
) $(GLOBAL_CFLAGS
) -g
-Iinclude
-I
$(BOOT_DIR
) -M
-MG
$<) > $@
72 $(BOOT_OBJ_DIR
)/%.d
: $(BOOT_DIR
)/%.S
73 @mkdir
-p
$(BOOT_OBJ_DIR
)
74 @echo
"making deps for $<..."
75 @
($(ECHO
) -n
$(dir $@
);$(CC
) $(GLOBAL_CFLAGS
) -g
-Iinclude
-I
$(BOOT_DIR
) -M
-MG
$<) > $@
77 $(BOOT_OBJ_DIR
)/%.o
: $(BOOT_DIR
)/%.S
78 @mkdir
-p
$(BOOT_OBJ_DIR
)
79 $(CC
) $(GLOBAL_CFLAGS
) -g
-Iinclude
-I
$(BOOT_DIR
) -c
$< -o
$@