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 2019 Joyent, Inc.
14 #
15
16 #
17 # This makefile could be simplified substantially. However, it does
18 # everything explicitly to try and work with a wide variety of different
19 # makes.
20 #
21 # The following values should be passed in by the invoker of the
22 # Makefile:
23 #
24 # CC C Compiler to use
25 # CFLAGS32 32-bit CFLAGS
26 # CFLAGS64 64-bit CFLAGS
27 # CTFCONVERT Path to ctfconvert
28 # CTFMERGE Path to ctfmerge
29 # DEBUGFLAGS The set of debug flags to use
30 # BUILDDIR Directory things should be built in
31 # CHECK32 Program to check 32-bit output
32 # CHECK64 Program to check 64-bit output
33 #
34
35 OBJS_C_32 = $(BUILDDIR)/test-global.32.c.o \
36 $(BUILDDIR)/test-scoped.32.c.o
37
38 OBJS_C_64 = $(BUILDDIR)/test-global.64.c.o \
39 $(BUILDDIR)/test-scoped.64.c.o
40
41 OBJS_M_32 = $(BUILDDIR)/test-global.32.m.o \
42 $(BUILDDIR)/test-scoped.32.m.o
43
44 OBJS_M_64 = $(BUILDDIR)/test-global.64.m.o \
45 $(BUILDDIR)/test-scoped.64.m.o
46
47 BINS = $(BUILDDIR)/test-merge-reduction-32c.so.1 \
48 $(BUILDDIR)/test-merge-reduction-32m.so.1 \
49 $(BUILDDIR)/test-merge-reduction-64c.so.1 \
50 $(BUILDDIR)/test-merge-reduction-64m.so.1 \
51
52 CFLAGS = -fPIC
53 LDFLAGS = -shared -Wl,-Mmapfile-vers -Wl,-ztext -Wl,-zdefs \
54 -htest-merge-reduction.so.1
55
56 build: $(BINS)
57
58 $(BUILDDIR)/%.32.c.o: %.c
59 $(CC) $(CFLAGS) $(CFLAGS32) $(DEBUGFLAGS) -o $@ -c $<
60
61 $(BUILDDIR)/%.64.c.o: %.c
62 $(CC) $(CFLAGS) $(CFLAGS64) $(DEBUGFLAGS) -o $@ -c $<
63
64 $(BUILDDIR)/%.32.m.o: %.c
65 $(CC) $(CFLAGS) $(CFLAGS32) $(DEBUGFLAGS) -o $@ -c $<
66 $(CTFCONVERT) $@
67
68 $(BUILDDIR)/%.64.m.o: %.c
69 $(CC) $(CFLAGS) $(CFLAGS64) $(DEBUGFLAGS) -o $@ -c $<
70 $(CTFCONVERT) $@
71
72 $(BUILDDIR)/test-merge-reduction-32c.so.1: $(OBJS_C_32)
73 $(CC) $(CFLAGS32) $(CFLAGS) $(LDFLAGS) $(DEBUGFLAGS) -o $@ $(OBJS_C_32)
74 $(CTFCONVERT) $@
75
76 $(BUILDDIR)/test-merge-reduction-64c.so.1: $(OBJS_C_64)
77 $(CC) $(CFLAGS64) $(CFLAGS) $(LDFLAGS) $(DEBUGFLAGS) -o $@ $(OBJS_C_64)
78 $(CTFCONVERT) $@
79
80 $(BUILDDIR)/test-merge-reduction-32m.so.1: $(OBJS_M_32)
81 $(CC) $(CFLAGS32) $(CFLAGS) $(LDFLAGS) $(DEBUGFLAGS) -o $@ $(OBJS_M_32)
82 $(CTFMERGE) -t -o $@ $(OBJS_M_32)
83
84 $(BUILDDIR)/test-merge-reduction-64m.so.1: $(OBJS_M_64)
85 $(CC) $(CFLAGS64) $(CFLAGS) $(LDFLAGS) $(DEBUGFLAGS) -o $@ $(OBJS_M_64)
86 $(CTFMERGE) -t -o $@ $(OBJS_M_64)
87
88 run-test:
89 $(CHECK32) $(BUILDDIR)/test-merge-reduction-32c.so.1
90 $(CHECK64) $(BUILDDIR)/test-merge-reduction-64c.so.1
91 $(CHECK32) $(BUILDDIR)/test-merge-reduction-32m.so.1
92 $(CHECK64) $(BUILDDIR)/test-merge-reduction-64m.so.1