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#
23# Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
24# Copyright 2018 Joyent, Inc.
25#
26
27LIBRARY =	libconv.a
28
29COMOBJS32 =	cap_machelf32.o		dynamic_machelf32.o \
30		globals_machelf32.o	sections_machelf32.o \
31		symbols_machelf32.o	symbols_sparc_machelf32.o
32
33COMOBJS64 =	cap_machelf64.o		dynamic_machelf64.o \
34		globals_machelf64.o	sections_machelf64.o \
35		symbols_machelf64.o	symbols_sparc_machelf64.o
36
37COMOBJS=	arch.o			audit.o \
38		c_literal.o \
39		cap.o			config.o \
40		corenote.o		data.o \
41		deftag.o		demangle.o \
42		dl.o			dwarf.o \
43		dwarf_ehe.o		dynamic.o \
44		elf.o			entry.o \
45		globals.o		group.o \
46		lddstub.o		map.o \
47		phdr.o			relocate.o \
48		relocate_i386.o		relocate_amd64.o \
49		relocate_sparc.o	sections.o \
50		segments.o		strproc.o \
51		symbols.o		syminfo.o \
52		tokens.o		time.o \
53		version.o
54
55ELFCAP_OBJS=	elfcap.o
56
57ASOBJS=		vernote.o
58
59BLTOBJS=	arch_msg.o		audit_msg.o \
60		c_literal_msg.o \
61		cap_msg.o		config_msg.o \
62		corenote_msg.o		data_msg.o \
63		deftag_msg.o		demangle_msg.o \
64		dl_msg.o		dwarf_msg.o \
65		dwarf_ehe_msg.o		dynamic_msg.o \
66		elf_msg.o		entry_msg.o \
67		globals_msg.o		group_msg.o \
68		map_msg.o		lddstub_msg.o \
69		phdr_msg.o		relocate_amd64_msg.o \
70		relocate_i386_msg.o	relocate_sparc_msg.o \
71		sections_msg.o		segments_msg.o \
72		symbols_msg.o		symbols_sparc_msg.o \
73		syminfo_msg.o		time_msg.o \
74		version_msg.o
75
76
77OBJECTS =	$(COMOBJS) $(COMOBJS32) $(COMOBJS64) $(ELFCAP_OBJS) \
78		$(ASOBJS) $(BLTOBJS)
79
80#
81# This library is unusual since it's a static archive of PIC objects.
82# Since static archives should never contain CTF data (regardless of
83# whether the object code is position-independent), we disable CTF.
84#
85NOCTFOBJS =	$(OBJECTS)
86CTFMERGE_LIB =	:
87
88include	$(SRC)/lib/Makefile.lib
89include	$(SRC)/cmd/sgs/Makefile.com
90
91CERRWARN	+= -_gcc=-Wno-type-limits
92CERRWARN	+= -_gcc=-Wno-switch
93
94# not linted
95SMATCH=off
96
97CTFCONVERT_O=
98
99README_REVISION=../../packages/common/readme_revision
100ONLDREADME=	../../packages/common/SUNWonld-README
101
102PICS=		$(OBJECTS:%=pics/%)
103
104CPPFLAGS +=	-I$(SRCBASE)/lib/libc/inc -I$(ELFCAP) \
105		-I$(SRC)/common/sgsrtcid
106
107ARFLAGS=	cr
108
109AS_CPPFLAGS=	-P -D_ASM $(CPPFLAGS)
110
111BLTDATA=	$(BLTOBJS:%.o=%.c) $(BLTOBJS:%.o=%.h) report_bufsize.h
112
113SRCS=		../common/llib-lconv
114LINTSRCS=	$(COMOBJS:%.o=../common/%.c) \
115		    $(COMOBJS_NOMSG:%.o=../common/%.c) \
116		    $(ELFCOM_OBJS:%.o=$(ELFCAP)/%.c) ../common/lintsup.c
117LINTSRCS32 =	$(COMOBJS32:%32.o=../common/%.c)
118LINTSRCS64 =	$(COMOBJS64:%64.o=../common/%.c)
119
120# Since libconv uses dlopen(3C) to load libdemangle-sys.so (much like it did
121# for the old Sun Studio libdemangle.so) in order to avoid messy bootstrapping
122# problems, but it also needs the definitions from demangle-sys.h for
123# SYSDEM_LANG_AUTO, lint will complain about sysdemangle() being defined but not
124# used unless it is explicitly included during the lint pass
125$(LINTOUT32)	:= LDLIBS += -ldemangle-sys
126$(LINTOUT64)	:= LDLIBS += -ldemangle-sys
127
128SGSMSGTARG=	$(BLTOBJS:%_msg.o=../common/%.msg)
129
130LINTFLAGS +=	-u -erroff=E_NAME_DECL_NOT_USED_DEF2
131LINTFLAGS64 +=	-u -erroff=E_NAME_DECL_NOT_USED_DEF2
132
133CLEANFILES +=	$(BLTDATA) $(LINTOUTS) bld_vernote vernote.s
134CLOBBERFILES +=	$(LINTLIBS)
135