summaryrefslogtreecommitdiff
path: root/usr/src/cmd/ast/Makefile.iffe
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/ast/Makefile.iffe')
-rw-r--r--usr/src/cmd/ast/Makefile.iffe71
1 files changed, 71 insertions, 0 deletions
diff --git a/usr/src/cmd/ast/Makefile.iffe b/usr/src/cmd/ast/Makefile.iffe
new file mode 100644
index 0000000000..07bd3ab5bf
--- /dev/null
+++ b/usr/src/cmd/ast/Makefile.iffe
@@ -0,0 +1,71 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
+#
+
+AST_IFFE = $(AST_TOOLS)/iffe
+
+# The AST sources use a utility called "iffe" (If FEature Exists) to probe the
+# build environment, and to generate the header files needed to build the
+# libraries and commands. In order to support cross-compilation, the
+# generated FEATURE files are bundled with gate, but a TBC target is
+# provided to re-generate them if necessary due to a change elsewhere in gate.
+#
+# NOTES:
+#
+# Only the primary compiler is used with iffe.
+#
+# We use big PIC here since pic is too small on 64-bit sparc and on 32-bit
+# it's close to the barrier.
+#
+# "-D_map_libc=1" is needed to force map.c to add a "_ast_" prefix to all
+# AST symbol names which may otherwise collide with libc.
+#
+# "-D_lib_socket=1 -lsocket -lnsl" was added to make sure ksh93 is compiled
+# with networking support enabled; the current AST build infrastructure has
+# problems with detecting networking support in illumos.
+#
+# "-D_TS_ERRNO -D_REENTRANT" are flags taken from the default OS/Net
+# build system.
+
+IFFECC= $($(TARGETMACH)_CC)
+IFFECPPFLAGS= $(ASTPLATFORMCPPFLAGS) \
+ -D_TS_ERRNO -D_REENTRANT \
+ -YI,$(ROOT)/usr/include -D_BLD_DLL -D_BLD_ast \
+ -D_lib_socket=1 -D_map_libc=1 \
+ $(LIBSHELLFEATUREFLAGS) \
+ -I$(ASTSRC)/include -I.
+IFFECFLAGS= $(CSTD_GNU99) $($(TARGETMACH)_COPTFLAG) \
+ $($(TARGETMACH)_C_BIGPICFLAGS) $($(TARGETMACH)_CFLAGS)
+IFFELDFLAGS= $(ZASSERTDEFLIB) $(ZFATALWARNINGS) $(LDLIBS)
+IFFELIBS= -lsocket -lnsl
+IFFEC= $(IFFECC) $(IFFECPPFLAGS) $(IFFECFLAGS) \
+ $(IFFELDFLAGS) $(IFFELIBS)
+IFFEFLAGS= -v -R $(ROOT)
+
+FEATURE/% := SHADOW_CCS=
+
+FEATURE/%: $(ASTSRC)/features/%
+ PATH=$(AST_TOOLS):$$PATH \
+ $(AST_IFFE) $(IFFEFLAGS) -c '$(IFFEC)' run $< $(IFFE_EXTRA)
+ $(POST_PROCESS_AST) $@
+
+FEATURE/%: $(ASTSRC)/features/%.c
+ PATH=$(AST_TOOLS):$$PATH \
+ $(AST_IFFE) $(IFFEFLAGS) -c '$(IFFEC)' run $< $(IFFE_EXTRA)
+ $(POST_PROCESS_AST) $@
+
+FEATURE/%: $(ASTSRC)/features/%.sh
+ PATH=$(AST_TOOLS):$$PATH \
+ $(AST_IFFE) $(IFFEFLAGS) -c '$(IFFEC)' run $< $(IFFE_EXTRA)
+ $(POST_PROCESS_AST) $@