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 += -D_ASM -DPIC $(AS_PICFLAGS) 54ASFLAGS64 += -D_ASM -DPIC $(AS_PICFLAGS) 55 56values-xpg6.o := CPPFLAGS += -I$(SRC)/lib/libc/inc 57$(COMMON_CRT) $(VALUES) := CFLAGS += $(C_PICFLAGS) 58$(COMMON_CRT) $(VALUES) := CFLAGS64 += $(C_PICFLAGS64) 59 60# intentional double exit 61SMOFF += unreachable 62 63COMPATLINKS= usr/ccs/lib/values-Xa.o \ 64 usr/ccs/lib/values-Xc.o \ 65 usr/ccs/lib/values-Xs.o \ 66 usr/ccs/lib/values-Xt.o \ 67 usr/ccs/lib/values-xpg4.o \ 68 usr/ccs/lib/values-xpg6.o 69 70COMPATLINKS64= usr/ccs/lib/$(MACH64)/values-Xa.o \ 71 usr/ccs/lib/$(MACH64)/values-Xc.o \ 72 usr/ccs/lib/$(MACH64)/values-Xs.o \ 73 usr/ccs/lib/$(MACH64)/values-Xt.o \ 74 usr/ccs/lib/$(MACH64)/values-xpg4.o \ 75 usr/ccs/lib/$(MACH64)/values-xpg6.o 76 77$(ROOT)/usr/ccs/lib/values-Xa.o:= COMPATLINKTARGET=../../lib/values-Xa.o 78$(ROOT)/usr/ccs/lib/values-Xc.o:= COMPATLINKTARGET=../../lib/values-Xc.o 79$(ROOT)/usr/ccs/lib/values-Xs.o:= COMPATLINKTARGET=../../lib/values-Xs.o 80$(ROOT)/usr/ccs/lib/values-Xt.o:= COMPATLINKTARGET=../../lib/values-Xt.o 81$(ROOT)/usr/ccs/lib/values-xpg4.o:= COMPATLINKTARGET=../../lib/values-xpg4.o 82$(ROOT)/usr/ccs/lib/values-xpg6.o:= COMPATLINKTARGET=../../lib/values-xpg6.o 83$(ROOT)/usr/ccs/lib/$(MACH64)/values-Xa.o:= \ 84 COMPATLINKTARGET=../../../lib/$(MACH64)/values-Xa.o 85$(ROOT)/usr/ccs/lib/$(MACH64)/values-Xc.o:= \ 86 COMPATLINKTARGET=../../../lib/$(MACH64)/values-Xc.o 87$(ROOT)/usr/ccs/lib/$(MACH64)/values-Xs.o:= \ 88 COMPATLINKTARGET=../../../lib/$(MACH64)/values-Xs.o 89$(ROOT)/usr/ccs/lib/$(MACH64)/values-Xt.o:= \ 90 COMPATLINKTARGET=../../../lib/$(MACH64)/values-Xt.o 91$(ROOT)/usr/ccs/lib/$(MACH64)/values-xpg4.o:= \ 92 COMPATLINKTARGET=../../../lib/$(MACH64)/values-xpg4.o 93$(ROOT)/usr/ccs/lib/$(MACH64)/values-xpg6.o:= \ 94 COMPATLINKTARGET=../../../lib/$(MACH64)/values-xpg6.o 95 96.KEEP_STATE: 97 98all: $(OBJECTS) 99 100clean clobber: 101 $(RM) $(OBJECTS) 102 103 104$(CRT1): $(COMMON_CRT) $(MACH_CRT) 105 $(LD) -r $(MACH_CRT) $(COMMON_CRT) -o $(CRT1) 106 107%.o: ../common/%.c 108 $(COMPILE.c) -o $@ $< 109 $(POST_PROCESS_O) 110 111%.o: %.s 112 $(COMPILE.s) -o $@ $< 113 $(POST_PROCESS_O) 114 115%.o: ../$(MACH)/%.s 116 $(COMPILE.s) -o $@ $< 117 $(POST_PROCESS_O) 118 119# install rule for ROOTOBJECTS and ROOTOBJECTS64 120$(ROOTLIB)/%.o: %.o 121 $(INS.file) 122 123$(ROOTLIB)/gcrt1.o: 124 $(RM) $(ROOTLIB)/gcrt1.o; $(SYMLINK) crt1.o $(ROOTLIB)/gcrt1.o 125 126$(ROOTLIB64)/%.o: %.o 127 $(INS.file) 128 129$(ROOTLIB64)/gcrt1.o: 130 $(RM) $(ROOTLIB64)/gcrt1.o; $(SYMLINK) crt1.o $(ROOTLIB64)/gcrt1.o 131 132$(ROOTCOMPATLINKS) $(ROOTCOMPATLINKS64): 133 $(RM) $@; $(SYMLINK) $(COMPATLINKTARGET) $@ 134