xref: /illumos-gate/usr/src/cmd/ast/Makefile.iffe (revision b30d1939)
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