xref: /illumos-gate/usr/src/cmd/ast/libcmd/Makefile.com (revision 44ce9f4b5e85893725f9e851530b585072ee8593)
1b30d1939SAndy Fiddaman#
2b30d1939SAndy Fiddaman# CDDL HEADER START
3b30d1939SAndy Fiddaman#
4b30d1939SAndy Fiddaman# The contents of this file are subject to the terms of the
5b30d1939SAndy Fiddaman# Common Development and Distribution License (the "License").
6b30d1939SAndy Fiddaman# You may not use this file except in compliance with the License.
7b30d1939SAndy Fiddaman#
8b30d1939SAndy Fiddaman# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9b30d1939SAndy Fiddaman# or http://www.opensolaris.org/os/licensing.
10b30d1939SAndy Fiddaman# See the License for the specific language governing permissions
11b30d1939SAndy Fiddaman# and limitations under the License.
12b30d1939SAndy Fiddaman#
13b30d1939SAndy Fiddaman# When distributing Covered Code, include this CDDL HEADER in each
14b30d1939SAndy Fiddaman# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15b30d1939SAndy Fiddaman# If applicable, add the following below this CDDL HEADER, with the
16b30d1939SAndy Fiddaman# fields enclosed by brackets "[]" replaced with your own identifying
17b30d1939SAndy Fiddaman# information: Portions Copyright [yyyy] [name of copyright owner]
18b30d1939SAndy Fiddaman#
19b30d1939SAndy Fiddaman# CDDL HEADER END
20b30d1939SAndy Fiddaman#
21b30d1939SAndy Fiddaman
22b30d1939SAndy Fiddaman#
23b30d1939SAndy Fiddaman# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
24b30d1939SAndy Fiddaman#
25b30d1939SAndy Fiddaman# Copyright (c) 2018, Joyent, Inc.
26b30d1939SAndy Fiddaman# Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
27b30d1939SAndy Fiddaman
28b30d1939SAndy FiddamanSHELL= /usr/bin/ksh93
29b30d1939SAndy Fiddaman
30b30d1939SAndy FiddamanLIBRARY= libcmd.a
31b30d1939SAndy FiddamanVERS= .1
32b30d1939SAndy Fiddaman
33b30d1939SAndy Fiddamaninclude ../Makefile.defs
34b30d1939SAndy Fiddaman
35b30d1939SAndy FiddamanOBJECTS += $(LIBOBJS)
36b30d1939SAndy Fiddaman
37b30d1939SAndy Fiddamaninclude $(SRC)/lib/Makefile.lib
38b30d1939SAndy Fiddamaninclude ../../Makefile.ast
39b30d1939SAndy Fiddaman
40b30d1939SAndy FiddamanMAPFILES= ../mapfile-vers
41b30d1939SAndy Fiddaman
42b30d1939SAndy FiddamanLIBS= $(DYNLIB)
43b30d1939SAndy Fiddaman
44b30d1939SAndy FiddamanLDLIBS += -lsum -last -lsocket -lnsl -lc
45b30d1939SAndy Fiddaman
46b30d1939SAndy Fiddaman# We use "=" here since using $(CPPFLAGS.master) is very tricky in our
47b30d1939SAndy Fiddaman# case - it MUST come as the last element but future changes in -D options
48b30d1939SAndy Fiddaman# may then cause silent breakage in the AST sources because the last -D
49b30d1939SAndy Fiddaman# option specified overrides previous -D options so we prefer the current
50b30d1939SAndy Fiddaman# way to explicitly list each single flag.
51b30d1939SAndy FiddamanCPPFLAGS= \
52b30d1939SAndy Fiddaman	$(DTEXTDOM) $(DTS_ERRNO) \
53b30d1939SAndy Fiddaman	-I$(ASTSRC) \
54b30d1939SAndy Fiddaman	-Iast -I. \
55b30d1939SAndy Fiddaman	-I$(ROOT)/usr/include/ast \
56b30d1939SAndy Fiddaman	-I$(ROOT)/usr/include \
57b30d1939SAndy Fiddaman	-D_BLD_cmd \
58b30d1939SAndy Fiddaman	-D_PACKAGE_ast \
59b30d1939SAndy Fiddaman	-D_BLD_DLL \
60b30d1939SAndy Fiddaman	'-DERROR_CATALOG="libcmd"' \
61b30d1939SAndy Fiddaman	'-DUSAGE_LICENSE=\
62b30d1939SAndy Fiddaman	    "[-author?Glenn Fowler <gsf@research.att.com>]"\
63b30d1939SAndy Fiddaman	    "[-author?David Korn <dgk@research.att.com>]"\
64b30d1939SAndy Fiddaman	    "[-copyright?Copyright (c) 1992-2012 AT&T Intellectual Property]"\
65b30d1939SAndy Fiddaman	    "[-license?http://www.eclipse.org/org/documents/epl-v10.html]"\
66b30d1939SAndy Fiddaman	    "[--catalog?libcmd]"'
67b30d1939SAndy Fiddaman
68b30d1939SAndy FiddamanCFLAGS += $(ASTCFLAGS)
69b30d1939SAndy FiddamanCFLAGS64 += $(ASTCFLAGS64)
70b30d1939SAndy Fiddaman
71b30d1939SAndy FiddamanCERRWARN	+= -_gcc=-Wno-unused-value
72b30d1939SAndy FiddamanCERRWARN	+= -_gcc=-Wno-parentheses
73b30d1939SAndy FiddamanCERRWARN	+= $(CNOWARN_UNINIT)
74b30d1939SAndy FiddamanCERRWARN	+= -_gcc=-Wno-unused-variable
75b30d1939SAndy FiddamanCERRWARN	+= -_gcc=-Wno-implicit-function-declaration
76b30d1939SAndy Fiddaman
77b30d1939SAndy Fiddaman# not linted
78b30d1939SAndy FiddamanSMATCH=off
79b30d1939SAndy Fiddaman
80475b46feSAndy Fiddaman.KEEP_STATE:
81475b46feSAndy Fiddaman
82b30d1939SAndy Fiddamanall: install_h .WAIT $(LIBS)
83b30d1939SAndy Fiddaman
84b30d1939SAndy Fiddamaninclude $(SRC)/lib/Makefile.targ
85b30d1939SAndy Fiddaman
86b30d1939SAndy Fiddamanpics/%.o: $(ASTSRC)/%.c
87b30d1939SAndy Fiddaman	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
88b30d1939SAndy Fiddaman	$(POST_PROCESS_O)
89b30d1939SAndy Fiddaman
90b30d1939SAndy Fiddaman######################################################################
91b30d1939SAndy Fiddaman# Header file generation
92b30d1939SAndy Fiddaman
93475b46feSAndy Fiddaman$(HEADERSRC:%=ast/%): $(HEADERSRC:%=$(ASTSRC)/%)
94b30d1939SAndy Fiddaman	$(MKDIR) -p $(@D)
95b30d1939SAndy Fiddaman	$(CP) $(ASTSRC)/$(@F) $@
96b30d1939SAndy Fiddaman
97b30d1939SAndy Fiddaman# This rule is derived from $(CONTRIB)/ast/src/lib/libcmd/Makefile
98475b46feSAndy Fiddamanast/cmdext.h: $(OBJECTS:%.o=$(ASTSRC)/%.c)
99b30d1939SAndy Fiddaman	$(MKDIR) -p $(@D)
100b30d1939SAndy Fiddaman	echo '#include <shcmd.h>' > $@.tmp
101b30d1939SAndy Fiddaman	$(SED) \
102b30d1939SAndy Fiddaman	    -e '/^b_[a-z_][a-z_0-9]*(/!d' \
103b30d1939SAndy Fiddaman	    -e 's/^b_//' \
104b30d1939SAndy Fiddaman	    -e 's/(.*//' \
105b30d1939SAndy Fiddaman	    -e 's/.*/extern int     b_&(int, char**, Shbltin_t*);/' \
106b30d1939SAndy Fiddaman	    $(OBJECTS:%.o=$(ASTSRC)/%.c) | \
107b30d1939SAndy Fiddaman	    $(SORT) -u \
108b30d1939SAndy Fiddaman	    >> $@.tmp
109b30d1939SAndy Fiddaman	$(AST_PROTO) -f $@.tmp >> $@
110b30d1939SAndy Fiddaman	rm -f $@.tmp
111*44ce9f4bSAndy Fiddaman	$(POST_PROCESS_AST)
112b30d1939SAndy Fiddaman
113b30d1939SAndy FiddamanCLOBBERFILES += ast/*
114b30d1939SAndy Fiddaman
115b30d1939SAndy Fiddamaninstall_h: $(HEADERSRC:%=ast/%) $(HEADERGEN:%=ast/%)
116b30d1939SAndy Fiddaman
117b30d1939SAndy Fiddaman.PARALLEL: $(HEADERSRC:%=ast/%) $(HEADERGEN:%=ast/%)
118b30d1939SAndy Fiddaman
119b30d1939SAndy Fiddaman_feature: FRC
120b30d1939SAndy Fiddaman	$(MAKE) -f Makefile.iffe generate
121b30d1939SAndy Fiddaman
122b30d1939SAndy Fiddamaninclude ../../Makefile.astmsg
123b30d1939SAndy Fiddaman
124b30d1939SAndy FiddamanFRC:
125