xref: /illumos-gate/usr/src/cmd/ast/libast/Makefile.com (revision 3cff04e7)
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) 2019, Joyent, Inc.
26b30d1939SAndy Fiddaman# Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
27b30d1939SAndy Fiddaman
28b30d1939SAndy FiddamanSHELL= /usr/bin/ksh93
29b30d1939SAndy Fiddaman
30b30d1939SAndy FiddamanLIBRARY= libast.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 FiddamanLDLIBS += -lm -lc -lsocket
44b30d1939SAndy Fiddaman
45b30d1939SAndy Fiddaman# We use "=" here since using $(CPPFLAGS.master) is very tricky in our
46b30d1939SAndy Fiddaman# case - it MUST come as the last element but future changes in -D options
47b30d1939SAndy Fiddaman# may then cause silent breakage in the AST sources because the last -D
48b30d1939SAndy Fiddaman# option specified overrides previous -D options so we prefer the current
49b30d1939SAndy Fiddaman# way to explicitly list each single flag.
50b30d1939SAndy Fiddaman# Notes:
51b30d1939SAndy Fiddaman#   - "-D_BLD_DLL" comes from ${mam_cc_DLL} in Mamfile
52b30d1939SAndy Fiddaman#   - Be careful with "-D__OBSOLETE__=xxx". Make sure this is in sync with
53b30d1939SAndy Fiddaman#     upstream (see Mamfile) and do not change the |__OBSOLETE__| value
54b30d1939SAndy Fiddaman#     without examining the symbols that will be removed, and evaluating
55b30d1939SAndy Fiddaman#     whether that breaks compatibility with upstream binaries.
56b30d1939SAndy FiddamanCPPFLAGS= \
57b30d1939SAndy Fiddaman	$(DTEXTDOM) $(DTS_ERRNO) \
58b30d1939SAndy Fiddaman	$(ASTPLATFORMCPPFLAGS) \
59b30d1939SAndy Fiddaman	-Iast -I. \
60b30d1939SAndy Fiddaman	-I$(ASTSRC) \
61b30d1939SAndy Fiddaman	-I$(ASTSRC)/comp \
62b30d1939SAndy Fiddaman	-I$(ASTSRC)/include \
63b30d1939SAndy Fiddaman	-I$(ASTSRC)/std \
64b30d1939SAndy Fiddaman	-I$(ASTSRC)/dir \
65b30d1939SAndy Fiddaman	-I$(ASTSRC)/port \
66b30d1939SAndy Fiddaman	-I$(ASTSRC)/sfio \
67b30d1939SAndy Fiddaman	-I$(ASTSRC)/misc \
68b30d1939SAndy Fiddaman	-I$(ASTSRC)/string \
69b30d1939SAndy Fiddaman	-I$(ROOT)/usr/include \
70b30d1939SAndy Fiddaman	'-DCONF_LIBSUFFIX=".so"' \
71b30d1939SAndy Fiddaman	'-DCONF_LIBPREFIX="lib"' \
72b30d1939SAndy Fiddaman	-DERROR_CATALOG=\""libast"\" \
73b30d1939SAndy Fiddaman	-D__OBSOLETE__=20120101 \
74b30d1939SAndy Fiddaman	-D_BLD_ast \
75b30d1939SAndy Fiddaman	-D_PACKAGE_ast \
76b30d1939SAndy Fiddaman	-D_BLD_DLL \
77b30d1939SAndy Fiddaman	-D_AST_std_malloc=1
78b30d1939SAndy Fiddaman
79b30d1939SAndy FiddamanCFLAGS += $(ASTCFLAGS)
80b30d1939SAndy FiddamanCFLAGS64 += $(ASTCFLAGS64)
81b30d1939SAndy Fiddaman
82b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-parentheses
83b30d1939SAndy FiddamanCERRWARN += $(CNOWARN_UNINIT)
84b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-char-subscripts
85b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-clobbered
86b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-unused-variable
87b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-unused-but-set-variable
88b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-unused-but-set-parameter
89b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-unused-value
90b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-unused-function
91b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-unused-label
92b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-implicit-function-declaration
93b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-empty-body
94b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-type-limits
95b30d1939SAndy FiddamanCERRWARN += -_gcc=-Wno-address
96b30d1939SAndy Fiddaman
9769617e9dSToomas Soome# It seems, we get false positives with following three files.
9869617e9dSToomas Soome# Since this is third party source, silencing this warning seems to be
9969617e9dSToomas Soome# reasonable path to take.
10069617e9dSToomas Soomepics/path/pathpath.o := CERRWARN += -_gcc10=-Wno-return-local-addr
101*3cff04e7SToomas Soomepics/path/pathpath.o := CERRWARN += -_gcc11=-Wno-return-local-addr
10269617e9dSToomas Soomepics/path/pathkey.o := CERRWARN += -_gcc10=-Wno-return-local-addr
103*3cff04e7SToomas Soomepics/path/pathkey.o := CERRWARN += -_gcc11=-Wno-return-local-addr
10469617e9dSToomas Soomepics/path/pathprobe.o := CERRWARN += -_gcc10=-Wno-return-local-addr
105*3cff04e7SToomas Soomepics/path/pathprobe.o := CERRWARN += -_gcc11=-Wno-return-local-addr
106*3cff04e7SToomas Soome
107*3cff04e7SToomas Soome# The code layout after macro expansion is upsetting gcc 11, silence it.
108*3cff04e7SToomas Soomepics/sfio/sfdisc.o := CERRWARN += -_gcc11=-Wno-misleading-indentation
109*3cff04e7SToomas Soomepics/sfio/sfstack.o := CERRWARN += -_gcc11=-Wno-misleading-indentation
11069617e9dSToomas Soome
111b30d1939SAndy FiddamanSMATCH= off
112b30d1939SAndy Fiddaman
113475b46feSAndy Fiddaman.KEEP_STATE:
114475b46feSAndy Fiddaman
115b30d1939SAndy Fiddamanall: install_h mkpicdirs .WAIT $(LIBS)
116b30d1939SAndy Fiddaman
117b30d1939SAndy Fiddamanmkpicdirs:
118475b46feSAndy Fiddaman	@mkdir -p $(LOBJDIRS:%=pics/%)
119b30d1939SAndy Fiddaman
120b30d1939SAndy Fiddamaninclude $(SRC)/lib/Makefile.targ
121b30d1939SAndy Fiddaman
122b30d1939SAndy Fiddamanpics/%.o: $(ASTSRC)/%.c
123b30d1939SAndy Fiddaman	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
124b30d1939SAndy Fiddaman	$(POST_PROCESS_O)
125b30d1939SAndy Fiddaman
126b30d1939SAndy Fiddaman######################################################################
127b30d1939SAndy Fiddaman# Header file generation
128b30d1939SAndy Fiddaman
129475b46feSAndy Fiddamanast/%:= FILEMODE= 0644
130475b46feSAndy Fiddaman
131475b46feSAndy Fiddaman# The HEADERGEN headers are generated from the corresponding FEATURE/ file
132475b46feSAndy Fiddaman# with any ast_ prefix removed.
133475b46feSAndy Fiddaman$(HEADERGEN:%=ast/%): $(FEATURES:%=FEATURE/%)
134475b46feSAndy Fiddaman	src=`echo $(@F:%.h=%) | sed 's/^ast_//'`; \
135475b46feSAndy Fiddaman	    $(AST_PROTO) FEATURE/$$src > $@
13644ce9f4bSAndy Fiddaman	$(POST_PROCESS_AST)
137475b46feSAndy Fiddaman
138475b46feSAndy Fiddamanast/prototyped.h: $(AST_TOOLS)/proto
139b30d1939SAndy Fiddaman	$(MKDIR) -p $(@D)
140b30d1939SAndy Fiddaman	$(AST_TOOLS)/proto -f /dev/null > $@
141b30d1939SAndy Fiddaman
142b30d1939SAndy Fiddamanast/ast_common.h: ast/prototyped.h
143b30d1939SAndy Fiddaman	$(AST_PROTO) FEATURE/common | $(GREP) -v 'define _def_map_' > $@
14444ce9f4bSAndy Fiddaman	$(POST_PROCESS_AST)
145b30d1939SAndy Fiddaman	$(CP) $@ .
146b30d1939SAndy Fiddaman
147b30d1939SAndy Fiddamanast/lc.h: lc.h
148b30d1939SAndy Fiddaman	$(AST_PROTO) lc.h > ast/lc.h
149b30d1939SAndy Fiddaman
150475b46feSAndy Fiddamanast/%.h: $(ASTSRC)/include/%.h
151475b46feSAndy Fiddaman	$(INS.file)
15244ce9f4bSAndy Fiddaman	$(POST_PROCESS_AST)
153b30d1939SAndy Fiddaman
154475b46feSAndy Fiddamanast/%.h: $(ASTSRC)/comp/%.h
155475b46feSAndy Fiddaman	$(INS.file)
15644ce9f4bSAndy Fiddaman	$(POST_PROCESS_AST)
157475b46feSAndy Fiddaman
158475b46feSAndy Fiddamanast/%.h: $(ASTSRC)/cdt/%.h
159475b46feSAndy Fiddaman	$(INS.file)
16044ce9f4bSAndy Fiddaman	$(POST_PROCESS_AST)
161475b46feSAndy Fiddaman
162475b46feSAndy Fiddamanast/%.h: $(ASTSRC)/std/%.h
163475b46feSAndy Fiddaman	$(INS.file)
16444ce9f4bSAndy Fiddaman	$(POST_PROCESS_AST)
165475b46feSAndy Fiddaman
166475b46feSAndy Fiddamanast/ast_namval.h: $(ASTSRC)/include/namval.h
167475b46feSAndy Fiddaman	$(CP) $(ASTSRC)/include/namval.h $@
16844ce9f4bSAndy Fiddaman	$(POST_PROCESS_AST)
169b30d1939SAndy Fiddaman
170b30d1939SAndy FiddamanCLOBBERFILES += ast_common.h t.c
171b30d1939SAndy FiddamanCLOBBERFILES += ast/*
172b30d1939SAndy Fiddaman
173b30d1939SAndy Fiddamaninstall_h: ast/prototyped.h ast/ast_common.h ast/lc.h \
174b30d1939SAndy Fiddaman	$(HEADERGEN:%=ast/%) $(HEADERSRC:%=ast/%)
175b30d1939SAndy Fiddaman
176b30d1939SAndy Fiddaman.PARALLEL: $(HEADERGEN:%=ast/%) $(HEADERSRC:%=ast/%)
177b30d1939SAndy Fiddaman
178b30d1939SAndy Fiddaman_feature: FRC
179b30d1939SAndy Fiddaman	$(MAKE) -f Makefile.iffe generate
180b30d1939SAndy Fiddaman
181b30d1939SAndy Fiddamaninclude ../../Makefile.astmsg
182b30d1939SAndy Fiddaman
183b30d1939SAndy FiddamanFRC:
184