1 # 2 # Copyright 2007 Sun Microsystems, Inc. All rights reserved. 3 # Use is subject to license terms. 4 # 5 # ident "%Z%%M% %I% %E% SMI" 6 # 7 include ../../Makefile.grub 8 include ../Makefile.solaris.defs 9 10 11 GRUB = grub 12 GRUB_OBJS = asmstub.o main.o 13 $(GRUB) := LIBS = ../stage2/libgrub.a ../lib/libcommon.a -lcurses 14 $(GRUB) := LDFLAGS += $(LDLIBS.cmd) 15 $(GRUB) := CCLD = $(CC) 16 17 # 18 # The grub shell interposes on the getopt() family. Should direct bindings be 19 # enabled, these interfaces should be explicitly defined as interposes. Use a 20 # mapfile to associate the necessary interposer definitions. 21 # 22 MAPFILES = $(MAPFILE.INT) 23 24 INCLUDES = -I. -I.. -I../stage1 -I../stage2 -I../lib 25 CFLAGS += -O2 26 LINKFLAGS += -O2 $(MAPFILES:%=-Wl,-M%) 27 CPPFLAGS += -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ 28 -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 \ 29 -DFSYS_REISERFS=1 -DFSYS_ZFS=1 -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 \ 30 -DFSYS_XFS=1 -DUSE_MD5_PASSWORDS=1 -DSUPPORT_HERCULES=1 \ 31 -DSUPPORT_SERIAL=1 32 33 PROGRAMS = $(GRUB) 34 35 INSTALL_DIR = $(ROOT_BOOT_GRUB)/bin 36 INSTALL_TARGETS = $(PROGRAMS:%=$(INSTALL_DIR)/%) 37 38 $(INSTALL_DIR)/% := FILEMODE = 0555 39 40 # 41 # Source files to be installed in $(SRC_DIR). 42 # 43 SRC_DIR = $(ROOT_SRC)/grub 44 SRC_FILES = Makefile.am Makefile.in asmstub.c main.c 45 46 INSTALL_TARGETS += $(SRC_FILES:%=$(SRC_DIR)/%) 47 48 49 all: $(PROGRAMS) 50 51 $(GRUB): $(GRUB_OBJS) $(MAPFILES) 52 $(LINK) -o $@ $(GRUB_OBJS) $(LIBS) 53 $(POST_PROCESS) 54 55 $(GRUB_OBJS): $$(@:.o=.c) 56 $(CC) $(CFLAGS) -c -o $@ $(@:.o=.c) 57 58 59 install: all $(INSTALL_TARGETS) 60 61 $(INSTALL_DIR)/%: $(INSTALL_DIR) % 62 $(INS.file) 63 64 $(SRC_DIR)/%: $(SRC_DIR) % 65 $(INS.file) 66 67 $(INSTALL_DIR) $(SRC_DIR): 68 $(INS.dir) 69 70 71 clean: _FORCE 72 $(RM) *.o 73 74 clobber: clean 75 $(RM) $(PROGRAMS) 76 77 _FORCE: