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 2008 Sun Microsystems, Inc. All rights reserved.
24 # Use is subject to license terms.
25 #
26 # Copyright 2015 Nexenta Systems, Inc. All rights reserved.
27 # Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
28 #
29
30 %.o: ../common/%.c
31 $(COMPILE.c) -o $@ $<
32 $(POST_PROCESS_O)
33
34 %32.o: ../common/%.c
35 $(COMPILE.c) -o $@ $<
36 $(POST_PROCESS_O)
37
38 %64.o: ../common/%.c
39 $(COMPILE.c) -D_ELF64 -o $@ $<
40 $(POST_PROCESS_O)
41
42 %.o: $(SGSCOMMON)/%.c
43 $(COMPILE.c) -o $@ $<
44 $(POST_PROCESS_O)
45
46 all: $(PROG)
47
48 $(PROG): $(OBJS) $(MAPFILE) check_struct_layout
49 $(LINK.c) -o $@ $(OBJS) $(LDLIBS)
50 $(POST_PROCESS)
51
52 check_struct_layout: gen_struct_layout gen_layout_obj.o
53 sed -e '/^#include <struct_layout.h>/q' \
54 ../common/struct_layout_$(ARCH).c | sed -e '$$d' \
55 > struct_layout_$(ARCH).tmp
56 ./gen_struct_layout gen_layout_obj.o $(ARCH) \
57 >> struct_layout_$(ARCH).tmp
58 @diff -u struct_layout_$(ARCH).tmp \
59 ../common/struct_layout_$(ARCH).c ||\
60 { echo "Error: struct_layout_$(ARCH).c needs update!" ; exit 1; }
61 touch $@
62
63 # We need CTF data in this object.
64 gen_layout_obj.o := CFLAGS += $(CTF_FLAGS)
65 gen_layout_obj.o := CFLAGS64 += $(CTF_FLAGS)
66 gen_layout_obj.o := POST_PROCESS_O = $(CTFCONVERT_O)
67
68 gen_struct_layout: ../common/gen_struct_layout.c
69 $(NATIVECC) $(NATIVE_CFLAGS) -o $@ \
70 ../common/gen_struct_layout.c -lctf
71
72 clean:
73 $(RM) $(OBJS) $(CLEANFILES) gen_struct_layout \
74 check_struct_layout gen_layout_obj.o \
75 struct_layout_$(ARCH).tmp
76
77 delete:
78 $(RM) $(PROG)
79
80 package \
81 install: all $(VAR_SGSBINPROG) $(VAR_SGSCCSLINK)
82
83 include $(SRC)/cmd/Makefile.targ
84 include $(SRC)/cmd/sgs/Makefile.targ
85
86 # Derived source and header files (messaging).
87
88 catalog: $(BLTMESG)
89
90 chkmsg: $(SRCS)
91 sh $(CHKMSG) $(CHKMSGFLAGS) $(SRCS)
92
93 $(BLTDEFS) + \
94 $(BLTDATA) + \
95 $(BLTMESG): $(SGSMSGALL)
96 $(SGSMSG) $(SGSMSGFLAGS) $(SGSMSGALL)