xref: /illumos-gate/usr/src/cmd/sgs/elfdump/Makefile.com (revision 3fe455549728ac525df3be56130ad8e075d645d7)
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) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
24# Copyright (c) 2018, Joyent, Inc.
25# Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
26# Copyright 2024 Oxide Computer Company
27#
28
29PROG=		elfdump
30
31include		$(SRC)/cmd/Makefile.cmd
32include		$(SRC)/cmd/sgs/Makefile.com
33
34COMOBJ =	main.o			corenote.o \
35		dwarf.o			struct_layout.o \
36		struct_layout_i386.o	struct_layout_amd64.o \
37		struct_layout_sparc.o	struct_layout_sparcv9.o
38
39COMOBJ32 =	elfdump32.o fake_shdr32.o
40
41COMOBJ64 =	elfdump64.o fake_shdr64.o
42
43SGSCOMMONOBJ =	leb128.o
44
45BLTOBJ =	msg.o
46
47EXTOBJ =	hexdump.o ilstr.o
48
49OBJS=		$(BLTOBJ) $(COMOBJ) $(COMOBJ32) $(COMOBJ64) $(SGSCOMMONOBJ) \
50		$(EXTOBJ)
51
52MAPFILE=	$(MAPFILE.NGB)
53MAPOPT=		$(MAPFILE:%=-Wl,-M%)
54
55CPPFLAGS=	-I. -I../common -I../../include -I../../include/$(MACH) \
56		-I$(SRC)/lib/libc/inc -I$(SRC)/uts/$(ARCH)/sys \
57		$(CPPFLAGS.master) -I$(ELFCAP)
58
59LDFLAGS +=	$(VERSREF) $(MAPOPT) '-R$$ORIGIN/../../lib/$(MACH64)'
60LDLIBS +=	$(ELFLIBDIR64) -lelf $(LDDBGLIBDIR64) -llddbg \
61		    $(CONVLIBDIR64) -lconv
62
63NATIVE_LDFLAGS = $(LDASSERTS) $(BDIRECT)
64
65BLTDEFS =	msg.h
66BLTDATA =	msg.c
67BLTMESG =	$(SGSMSGDIR)/elfdump
68
69BLTFILES =	$(BLTDEFS) $(BLTDATA) $(BLTMESG)
70
71SGSMSGCOM =	../common/elfdump.msg
72SGSMSGTARG =	$(SGSMSGCOM)
73SGSMSGALL =	$(SGSMSGCOM)
74SGSMSGFLAGS +=	-h $(BLTDEFS) -d $(BLTDATA) -m $(BLTMESG) -n elfdump_msg
75
76SRCS =		$(COMOBJ:%.o=../common/%.c) \
77		$(COMOBJ32:%32.o=../common/%.c) \
78		$(SGSCOMMONOBJ:%.o=$(SGSCOMMON)/%.c) $(BLTDATA)
79
80CLEANFILES +=	$(BLTFILES) gen_struct_layout
81
82%.o: $(SRC)/common/hexdump/%.c
83	$(COMPILE.c) $< -o $@
84	$(POST_PROCESS_O)
85
86%.o: $(SRC)/common/ilstr/%.c
87	$(COMPILE.c) $< -o $@
88	$(POST_PROCESS_O)
89