1 #******************************************************************************#
2 #* src/booter/Makefile *#
4 #* Copyright (C) 2016-2017 Mochi. *#
5 #******************************************************************************#
6 #******************************************************************************#
8 #******************************************************************************#
15 MAIN_NAME = booter-main
18 IPL_SRCS = Ipl/IplMain.s
20 MAIN_SRCS = InitCtrl/InitCtrlInit16.s \
21 InitCtrl/InitCtrlInit32.s \
29 LoadMng/LoadMngInit.c \
30 LoadMng/LoadMngKernel.c \
48 LDFLAGS = -melf_i386 \
52 #******************************************************************************#
54 #******************************************************************************#
56 BASE_DIR = $(shell pwd | sed -e 's/\/src\/$(subst /,\/,$(CUR_DIR))//')
58 OBJS_DIR = $(BASE_DIR)/build/objs/$(CUR_DIR)
60 DIR_LIST = $(sort $(addprefix $(OBJS_DIR)/, $(dir $(IPL_SRCS) $(MAIN_SRCS))))
63 IPL_OBJS = $(addprefix $(OBJS_DIR)/, $(IPL_SRCS:.s=.o))
65 MAIN_OBJS = $(addprefix $(OBJS_DIR)/, \
66 $(patsubst %.s,%.o,$(filter %.s, $(MAIN_SRCS))) \
67 $(patsubst %.c,%.o,$(filter %.c, $(MAIN_SRCS))))
70 LDFLAGS += -L$(BASE_DIR)/build/objs/libraries
73 #******************************************************************************#
75 #******************************************************************************#
78 all: $(DIR_LIST) $(OBJS_DIR)/$(IPL_NAME) $(OBJS_DIR)/$(MAIN_NAME) Makefile
86 #******************************************************************************#
88 #******************************************************************************#
93 $(OBJS_DIR)/$(IPL_NAME): $(IPL_OBJS) Makefile
94 $(LD) -T booter-ipl.lds -o $@ $(IPL_OBJS) $(LDFLAGS)
97 $(OBJS_DIR)/$(MAIN_NAME): $(MAIN_OBJS) Makefile
98 $(LD) -T booter-main.lds -o $@ $(MAIN_OBJS) $(LDFLAGS)
101 $(OBJS_DIR)/%.o: %.s Makefile
102 $(AS) $(ASFLAGS) -o $@ $<
105 $(OBJS_DIR)/%.o: %.c Makefile
106 $(CC) $(CFLAGS) -o $@ -c $<
109 #******************************************************************************#