]>
Commit | Line | Data |
---|---|---|
fb739ccd | 1 | AUTOMAKE_OPTIONS = subdir-objects -Wno-portability |
d5c3b7ce | 2 | |
019be613 | 3 | DEPDIR=.deps-core |
6304d292 | 4 | |
a5a3bccd | 5 | include $(top_srcdir)/conf/Makefile.common |
6304d292 | 6 | |
a5a3bccd BC |
7 | CC=$(TARGET_CC) |
8 | CPP=$(TARGET_CC) | |
9 | CCAS=$(TARGET_CC) | |
0e8daad0 VS |
10 | RANLIB=$(TARGET_RANLIB) |
11 | STRIP=$(TARGET_STRIP) | |
8c411768 | 12 | |
382775d1 VS |
13 | MACHO2IMG=$(top_builddir)/grub-macho2img |
14 | ||
a5a3bccd BC |
15 | AM_CFLAGS = $(TARGET_CFLAGS) |
16 | AM_LDFLAGS = $(TARGET_LDFLAGS) | |
17 | AM_CPPFLAGS = $(TARGET_CPPFLAGS) $(CPPFLAGS_DEFAULT) | |
18 | AM_CCASFLAGS = $(TARGET_CCASFLAGS) $(CCASFLAGS_DEFAULT) | |
8c411768 | 19 | |
a5a3bccd BC |
20 | CFLAGS_PROGRAM += $(CFLAGS_PLATFORM) |
21 | LDFLAGS_PROGRAM += $(LDFLAGS_PLATFORM) | |
22 | CPPFLAGS_PROGRAM += $(CPPFLAGS_PLATFORM) | |
23 | CCASFLAGS_PROGRAM += $(CCASFLAGS_PLATFORM) | |
8c411768 | 24 | |
a5a3bccd BC |
25 | CFLAGS_LIBRARY += $(CFLAGS_PLATFORM) -fno-builtin |
26 | CPPFLAGS_LIBRARY += $(CPPFLAGS_PLATFORM) | |
27 | CCASFLAGS_LIBRARY += $(CCASFLAGS_PLATFORM) | |
8c411768 | 28 | |
6f1f6a0c VS |
29 | build-grub-pep2elf: $(top_srcdir)/util/grub-pe2elf.c $(top_srcdir)/grub-core/kern/emu/misc.c $(top_srcdir)/util/misc.c |
30 | $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -DGRUB_BUILD=1 -DGRUB_TARGET_WORDSIZE=64 -DGRUB_UTIL=1 -DGRUB_BUILD_PROGRAM_NAME=\"build-grub-pep2elf\" $^ | |
31 | ||
7b780018 | 32 | build-grub-pe2elf: $(top_srcdir)/util/grub-pe2elf.c $(top_srcdir)/grub-core/kern/emu/misc.c $(top_srcdir)/util/misc.c |
6f1f6a0c | 33 | $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -DGRUB_BUILD=1 -DGRUB_TARGET_WORDSIZE=32 -DGRUB_UTIL=1 -DGRUB_BUILD_PROGRAM_NAME=\"build-grub-pe2elf\" $^ |
7b780018 | 34 | |
8c411768 | 35 | # gentrigtables |
6304d292 | 36 | gentrigtables: gentrigtables.c |
29013cba | 37 | $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< $(BUILD_LIBM) |
8c411768 BC |
38 | CLEANFILES += gentrigtables |
39 | ||
40 | # trigtables.c | |
bdf0d623 | 41 | trigtables.c: gentrigtables gentrigtables.c $(top_srcdir)/configure.ac |
3cc1878f | 42 | ./gentrigtables > $@ |
8c411768 BC |
43 | CLEANFILES += trigtables.c |
44 | ||
45 | # XXX Use Automake's LEX & YACC support | |
6304d292 BC |
46 | grub_script.tab.h: script/parser.y |
47 | $(YACC) -d -p grub_script_yy -b grub_script $< | |
02c9030a | 48 | grub_script.tab.c: grub_script.tab.h |
8c411768 BC |
49 | CLEANFILES += grub_script.tab.c grub_script.tab.h |
50 | ||
51 | # For the lexer. | |
6304d292 BC |
52 | grub_script.yy.h: script/yylex.l |
53 | $(LEX) -o grub_script.yy.c --header-file=grub_script.yy.h $< | |
02c9030a | 54 | grub_script.yy.c: grub_script.yy.h |
419cbeb0 | 55 | |
cc284112 | 56 | rs_decoder.h: $(srcdir)/lib/reed_solomon.c |
b99f3e00 | 57 | $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Os -I$(top_builddir) -S -DSTANDALONE -o $@ $< -g0 -mregparm=3 -ffreestanding |
419cbeb0 | 58 | |
8c411768 BC |
59 | CLEANFILES += grub_script.yy.c grub_script.yy.h |
60 | ||
3d9d3542 | 61 | include $(srcdir)/Makefile.core.am |
6304d292 BC |
62 | |
63 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/cache.h | |
64 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h | |
65 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h | |
66 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/disk.h | |
67 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dl.h | |
6304d292 BC |
68 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h |
69 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h | |
70 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h | |
71 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/file.h | |
72 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fs.h | |
73 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i18n.h | |
74 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/kernel.h | |
75 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/list.h | |
76 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/misc.h | |
77 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/mm.h | |
6304d292 BC |
78 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/parser.h |
79 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/partition.h | |
6304d292 BC |
80 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/term.h |
81 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/time.h | |
16bd6cfa | 82 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/mm_private.h |
9a9852df | 83 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/net.h |
d59849b2 | 84 | if !COND_clang |
050abaea | 85 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/libgcc.h |
d59849b2 | 86 | endif |
df3df23d | 87 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/memory.h |
16bd6cfa VS |
88 | |
89 | if COND_i386_pc | |
6304d292 BC |
90 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h |
91 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/pxe.h | |
afba9f98 | 92 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/int.h |
5341c0fb | 93 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h |
6304d292 BC |
94 | endif |
95 | ||
96 | if COND_i386_efi | |
6304d292 | 97 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h |
6304d292 | 98 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h |
5341c0fb | 99 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h |
9d34bb85 | 100 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h |
6304d292 BC |
101 | endif |
102 | ||
103 | if COND_i386_coreboot | |
5341c0fb | 104 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h |
cc19857a | 105 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/coreboot/lbio.h |
fc4c4fdd VS |
106 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h |
107 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h | |
108 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h | |
109 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h | |
110 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h | |
6304d292 BC |
111 | endif |
112 | ||
113 | if COND_i386_multiboot | |
5341c0fb | 114 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h |
9fc9ce37 | 115 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/i386/pc/int.h |
6304d292 BC |
116 | endif |
117 | ||
118 | if COND_i386_qemu | |
6304d292 | 119 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h |
5341c0fb | 120 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h |
6304d292 BC |
121 | endif |
122 | ||
123 | if COND_i386_ieee1275 | |
6304d292 | 124 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/ieee1275/ieee1275.h |
6304d292 | 125 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h |
ee74fa48 VS |
126 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h |
127 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h | |
5341c0fb | 128 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h |
6304d292 BC |
129 | endif |
130 | ||
9612ebc0 VS |
131 | if COND_i386_xen |
132 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/xen.h | |
133 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/xen/hypercall.h | |
134 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h | |
135 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h | |
136 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h | |
137 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/loader.h | |
138 | endif | |
139 | ||
140 | if COND_x86_64_xen | |
141 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/xen.h | |
142 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/x86_64/xen/hypercall.h | |
143 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h | |
144 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h | |
145 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h | |
146 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/loader.h | |
147 | endif | |
148 | ||
6304d292 | 149 | if COND_x86_64_efi |
6304d292 | 150 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h |
6304d292 | 151 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h |
5341c0fb | 152 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h |
9d34bb85 | 153 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h |
6304d292 BC |
154 | endif |
155 | ||
6585de4c VS |
156 | if COND_ia64_efi |
157 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h | |
6585de4c | 158 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h |
6585de4c VS |
159 | endif |
160 | ||
8906c3dd VS |
161 | if COND_mips |
162 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/cpu/kernel.h | |
163 | endif | |
164 | ||
165 | if COND_mips_arc | |
166 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h | |
167 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arc/arc.h | |
b04b5990 | 168 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h |
8906c3dd VS |
169 | endif |
170 | ||
3666d5f6 | 171 | if COND_mips_qemu_mips |
d7345994 VS |
172 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h |
173 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h | |
d7345994 VS |
174 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/serial.h |
175 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/loader.h | |
176 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h | |
3666d5f6 | 177 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h |
d7345994 | 178 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h |
3666d5f6 VS |
179 | endif |
180 | ||
54da1feb | 181 | if COND_mips_loongson |
5aaf2c18 | 182 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h |
6304d292 | 183 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h |
7da036bb | 184 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/time.h |
6304d292 | 185 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h |
813c1622 | 186 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h |
6304d292 BC |
187 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h |
188 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h | |
6304d292 BC |
189 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h |
190 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h | |
6304d292 BC |
191 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/cs5536.h |
192 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/pci.h | |
df3df23d | 193 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/serial.h |
685475e5 | 194 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/loader.h |
ee74fa48 VS |
195 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h |
196 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h | |
197 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h | |
6304d292 BC |
198 | endif |
199 | ||
f440c33f VS |
200 | if COND_mips_qemu_mips |
201 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/memory.h | |
202 | KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h | |
203 | endif | |
204 | ||
6304d292 | 205 | if COND_powerpc_ieee1275 |
6304d292 | 206 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/ieee1275/ieee1275.h |
ee74fa48 VS |
207 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h |
208 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h | |
209 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h | |
6304d292 BC |
210 | endif |
211 | ||
212 | if COND_sparc64_ieee1275 | |
6304d292 | 213 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/ieee1275/ieee1275.h |
6304d292 | 214 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/sparc64/ieee1275/ieee1275.h |
ee74fa48 VS |
215 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h |
216 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h | |
217 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h | |
6304d292 BC |
218 | endif |
219 | ||
389b31cd LL |
220 | if COND_arm_uboot |
221 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/uboot/uboot.h | |
222 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/uboot/disk.h | |
223 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h | |
224 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h | |
225 | endif | |
226 | ||
227 | if COND_arm_efi | |
228 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/efi/loader.h | |
229 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h | |
230 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h | |
231 | endif | |
232 | ||
15a463d7 LL |
233 | if COND_arm64_efi |
234 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h | |
235 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h | |
236 | endif | |
237 | ||
6304d292 | 238 | if COND_emu |
6304d292 BC |
239 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/datetime.h |
240 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/misc.h | |
70671037 | 241 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/net.h |
25ac643a | 242 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostdisk.h |
d7750b32 | 243 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostfile.h |
db99fbe8 | 244 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h |
6304d292 BC |
245 | if COND_GRUB_EMU_SDL |
246 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/sdl.h | |
247 | endif | |
248 | if COND_GRUB_EMU_USB | |
249 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/libusb.h | |
250 | endif | |
251 | if COND_GRUB_EMU_PCI | |
252 | KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/libpciaccess.h | |
253 | endif | |
254 | endif | |
255 | ||
256 | symlist.h: $(top_builddir)/config.h $(KERNEL_HEADER_FILES) | |
257 | @list='$^'; \ | |
258 | for p in $$list; do \ | |
259 | echo "#include <$$p>" >> $@ || (rm -f $@; exit 1); \ | |
260 | done | |
261 | CLEANFILES += symlist.h | |
262 | BUILT_SOURCES += symlist.h | |
263 | ||
264 | symlist.c: symlist.h gensymlist.sh | |
265 | $(TARGET_CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS_KERNEL) $(CPPFLAGS) -DGRUB_SYMBOL_GENERATOR=1 symlist.h > symlist.p || (rm -f symlist.p; exit 1) | |
266 | cat symlist.p | /bin/sh $(srcdir)/gensymlist.sh $(top_builddir)/config.h $(KERNEL_HEADER_FILES) >$@ || (rm -f $@; exit 1) | |
267 | rm -f symlist.p | |
268 | CLEANFILES += symlist.c | |
269 | BUILT_SOURCES += symlist.c | |
270 | ||
742f9232 | 271 | if COND_HAVE_ASM_USCORE |
f772623b | 272 | ASM_PREFIX=_ |
742f9232 VS |
273 | else |
274 | ASM_PREFIX= | |
275 | endif | |
276 | ||
6304d292 | 277 | noinst_DATA += kernel_syms.lst |
742f9232 | 278 | |
6304d292 BC |
279 | kernel_syms.lst: $(KERNEL_HEADER_FILES) $(top_builddir)/config.h |
280 | $(TARGET_CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS_KERNEL) $(CPPFLAGS) $(CFLAGS) -DGRUB_SYMBOL_GENERATOR=1 $^ >kernel_syms.input | |
6304d292 | 281 | cat kernel_syms.input | grep -v '^#' | sed -n \ |
f772623b YB |
282 | -e '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/defined kernel '"$(ASM_PREFIX)"'\1/;p;}' \ |
283 | -e '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/defined kernel '"$(ASM_PREFIX)"'\1/;p;}' \ | |
6304d292 BC |
284 | | sort -u >$@ |
285 | rm -f kernel_syms.input | |
286 | CLEANFILES += kernel_syms.lst | |
287 | ||
288 | if COND_emu | |
289 | kern/emu/grub_emu-main.$(OBJEXT):grub_emu_init.h | |
290 | grub_emu-grub_emu_init.$(OBJEXT):grub_emu_init.h | |
291 | kern/emu/grub_emu_dyn-main.$(OBJEXT):grub_emu_init.h | |
292 | grub_emu_dyn-grub_emu_init.$(OBJEXT):grub_emu_init.h | |
293 | ||
294 | grub_emu_init.h: genemuinitheader.sh $(MOD_FILES) | |
fc97214f | 295 | rm -f $@; echo $(MOD_FILES) | sh $(srcdir)/genemuinitheader.sh $(TARGET_NM) > $@ |
6304d292 BC |
296 | CLEANFILES += grub_emu_init.h |
297 | ||
298 | grub_emu_init.c: grub_emu_init.h genemuinit.sh $(MOD_FILES) | |
fc97214f | 299 | rm -f $@; echo $(MOD_FILES) | sh $(srcdir)/genemuinit.sh $(TARGET_NM) > $@ |
6304d292 BC |
300 | CLEANFILES += grub_emu_init.c |
301 | endif | |
8c411768 | 302 | |
a0bf9fc9 | 303 | # List files |
8c411768 | 304 | |
6568636e | 305 | fs.lst: $(MARKER_FILES) |
a0bf9fc9 | 306 | (for pp in $^; do \ |
6568636e BC |
307 | b=`basename $$pp .marker`; \ |
308 | if grep 'FS_LIST_MARKER' $$pp >/dev/null 2>&1; then \ | |
a0bf9fc9 BC |
309 | echo $$b; \ |
310 | fi; \ | |
311 | done) | sort -u > $@ | |
8c411768 | 312 | platform_DATA += fs.lst |
6304d292 BC |
313 | CLEANFILES += fs.lst |
314 | ||
6568636e | 315 | command.lst: $(MARKER_FILES) |
a0bf9fc9 | 316 | (for pp in $^; do \ |
6568636e BC |
317 | b=`basename $$pp .marker`; \ |
318 | sed -n \ | |
6568636e | 319 | -e "/EXTCOMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ |
bf16e98e CW |
320 | -e "/P1COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ |
321 | -e "/COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" $$pp; \ | |
a0bf9fc9 BC |
322 | done) | sort -u > $@ |
323 | platform_DATA += command.lst | |
6304d292 BC |
324 | CLEANFILES += command.lst |
325 | ||
6568636e | 326 | partmap.lst: $(MARKER_FILES) |
a0bf9fc9 | 327 | (for pp in $^; do \ |
6568636e BC |
328 | b=`basename $$pp .marker`; \ |
329 | if grep 'PARTMAP_LIST_MARKER' $$pp >/dev/null 2>&1; then \ | |
a0bf9fc9 BC |
330 | echo $$b; \ |
331 | fi; \ | |
332 | done) | sort -u > $@ | |
333 | platform_DATA += partmap.lst | |
6304d292 BC |
334 | CLEANFILES += partmap.lst |
335 | ||
6568636e | 336 | terminal.lst: $(MARKER_FILES) |
a0bf9fc9 | 337 | (for pp in $^; do \ |
6568636e BC |
338 | b=`basename $$pp .marker`; \ |
339 | sed -n \ | |
340 | -e "/INPUT_TERMINAL_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/i\1: $$b/;p;}" \ | |
341 | -e "/OUTPUT_TERMINAL_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/o\1: $$b/;p;}" $$pp; \ | |
a0bf9fc9 BC |
342 | done) | sort -u > $@ |
343 | platform_DATA += terminal.lst | |
6304d292 BC |
344 | CLEANFILES += terminal.lst |
345 | ||
6568636e | 346 | parttool.lst: $(MARKER_FILES) |
a0bf9fc9 | 347 | (for pp in $^; do \ |
6568636e BC |
348 | b=`basename $$pp .marker`; \ |
349 | sed -n \ | |
350 | -e "/PARTTOOL_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" $$pp; \ | |
a0bf9fc9 BC |
351 | done) | sort -u > $@ |
352 | platform_DATA += parttool.lst | |
6304d292 BC |
353 | CLEANFILES += parttool.lst |
354 | ||
6568636e | 355 | video.lst: $(MARKER_FILES) |
a0bf9fc9 | 356 | (for pp in $^; do \ |
6568636e BC |
357 | b=`basename $$pp .marker`; \ |
358 | if grep 'VIDEO_LIST_MARKER' $$pp >/dev/null 2>&1; then \ | |
a0bf9fc9 BC |
359 | echo $$b; \ |
360 | fi; \ | |
361 | done) | sort -u > $@ | |
362 | platform_DATA += video.lst | |
6304d292 | 363 | CLEANFILES += video.lst |
8c411768 BC |
364 | |
365 | # but, crypto.lst is simply copied | |
6304d292 | 366 | crypto.lst: $(srcdir)/lib/libgcrypt-grub/cipher/crypto.lst |
8c411768 | 367 | cp $^ $@ |
a0bf9fc9 | 368 | platform_DATA += crypto.lst |
6304d292 | 369 | CLEANFILES += crypto.lst |
8c411768 | 370 | |
0d4552fa BC |
371 | syminfo.lst: gensyminfo.sh kernel_syms.lst $(MODULE_FILES) |
372 | cat kernel_syms.lst > $@.new | |
373 | for m in $(MODULE_FILES); do \ | |
374 | sh $< $$m >> $@.new || exit 1; \ | |
375 | done | |
376 | mv $@.new $@ | |
a0bf9fc9 | 377 | |
8c411768 | 378 | # generate global module dependencies list |
22c7ce85 | 379 | moddep.lst: syminfo.lst genmoddep.awk video.lst |
9e0bee42 | 380 | cat $< | sort | $(AWK) -f $(srcdir)/genmoddep.awk > $@ || (rm -f $@; exit 1) |
0d4552fa | 381 | platform_DATA += moddep.lst |
ea943e89 | 382 | CLEANFILES += config.log syminfo.lst moddep.lst |
6b5f780f BC |
383 | |
384 | $(MOD_FILES): %.mod : genmod.sh moddep.lst %.module$(EXEEXT) | |
f1632d4d | 385 | TARGET_OBJ2ELF=@TARGET_OBJ2ELF@ sh $^ $@ |
6b5f780f | 386 | platform_DATA += $(MOD_FILES) |
6ad6223e | 387 | platform_DATA += modinfo.sh |
6b5f780f | 388 | CLEANFILES += $(MOD_FILES) |
8c411768 | 389 | |
8c411768 BC |
390 | if COND_ENABLE_EFIEMU |
391 | efiemu32.o: efiemu/runtime/efiemu.c $(TARGET_OBJ2ELF) | |
9208367d VS |
392 | -rm -f $@ |
393 | -rm -f $@.bin | |
394 | $(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m32 -Wall -Werror -nostdlib -static -O2 -c -o $@.bin $< | |
a9f25a08 | 395 | if test "x$(TARGET_APPLE_LINKER)" = x1; then \ |
b700a427 | 396 | $(TARGET_OBJCONV) -felf32 -nu -nd $@.bin $@ || exit 1; \ |
9208367d VS |
397 | rm -f $@.bin ; \ |
398 | elif test ! -z "$(TARGET_OBJ2ELF)"; then \ | |
399 | $(TARGET_OBJ2ELF) $@.bin || (rm -f $@.bin; exit 1); \ | |
400 | mv $@.bin $@ ; \ | |
8c411768 | 401 | else \ |
9208367d | 402 | mv $@.bin $@ ; \ |
8c411768 BC |
403 | fi |
404 | ||
c2b70d09 | 405 | # Link format -arch,x86_64 means Apple linker |
8c411768 | 406 | efiemu64_c.o: efiemu/runtime/efiemu.c |
9208367d | 407 | $(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m64 -nostdlib -Wall -Werror -O2 -mcmodel=large -mno-red-zone -c -o $@ $< |
8c411768 BC |
408 | |
409 | efiemu64_s.o: efiemu/runtime/efiemu.S | |
9208367d | 410 | $(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m64 -Wall -Werror -nostdlib -O2 -mcmodel=large -mno-red-zone -c -o $@ $< |
8c411768 BC |
411 | |
412 | efiemu64.o: efiemu64_c.o efiemu64_s.o $(TARGET_OBJ2ELEF) | |
9208367d VS |
413 | -rm -f $@ |
414 | -rm -f $@.bin | |
415 | $(TARGET_CC) -m64 $(EFIEMU64_LINK_FORMAT) -nostdlib -static -Wl,-r -o $@.bin $^ | |
c2b70d09 | 416 | if test "x$(EFIEMU64_LINK_FORMAT)" = x-arch,x86_64; then \ |
b700a427 | 417 | $(TARGET_OBJCONV) -felf64 -nu -nd $@.bin $@ || exit 1; \ |
8c411768 BC |
418 | rm -f $@.bin; \ |
419 | else \ | |
9208367d | 420 | mv $@.bin $@ ; \ |
8c411768 BC |
421 | fi |
422 | ||
423 | platform_DATA += efiemu32.o efiemu64.o | |
424 | CLEANFILES += efiemu32.o efiemu64.o efiemu64_c.o efiemu64_s.o | |
425 | endif | |
cd46aa6c VS |
426 | |
427 | windowsdir=$(top_builddir)/$(PACKAGE)-$(VERSION)-for-windows | |
428 | windowsdir: $(PROGRAMS) $(starfield_DATA) $(platform_DATA) | |
429 | test -d $(windowsdir)/$(target_cpu)-$(platform) || mkdir $(windowsdir)/$(target_cpu)-$(platform) | |
430 | for x in $(platform_DATA); do \ | |
431 | cp -fp $$x $(windowsdir)/$(target_cpu)-$(platform)/$$x; \ | |
432 | done |