summaryrefslogtreecommitdiff
path: root/util/mkelfImage/linux-i386/Makefile
blob: 51531d6f4b9d7f3c45a8c292483383dc20bcf007 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
LI386_DIR:=linux-i386
LI386_OBJ:=$(OBJDIR)/$(LI386_DIR)
LI386_DEP=Makefile Makefile.conf $(LI386_DIR)/Makefile

$(LI386_OBJ)/mkelf-linux-i386.o: $(LI386_DIR)/mkelf-linux-i386.c $(LI386_DIR)/convert.bin.c $(LI386_DEP)
	$(MKDIR) -p $(@D)
	$(HOST_CC) $(HOST_CFLAGS) -c -g $< -o $@


ifdef I386_CC

$(LI386_DIR)/convert.bin.c: $(LI386_OBJ)/convert.bin $(OBJDIR)/bin/bin-to-hex $(LI386_DEP)
	$(MKDIR) -p $(@D)
	$(OBJDIR)/bin/bin-to-hex < $(LI386_OBJ)/convert.bin > $@

$(LI386_OBJ)/convert.bin: $(LI386_OBJ)/convert $(LI386_DEP)
	$(MKDIR) -p $(@D)
	$(I386_OBJCOPY) -O binary $< $@

CONVERT_LI386_OBJS=$(LI386_OBJ)/head.o $(LI386_OBJ)/convert_params.o

$(LI386_OBJ)/convert: $(LI386_DIR)/convert.lds $(CONVERT_LI386_OBJS) $(LI386_DEP)
	$(MKDIR) -p $(@D)
	$(I386_LD) $(I386_LDFLAGS) -T $(LI386_DIR)/convert.lds -o $@ $(CONVERT_LI386_OBJS)

$(LI386_OBJ)/head.o: $(LI386_DIR)/head.S $(LI386_DIR)/convert.h
	$(MKDIR) -p $(@D)
	$(I386_CPP) $(I386_CPPFLAGS) -DASSEMBLY $< | $(I386_AS) $(I386_ASFLAGS) -o $@

$(LI386_OBJ)/convert_params.o: $(LI386_DIR)/convert_params.c $(LI386_DIR)/convert.h $(LI386_DEP)
	$(MKDIR) -p $(@D)
	$(I386_CC) $(I386_CFLAGS) -c -o $@ $<

endif