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