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 2007 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25# ident	"%Z%%M%	%I%	%E% SMI"
26#
27
28include		../../../../../lib/Makefile.lib
29include		../../../Makefile.com
30
31CAP_LIB=	cap.so
32CAP_OBJ=	cap_msg.o cap32.o cap64.o
33
34DYN_LIB=	dyn.so
35DYN_OBJ=	dyn_msg.o dyn32.o dyn64.o
36
37EHDR_LIB=	ehdr.so
38EHDR_OBJ=	ehdr_msg.o ehdr32.o ehdr64.o
39
40PHDR_LIB=	phdr.so
41PHDR_OBJ=	phdr_msg.o phdr32.o phdr64.o
42
43SHDR_LIB=	shdr.so
44SHDR_OBJ=	shdr_msg.o shdr32.o shdr64.o
45
46SYM_LIB=	sym.so
47SYM_OBJ=	sym_msg.o sym32.o sym64.o
48
49SYMINFO_LIB=	syminfo.so
50SYMINFO_OBJ=	syminfo_msg.o syminfo32.o syminfo64.o
51
52ELFEDITLIBS=	$(CAP_LIB) $(DYN_LIB) $(EHDR_LIB) $(PHDR_LIB) \
53		$(SHDR_LIB) $(SYM_LIB) $(SYMINFO_LIB)
54
55PICDIR=		pics
56
57CAP_PICS=	$(CAP_OBJ:%.o=$(PICDIR)/%.o)
58DYN_PICS=	$(DYN_OBJ:%.o=$(PICDIR)/%.o)
59EHDR_PICS=	$(EHDR_OBJ:%.o=$(PICDIR)/%.o)
60PHDR_PICS=	$(PHDR_OBJ:%.o=$(PICDIR)/%.o)
61SHDR_PICS=	$(SHDR_OBJ:%.o=$(PICDIR)/%.o)
62SYM_PICS=	$(SYM_OBJ:%.o=$(PICDIR)/%.o)
63SYMINFO_PICS=	$(SYMINFO_OBJ:%.o=$(PICDIR)/%.o)
64
65LDLIBS +=	$(ELFLIBDIR) -lelf $(LDDBGLIBDIR) $(LDDBG_LIB) \
66		$(CONVLIBDIR) $(CONV_LIB) -lc
67
68$(CAP_LIB):=		PICS = $(CAP_PICS)
69$(DYN_LIB):=		PICS = $(DYN_PICS)
70$(EHDR_LIB):=		PICS = $(EHDR_PICS)
71$(PHDR_LIB):=		PICS = $(PHDR_PICS)
72$(SHDR_LIB):=		PICS = $(SHDR_PICS)
73$(SYM_LIB):=		PICS = $(SYM_PICS)
74$(SYMINFO_LIB):=	PICS = $(SYMINFO_PICS)
75
76$(CAP_LIB):=		SONAME = $(CAP_LIB)
77$(DYN_LIB):=		SONAME = $(DYN_LIB)
78$(EHDR_LIB):=		SONAME = $(EHDR_LIB)
79$(PHDR_LIB):=		SONAME = $(PHDR_LIB)
80$(SHDR_LIB):=		SONAME = $(SHDR_LIB)
81$(SYM_LIB):=		SONAME = $(SYM_LIB)
82$(SYMINFO_LIB):=	SONAME = $(SYMINFO_LIB)
83
84# All the modules use a shared mapfile
85MAPFILES = ../common/mapfile-vers
86
87CPPFLAGS +=	-I../../../include -I../../../include/$(MACH) \
88		-I../$(SRCBASE)/lib/libc/inc  -D_REENTRANT
89LLDFLAGS =	'-R$$ORIGIN/../../../lib'
90LLDFLAGS64 =	'-R$$ORIGIN/../../../../lib/$(MACH64)'
91LDFLAGS +=	$(USE_PROTO) $(LLDFLAGS)
92DYNFLAGS +=	$(VERSREF)
93
94LINTFLAGS +=	-uaxs $(LDLIBS)
95LINTFLAGS64 +=	-uaxs $(LDLIBS64)
96
97BLTDEFS =	$(ELFEDITLIBS:%.so=%_msg.h)
98BLTDATA =	$(ELFEDITLIBS:%.so=%_msg.c)
99BLTFILES =	$(BLTDEFS) $(BLTDATA)
100
101CLEANFILES +=	$(BLTFILES) $(LINTOUT) $(PICDIR)/*
102CLOBBERFILES +=	$(ELFEDITLIBS)
103
104ROOTELFEDITDIR=		$(ROOT)/usr/lib/elfedit
105ROOTELFEDITDIR64=	$(ROOT)/usr/lib/elfedit/$(MACH64)
106ROOTELFEDITLIBS=	$(ROOTELFEDITDIR)/$(MTARG)$(CAP_LIB) \
107			$(ROOTELFEDITDIR)/$(MTARG)$(DYN_LIB) \
108			$(ROOTELFEDITDIR)/$(MTARG)$(EHDR_LIB) \
109			$(ROOTELFEDITDIR)/$(MTARG)$(PHDR_LIB) \
110			$(ROOTELFEDITDIR)/$(MTARG)$(SHDR_LIB) \
111			$(ROOTELFEDITDIR)/$(MTARG)$(SYM_LIB) \
112			$(ROOTELFEDITDIR)/$(MTARG)$(SYMINFO_LIB)
113
114
115FILEMODE=	0755
116
117.PARALLEL:	$(ELFEDITLIBS)
118