Makefile revision f985abb4a2473d3c04b086f7c9fab177e368ffef
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# CDDL HEADER START
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# The contents of this file are subject to the terms of the
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# Common Development and Distribution License (the "License").
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# You may not use this file except in compliance with the License.
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# or http://www.opensolaris.org/os/licensing.
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# See the License for the specific language governing permissions
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# and limitations under the License.
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# When distributing Covered Code, include this CDDL HEADER in each
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# If applicable, add the following below this CDDL HEADER, with the
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# fields enclosed by brackets "[]" replaced with your own identifying
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# information: Portions Copyright [yyyy] [name of copyright owner]
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# CDDL HEADER END
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# Copyright 2014 Gary Mills
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# Copyright 2010 Sun Microsystems, Inc. All rights reserved.
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# Use is subject to license terms.
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowTOPDIR = ../../../../..
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlowinclude $(TOPDIR)/uts/Makefile.uts
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlowall := TARGET = all
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlowinstall := TARGET = install
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlowclean := TARGET = clean
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowTARG_MACH = sparcv9
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowTARG_MACH_DIR = sparcv9
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowARCHVERS = v9
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowPLATFORM = sun4
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#ARCHMMU = sfmmu
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowPROMVERS = ieee1275
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowASFLAGS += $(sparcv9_XARCH)
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowARCH_C_SRC = sun4u_memlist.c sun4x_standalloc.c sun4dep.c
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowARCH_S_SRC = sparcv9_subr.s
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowSRT0_S = sun4u_srt0.s
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowINLINES =
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowLDFLAGS += -L$(TOPDIR)/psm/stand/lib/promif/$(TARG_MACH)/$(PROMVERS)/common
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# The following libraries are build in LIBPLAT_DIR
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowLIBPLAT_DIR = $(TOPDIR)/psm/stand/lib/promif/$(TARG_MACH)/$(PROMVERS)/$(PLATFORM)
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowLIBPLAT_LIBS = libplat.a
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowLIBPLAT_L_LIBS= $(LIBPLAT_LIBS:lib%.a=llib-l%.ln)
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowLIBPLAT_DEP = $(LIBPLAT_DIR)/$(LIBPLAT_LIBS)
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowLIBPLAT_DEP_L = $(LIBPLAT_DIR)/$(LIBPLAT_L_LIBS)
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow# Platform specific libraries
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowPSMLIBS += $(LIBPLAT_LIBS:lib%.a=-l%)
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowPSMLIB_DIRS += $(LIBPLAT_DIR)
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlowinclude ../Makefile.com
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow
2f172c55ef76964744bc62b4500ece87f3089b4dRobert ThurlowCPPINCS += -I$(TOPDIR)/psm/stand/boot/sparc/sun4
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow
2f172c55ef76964744bc62b4500ece87f3089b4dRobert Thurlow#
# Set the choice of compiler.
include $(TOPDIR)/psm/Makefile.psm.64
CFLAGS64 += -xchip=ultra $(CCABS32)
#
# XXX this totally sucks since it effectively turns off -errchk=longptr64,
# which we really should be using.
#
LINTFLAGS64 = $(LINTFLAGS) -m64
#
# Cross-reference customization: include all boot-related source files.
#
STANDLIBDIR= ../../../../../stand/lib
STANDSYSDIR= ../../../../../stand/sys
PROMDIRS= ../../../../promif
NAMESDIRS= ../../../lib/names/sparcv9 ../../../lib/names/sparc/common
XRDIRS += ../../sparc/common ../../common $(STANDLIBDIR) \
$(STANDSYSDIR) $(PROMDIRS) $(NAMESDIRS)
XRPRUNE = i86pc i386
#############################
#
# NFS booter
#
# Libraries used to build nfsboot
#
LIBNFS_LIBS = libnfs.a libxdr.a libnames.a \
libsock.a libinet.a libtcp.a libsa.a libprom.a \
$(LIBPLAT_LIBS)
NFS_LIBS = $(LIBNFS_LIBS:lib%.a=-l%)
NFS_DIRS = $(LIBNAME_DIR:%=-L%) $(LIBSYS_DIR:%=-L%)
NFS_DIRS += $(LIBPLAT_DIR:%=-L%) $(LIBPROM_DIR:%=-L%)
#
# Loader flags used to build inetboot
#
NFS_MAPFILE = $(MACH_DIR)/mapfile
NFS_LDFLAGS = -dn -M $(NFS_MAPFILE) -e _start $(NFS_DIRS)
NFS_L_LDFLAGS = $(NFS_DIRS)
#
# Object files used to build inetboot
#
NFS_SRT0 = $(SRT0_OBJ)
NFS_OBJS = $(OBJS) nfsconf.o inetboot.o ramdisk.o
NFS_L_OBJS = $(NFS_SRT0:%.o=%.ln) $(NFS_OBJS:%.o=%.ln)
#include $(BOOTSRCDIR)/Makefile.rules
FRC:
.KEEP_STATE:
all: $(NFSBOOT)
install: all \
$(USR_PLAT_SUN4U_LIB_FS_NFS_NFSBOOT) \
$(USR_PLAT_SUN4V_LIB_FS_NFS_NFSBOOT)
$(NFSBOOT): $(NFS_MAPFILE) $(NFS_SRT0) $(NFS_OBJS) $(LIBDEPS)
$(LD) $(NFS_LDFLAGS) -o $@ $(NFS_SRT0) $(NFS_OBJS) $(NFS_LIBS)
$(MCS) -d $@
$(POST_PROCESS)
$(MCS) -c $@
$(STRIP) $@
$(NFSBOOT)_lint: $(NFS_L_OBJS) $(L_LIBDEPS)
@echo ""
@echo inetboot lint: global crosschecks:
$(LINT.c) $(NFS_L_LDFLAGS) $(NFS_L_OBJS) $(NFS_LIBS)
$(USR_PLAT_SUN4U_LIB_FS_NFS):
$(INS.dir)
$(USR_PLAT_SUN4V_LIB_FS_NFS):
$(INS.dir)
$(USR_PLAT_SUN4U_LIB_FS_NFS_NFSBOOT): $(USR_PLAT_SUN4U_LIB_FS_NFS) $(NFSBOOT)
$(INS) -s -m $(FILEMODE) -f $(USR_PLAT_SUN4U_LIB_FS_NFS) $(NFSBOOT)
$(USR_PLAT_SUN4V_LIB_FS_NFS_NFSBOOT): $(USR_PLAT_SUN4V_LIB_FS_NFS) $(NFSBOOT)
$(INS) -s -m $(FILEMODE) -f $(USR_PLAT_SUN4V_LIB_FS_NFS) $(NFSBOOT)
$(STRIPALIGN): $(CMN_DIR)/$$(@).c
$(NATIVECC) -o $@ $(CMN_DIR)/$@.c
clean:
$(RM) make.out lint.out
$(RM) $(OBJS) $(CONF_OBJS) $(MISC_OBJS) $(SRT0_OBJ)
$(RM) $(NFSBOOT_OBJS)
$(RM) $(L_OBJS) $(CONF_L_OBJS) $(MISC_L_OBJS) $(SRT0_L_OBJ)
$(RM) $(NFSBOOT_L_OBJS)
clobber: clean
$(RM) $(NFSBOOT) $(STRIPALIGN)
lint: $(NFSBOOT)_lint