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: