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