]>
Commit | Line | Data |
---|---|---|
3d9d3542 BC |
1 | # -*- makefile -*- |
2 | ||
050abaea VS |
3 | CFLAGS_PLATFORM= |
4 | ||
18dd6b47 | 5 | export LC_COLLATE := C |
18dd6b47 VS |
6 | unexport LC_ALL |
7 | ||
a5a3bccd | 8 | # Platform specific options |
a5a3bccd | 9 | if COND_sparc64_ieee1275 |
050abaea | 10 | CFLAGS_PLATFORM += -mno-app-regs |
54e03cfc | 11 | LDFLAGS_PLATFORM = -Wl,-melf64_sparc -mno-relax |
a5a3bccd | 12 | endif |
389b31cd | 13 | if COND_arm |
bb9f92b9 | 14 | CFLAGS_PLATFORM += -mthumb-interwork -mlong-calls |
2416415c | 15 | CCASFLAGS_PLATFORM = -mthumb-interwork |
389b31cd LL |
16 | LDFLAGS_PLATFORM = -Wl,--wrap=__clear_cache |
17 | endif | |
15a463d7 LL |
18 | if COND_arm64 |
19 | CFLAGS_PLATFORM += -mcmodel=large | |
20 | endif | |
a5a3bccd | 21 | |
9612ebc0 VS |
22 | #FIXME: discover and check XEN headers |
23 | CPPFLAGS_XEN = -I/usr/include | |
24 | ||
a5a3bccd BC |
25 | # Other options |
26 | ||
ebd65b82 | 27 | CPPFLAGS_DEFAULT = -DGRUB_FILE=\"$(subst $(srcdir)/,,$<)\" |
a5a3bccd BC |
28 | CPPFLAGS_DEFAULT += -I$(builddir) |
29 | CPPFLAGS_DEFAULT += -I$(srcdir) | |
30 | CPPFLAGS_DEFAULT += -I$(top_builddir) | |
31 | CPPFLAGS_DEFAULT += -I$(top_srcdir) | |
32 | CPPFLAGS_DEFAULT += -I$(top_srcdir)/include | |
33 | CPPFLAGS_DEFAULT += -I$(top_builddir)/include | |
5e3b8dcb VS |
34 | CPPFLAGS_DEFAULT += -I$(top_srcdir)/grub-core/lib/libgcrypt-grub/include |
35 | CPPFLAGS_DEFAULT += -I$(top_srcdir)/grub-core/lib/libgcrypt-grub/src/ | |
57e0c20c | 36 | CCASFLAGS_DEFAULT = $(CPPFLAGS_DEFAULT) -DASM_FILE=1 |
7c9d0c39 | 37 | BUILD_CPPFLAGS += $(CPPFLAGS_DEFAULT) |
a5a3bccd | 38 | |
d5524ca8 | 39 | LDADD_KERNEL = $(TARGET_LIBGCC) |
03f80960 | 40 | |
a5a3bccd | 41 | CFLAGS_KERNEL = $(CFLAGS_CPU) $(CFLAGS_PLATFORM) -ffreestanding |
d5524ca8 | 42 | LDFLAGS_KERNEL = $(LDFLAGS_CPU) $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) $(TARGET_LDFLAGS_STATIC_LIBGCC) |
af81ed88 | 43 | CPPFLAGS_KERNEL = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) -DGRUB_KERNEL=1 |
a5a3bccd | 44 | CCASFLAGS_KERNEL = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) |
f1632d4d | 45 | if COND_CYGWIN |
0f021838 | 46 | STRIPFLAGS_KERNEL = -F elf32-i386 -R .rel.dyn -R .reginfo -R .note -R .comment -R .drectve -R .note.gnu.gold-version |
f1632d4d | 47 | else |
0f021838 | 48 | STRIPFLAGS_KERNEL = -R .rel.dyn -R .reginfo -R .note -R .comment -R .note.gnu.gold-version |
f1632d4d | 49 | endif |
a5a3bccd BC |
50 | |
51 | CFLAGS_MODULE = $(CFLAGS_CPU) $(CFLAGS_PLATFORM) -ffreestanding | |
46cf439c | 52 | LDFLAGS_MODULE = $(LDFLAGS_CPU) $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d |
a5a3bccd BC |
53 | CPPFLAGS_MODULE = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) |
54 | CCASFLAGS_MODULE = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) | |
55 | ||
56 | CFLAGS_IMAGE = $(CFLAGS_CPU) $(CFLAGS_PLATFORM) -fno-builtin | |
46cf439c | 57 | LDFLAGS_IMAGE = $(LDFLAGS_CPU) $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-S |
a5a3bccd BC |
58 | CPPFLAGS_IMAGE = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) |
59 | CCASFLAGS_IMAGE = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) | |
60 | ||
61 | CFLAGS_PROGRAM = | |
62 | LDFLAGS_PROGRAM = | |
63 | CPPFLAGS_PROGRAM = | |
64 | CCASFLAGS_PROGRAM = | |
65 | ||
4b2047e2 BC |
66 | CFLAGS_LIBRARY = |
67 | CPPFLAGS_LIBRARY = | |
68 | CCASFLAGS_LIBRARY = | |
a5a3bccd BC |
69 | |
70 | # Other variables | |
71 | ||
72 | grubconfdir = $(sysconfdir)/grub.d | |
1240a58a | 73 | platformdir = $(pkglibdir)/$(target_cpu)-$(platform) |
c5884973 | 74 | starfielddir = $(pkgdatadir)/themes/starfield |
a5a3bccd | 75 | |
ec0ebb3f | 76 | CFLAGS_GNULIB = -Wno-undef -Wno-sign-compare -Wno-unused -Wno-unused-parameter -Wno-redundant-decls -Wno-unreachable-code -Wno-conversion -Wno-old-style-definition |
8d5e2af3 | 77 | CPPFLAGS_GNULIB = -I$(top_builddir)/grub-core/gnulib -I$(top_srcdir)/grub-core/gnulib |
a5a3bccd | 78 | |
a5a3bccd BC |
79 | CFLAGS_POSIX = -fno-builtin |
80 | CPPFLAGS_POSIX = -I$(top_srcdir)/grub-core/lib/posix_wrap | |
81 | ||
d1307d87 | 82 | CFLAGS_GCRY = -Wno-error -Wno-missing-field-initializers -Wno-redundant-decls -Wno-undef $(CFLAGS_POSIX) |
5e3b8dcb VS |
83 | CPPFLAGS_GCRY = -I$(top_srcdir)/grub-core/lib/libgcrypt_wrap $(CPPFLAGS_POSIX) -D_GCRYPT_IN_LIBGCRYPT=1 -I$(top_srcdir)/include/grub/gcrypt |
84 | ||
a5a3bccd BC |
85 | CPPFLAGS_EFIEMU = -I$(top_srcdir)/grub-core/efiemu/runtime |
86 | ||
6568636e BC |
87 | # List file macros for recognizing /interesting/ modules |
88 | CPPFLAGS_FS_LIST = -Dgrub_fs_register=FS_LIST_MARKER | |
89 | CPPFLAGS_VIDEO_LIST= -Dgrub_video_register=VIDEO_LIST_MARKER | |
90 | CPPFLAGS_PARTMAP_LIST = -Dgrub_partition_map_register=PARTMAP_LIST_MARKER | |
91 | CPPFLAGS_PARTTOOL_LIST = -Dgrub_parttool_register=PARTTOOL_LIST_MARKER | |
92 | CPPFLAGS_TERMINAL_LIST = '-Dgrub_term_register_input(...)=INPUT_TERMINAL_LIST_MARKER(__VA_ARGS__)' | |
93 | CPPFLAGS_TERMINAL_LIST += '-Dgrub_term_register_output(...)=OUTPUT_TERMINAL_LIST_MARKER(__VA_ARGS__)' | |
94 | CPPFLAGS_COMMAND_LIST = '-Dgrub_register_command(...)=COMMAND_LIST_MARKER(__VA_ARGS__)' | |
95 | CPPFLAGS_COMMAND_LIST += '-Dgrub_register_extcmd(...)=EXTCOMMAND_LIST_MARKER(__VA_ARGS__)' | |
96 | CPPFLAGS_COMMAND_LIST += '-Dgrub_register_command_p1(...)=P1COMMAND_LIST_MARKER(__VA_ARGS__)' | |
97 | CPPFLAGS_MARKER = $(CPPFLAGS_FS_LIST) $(CPPFLAGS_VIDEO_LIST) \ | |
98 | $(CPPFLAGS_PARTTOOL_LIST) $(CPPFLAGS_PARTMAP_LIST) \ | |
99 | $(CPPFLAGS_TERMINAL_LIST) $(CPPFLAGS_COMMAND_LIST) | |
100 | ||
a5a3bccd BC |
101 | # Define these variables to calm down automake |
102 | ||
a5a3bccd BC |
103 | IMG_FILES = |
104 | MOD_FILES = | |
a5a3bccd | 105 | MODULE_FILES = |
6568636e | 106 | MARKER_FILES = |
a5a3bccd BC |
107 | KERNEL_HEADER_FILES = |
108 | ||
109 | man_MANS = | |
110 | noinst_DATA = | |
48b391e9 | 111 | pkgdata_DATA = |
a5a3bccd BC |
112 | bin_SCRIPTS = |
113 | sbin_SCRIPTS = | |
114 | bin_PROGRAMS = | |
115 | platform_DATA = | |
116 | sbin_PROGRAMS = | |
117 | check_SCRIPTS = | |
17806392 | 118 | dist_grubconf_DATA = |
a5a3bccd | 119 | check_PROGRAMS = |
f7711f5e | 120 | noinst_SCRIPTS = |
a5a3bccd BC |
121 | noinst_PROGRAMS = |
122 | grubconf_SCRIPTS = | |
123 | noinst_LIBRARIES = | |
6556eba9 | 124 | dist_noinst_DATA = |
80a71213 VS |
125 | platform_SCRIPTS = |
126 | platform_PROGRAMS = | |
a5a3bccd BC |
127 | |
128 | TESTS = | |
129 | EXTRA_DIST = | |
130 | CLEANFILES = | |
131 | BUILT_SOURCES = | |
3d9d3542 | 132 | |
ab4f1501 | 133 | # Rules for Automake input |
3d9d3542 BC |
134 | |
135 | .PRECIOUS: $(top_srcdir)/Makefile.util.am | |
ab4f1501 CW |
136 | $(top_srcdir)/Makefile.util.am: $(top_srcdir)/gentpl.py $(top_srcdir)/Makefile.util.def $(top_srcdir)/Makefile.utilgcry.def |
137 | python $^ > $@.new || (rm -f $@.new; exit 1) | |
3d9d3542 BC |
138 | mv $@.new $@ |
139 | ||
140 | .PRECIOUS: $(top_srcdir)/grub-core/Makefile.core.am | |
ab4f1501 | 141 | $(top_srcdir)/grub-core/Makefile.core.am: $(top_srcdir)/gentpl.py $(top_srcdir)/grub-core/Makefile.core.def $(top_srcdir)/grub-core/Makefile.gcry.def |
e1fd1939 | 142 | if [ "x$$GRUB_CONTRIB" != x ]; then echo "You need to run ./autogen.sh manually." >&2; exit 1; fi |
ab4f1501 | 143 | python $^ > $@.new || (rm -f $@.new; exit 1) |
3d9d3542 | 144 | mv $@.new $@ |