xref: /illumos-gate/usr/src/cmd/sgs/libelf/demo/Makefile (revision 4656d4747c8743290bfbe910c64cd75eb4e4af8d)
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 (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
23#
24
25PROGS=		pcom acom dcom tpcom dispsyms
26LDLIBS=		-lelf
27
28OBJS=	$(PROGS:%=%.o)
29
30.KEEP_STATE:
31
32all:	libobj.a .WAIT $(PROGS)
33
34libobj.a: $(OBJS)
35	ar -r $@ $(OBJS)
36
37%.o:	%.c
38	$(CC) $(CPPFLAGS) $(CFLAGS) -c $<
39	mcs -d -a "ELF demo: object comment: $@" $@
40
41%:	%.o
42	$(CC) $(CFLAGS) -o $@ $< $(LDLIBS)
43	mcs -d -a "ELF demo: executable comment: $@" $@
44
45test: test1 test2 test3 test4 test5 test6
46
47test1: pcom FRC
48	@ echo ""
49	@ echo "<<< Test 1 >>>"
50	@ echo "Print comments of pcom"
51	pcom pcom
52	@ echo
53	@ echo "Print comments from archive libobj.a"
54	pcom libobj.a
55
56test2: dcom pcom FRC
57	@ echo ""
58	@ echo "<<< Test 2 >>>"
59	@ echo "Delete the comment section from pcom"
60	TMPDIR= dcom pcom
61	pcom pcom
62
63test3: pcom acom test2 FRC
64	@ echo ""
65	@ echo "<<< Test 3 >>>"
66	@ echo "update comments from pcom and then print them out."
67	acom "Newly Updated Comments" pcom
68	pcom pcom
69
70test4: acom pcom test3 FRC
71	@ echo ""
72	@ echo "<<< Test 4 >>>"
73	@ echo "Append to the comment section of pcom."
74	acom "This comment has been appended" pcom
75	pcom pcom
76
77test5: $(PROGS) FRC
78	@ echo ""
79	@ echo "<<< Test 5 >>>"
80	@ echo "Relabel the new utilities using the new utilities."
81	TMPDIR= dcom $(PROGS)
82	cp acom acom.safe
83	acom.safe "libelf Demonstration Tools" $(PROGS)
84	pcom $(PROGS)
85	$(RM) acom.safe
86
87test6: dispsyms FRC
88	@ echo ""
89	@ echo "<<< Test 6 >>>"
90	@ echo "Display symbols in dispsyms itself."
91	dispsyms dispsyms | egrep -v "LOCL|ABS|SECT|UNDEF"
92
93test-extra: tpcom FRC
94	@ echo ""
95	@ echo "<<< Test-extra >>>"
96	@ echo "Using the threaded tpcom, go through and examine all"
97	@ echo "libraries in /lib.  This is an output intensive test."
98	tpcom /lib/lib*.so.?
99
100clean: FRC
101	$(RM) $(OBJS) $(PROGS) libobj.a core
102
103FRC:
104