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 28 CRTI = crti.o 29 CRTN = crtn.o 30 CRT1 = crt1.o 31 VALUES = values-Xa.o values-Xc.o values-Xs.o values-Xt.o \ 32 values-xpg4.o values-xpg6.o 33 COMMON_CRT = common-crt.o 34 MACH_CRT = mach-crt1.o 35 36 # include library definitions 37 include ../../Makefile.lib 38 39 SRCS = $(VALUES:%.o=../common/%.c) $(COMMON_CRT:%.o=../common/%.c) 40 41 POST_PROCESS_O = $(PROCESS_COMMENT) $@ ; $(STRIP) -x $@ 42 43 OBJECTS = $(VALUES) $(CRT1) $(CRTI) $(CRTN) 44 45 ROOTLIB= $(ROOT)/usr/lib 46 ROOTLIB64= $(ROOTLIB)/$(MACH64) 47 ROOTOBJECTS= $(OBJECTS:%=$(ROOTLIB)/%) 48 ROOTOBJECTS64= $(OBJECTS:%=$(ROOTLIB64)/%) 49 50 $(INTEL_BLD)ROOTOBJECTS += $(ROOTLIB)/gcrt1.o 51 $(INTEL_BLD)ROOTOBJECTS64 += $(ROOTLIB64)/gcrt1.o 52 53 ASFLAGS += -P -D__STDC__ -D_ASM -DPIC $(AS_PICFLAGS) 54 55 values-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 60 SMOFF += unreachable 61 62 .KEEP_STATE: 63 64 all: $(OBJECTS) 65 66 clean clobber: 67 $(RM) $(OBJECTS) 68 69 70 $(CRT1): $(COMMON_CRT) $(MACH_CRT) 71 $(LD) -r $(MACH_CRT) $(COMMON_CRT) -o $(CRT1) 72 73 %.o: ../common/%.c 74 $(COMPILE.c) -o $@ $< 75 $(POST_PROCESS_O) 76 77 %.o: %.s 78 $(COMPILE.s) -o $@ $< 79 $(POST_PROCESS_O) 80 81 %.o: ../$(MACH)/%.s 82 $(COMPILE.s) -o $@ $< 83 $(POST_PROCESS_O) 84 85 # install rule for ROOTOBJECTS and ROOTOBJECTS64 86 $(ROOTLIB)/%.o: %.o 87 $(INS.file) 88 89 $(ROOTLIB)/gcrt1.o: 90 $(RM) $(ROOTLIB)/gcrt1.o; $(SYMLINK) crt1.o $(ROOTLIB)/gcrt1.o 91 92 $(ROOTLIB64)/%.o: %.o 93 $(INS.file) 94 95 $(ROOTLIB64)/gcrt1.o: 96 $(RM) $(ROOTLIB64)/gcrt1.o; $(SYMLINK) crt1.o $(ROOTLIB64)/gcrt1.o 97 98 FRC: