1*b30d1939SAndy Fiddaman# 2*b30d1939SAndy Fiddaman# This file and its contents are supplied under the terms of the 3*b30d1939SAndy Fiddaman# Common Development and Distribution License ("CDDL"), version 1.0. 4*b30d1939SAndy Fiddaman# You may only use this file in accordance with the terms of version 5*b30d1939SAndy Fiddaman# 1.0 of the CDDL. 6*b30d1939SAndy Fiddaman# 7*b30d1939SAndy Fiddaman# A full copy of the text of the CDDL should have accompanied this 8*b30d1939SAndy Fiddaman# source. A copy of the CDDL is also available via the Internet at 9*b30d1939SAndy Fiddaman# http://www.illumos.org/license/CDDL. 10*b30d1939SAndy Fiddaman# 11*b30d1939SAndy Fiddaman 12*b30d1939SAndy Fiddaman# 13*b30d1939SAndy Fiddaman# Copyright 2021 OmniOS Community Edition (OmniOSce) Association. 14*b30d1939SAndy Fiddaman# 15*b30d1939SAndy Fiddaman 16*b30d1939SAndy FiddamanAST_IFFE = $(AST_TOOLS)/iffe 17*b30d1939SAndy Fiddaman 18*b30d1939SAndy Fiddaman# The AST sources use a utility called "iffe" (If FEature Exists) to probe the 19*b30d1939SAndy Fiddaman# build environment, and to generate the header files needed to build the 20*b30d1939SAndy Fiddaman# libraries and commands. In order to support cross-compilation, the 21*b30d1939SAndy Fiddaman# generated FEATURE files are bundled with gate, but a TBC target is 22*b30d1939SAndy Fiddaman# provided to re-generate them if necessary due to a change elsewhere in gate. 23*b30d1939SAndy Fiddaman# 24*b30d1939SAndy Fiddaman# NOTES: 25*b30d1939SAndy Fiddaman# 26*b30d1939SAndy Fiddaman# Only the primary compiler is used with iffe. 27*b30d1939SAndy Fiddaman# 28*b30d1939SAndy Fiddaman# We use big PIC here since pic is too small on 64-bit sparc and on 32-bit 29*b30d1939SAndy Fiddaman# it's close to the barrier. 30*b30d1939SAndy Fiddaman# 31*b30d1939SAndy Fiddaman# "-D_map_libc=1" is needed to force map.c to add a "_ast_" prefix to all 32*b30d1939SAndy Fiddaman# AST symbol names which may otherwise collide with libc. 33*b30d1939SAndy Fiddaman# 34*b30d1939SAndy Fiddaman# "-D_lib_socket=1 -lsocket -lnsl" was added to make sure ksh93 is compiled 35*b30d1939SAndy Fiddaman# with networking support enabled; the current AST build infrastructure has 36*b30d1939SAndy Fiddaman# problems with detecting networking support in illumos. 37*b30d1939SAndy Fiddaman# 38*b30d1939SAndy Fiddaman# "-D_TS_ERRNO -D_REENTRANT" are flags taken from the default OS/Net 39*b30d1939SAndy Fiddaman# build system. 40*b30d1939SAndy Fiddaman 41*b30d1939SAndy FiddamanIFFECC= $($(TARGETMACH)_CC) 42*b30d1939SAndy FiddamanIFFECPPFLAGS= $(ASTPLATFORMCPPFLAGS) \ 43*b30d1939SAndy Fiddaman -D_TS_ERRNO -D_REENTRANT \ 44*b30d1939SAndy Fiddaman -YI,$(ROOT)/usr/include -D_BLD_DLL -D_BLD_ast \ 45*b30d1939SAndy Fiddaman -D_lib_socket=1 -D_map_libc=1 \ 46*b30d1939SAndy Fiddaman $(LIBSHELLFEATUREFLAGS) \ 47*b30d1939SAndy Fiddaman -I$(ASTSRC)/include -I. 48*b30d1939SAndy FiddamanIFFECFLAGS= $(CSTD_GNU99) $($(TARGETMACH)_COPTFLAG) \ 49*b30d1939SAndy Fiddaman $($(TARGETMACH)_C_BIGPICFLAGS) $($(TARGETMACH)_CFLAGS) 50*b30d1939SAndy FiddamanIFFELDFLAGS= $(ZASSERTDEFLIB) $(ZFATALWARNINGS) $(LDLIBS) 51*b30d1939SAndy FiddamanIFFELIBS= -lsocket -lnsl 52*b30d1939SAndy FiddamanIFFEC= $(IFFECC) $(IFFECPPFLAGS) $(IFFECFLAGS) \ 53*b30d1939SAndy Fiddaman $(IFFELDFLAGS) $(IFFELIBS) 54*b30d1939SAndy FiddamanIFFEFLAGS= -v -R $(ROOT) 55*b30d1939SAndy Fiddaman 56*b30d1939SAndy FiddamanFEATURE/% := SHADOW_CCS= 57*b30d1939SAndy Fiddaman 58*b30d1939SAndy FiddamanFEATURE/%: $(ASTSRC)/features/% 59*b30d1939SAndy Fiddaman PATH=$(AST_TOOLS):$$PATH \ 60*b30d1939SAndy Fiddaman $(AST_IFFE) $(IFFEFLAGS) -c '$(IFFEC)' run $< $(IFFE_EXTRA) 61*b30d1939SAndy Fiddaman $(POST_PROCESS_AST) $@ 62*b30d1939SAndy Fiddaman 63*b30d1939SAndy FiddamanFEATURE/%: $(ASTSRC)/features/%.c 64*b30d1939SAndy Fiddaman PATH=$(AST_TOOLS):$$PATH \ 65*b30d1939SAndy Fiddaman $(AST_IFFE) $(IFFEFLAGS) -c '$(IFFEC)' run $< $(IFFE_EXTRA) 66*b30d1939SAndy Fiddaman $(POST_PROCESS_AST) $@ 67*b30d1939SAndy Fiddaman 68*b30d1939SAndy FiddamanFEATURE/%: $(ASTSRC)/features/%.sh 69*b30d1939SAndy Fiddaman PATH=$(AST_TOOLS):$$PATH \ 70*b30d1939SAndy Fiddaman $(AST_IFFE) $(IFFEFLAGS) -c '$(IFFEC)' run $< $(IFFE_EXTRA) 71*b30d1939SAndy Fiddaman $(POST_PROCESS_AST) $@ 72