/
Makefile
101 lines (77 loc) · 3.02 KB
/
Makefile
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
CROSS ?= arm-elf-
CC = $(CROSS)gcc
OBJCOPY = $(CROSS)objcopy
HFS_OBJS = hfs/btree.o hfs/catalog.o hfs/extents.o hfs/fastunicodecompare.o hfs/rawfile.o hfs/utility.o hfs/volume.o hfs/bdev.o hfs/fs.o
MENU_OBJS = menu.o stb_image.o
OPENIBOOT_OBJS=entry.o openiboot.o arm.o tasks.o openiboot-asmhelpers.o mmu.o miu.o clock.o power.o uart.o interrupt.o timer.o event.o usb.o gpio.o util.o printf.o malloc.o dma.o nor.o aes.o spi.o chipid.o lcd.o i2c.o images.o sha1.o commands.o pmu.o buttons.o framebuffer.o actions.o nvram.o nand.o ftl.o accel.o
ARCHFLAGS += -mlittle-endian -mfpu=vfp -mthumb -mthumb-interwork
LIBRARIES += -lgcc -nostdlib
INC += -Iincludes
CFLAGS += -Wall -Werror
ifeq ($(SMALL),YES)
LOAD ?= 0x22000000
CFLAGS += -Os -DOpenIBootLoad=$(LOAD) -DNO_HFS -DNO_STBIMAGE -DSMALL
else
LOAD ?= 0x0
CFLAGS += -O3
OPENIBOOT_OBJS += $(HFS_OBJS) $(MENU_OBJS)
endif
LDFLAGS += -Ttext=$(LOAD) --nostdlib
CONFIGFLAGS =
VERSION = "0.1"
COMMIT = $(shell git log | head -n1 | cut -b8-14)
BUILD = "$(COMMIT)"
ifeq ($(PLATFORM),IPOD)
CONFIGFLAGS += -DCONFIG_IPOD
IMG3TEMPLATE = mk8900image/template-ipod.img3
else
ifeq ($(PLATFORM),3G)
CONFIGFLAGS += -DCONFIG_3G
IMG3TEMPLATE = mk8900image/template-3g.img3
else
CONFIGFLAGS += -DCONFIG_IPHONE
IMG3TEMPLATE = mk8900image/template.img3
endif
endif
ifeq ($(DEBUG),YES)
CONFIGFLAGS += -DDEBUG
endif
CONFIGFLAGS += -DOPENIBOOT_VERSION=$(VERSION) -DOPENIBOOT_VERSION_BUILD=$(BUILD)
CFLAGS += $(CONFIGFLAGS)
%.o: %.S
$(CC) $(INC) $(CFLAGS) $(ARCHFLAGS) -c $< -o $@
%.o: %.c
$(CC) $(INC) $(CFLAGS) $(ARCHFLAGS) -c $< -o $@
all: openiboot.img2 openiboot-wtf.img2 openiboot.img3 openiboot.bin
all-payload: openiboot-payload.img2 openiboot-payload.bin
openiboot: $(OPENIBOOT_OBJS)
$(CC) $(ARCHFLAGS) $(LDFLAGS) $(OPENIBOOT_OBJS) $(LIBRARIES) -o $@
payload.o: payload.bin
$(OBJCOPY) -I binary -O elf32-little -B arm $< $@
openiboot-payload: $(OPENIBOOT_OBJS) payload.o
$(CC) --no-warn-mismatch $(LDFLAGS) $(OPENIBOOT_OBJS) payload.o $(LIBRARIES) -o $@
mk8900image/mk8900image:
cd mk8900image/; make
openiboot.bin: openiboot mk8900image/mk8900image
mk8900image/mk8900image openiboot openiboot.bin
openiboot.img2: openiboot mk8900image/mk8900image
mk8900image/mk8900image openiboot openiboot.img2 mk8900image/template.img2 mk8900image/iphonelinux.der
openiboot-wtf.img2: openiboot mk8900image/mk8900image
mk8900image/mk8900image openiboot openiboot-wtf.img2 mk8900image/template-wtf.img2
openiboot.img3: openiboot mk8900image/mk8900image
mk8900image/mk8900image openiboot openiboot.img3 $(IMG3TEMPLATE)
openiboot-payload.bin: openiboot-payload mk8900image/mk8900image
mk8900image/mk8900image openiboot-payload openiboot-payload.bin
openiboot-payload.img2: openiboot-payload mk8900image/mk8900image
mk8900image/mk8900image openiboot-payload openiboot-payload.img2 mk8900image/template.img2 mk8900image/iphonelinux.der
clean:
-rm *.o
-rm hfs/*.o
-rm openiboot
-rm openiboot.img2
-rm openiboot-wtf.img2
-rm openiboot.img3
-rm openiboot.bin
-rm openiboot-payload
-rm openiboot-payload.img2
-rm openiboot-payload.bin