xref: /illumos-gate/usr/src/tools/find_elf/Makefile (revision a2d4222865d0ef80687403e52976bd691ec2faee)
1#
2# This file and its contents are supplied under the terms of the
3# Common Development and Distribution License ("CDDL"), version 1.0.
4# You may only use this file in accordance with the terms of version
5# 1.0 of the CDDL.
6#
7# A full copy of the text of the CDDL should have accompanied this
8# source.  A copy of the CDDL is also available via the Internet at
9# http://www.illumos.org/license/CDDL.
10#
11
12#
13# Copyright 2022 Jason King
14#
15
16PROG = find_elf
17MAN1ONBLDFILES = find_elf.1onbld
18
19#
20# Since libcustr is private, we just build and link in the code directly
21# into the binary. If more build utilities require it in the future, we
22# can transition to building a tools version of the library and link
23# against it.
24CUSTRDIR = $(SRC)/lib/libcustr/common
25
26OBJS = find_elf.o custr.o
27
28include $(SRC)/tools/Makefile.tools
29include $(SRC)/cmd/Makefile.ctf
30
31$(ROOTONBLDMAN1ONBLDFILES) := FILEMODE=	644
32
33LDLIBS = -lelf -lavl
34NATIVE_LIBS += libelf.so libc.so libavl.so
35
36CPPFLAGS += -I$(CUSTRDIR)
37LDFLAGS = \
38	-L$(ROOTONBLDLIBMACH) \
39	'-R$$ORIGIN/../../lib/$(MACH)' \
40	$(BDIRECT) $(ZLAZYLOAD)
41
42CSTD = $(CSTD_GNU99)
43
44.KEEP_STATE:
45
46.PARALLEL: $(OBJS)
47
48all:	$(PROG)
49
50install: all .WAIT $(ROOTONBLDMACHPROG) $(ROOTONBLDDATAFILES) \
51	$(ROOTONBLDMAN1ONBLDFILES)
52
53clean:
54	$(RM) -f $(OBJS)
55
56$(PROG): $(OBJS)
57	$(LINK.c) $(OBJS) -o $@ $(LDLIBS)
58	$(POST_PROCESS)
59
60%.o: %.c
61	$(COMPILE.c) -o $@ $<
62	$(POST_PROCESS_O)
63
64%.o: $(CUSTRDIR)/%.c
65	$(COMPILE.c) -o $@ $<
66	$(POST_PROCESS_O)
67
68include $(SRC)/tools/Makefile.targ
69