1# 2# CDDL HEADER START 3# 4# The contents of this file are subject to the terms of the 5# Common Development and Distribution License (the "License"). 6# You may not use this file except in compliance with the License. 7# 8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9# or http://www.opensolaris.org/os/licensing. 10# See the License for the specific language governing permissions 11# and limitations under the License. 12# 13# When distributing Covered Code, include this CDDL HEADER in each 14# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15# If applicable, add the following below this CDDL HEADER, with the 16# fields enclosed by brackets "[]" replaced with your own identifying 17# information: Portions Copyright [yyyy] [name of copyright owner] 18# 19# CDDL HEADER END 20# 21# 22# Copyright 2006 Sun Microsystems, Inc. All rights reserved. 23# Use is subject to license terms. 24# 25# Copyright 2019 Joyent, Inc. 26# 27 28CRTI = crti.o 29CRTN = crtn.o 30CRT1 = crt1.o 31VALUES = values-Xa.o values-Xc.o values-Xs.o values-Xt.o \ 32 values-xpg4.o values-xpg6.o 33COMMON_CRT = common-crt.o 34MACH_CRT = mach-crt1.o 35 36# include library definitions 37include ../../Makefile.lib 38 39SRCS = $(VALUES:%.o=../common/%.c) $(COMMON_CRT:%.o=../common/%.c) 40 41POST_PROCESS_O = $(PROCESS_COMMENT) $@ ; $(STRIP) -x $@ 42 43OBJECTS = $(VALUES) $(CRT1) $(CRTI) $(CRTN) 44 45ROOTLIB= $(ROOT)/usr/lib 46ROOTLIB64= $(ROOTLIB)/$(MACH64) 47ROOTOBJECTS= $(OBJECTS:%=$(ROOTLIB)/%) 48ROOTOBJECTS64= $(OBJECTS:%=$(ROOTLIB64)/%) 49 50$(INTEL_BLD)ROOTOBJECTS += $(ROOTLIB)/gcrt1.o 51$(INTEL_BLD)ROOTOBJECTS64 += $(ROOTLIB64)/gcrt1.o 52 53ASFLAGS += -P -D__STDC__ -D_ASM -DPIC $(AS_PICFLAGS) 54 55values-xpg6.o := CPPFLAGS += -I$(SRC)/lib/libc/inc 56$(COMMON_CRT) $(VALUES) := CFLAGS += $(C_PICFLAGS) 57$(COMMON_CRT) $(VALUES) := CFLAGS64 += $(C_PICFLAGS64) 58 59# intentional double exit 60SMOFF += unreachable 61 62COMPATLINKS= usr/ccs/lib/values-Xa.o \ 63 usr/ccs/lib/values-Xc.o \ 64 usr/ccs/lib/values-Xs.o \ 65 usr/ccs/lib/values-Xt.o \ 66 usr/ccs/lib/values-xpg4.o \ 67 usr/ccs/lib/values-xpg6.o 68 69COMPATLINKS64= usr/ccs/lib/$(MACH64)/values-Xa.o \ 70 usr/ccs/lib/$(MACH64)/values-Xc.o \ 71 usr/ccs/lib/$(MACH64)/values-Xs.o \ 72 usr/ccs/lib/$(MACH64)/values-Xt.o \ 73 usr/ccs/lib/$(MACH64)/values-xpg4.o \ 74 usr/ccs/lib/$(MACH64)/values-xpg6.o 75 76$(ROOT)/usr/ccs/lib/values-Xa.o:= COMPATLINKTARGET=../../lib/values-Xa.o 77$(ROOT)/usr/ccs/lib/values-Xc.o:= COMPATLINKTARGET=../../lib/values-Xc.o 78$(ROOT)/usr/ccs/lib/values-Xs.o:= COMPATLINKTARGET=../../lib/values-Xs.o 79$(ROOT)/usr/ccs/lib/values-Xt.o:= COMPATLINKTARGET=../../lib/values-Xt.o 80$(ROOT)/usr/ccs/lib/values-xpg4.o:= COMPATLINKTARGET=../../lib/values-xpg4.o 81$(ROOT)/usr/ccs/lib/values-xpg6.o:= COMPATLINKTARGET=../../lib/values-xpg6.o 82$(ROOT)/usr/ccs/lib/$(MACH64)/values-Xa.o:= \ 83 COMPATLINKTARGET=../../../lib/$(MACH64)/values-Xa.o 84$(ROOT)/usr/ccs/lib/$(MACH64)/values-Xc.o:= \ 85 COMPATLINKTARGET=../../../lib/$(MACH64)/values-Xc.o 86$(ROOT)/usr/ccs/lib/$(MACH64)/values-Xs.o:= \ 87 COMPATLINKTARGET=../../../lib/$(MACH64)/values-Xs.o 88$(ROOT)/usr/ccs/lib/$(MACH64)/values-Xt.o:= \ 89 COMPATLINKTARGET=../../../lib/$(MACH64)/values-Xt.o 90$(ROOT)/usr/ccs/lib/$(MACH64)/values-xpg4.o:= \ 91 COMPATLINKTARGET=../../../lib/$(MACH64)/values-xpg4.o 92$(ROOT)/usr/ccs/lib/$(MACH64)/values-xpg6.o:= \ 93 COMPATLINKTARGET=../../../lib/$(MACH64)/values-xpg6.o 94 95.KEEP_STATE: 96 97all: $(OBJECTS) 98 99clean clobber: 100 $(RM) $(OBJECTS) 101 102 103$(CRT1): $(COMMON_CRT) $(MACH_CRT) 104 $(LD) -r $(MACH_CRT) $(COMMON_CRT) -o $(CRT1) 105 106%.o: ../common/%.c 107 $(COMPILE.c) -o $@ $< 108 $(POST_PROCESS_O) 109 110%.o: %.s 111 $(COMPILE.s) -o $@ $< 112 $(POST_PROCESS_O) 113 114%.o: ../$(MACH)/%.s 115 $(COMPILE.s) -o $@ $< 116 $(POST_PROCESS_O) 117 118# install rule for ROOTOBJECTS and ROOTOBJECTS64 119$(ROOTLIB)/%.o: %.o 120 $(INS.file) 121 122$(ROOTLIB)/gcrt1.o: 123 $(RM) $(ROOTLIB)/gcrt1.o; $(SYMLINK) crt1.o $(ROOTLIB)/gcrt1.o 124 125$(ROOTLIB64)/%.o: %.o 126 $(INS.file) 127 128$(ROOTLIB64)/gcrt1.o: 129 $(RM) $(ROOTLIB64)/gcrt1.o; $(SYMLINK) crt1.o $(ROOTLIB64)/gcrt1.o 130 131$(ROOTCOMPATLINKS) $(ROOTCOMPATLINKS64): 132 $(RM) $@; $(SYMLINK) $(COMPATLINKTARGET) $@ 133