2 # Copyright 2005 Sun Microsystems, Inc. All rights reserved.
3 # Use is subject to license terms.
4 # Copyright 2016 Nexenta Systems, Inc.
6 include $(SRC)/Makefile.master
12 # $(POUND_SIGN) is just a #. Used to turn a feature off.
13 # The $(POUND_SIGN)POUND_SIGN:sh construct is just so make doesn't have to
14 # spawn a shell and redefine POUND_SIGN if it is already defined (e.g.
15 # $(SRC)/Makefile.master was already included).
16 $(POUND_SIGN)POUND_SIGN:sh = echo '\043'
20 # Optional features (set to $(POUND_SIGN) to turn off):
23 # Build the userland utilities.
24 # NOTE: these utilities will be installed in
25 # /platform/$(PLATFORM)/boot/grub, not /boot/grub.
28 # Build and install some GRUB documentations, e.g. man and info files.
29 # NOTE: these docs will be installed in
30 # /platform/$(PLATFORM)/boot/grub, not /boot/grub.
33 # Build additional filesystem support into GRUB. This will increase
34 # the sizes of stage2 and pxegrub and may cause malfunction.
37 # Include netboot support in stage2 (on by default).
38 # This only affects stage2, not pxegrub (diskless support).
40 # STAGE2_NETBOOT = $(POUND_SIGN)
41 OPTION_UTILS = $(POUND_SIGN)
42 OPTION_DOCS = $(POUND_SIGN)
43 OPTION_FS = $(POUND_SIGN)
46 BASE_CFLAGS = -B$(GCC_ROOT)/bin/ -g $(CPPFLAGS) $(OPTFLAGS) -std=gnu89
47 BASE_CCASFLAGS = -B$(GCC_ROOT)/bin/ -g $(CPPFLAGS) $(OPTFLAGS)
50 CC = $(GCC_ROOT)/bin/gcc
51 CFLAGS = $(BASE_CFLAGS)
52 CCDEPMODE = depmode=none
55 CCASFLAGS = $(BASE_CCASFLAGS)
59 CPPFLAGS = $(DEFS) $(INCLUDES) $(WARNFLAGS) \
60 $(ENVCPPFLAGS1:-I%=-isystem %) \
61 $(ENVCPPFLAGS2:-I%=-isystem %) \
62 $(ENVCPPFLAGS3:-I%=-isystem %) \
63 $(ENVCPPFLAGS4:-I%=-nostdinc -isystem %)
65 CCLD = $(GNU_ROOT)/bin/gld
66 LDFLAGS = $(BASE_LDFLAGS)
68 LINK = $(CCLD) $(LINKFLAGS) $(LDFLAGS)
70 DEFS = -DHAVE_CONFIG_H -DSOLARIS_NETBOOT
71 OPTFLAGS = -falign-jumps=1 -falign-loops=1 -falign-functions=1
72 #WARNFLAGS = -Wall -Wmissing-prototypes -Wunused -Wshadow \
73 # -Wpointer-arith -Wundef
75 OBJCOPY = $(GNU_ROOT)/bin/gobjcopy