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.
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.
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]
23 # Copyright 2008 Sun Microsystems, Inc. All rights reserved.
24 # Use is subject to license terms.
26 # Copyright 2015 Nexenta Systems, Inc. All rights reserved.
38 $(COMPILE.c) -D_ELF64 -o $@ $<
41 %.o: $(SGSTOOLS)/common/%.c
47 $(PROG): $(OBJS) $(MAPFILE) check_struct_layout
48 $(LINK.c) -o $@ $(OBJS) $(LDLIBS)
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; }
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)
67 gen_struct_layout: ../common/gen_struct_layout.c
68 $(NATIVECC) $(NATIVE_CFLAGS) -o $@ \
69 ../common/gen_struct_layout.c -lctf
72 $(RM) $(OBJS) $(CLEANFILES) gen_struct_layout \
73 check_struct_layout gen_layout_obj.o \
74 struct_layout_$(ARCH).tmp
80 install: all $(VAR_SGSBINPROG) $(VAR_SGSCCSLINK)
82 .PARALLEL: $(LINTOUT32) $(LINTOUT64)
84 lint: $(LINTOUT32) $(LINTOUT64) $(SGSLINTOUT)
86 include $(SRC)/cmd/Makefile.targ
87 include $(SRC)/cmd/sgs/Makefile.targ
89 # Derived source and header files (messaging).
94 sh $(CHKMSG) $(CHKMSGFLAGS) $(SRCS)
98 $(BLTMESG): $(SGSMSGALL)
99 $(SGSMSG) $(SGSMSGFLAGS) $(SGSMSGALL)