11b8adde7SWilliam Kucharski# 21b8adde7SWilliam Kucharski# Copyright 2005 Sun Microsystems, Inc. All rights reserved. 31b8adde7SWilliam Kucharski# Use is subject to license terms. 41b8adde7SWilliam Kucharski# 51b8adde7SWilliam Kucharskiinclude $(SRC)/Makefile.master 61b8adde7SWilliam Kucharski 71b8adde7SWilliam Kucharski.KEEP_STATE: 81b8adde7SWilliam Kucharski 91b8adde7SWilliam KucharskiVERSION = 0.95 101b8adde7SWilliam Kucharski 111b8adde7SWilliam Kucharski# $(POUND_SIGN) is just a #. Used to turn a feature off. 121b8adde7SWilliam Kucharski# The $(POUND_SIGN)POUND_SIGN:sh construct is just so make doesn't have to 131b8adde7SWilliam Kucharski# spawn a shell and redefine POUND_SIGN if it is already defined (e.g. 141b8adde7SWilliam Kucharski# $(SRC)/Makefile.master was already included). 151b8adde7SWilliam Kucharski$(POUND_SIGN)POUND_SIGN:sh = echo '\043' 161b8adde7SWilliam Kucharski 171b8adde7SWilliam Kucharski 181b8adde7SWilliam Kucharski# 191b8adde7SWilliam Kucharski# Optional features (set to $(POUND_SIGN) to turn off): 201b8adde7SWilliam Kucharski# 211b8adde7SWilliam Kucharski# OPTION_UTILS: 221b8adde7SWilliam Kucharski# Build the userland utilities. 231b8adde7SWilliam Kucharski# NOTE: these utilities will be installed in 241b8adde7SWilliam Kucharski# /platform/$(PLATFORM)/boot/grub, not /boot/grub. 251b8adde7SWilliam Kucharski# 261b8adde7SWilliam Kucharski# OPTION_DOCS: 271b8adde7SWilliam Kucharski# Build and install some GRUB documentations, e.g. man and info files. 281b8adde7SWilliam Kucharski# NOTE: these docs will be installed in 291b8adde7SWilliam Kucharski# /platform/$(PLATFORM)/boot/grub, not /boot/grub. 301b8adde7SWilliam Kucharski# 311b8adde7SWilliam Kucharski# OPTION_FS: 321b8adde7SWilliam Kucharski# Build additional filesystem support into GRUB. This will increase 331b8adde7SWilliam Kucharski# the sizes of stage2 and pxegrub and may cause malfunction. 341b8adde7SWilliam Kucharski# 351b8adde7SWilliam Kucharski# STAGE2_NETBOOT: 361b8adde7SWilliam Kucharski# Include netboot support in stage2 (on by default). 371b8adde7SWilliam Kucharski# This only affects stage2, not pxegrub (diskless support). 381b8adde7SWilliam Kucharski# 391b8adde7SWilliam Kucharski# STAGE2_NETBOOT = $(POUND_SIGN) 401b8adde7SWilliam KucharskiOPTION_UTILS = $(POUND_SIGN) 411b8adde7SWilliam KucharskiOPTION_DOCS = $(POUND_SIGN) 421b8adde7SWilliam KucharskiOPTION_FS = $(POUND_SIGN) 431b8adde7SWilliam Kucharski 441b8adde7SWilliam Kucharski 45*7f11fd00SRichard LoweBASE_CFLAGS = -B$(GCC_ROOT)/bin/ -g $(CPPFLAGS) $(OPTFLAGS) -std=gnu89 466a3e8e86SRichard LoweBASE_CCASFLAGS = -B$(GCC_ROOT)/bin/ -g $(CPPFLAGS) $(OPTFLAGS) 471b8adde7SWilliam KucharskiBASE_LDFLAGS = 481b8adde7SWilliam Kucharski 496a3e8e86SRichard LoweCC = $(GCC_ROOT)/bin/gcc 501b8adde7SWilliam KucharskiCFLAGS = $(BASE_CFLAGS) 511b8adde7SWilliam KucharskiCCDEPMODE = depmode=none 521b8adde7SWilliam Kucharski 531b8adde7SWilliam KucharskiCCAS = $(CC) 541b8adde7SWilliam KucharskiCCASFLAGS = $(BASE_CCASFLAGS) 551b8adde7SWilliam Kucharski 561b8adde7SWilliam KucharskiCPP = $(CC) -E 571b8adde7SWilliam Kucharski 581b8adde7SWilliam Kucharski# $(ENVCPPFLAGS4), if defined, should be something like "-Y I,somepath". 591b8adde7SWilliam Kucharski# We want to get rid of the "-Y I," part but make's pattern replacement 601b8adde7SWilliam Kucharski# macro reference doesn't allow spaces in it, e.g. $(ENVCPPFLAGS4:-Y I,%=%). 611b8adde7SWilliam Kucharski# So we'll get rid of the "-Y" now and then the "I," later. By the way, this 621b8adde7SWilliam Kucharski# should also work in case $(ENVCPPFLAGS4) is "-YI,somepath" (no space). 631b8adde7SWilliam Kucharskit.ENVCPPFLAGS4 = $(ENVCPPFLAGS4:-Y%=%) 641b8adde7SWilliam Kucharski 651b8adde7SWilliam KucharskiCPPFLAGS = $(DEFS) $(INCLUDES) $(WARNFLAGS) \ 661b8adde7SWilliam Kucharski $(ENVCPPFLAGS1:-I%=-isystem %) \ 671b8adde7SWilliam Kucharski $(ENVCPPFLAGS2:-I%=-isystem %) \ 681b8adde7SWilliam Kucharski $(ENVCPPFLAGS3:-I%=-isystem %) \ 691b8adde7SWilliam Kucharski $(t.ENVCPPFLAGS4:I,%=-nostdinc -isystem %) 701b8adde7SWilliam Kucharski 711b8adde7SWilliam KucharskiCCLD = $(GNU_ROOT)/bin/gld 721b8adde7SWilliam KucharskiLDFLAGS = $(BASE_LDFLAGS) 731b8adde7SWilliam KucharskiLINKFLAGS = -g 741b8adde7SWilliam KucharskiLINK = $(CCLD) $(LINKFLAGS) $(LDFLAGS) 751b8adde7SWilliam Kucharski 761b8adde7SWilliam KucharskiDEFS = -DHAVE_CONFIG_H -DSOLARIS_NETBOOT 771b8adde7SWilliam KucharskiOPTFLAGS = -falign-jumps=1 -falign-loops=1 -falign-functions=1 781b8adde7SWilliam Kucharski#WARNFLAGS = -Wall -Wmissing-prototypes -Wunused -Wshadow \ 791b8adde7SWilliam Kucharski# -Wpointer-arith -Wundef 801b8adde7SWilliam Kucharski 811b8adde7SWilliam KucharskiOBJCOPY = $(GNU_ROOT)/bin/gobjcopy 821b8adde7SWilliam Kucharski 831b8adde7SWilliam KucharskiAR = /usr/ccs/bin/ar 841b8adde7SWilliam KucharskiRANLIB = : 851b8adde7SWilliam Kucharski 861b8adde7SWilliam KucharskiMKDIR = mkdir -p 87