1*55d6cb5dSRichard Lowe#
2*55d6cb5dSRichard Lowe# This file and its contents are supplied under the terms of the
3*55d6cb5dSRichard Lowe# Common Development and Distribution License ("CDDL"), version 1.0.
4*55d6cb5dSRichard Lowe# You may only use this file in accordance with the terms of version
5*55d6cb5dSRichard Lowe# 1.0 of the CDDL.
6*55d6cb5dSRichard Lowe#
7*55d6cb5dSRichard Lowe# A full copy of the text of the CDDL should have accompanied this
8*55d6cb5dSRichard Lowe# source.  A copy of the CDDL is also available via the Internet at
9*55d6cb5dSRichard Lowe# http://www.illumos.org/license/CDDL.
10*55d6cb5dSRichard Lowe#
11*55d6cb5dSRichard Lowe
12*55d6cb5dSRichard Lowe# Copyright 2021, Richard Lowe.
13*55d6cb5dSRichard Lowe
14*55d6cb5dSRichard LoweOBJS=visible.o hidden.o access.o
15*55d6cb5dSRichard Lowe
16*55d6cb5dSRichard LoweSRCDIR=$(PWD)
17*55d6cb5dSRichard Lowe
18*55d6cb5dSRichard Lowe.KEEP_STATE:
19*55d6cb5dSRichard Lowe
20*55d6cb5dSRichard Loweall: libnoref.so libothertest.so test
21*55d6cb5dSRichard Lowe
22*55d6cb5dSRichard Lowe%.o: $(SRCDIR)/%.s
23*55d6cb5dSRichard Lowe	gcc -D_ASM -m64 -c $< -o $@
24*55d6cb5dSRichard Lowe%.o: $(SRCDIR)/%.S
25*55d6cb5dSRichard Lowe	gcc -D_ASM -m64 -c $< -o $@
26*55d6cb5dSRichard Lowe
27*55d6cb5dSRichard Lowelibtest.so: $(OBJS)
28*55d6cb5dSRichard Lowe	gcc -m64 -shared $(OBJS) -o $@
29*55d6cb5dSRichard Lowe
30*55d6cb5dSRichard Lowe# libtest.so, but with the important objects in the other order so that we
31*55d6cb5dSRichard Lowe# choose the other COMDAT section to keep.
32*55d6cb5dSRichard Lowelibothertest.so: $(OBJS)
33*55d6cb5dSRichard Lowe	gcc -m64 -shared hidden.o visible.o access.o -o $@
34*55d6cb5dSRichard Lowe
35*55d6cb5dSRichard Lowelibnoref.so: $(OBJS:access.o=)	#Remove any references
36*55d6cb5dSRichard Lowe	gcc -m64 -Wl,-zignore -shared $(OBJS:access.o=) -o $@
37*55d6cb5dSRichard Lowe
38*55d6cb5dSRichard Lowetest: $(SRCDIR)/main.c libtest.so
39*55d6cb5dSRichard Lowe	gcc -m64 $(SRCDIR)/main.c -o $@ -L$(PWD) -R$(PWD) -ltest
40*55d6cb5dSRichard Lowe
41*55d6cb5dSRichard Loweclean:
42*55d6cb5dSRichard Lowe	rm -rf $(OBJS) test libtest.so
43