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