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