1#
2# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
3# Use is subject to license terms.
4# Copyright 2016 Nexenta Systems, Inc.
5# Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
6#
7include $(SRC)/Makefile.master
8
9.KEEP_STATE:
10
11VERSION		= 0.95
12
13# $(POUND_SIGN) is just a #.  Used to turn a feature off.
14# The $(POUND_SIGN)POUND_SIGN:sh construct is just so make doesn't have to
15# spawn a shell and redefine POUND_SIGN if it is already defined (e.g.
16# $(SRC)/Makefile.master was already included).
17$(POUND_SIGN)POUND_SIGN:sh = echo '\043'
18
19
20#
21# Optional features (set to $(POUND_SIGN) to turn off):
22#
23# OPTION_UTILS:
24#	Build the userland utilities.
25#	NOTE: these utilities will be installed in
26#	      /platform/$(PLATFORM)/boot/grub, not /boot/grub.
27#
28# OPTION_DOCS:
29#	Build and install some GRUB documentations, e.g. man and info files.
30#	NOTE: these docs will be installed in
31#	      /platform/$(PLATFORM)/boot/grub, not /boot/grub.
32#
33# OPTION_FS:
34#	Build additional filesystem support into GRUB. This will increase
35#	the sizes of stage2 and pxegrub and may cause malfunction.
36#
37# STAGE2_NETBOOT:
38#	Include netboot support in stage2 (on by default).
39#	This only affects stage2, not pxegrub (diskless support).
40#
41# STAGE2_NETBOOT	= $(POUND_SIGN)
42OPTION_UTILS	= $(POUND_SIGN)
43OPTION_DOCS	= $(POUND_SIGN)
44OPTION_FS	= $(POUND_SIGN)
45
46
47BASE_CFLAGS	= -B$(GNUC_ROOT)/bin/ -g $(CPPFLAGS) $(OPTFLAGS) -std=gnu89
48BASE_CCASFLAGS	= -B$(GNUC_ROOT)/bin/ -g $(CPPFLAGS) $(OPTFLAGS)
49BASE_LDFLAGS	=
50
51CC		= $(GNUC_ROOT)/bin/gcc
52CFLAGS		= $(BASE_CFLAGS)
53CCDEPMODE	= depmode=none
54
55CCAS		= $(CC)
56CCASFLAGS	= $(BASE_CCASFLAGS)
57
58CPP		= $(CC) -E
59
60# $(ENVCPPFLAGS4), if defined, should be something like "-Y I,somepath".
61# We want to get rid of the "-Y I," part but make's pattern replacement
62# macro reference doesn't allow spaces in it, e.g. $(ENVCPPFLAGS4:-Y I,%=%).
63# So we'll get rid of the "-Y" now and then the "I," later.  By the way, this
64# should also work in case $(ENVCPPFLAGS4) is "-YI,somepath" (no space).
65t.ENVCPPFLAGS4	= $(ENVCPPFLAGS4:-Y%=%)
66
67CPPFLAGS	= $(DEFS) $(INCLUDES) $(WARNFLAGS) \
68		  $(ENVCPPFLAGS1:-I%=-isystem %) \
69		  $(ENVCPPFLAGS2:-I%=-isystem %) \
70		  $(ENVCPPFLAGS3:-I%=-isystem %) \
71		  $(t.ENVCPPFLAGS4:I,%=-nostdinc -isystem %)
72
73CCLD		= $(GNU_ROOT)/bin/gld
74GLDTARGET	= -melf_i386_sol2
75LDFLAGS		= $(BASE_LDFLAGS)
76LINKFLAGS	= -g
77LINK		= $(CCLD) $(LINKFLAGS) $(LDFLAGS)
78
79DEFS		= -DHAVE_CONFIG_H -DSOLARIS_NETBOOT
80OPTFLAGS	= -falign-jumps=1 -falign-loops=1 -falign-functions=1
81OPTFLAGS	+= -fno-reorder-functions
82#WARNFLAGS	= -Wall -Wmissing-prototypes -Wunused -Wshadow \
83#		  -Wpointer-arith -Wundef
84
85OBJCOPY		= $(GNU_ROOT)/bin/gobjcopy
86
87AR		= /usr/ccs/bin/ar
88RANLIB		= :
89
90MKDIR		= mkdir -p
91