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 2008 Sun Microsystems, Inc. All rights reserved. 23# Use is subject to license terms. 24# 25# Copyright 2016 RackTop Systems. 26# Copyright 2019 OmniOS Community Edition (OmniOSce) Association. 27# 28 29pics/%.o: ../common/%.c 30 $(COMPILE.c) -o $@ $< 31 $(POST_PROCESS_O) 32 33pics/%32.o: ../common/%.c 34 $(COMPILE.c) -o $@ $< 35 $(POST_PROCESS_O) 36 37pics/%64.o: ../common/%.c 38 $(COMPILE.c) -o $@ -D_ELF64 $< 39 $(POST_PROCESS_O) 40 41pics/%32.o: %.c 42 $(COMPILE.c) -o $@ $< 43 $(POST_PROCESS_O) 44 45pics/%64.o: %.c 46 $(COMPILE.c) -o $@ -D_ELF64 $< 47 $(POST_PROCESS_O) 48 49pics/%.o: $(SGSTOOLS)/common/%.c 50 $(COMPILE.c) -o $@ $< 51 $(POST_PROCESS_O) 52 53pics/%.o: $(VAR_AVLDIR)/%.c 54 $(COMPILE.c) -o $@ $< 55 $(POST_PROCESS_O) 56 57# 58# We use the shared elfcap code under usr/src/common/elfcap 59# 60pics/elfcap.o: $(ELFCAP)/elfcap.c 61 $(COMPILE.c) -o $@ $(ELFCAP)/elfcap.c 62 $(POST_PROCESS_O) 63 64# Rules for compiling the shared relocation engines (doreloc.c) maintained 65# under usr/src/uts. To support cross linking, We compile and link 66# all of these into every copy of libld. Each one requires a separate rule: 67# - The source files are in different subtrees under usr/src/uts 68# - The output file needs to include the platform name to 69# keep the object files from colliding 70# The DO_RELOC_LIBLD definition is needed to generate the libld version 71# of the doreloc code. 72# 73pics/%_x86_32.o: $(KRTLD_I386)/%.c 74 $(COMPILE.c) -o $@ -DDO_RELOC_LIBLD $< 75 $(POST_PROCESS_O) 76 77pics/%_x86_64.o: $(KRTLD_AMD64)/%.c 78 $(COMPILE.c) -o $@ -D_ELF64 -DDO_RELOC_LIBLD $< 79 $(POST_PROCESS_O) 80 81pics/%_sparc_32.o: $(KRTLD_SPARC)/%.c 82 $(COMPILE.c) -o $@ -DDO_RELOC_LIBLD $< 83 $(POST_PROCESS_O) 84 85pics/%_sparc_64.o: \ 86 $(KRTLD_SPARC)/%.c 87 $(COMPILE.c) -o $@ -D_ELF64 -DDO_RELOC_LIBLD $< 88 $(POST_PROCESS_O) 89 90 91$(LIBLINKS): 92 $(RM) $@; $(SYMLINK) $(DYNLIB) $@ 93 94delete: 95 $(RM) $(DYNLIB) 96 97# Special target for native builds (ie. when we need to build a version of ld 98# to build a version of ld :-). 99 100native: $(SGSLIBDIR)/$(LIBLINKS) 101 102$(PICS): pics 103 104$(SGSLIBDIR)/$(DYNLIB): $(PICS) $(SGSLIBDIR) 105 $(BUILD.SO) 106 $(POST_PROCESS_SO) 107 108$(SGSLIBDIR)/$(LIBLINKS): $(SGSLIBDIR)/$(DYNLIB) 109 @$(RM) $(SGSLIBDIR)/$(LIBLINKS) 110 $(SYMLINK) $(DYNLIB) $(SGSLIBDIR)/$(LIBLINKS) 111 112include $(SRC)/lib/Makefile.targ 113include $(SRC)/cmd/sgs/Makefile.targ 114 115# Derived source and header files (messaging). 116 117catalog: $(BLTMESG) 118 119chkmsg: $(LIBSRCS) $(CHKSRCS) 120 sh $(CHKMSG) $(CHKMSGFLAGS) $(LIBSRCS) $(CHKSRCS) 121 122$(BLTDEFS) + \ 123$(BLTDATA): $(SGSMSGTARG) 124 $(SGSMSG) $(SGSMSGFLAGS2) $(SGSMSGTARG) 125 126$(BLTMESG): $(SGSMSGALL) 127 $(SGSMSG) $(SGSMSGFLAGS1) $(SGSMSGALL) 128