1da2e3ebdSchin# 2da2e3ebdSchin# CDDL HEADER START 3da2e3ebdSchin# 4da2e3ebdSchin# The contents of this file are subject to the terms of the 5da2e3ebdSchin# Common Development and Distribution License (the "License"). 6da2e3ebdSchin# You may not use this file except in compliance with the License. 7da2e3ebdSchin# 8da2e3ebdSchin# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9da2e3ebdSchin# or http://www.opensolaris.org/os/licensing. 10da2e3ebdSchin# See the License for the specific language governing permissions 11da2e3ebdSchin# and limitations under the License. 12da2e3ebdSchin# 13da2e3ebdSchin# When distributing Covered Code, include this CDDL HEADER in each 14da2e3ebdSchin# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15da2e3ebdSchin# If applicable, add the following below this CDDL HEADER, with the 16da2e3ebdSchin# fields enclosed by brackets "[]" replaced with your own identifying 17da2e3ebdSchin# information: Portions Copyright [yyyy] [name of copyright owner] 18da2e3ebdSchin# 19da2e3ebdSchin# CDDL HEADER END 20da2e3ebdSchin# 217c2fbfb3SApril Chin 22da2e3ebdSchin# 23134a1f4eSCasper H.S. Dik# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. 24da2e3ebdSchin# 255661bb76SJohn Levon# Copyright (c) 2018, Joyent, Inc. 26b30d1939SAndy Fiddaman# Copyright 2021 OmniOS Community Edition (OmniOSce) Association. 27da2e3ebdSchin 287c2fbfb3SApril ChinSHELL=/usr/bin/ksh93 29da2e3ebdSchin 30ead1f93eSLiane PrazaPROG= ksh 31da2e3ebdSchin 32134a1f4eSCasper H.S. DikUSRKSH_ALIAS_LIST=ksh ksh93 rksh rksh93 33da2e3ebdSchin 34b30d1939SAndy Fiddaman# Set common AST build flags (e.g., needed to support the math stuff). 35b30d1939SAndy Fiddamaninclude ../../Makefile.ast 36da2e3ebdSchin 37b30d1939SAndy FiddamanOBJECTS= pmain.o 38da2e3ebdSchin 39b30d1939SAndy FiddamanASTSRC= $(C_AST)/src/cmd/ksh93 40b30d1939SAndy FiddamanLIBSHELLBASE= ../../libshell 41b30d1939SAndy FiddamanLIBSHELLSRC= $(ASTSRC)/sh 42da2e3ebdSchin 43b30d1939SAndy FiddamanSRCS= $(OBJECTS:%.o=$(LIBSHELLSRC)/%.c) 44da2e3ebdSchin 45b30d1939SAndy FiddamanLDLIBS += -lshell -lumem 467c2fbfb3SApril Chin 47b30d1939SAndy Fiddaman# We use "=" here since using $(CPPFLAGS.master) is very tricky in our 48da2e3ebdSchin# case - it MUST come as the last element but future changes in -D options 49da2e3ebdSchin# may then cause silent breakage in the AST sources because the last -D 50da2e3ebdSchin# option specified overrides previous -D options so we prefer the current 51da2e3ebdSchin# way to explicitly list each single flag. 52b30d1939SAndy FiddamanCPPFLAGS= \ 53da2e3ebdSchin $(DTEXTDOM) $(DTS_ERRNO) \ 54da2e3ebdSchin $(LIBSHELLCPPFLAGS) 55da2e3ebdSchin 56b30d1939SAndy FiddamanCFLAGS += $(ASTCFLAGS) 57b30d1939SAndy FiddamanCFLAGS64 += $(ASTCFLAGS64) 58da2e3ebdSchin 597c2fbfb3SApril Chin# Workaround for CR#6628728 ("|memcntl()| prototype not available for C99/XPG6") 607014882cSRichard Lowepmain.o := CERRWARN += -_gcc=-Wno-implicit-function-declaration 61da2e3ebdSchin 625661bb76SJohn Levon# not linted 635661bb76SJohn LevonSMATCH=off 645661bb76SJohn Levon 65da2e3ebdSchin.KEEP_STATE: 66da2e3ebdSchin 67da2e3ebdSchin%.o: $(LIBSHELLSRC)/%.c 68da2e3ebdSchin $(COMPILE.c) -c -o $@ $< 69da2e3ebdSchin $(POST_PROCESS_O) 70da2e3ebdSchin 71da2e3ebdSchinall: $(PROG) 72da2e3ebdSchin 73da2e3ebdSchin# We explicitly delete "ksh" and "ksh93" to catch changes in 74da2e3ebdSchin# BUILD_KSH93_AS_BINKSH (see Makefile.ksh93switch) 75da2e3ebdSchin# and soft-link $(PROG) to ksh/ksh93 below because ksh93 test 76da2e3ebdSchin# suite seems to require that ksh93 is available as "ksh" in 77da2e3ebdSchin# ${PATH} (see comment about "io.sh" in Makefile.testshell). 78da2e3ebdSchin$(PROG): $(OBJECTS) 79da2e3ebdSchin $(RM) ksh ksh93 80da2e3ebdSchin $(LINK.c) $(OBJECTS) -o $@ $(LDLIBS) 81da2e3ebdSchin $(POST_PROCESS) 82da2e3ebdSchin (set +o errexit ; \ 83da2e3ebdSchin [[ ! -x ksh93 ]] && ln $(PROG) ksh93 ; \ 84da2e3ebdSchin [[ ! -x ksh ]] && ln $(PROG) ksh ; \ 85da2e3ebdSchin true \ 86da2e3ebdSchin ) 87da2e3ebdSchin 88da2e3ebdSchinclean: 89da2e3ebdSchin $(RM) $(OBJECTS) 90da2e3ebdSchin 91da2e3ebdSchin# We explicitly delete "ksh" and "ksh93" to catch changes in 92da2e3ebdSchin# BUILD_KSH93_AS_BINKSH (see Makefile.ksh93switch) 93b30d1939SAndy FiddamanCLOBBERFILES += ksh ksh93 94da2e3ebdSchin 957c2fbfb3SApril Chin# Install rule for $(MACH)/Makefile (32bit) 967c2fbfb3SApril ChinINSTALL.ksh.32bit=@ \ 977c2fbfb3SApril Chin (print "$(POUND_SIGN) Installing 32bit $(PROG) aliases $(USRKSH_ALIAS_LIST)" ; \ 987c2fbfb3SApril Chin set -o xtrace ; \ 997c2fbfb3SApril Chin for i in $(USRKSH_ALIAS_LIST) ; do \ 1007c2fbfb3SApril Chin [[ "$$i" == "$(PROG)" ]] && continue ; \ 1017c2fbfb3SApril Chin $(RM) "$(ROOTBIN32)/$$i" ; \ 1027c2fbfb3SApril Chin $(LN) "$(ROOTBIN32)/$(PROG)" "$(ROOTBIN32)/$$i" ; \ 1037c2fbfb3SApril Chin done \ 1047c2fbfb3SApril Chin ) 1057c2fbfb3SApril Chin 1067c2fbfb3SApril Chin# Install rule for $(MACH64)/Makefile (64bit) 1077c2fbfb3SApril ChinINSTALL.ksh.64bit=@ \ 1087c2fbfb3SApril Chin (print "$(POUND_SIGN) Installing 64bit $(PROG) aliases $(USRKSH_ALIAS_LIST)" ; \ 1097c2fbfb3SApril Chin set -o xtrace ; \ 1107c2fbfb3SApril Chin for i in $(USRKSH_ALIAS_LIST) ; do \ 1117c2fbfb3SApril Chin [[ "$$i" == "$(PROG)" ]] && continue ; \ 1127c2fbfb3SApril Chin $(RM) "$(ROOTBIN64)/$$i" ; \ 113*2e00117bSRichard Lowe $(SYMLINK) "../../bin/$$i" "$(ROOTBIN64)/$$i" ; \ 1147c2fbfb3SApril Chin done \ 1157c2fbfb3SApril Chin ) 1167c2fbfb3SApril Chin 117da2e3ebdSchininclude ../Makefile.testshell 118