Subversion Repositories freemyipod

Rev

Rev 749 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 749 Rev 870
Line 1... Line 1...
1
NAME := installer-ipodnano4g
1
NAME := installer-ipodnano4g
2
STACKSIZE := 4096
2
STACKSIZE := 4096
3
COMPRESS := false
3
COMPRESS := false
4
AUTOBUILD_FLASHFILES ?= true
4
AUTOBUILD_FLASHFILES ?= true
5
 
5
 
6
EMCOREDIR ?= ../../emcore/trunk/
6
EMCOREDIR ?= ../../emcore/trunk/
7
BOOTMENUDIR ?= ../bootmenu-ipodnano4g/
7
BOOTMENUDIR ?= ../bootmenu-ipodnano4g/
8
LIBBOOTDIR ?= ../../libs/boot/
8
LIBBOOTDIR ?= ../../libs/boot/
9
LIBPNGDIR ?= ../../libs/png/
9
LIBPNGDIR ?= ../../libs/png/
10
LIBUIDIR ?= ../../libs/ui/
10
LIBUIDIR ?= ../../libs/ui/
11
LIBMKFAT32DIR ?= ../../libs/mkfat32/
11
LIBMKFAT32DIR ?= ../../libs/mkfat32/
12
UMSBOOTDIR ?= ../../umsboot/
12
UMSBOOTDIR ?= ../../umsboot/
13
TOOLSDIR ?= ../../tools/
13
TOOLSDIR ?= ../../tools/
14
 
14
 
15
FLASHFILES = flashfiles/boot.emcorelib flashfiles/png.emcorelib flashfiles/ui.emcorelib flashfiles/mkfat32.emcorelib \
15
FLASHFILES = flashfiles/boot.emcorelib flashfiles/png.emcorelib flashfiles/ui.emcorelib flashfiles/mkfat32.emcorelib \
16
             flashfiles/bootmenu-ipodnano4g.emcoreapp flashfiles/background.png flashfiles/icons.png flashfiles/rockbox.png \
16
             flashfiles/bootmenu-ipodnano4g.emcoreapp flashfiles/background.png flashfiles/icons.png flashfiles/rockbox.png \
17
             flashfiles/emcoreldr-ipodnano4g.bin flashfiles/emcore-ipodnano4g.ucl flashfiles/umsboot-ipodnano4g.ucl
17
             flashfiles/emcoreldr-ipodnano4g.bin flashfiles/emcore-ipodnano4g.ucl flashfiles/umsboot-ipodnano4g.ucl
18
 
18
 
19
ifeq ($(shell uname),WindowsNT)
19
ifeq ($(shell uname),WindowsNT)
20
CCACHE :=
20
CCACHE :=
21
else
21
else
22
CCACHE := $(shell which ccache)
22
CCACHE := $(shell which ccache)
23
endif
23
endif
24
 
24
 
25
CROSS   ?= arm-elf-eabi-
25
CROSS   ?= arm-elf-eabi-
26
CC      := $(CCACHE) $(CROSS)gcc
26
CC      := $(CCACHE) $(CROSS)gcc
27
AS      := $(CROSS)as
27
AS      := $(CROSS)as
28
LD      := $(CROSS)ld
28
LD      := $(CROSS)ld
29
OBJCOPY := $(CROSS)objcopy
29
OBJCOPY := $(CROSS)objcopy
30
ELF2ECA := $(CROSS)elf2emcoreapp
30
ELF2ECA := $(CROSS)elf2emcoreapp
31
UCLPACK := ucl2e10singleblk
31
UCLPACK := ucl2e10singleblk
32
STUBEMBED := python tools/stubembed.py
32
STUBEMBED := python tools/stubembed.py
33
EMCOREBOOTCFG := python $(EMCOREDIR)/tools/emcorebootcfg.py
33
EMCOREBOOTCFG := python $(EMCOREDIR)/tools/emcorebootcfg.py
34
EMCOREEMBEDAPP := python $(EMCOREDIR)/tools/emcoreembedapp.py
34
EMCOREEMBEDAPP := python $(EMCOREDIR)/tools/emcoreembedapp.py
35
GENPWN := python $(EMCOREDIR)/tools/ipodcrypt.py s5l8720-genpwnage
35
GENPWN := python $(EMCOREDIR)/tools/ipodcrypt.py s5l8720-genpwnage
36
 
36
 
37
LIBINCLUDES := -I$(LIBPNGDIR)/export -I$(LIBUIDIR)/export -I$(LIBMKFAT32DIR)/export
37
LIBINCLUDES := -I$(LIBPNGDIR)/export -I$(LIBUIDIR)/export -I$(LIBMKFAT32DIR)/export
38
 
38
 
39
CFLAGS  += -Os -fno-pie -fno-stack-protector -fomit-frame-pointer -I. -I$(EMCOREDIR)/export $(LIBINCLUDES) -ffunction-sections -fdata-sections -mcpu=arm1176jz-s -DARM_ARCH=6
39
CFLAGS  += -Os -fno-pie -fno-stack-protector -fomit-frame-pointer -I. -I$(EMCOREDIR)/export $(LIBINCLUDES) -ffunction-sections -fdata-sections -mcpu=arm1176jz-s -DARM_ARCH=6 -marm
40
LDFLAGS += "$(shell $(CC) -print-libgcc-file-name)" --emit-relocs --gc-sections
40
LDFLAGS += "$(shell $(CC) -print-libgcc-file-name)" --emit-relocs --gc-sections
41
 
41
 
42
preprocess = $(shell $(CC) $(PPCFLAGS) $(2) -E -P -x c $(1) | grep -v "^\#")
42
preprocess = $(shell $(CC) $(PPCFLAGS) $(2) -E -P -x c $(1) | grep -v "^\#")
43
preprocesspaths = $(shell $(CC) $(PPCFLAGS) $(2) -E -P -x c $(1) | grep -v "^\#" | sed -e "s:^..*:$(dir $(1))&:" | sed -e "s:^\\./::")
43
preprocesspaths = $(shell $(CC) $(PPCFLAGS) $(2) -E -P -x c $(1) | grep -v "^\#" | sed -e "s:^..*:$(dir $(1))&:" | sed -e "s:^\\./::")
44
 
44
 
45
REVISION := $(shell svnversion .)
45
REVISION := $(shell svnversion .)
46
REVISIONINT := $(shell echo $(REVISION) | sed -e "s/[^0-9].*$$//")
46
REVISIONINT := $(shell echo $(REVISION) | sed -e "s/[^0-9].*$$//")
47
 
47
 
48
HELPERS := build/__emcore_armhelpers.o
48
HELPERS := build/__emcore_armhelpers.o
49
 
49
 
50
SRC := $(call preprocesspaths,SOURCES,-I. -I..)
50
SRC := $(call preprocesspaths,SOURCES,-I. -I..)
51
OBJ := $(SRC:%.c=build/%.o)
51
OBJ := $(SRC:%.c=build/%.o)
52
OBJ := $(OBJ:%.S=build/%.o) $(HELPERS)
52
OBJ := $(OBJ:%.S=build/%.o) $(HELPERS)
53
 
53
 
54
all: $(NAME)
54
all: $(NAME)
55
 
55
 
56
-include $(OBJ:%=%.dep)
56
-include $(OBJ:%=%.dep)
57
 
57
 
58
$(NAME): build/bootstrap-ipodnano4g.dfu build/$(NAME).ubi
58
$(NAME): build/bootstrap-ipodnano4g.dfu build/$(NAME).ubi
59
 
59
 
60
build/bootstrap-ipodnano4g.dfu: build/bootstrap.bin
60
build/bootstrap-ipodnano4g.dfu: build/bootstrap.bin
61
	@echo [GENPWN] $<
61
	@echo [GENPWN] $<
62
	@$(GENPWN) $< $@
62
	@$(GENPWN) $< $@
63
 
63
 
64
build/bootstrap.bin: build/bootstub.bin $(UMSBOOTDIR)/build/ipodnano4g/umsboot.bin
64
build/bootstrap.bin: build/bootstub.bin $(UMSBOOTDIR)/build/ipodnano4g/umsboot.bin
65
	@echo [STUBEM] $@
65
	@echo [STUBEM] $@
66
	@$(STUBEMBED) $^ $@
66
	@$(STUBEMBED) $^ $@
67
 
67
 
68
build/$(NAME).ubi: $(EMCOREDIR)/build/ipodnano4g/emcore.bin build/$(NAME).emcoreapp
68
build/$(NAME).ubi: $(EMCOREDIR)/build/ipodnano4g/emcore.bin build/$(NAME).emcoreapp
69
	@echo [EMBAPP] $@
69
	@echo [EMBAPP] $@
70
	@$(EMCOREEMBEDAPP) $^ $@
70
	@$(EMCOREEMBEDAPP) $^ $@
71
 
71
 
72
build/bootstub.bin: build/bootstub.elf
72
build/bootstub.bin: build/bootstub.elf
73
	@echo [OC]     $<
73
	@echo [OC]     $<
74
	@$(OBJCOPY) -O binary $^ $@
74
	@$(OBJCOPY) -O binary $^ $@
75
 
75
 
76
build/bootstub.elf: bootstub/ls.x build/bootstub/bootstub.o
76
build/bootstub.elf: bootstub/ls.x build/bootstub/bootstub.o
77
	@echo [LD]     $@
77
	@echo [LD]     $@
78
	@$(LD) $(LDFLAGS) -o $@ -T bootstub/ls.x build/bootstub/bootstub.o
78
	@$(LD) $(LDFLAGS) -o $@ -T bootstub/ls.x build/bootstub/bootstub.o
79
 
79
 
80
build/$(NAME).emcoreapp: build/$(NAME).elf
80
build/$(NAME).emcoreapp: build/$(NAME).elf
81
	@echo [EMCAPP] $<
81
	@echo [EMCAPP] $<
82
ifeq ($(COMPRESS),true)
82
ifeq ($(COMPRESS),true)
83
	@$(ELF2ECA) -z -s $(STACKSIZE) -o $@ $^
83
	@$(ELF2ECA) -z -s $(STACKSIZE) -o $@ $^
84
else
84
else
85
	@$(ELF2ECA) -s $(STACKSIZE) -o $@ $^
85
	@$(ELF2ECA) -s $(STACKSIZE) -o $@ $^
86
endif
86
endif
87
 
87
 
88
ifeq ($(AUTOBUILD_FLASHFILES),true)
88
ifeq ($(AUTOBUILD_FLASHFILES),true)
89
build/resources.o: $(FLASHFILES)
89
build/resources.o: $(FLASHFILES)
90
else
90
else
91
build/resources.o: flashfiles.built
91
build/resources.o: flashfiles.built
92
endif
92
endif
93
 
93
 
94
build/$(NAME).elf: ls.x $(OBJ)
94
build/$(NAME).elf: ls.x $(OBJ)
95
	@echo [LD]     $@
95
	@echo [LD]     $@
96
	@$(LD) $(LDFLAGS) -o $@ -T ls.x $(OBJ)
96
	@$(LD) $(LDFLAGS) -o $@ -T ls.x $(OBJ)
97
 
97
 
98
build/%.o: %.c build/version.h
98
build/%.o: %.c build/version.h
99
	@echo [CC]     $<
99
	@echo [CC]     $<
100
ifeq ($(shell uname),WindowsNT)
100
ifeq ($(shell uname),WindowsNT)
101
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
101
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
102
else
102
else
103
	@-mkdir -p $(dir $@)
103
	@-mkdir -p $(dir $@)
104
endif
104
endif
105
	@$(CC) -c $(CFLAGS) -o $@ $<
105
	@$(CC) -c $(CFLAGS) -o $@ $<
106
	@$(CC) -MM $(CFLAGS) $< > $@.dep.tmp
106
	@$(CC) -MM $(CFLAGS) $< > $@.dep.tmp
107
	@sed -e "s|.*:|$@:|" < $@.dep.tmp > $@.dep
107
	@sed -e "s|.*:|$@:|" < $@.dep.tmp > $@.dep
108
ifeq ($(shell uname),WindowsNT)
108
ifeq ($(shell uname),WindowsNT)
109
	@sed -e "s/.*://" -e "s/\\$$//" < $@.dep.tmp | fmt -1 | sed -e "s/^ *//" -e "s/$$/:/" >> $@.dep
109
	@sed -e "s/.*://" -e "s/\\$$//" < $@.dep.tmp | fmt -1 | sed -e "s/^ *//" -e "s/$$/:/" >> $@.dep
110
else
110
else
111
	@sed -e 's/.*://' -e 's/\\$$//' < $@.dep.tmp | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $@.dep
111
	@sed -e 's/.*://' -e 's/\\$$//' < $@.dep.tmp | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $@.dep
112
endif
112
endif
113
	@rm -f $@.dep.tmp
113
	@rm -f $@.dep.tmp
114
 
114
 
115
build/%.o: %.S build/version.h
115
build/%.o: %.S build/version.h
116
	@echo [CC]     $<
116
	@echo [CC]     $<
117
ifeq ($(shell uname),WindowsNT)
117
ifeq ($(shell uname),WindowsNT)
118
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
118
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
119
else
119
else
120
	@-mkdir -p $(dir $@)
120
	@-mkdir -p $(dir $@)
121
endif
121
endif
122
	@$(CC) -c $(CFLAGS) -o $@ $<
122
	@$(CC) -c $(CFLAGS) -o $@ $<
123
	@$(CC) -MM $(CFLAGS) $< > $@.dep.tmp
123
	@$(CC) -MM $(CFLAGS) $< > $@.dep.tmp
124
	@sed -e "s|.*:|$@:|" < $@.dep.tmp > $@.dep
124
	@sed -e "s|.*:|$@:|" < $@.dep.tmp > $@.dep
125
ifeq ($(shell uname),WindowsNT)
125
ifeq ($(shell uname),WindowsNT)
126
	@sed -e "s/.*://" -e "s/\\$$//" < $@.dep.tmp | fmt -1 | sed -e "s/^ *//" -e "s/$$/:/" >> $@.dep
126
	@sed -e "s/.*://" -e "s/\\$$//" < $@.dep.tmp | fmt -1 | sed -e "s/^ *//" -e "s/$$/:/" >> $@.dep
127
else
127
else
128
	@sed -e 's/.*://' -e 's/\\$$//' < $@.dep.tmp | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $@.dep
128
	@sed -e 's/.*://' -e 's/\\$$//' < $@.dep.tmp | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $@.dep
129
endif
129
endif
130
	@rm -f $@.dep.tmp
130
	@rm -f $@.dep.tmp
131
 
131
 
132
build/__emcore_%.o: $(EMCOREDIR)/export/%.c
132
build/__emcore_%.o: $(EMCOREDIR)/export/%.c
133
	@echo [CC]     $<
133
	@echo [CC]     $<
134
ifeq ($(shell uname),WindowsNT)
134
ifeq ($(shell uname),WindowsNT)
135
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
135
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
136
else
136
else
137
	@-mkdir -p $(dir $@)
137
	@-mkdir -p $(dir $@)
138
endif
138
endif
139
	@$(CC) -c $(CFLAGS) -o $@ $<
139
	@$(CC) -c $(CFLAGS) -o $@ $<
140
 
140
 
141
build/__emcore_%.o: $(EMCOREDIR)/export/%.S
141
build/__emcore_%.o: $(EMCOREDIR)/export/%.S
142
	@echo [CC]     $<
142
	@echo [CC]     $<
143
ifeq ($(shell uname),WindowsNT)
143
ifeq ($(shell uname),WindowsNT)
144
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
144
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
145
else
145
else
146
	@-mkdir -p $(dir $@)
146
	@-mkdir -p $(dir $@)
147
endif
147
endif
148
	@$(CC) -c $(CFLAGS) -o $@ $<
148
	@$(CC) -c $(CFLAGS) -o $@ $<
149
 
149
 
150
build/version.h: version.h .svn/entries
150
build/version.h: version.h ../../.svn/entries
151
	@echo [PP]     $<
151
	@echo [PP]     $<
152
ifeq ($(shell uname),WindowsNT)
152
ifeq ($(shell uname),WindowsNT)
153
	@-if not exist build md build
153
	@-if not exist build md build
154
	@sed -e "s/\$$REVISION\$$/$(REVISION)/" -e "s/\$$REVISIONINT\$$/$(REVISIONINT)/" < $< > $@
154
	@sed -e "s/\$$REVISION\$$/$(REVISION)/" -e "s/\$$REVISIONINT\$$/$(REVISIONINT)/" < $< > $@
155
else
155
else
156
	@-mkdir -p build
156
	@-mkdir -p build
157
	@sed -e 's/\$$REVISION\$$/$(REVISION)/' -e 's/\$$REVISIONINT\$$/$(REVISIONINT)/' < $< > $@
157
	@sed -e 's/\$$REVISION\$$/$(REVISION)/' -e 's/\$$REVISIONINT\$$/$(REVISIONINT)/' < $< > $@
158
endif
158
endif
159
 
159
 
160
flashfiles: $(FLASHFILES)
160
flashfiles: $(FLASHFILES)
161
	@touch flashfiles.built
161
	@touch flashfiles.built
162
 
162
 
163
$(LIBBOOTDIR)/build/boot.emcorelib: libboot
163
$(LIBBOOTDIR)/build/boot.emcorelib: libboot
164
	@$(MAKE) -C $(LIBBOOTDIR)
164
	@$(MAKE) -C $(LIBBOOTDIR)
165
 
165
 
166
flashfiles/boot.emcorelib: $(LIBBOOTDIR)/build/boot.emcorelib
166
flashfiles/boot.emcorelib: $(LIBBOOTDIR)/build/boot.emcorelib
167
	@echo [CP]     $@
167
	@echo [CP]     $@
168
	@cp $< $@
168
	@cp $< $@
169
 
169
 
170
$(LIBPNGDIR)/build/png.emcorelib: libpng
170
$(LIBPNGDIR)/build/png.emcorelib: libpng
171
	@$(MAKE) -C $(LIBPNGDIR)
171
	@$(MAKE) -C $(LIBPNGDIR)
172
 
172
 
173
flashfiles/png.emcorelib: $(LIBPNGDIR)/build/png.emcorelib
173
flashfiles/png.emcorelib: $(LIBPNGDIR)/build/png.emcorelib
174
	@echo [CP]     $@
174
	@echo [CP]     $@
175
	@cp $< $@
175
	@cp $< $@
176
 
176
 
177
$(LIBUIDIR)/build/ui.emcorelib: libui
177
$(LIBUIDIR)/build/ui.emcorelib: libui
178
	@$(MAKE) -C $(LIBUIDIR)
178
	@$(MAKE) -C $(LIBUIDIR)
179
 
179
 
180
flashfiles/ui.emcorelib: $(LIBUIDIR)/build/ui.emcorelib
180
flashfiles/ui.emcorelib: $(LIBUIDIR)/build/ui.emcorelib
181
	@echo [CP]     $@
181
	@echo [CP]     $@
182
	@cp $< $@
182
	@cp $< $@
183
 
183
 
184
$(LIBMKFAT32DIR)/build/mkfat32.emcorelib: libmkfat32
184
$(LIBMKFAT32DIR)/build/mkfat32.emcorelib: libmkfat32
185
	@$(MAKE) -C $(LIBMKFAT32DIR)
185
	@$(MAKE) -C $(LIBMKFAT32DIR)
186
 
186
 
187
flashfiles/mkfat32.emcorelib: $(LIBMKFAT32DIR)/build/mkfat32.emcorelib
187
flashfiles/mkfat32.emcorelib: $(LIBMKFAT32DIR)/build/mkfat32.emcorelib
188
	@echo [CP]     $@
188
	@echo [CP]     $@
189
	@cp $< $@
189
	@cp $< $@
190
 
190
 
191
$(UMSBOOTDIR)/build/ipodnano4g/umsboot-ipodnano4g.ucl $(UMSBOOTDIR)/build/ipodnano4g/umsboot.bin: umsboot
191
$(UMSBOOTDIR)/build/ipodnano4g/umsboot-ipodnano4g.ucl $(UMSBOOTDIR)/build/ipodnano4g/umsboot.bin: umsboot
192
	@$(MAKE) -C $(UMSBOOTDIR) ipodnano4g
192
	@$(MAKE) -C $(UMSBOOTDIR) ipodnano4g
193
 
193
 
194
flashfiles/umsboot-ipodnano4g.ucl: $(UMSBOOTDIR)/build/ipodnano4g/umsboot-ipodnano4g.ucl
194
flashfiles/umsboot-ipodnano4g.ucl: $(UMSBOOTDIR)/build/ipodnano4g/umsboot-ipodnano4g.ucl
195
	@echo [CP]     $@
195
	@echo [CP]     $@
196
	@cp $< $@
196
	@cp $< $@
197
 
197
 
198
$(BOOTMENUDIR)/build/bootmenu-ipodnano4g.emcoreapp: bootmenu-ipodnano4g
198
$(BOOTMENUDIR)/build/bootmenu-ipodnano4g.emcoreapp: bootmenu-ipodnano4g
199
	@$(MAKE) -C $(BOOTMENUDIR)
199
	@$(MAKE) -C $(BOOTMENUDIR)
200
 
200
 
201
flashfiles/bootmenu-ipodnano4g.emcoreapp: $(BOOTMENUDIR)/build/bootmenu-ipodnano4g.emcoreapp
201
flashfiles/bootmenu-ipodnano4g.emcoreapp: $(BOOTMENUDIR)/build/bootmenu-ipodnano4g.emcoreapp
202
	@echo [CP]     $@
202
	@echo [CP]     $@
203
	@cp $< $@
203
	@cp $< $@
204
 
204
 
205
flashfiles/background.png: $(BOOTMENUDIR)/images/background.png
205
flashfiles/background.png: $(BOOTMENUDIR)/images/background.png
206
	@echo [CP]     $@
206
	@echo [CP]     $@
207
	@cp $< $@
207
	@cp $< $@
208
 
208
 
209
flashfiles/icons.png: $(BOOTMENUDIR)/images/icons.png
209
flashfiles/icons.png: $(BOOTMENUDIR)/images/icons.png
210
	@echo [CP]     $@
210
	@echo [CP]     $@
211
	@cp $< $@
211
	@cp $< $@
212
 
212
 
213
flashfiles/rockbox.png: $(BOOTMENUDIR)/images/rockbox.png
213
flashfiles/rockbox.png: $(BOOTMENUDIR)/images/rockbox.png
214
	@echo [CP]     $@
214
	@echo [CP]     $@
215
	@cp $< $@
215
	@cp $< $@
216
 
216
 
217
$(EMCOREDIR)/loader/ipodnano4g/build/emcoreldr-ipodnano4g.bin: emcoreldr-ipodnano4g
217
$(EMCOREDIR)/loader/ipodnano4g/build/emcoreldr-ipodnano4g.bin: emcoreldr-ipodnano4g
218
	@$(MAKE) -C $(EMCOREDIR)/loader/ipodnano4g
218
	@$(MAKE) -C $(EMCOREDIR)/loader/ipodnano4g
219
 
219
 
220
flashfiles/emcoreldr-ipodnano4g.bin: $(EMCOREDIR)/loader/ipodnano4g/build/emcoreldr-ipodnano4g.bin
220
flashfiles/emcoreldr-ipodnano4g.bin: $(EMCOREDIR)/loader/ipodnano4g/build/emcoreldr-ipodnano4g.bin
221
	@echo [CP]     $@
221
	@echo [CP]     $@
222
	@cp $< $@
222
	@cp $< $@
223
 
223
 
224
flashfiles/emcore-ipodnano4g.ucl: flashfiles/emcore-ipodnano4g.bin
224
flashfiles/emcore-ipodnano4g.ucl: flashfiles/emcore-ipodnano4g.bin
225
	@echo [UCL]    $<
225
	@echo [UCL]    $<
226
	@$(UCLPACK) $< $@
226
	@$(UCLPACK) $< $@
227
 
227
 
228
$(EMCOREDIR)/build/ipodnano4g/emcore.bin: emcore
228
$(EMCOREDIR)/build/ipodnano4g/emcore.bin: emcore
229
	@$(MAKE) -C $(EMCOREDIR) ipodnano4g
229
	@$(MAKE) -C $(EMCOREDIR) ipodnano4g
230
 
230
 
231
flashfiles/emcore-ipodnano4g.bin: $(EMCOREDIR)/build/ipodnano4g/emcore.bin
231
flashfiles/emcore-ipodnano4g.bin: $(EMCOREDIR)/build/ipodnano4g/emcore.bin
232
	@echo [EMBCFG] $@
232
	@echo [EMBCFG] $@
233
	@$(EMCOREBOOTCFG) $< $@ "(3, '/.boot/init.emcoreapp', None, (2, 'bootmenu', None, None))"
233
	@$(EMCOREBOOTCFG) $< $@ "(3, '/.boot/init.emcoreapp', None, (2, 'bootmenu', None, None))"
234
 
234
 
235
clean:
235
clean:
236
	@rm -rf build
236
	@rm -rf build
237
 
237
 
238
.PHONY: all clean emcore emcoreldr-ipodnano4g bootmenu-ipodnano4g libboot libpng libui libmkfat32 umsboot libucl flashfiles $(NAME)
238
.PHONY: all clean emcore emcoreldr-ipodnano4g bootmenu-ipodnano4g libboot libpng libui libmkfat32 umsboot libucl flashfiles $(NAME)