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
46all:		$(PROG)
47
48$(PROG):	$(OBJS) $(MAPFILE) check_struct_layout
49		$(LINK.c) -o $@ $(OBJS) $(LDLIBS)
50		$(POST_PROCESS)
51
52check_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.
64gen_layout_obj.o := CFLAGS += $(CTF_FLAGS)
65gen_layout_obj.o := CFLAGS64 += $(CTF_FLAGS)
66gen_layout_obj.o := POST_PROCESS_O = $(CTFCONVERT_O)
67
68gen_struct_layout:	../common/gen_struct_layout.c
69		$(NATIVECC) $(NATIVE_CFLAGS) -o $@ \
70			../common/gen_struct_layout.c -lctf
71
72clean:
73		$(RM) $(OBJS) $(CLEANFILES) gen_struct_layout \
74		  check_struct_layout gen_layout_obj.o \
75		  struct_layout_$(ARCH).tmp
76
77install:        all $(ROOTPROG) $(ROOTCCSBINLINK)
78
79include		$(SRC)/cmd/Makefile.targ
80
81# Derived source and header files (messaging).
82
83catalog:	$(BLTMESG)
84
85chkmsg:		$(SRCS)
86		sh $(CHKMSG) $(CHKMSGFLAGS) $(SRCS)
87
88$(BLTDEFS) + \
89$(BLTDATA) + \
90$(BLTMESG):	$(SGSMSGALL)
91		$(SGSMSG) $(SGSMSGFLAGS) $(SGSMSGALL)
92