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