]>
Commit | Line | Data |
---|---|---|
8c411768 | 1 | AUTOMAKE_OPTIONS = subdir-objects |
8c411768 | 2 | |
019be613 | 3 | DEPDIR = .deps-util |
8c411768 | 4 | SUBDIRS = . grub-core po docs |
d5c3b7ce | 5 | EXTRA_DIST = autogen.sh gentpl.py Makefile.tpl modules.def geninit.sh |
2b6c0084 | 6 | EXTRA_DIST += include conf/i386-pc-cygwin-img-ld.sc |
8c411768 | 7 | |
c49e5dff BC |
8 | grubconfdir = $(sysconfdir)/grub.d |
9 | platformdir = $(pkglibrootdir)/$(target_cpu)-$(platform) | |
10 | ||
11 | # Platform specific options | |
12 | if COND_i386_pc | |
13 | CFLAGS_PLATFORM = -mrtd -mregparm=3 | |
14 | endif | |
15 | if COND_i386_efi | |
16 | LDFLAGS_PLATFORM = -melf_i386 | |
17 | endif | |
18 | if COND_x86_64_efi | |
19 | LDFLAGS_PLATFORM = -melf_x86_64 | |
20 | endif | |
21 | if COND_i386_qemu | |
22 | CFLAGS_PLATFORM = -mrtd -mregparm=3 | |
23 | endif | |
24 | if COND_i386_coreboot | |
25 | CFLAGS_PLATFORM = -mrtd -mregparm=3 | |
26 | endif | |
27 | if COND_i386_ieee1275 | |
28 | CFLAGS_PLATFORM = -mrtd -mregparm=3 | |
29 | endif | |
30 | if COND_mips_yeeloong | |
31 | CFLAGS_PLATFORM = -march=mips3 -mexplicit-relocs -mflush-func=grub_cpu_flush_cache | |
32 | CCASFLAGS_PLATFORM = -march=mips3 | |
33 | endif | |
34 | if COND_sparc64_ieee1275 | |
35 | CFLAGS_PLATFORM = -mno-app-regs | |
36 | LDFLAGS_PLATFORM = -melf64_sparc -mno-relax | |
37 | endif | |
38 | ||
39 | CPPFLAGS_GRUB = -DGRUB_FILE=\"`basename $<`\" | |
40 | CPPFLAGS_GRUB += -I$(builddir) -I$(srcdir) -I$(top_builddir) -I$(top_srcdir) | |
41 | CPPFLAGS_GRUB += -I$(top_srcdir)/include | |
42 | CPPFLAGS_GRUB += -I$(top_builddir)/include | |
43 | CCASFLAGS_GRUB = -DASM_FILE=1 | |
44 | ||
45 | CFLAGS_GCRY = -Wno-error -Wno-missing-field-initializers | |
76ed06b9 | 46 | CPPFLAGS_GCRY = -I$(top_srcdir)/grub-core/lib/libgcrypt_wrap |
c49e5dff BC |
47 | |
48 | CFLAGS_GNULIB = -Wno-undef -Wno-sign-compare -Wno-unused -D_GL_UNUSED="__attribute__ ((unused))" | |
76ed06b9 | 49 | CPPFLAGS_GNULIB = -I$(top_srcdir)/grub-core/gnulib |
c49e5dff BC |
50 | |
51 | CFLAGS_MKISOFS = -Wno-all -Werror | |
52 | CPPFLAGS_MKISOFS = -D_FILE_OFFSET_BITS=64 -I$(top_srcdir)/util/mkisofs/include | |
53 | ||
54 | CFLAGS_POSIX = -fno-builtin | |
76ed06b9 | 55 | CPPFLAGS_POSIX = -I$(top_srcdir)/grub-core/lib/posix_wrap |
c49e5dff | 56 | |
76ed06b9 | 57 | CPPFLAGS_EFIEMU = -I$(top_srcdir)/grub-core/efiemu/runtime |
c49e5dff BC |
58 | |
59 | # to calm down automake | |
60 | BUILT_SOURCES = | |
61 | CLEANFILES = | |
62 | COMMAND_FILES = | |
63 | DEF_FILES = | |
64 | FS_FILES = | |
65 | HANDLER_FILES = | |
66 | IMG_FILES = | |
67 | MOD_FILES = | |
68 | MODULE_FILES = | |
69 | PARTMAP_FILES = | |
70 | PARTTOOL_FILES = | |
71 | TERMINAL_FILES = | |
72 | TESTS = | |
73 | UND_FILES = | |
74 | VIDEO_FILES = | |
75 | bin_PROGRAMS = | |
76 | bin_SCRIPTS = | |
77 | check_PROGRAMS = | |
78 | check_SCRIPTS = | |
79 | grubconf_DATA = | |
80 | grubconf_SCRIPTS = | |
81 | man_MANS = | |
82 | noinst_DATA = | |
83 | noinst_LIBRARIES = | |
84 | noinst_PROGRAMS = | |
85 | pkglib_SCRIPTS = | |
86 | platform_DATA = | |
87 | sbin_PROGRAMS = | |
88 | sbin_SCRIPTS = | |
8c411768 BC |
89 | |
90 | CFLAGS_PROGRAM = $(HOST_CFLAGS) $(CFLAGS_GNULIB) | |
40f8acbc | 91 | LDFLAGS_PROGRAM = $(HOST_LDFLAGS) $(LDFLAGS_GNULIB) |
8c411768 BC |
92 | CPPFLAGS_PROGRAM = $(HOST_CPPFLAGS) $(CPPFLAGS_GNULIB) |
93 | CCASFLAGS_PROGRAM = $(HOST_CCASFLAGS) $(CCASFLAGS_GNULIB) | |
94 | ||
95 | CFLAGS_LIBRARY = $(CFLAGS_PROGRAM) | |
96 | CPPFLAGS_LIBRARY = $(CPPFLAGS_PROGRAM) | |
97 | CCASFLAGS_LIBRARY = $(CCASFLAGS_PROGRAM) | |
98 | ||
99 | AM_CFLAGS = | |
100 | AM_LDFLAGS = | |
610c1efd BC |
101 | AM_CPPFLAGS = $(CPPFLAGS_GRUB) |
102 | AM_CCASFLAGS = $(CCASFLAGS_GRUB) | |
8c411768 | 103 | |
2e33ae0d BC |
104 | include $(srcdir)/modules.am |
105 | ||
8c411768 | 106 | # XXX Use Automake's LEX & YACC support |
02c9030a | 107 | grub_script.tab.h: $(top_srcdir)/grub-core/script/parser.y |
8c411768 | 108 | $(YACC) -d -p grub_script_yy -b grub_script $(top_srcdir)/grub-core/script/parser.y |
02c9030a | 109 | grub_script.tab.c: grub_script.tab.h |
8c411768 BC |
110 | CLEANFILES += grub_script.tab.c grub_script.tab.h |
111 | ||
112 | # For the lexer. | |
02c9030a | 113 | grub_script.yy.h: $(top_srcdir)/grub-core/script/yylex.l |
8c411768 | 114 | $(LEX) -o grub_script.yy.c --header-file=grub_script.yy.h $(top_srcdir)/grub-core/script/yylex.l |
02c9030a | 115 | grub_script.yy.c: grub_script.yy.h |
8c411768 BC |
116 | CLEANFILES += grub_script.yy.c grub_script.yy.h |
117 | ||
d5c3b7ce BC |
118 | # For libgrub.a |
119 | libgrub.pp: grub_script.tab.h grub_script.yy.h $(libgrub_a_SOURCES) | |
120 | $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgrub_a_CPPFLAGS) $(CPPFLAGS) \ | |
a60f6ee1 | 121 | -D'GRUB_MOD_INIT(x)=@MARKER@x@' $^ > $@ || (rm -f $@; exit 1) |
d5c3b7ce | 122 | CLEANFILES += libgrub.pp |
a60f6ee1 | 123 | |
d5c3b7ce | 124 | libgrub_a_init.lst: libgrub.pp |
a60f6ee1 | 125 | cat $< | grep '@MARKER@' | sed 's/@MARKER@\(.*\)@/\1/g' | sort -u > $@ || (rm -f $@; exit 1) |
d5c3b7ce | 126 | CLEANFILES += libgrub_a_init.lst |
8c411768 | 127 | |
d5c3b7ce | 128 | libgrub_a_init.c: libgrub_a_init.lst $(top_srcdir)/geninit.sh |
a60f6ee1 | 129 | sh $(top_srcdir)/geninit.sh `cat $<` > $@ || (rm -f $@; exit 1) |
d5c3b7ce | 130 | CLEANFILES += libgrub_a_init.c |
8c411768 BC |
131 | |
132 | if COND_GRUB_MKFONT | |
133 | if COND_HAVE_FONT_SOURCE | |
134 | pkgdata_DATA = unicode.pf2 ascii.pf2 ascii.h | |
135 | endif | |
136 | endif | |
137 | ||
138 | unicode.pf2: $(FONT_SOURCE) grub-mkfont | |
139 | $(builddir)/grub-mkfont -o $@ $(FONT_SOURCE) | |
140 | CLEANFILES += unicode.pf2 | |
141 | ||
142 | # Arrows and lines are needed to draw the menu, so always include them | |
143 | UNICODE_ARROWS=0x2190-0x2193 | |
144 | UNICODE_LINES=0x2501-0x251B | |
145 | ||
146 | ascii.pf2: $(FONT_SOURCE) grub-mkfont | |
147 | $(builddir)/grub-mkfont -o $@ $(FONT_SOURCE) -r 0x0-0x7f,$(UNICODE_ARROWS),$(UNICODE_LINES) | |
148 | CLEANFILES += ascii.pf2 | |
149 | ||
150 | ascii.bitmaps: $(FONT_SOURCE) grub-mkfont | |
151 | $(builddir)/grub-mkfont --ascii-bitmaps -o $@ $(FONT_SOURCE) | |
152 | CLEANFILES += ascii.bitmaps | |
153 | ||
154 | ascii.h: ascii.bitmaps grub-bin2h | |
155 | $(builddir)/grub-bin2h ascii_bitmaps < $< > $@ | |
8c411768 BC |
156 | CLEANFILES += ascii.h $(top_builddir)/grub-core/include/ascii.h |
157 | ||
297f0c2b BC |
158 | widthspec.bin: $(FONT_SOURCE) grub-mkfont |
159 | $(builddir)/grub-mkfont --width-spec -o $@ $(FONT_SOURCE) | |
160 | CLEANFILES += widthspec.bin | |
161 | ||
162 | widthspec.h: widthspec.bin grub-bin2h | |
163 | $(builddir)/grub-bin2h widthspec < $< > $@ | |
164 | CLEANFILES += widthspec.h | |
165 | ||
166 | # XXX: TARGET_CFLAGS += -DUSE_ASCII_FAILBACK=1 -DHAVE_UNIFONT_WIDTHSPEC=1 | |
167 | ||
610c1efd | 168 | # Install config.h into platformdir |
8c411768 | 169 | platform_HEADERS = config.h |