Roland Mainz wrote:
> Peter Memishian wrote:
> > [ Resolved issues removed. ]
> >
> >  > >  > http://cr.grommit.com/~chin/ksh93-webrev-jun29/jun29-makefiles/
> >  > >
> >  > > I've completed my review of the Makefiles.  Things are looking good --
> >  > > most of my comments are quite minor.  Nice work, Roland :-)
> >  > >
> >  > > General:
> >  > >
> >  > >         * Seems like every AST-related Makefile contains:
> >  > >
> >  > >             # Override this top level flag so the compiler builds in 
> > its
> >  > >             # native C99 mode.  This has been enabled to support the 
> > math
> >  > >             # stuff in the AST tools.
> >  > >             C99MODE= $(C99_ENABLE) -D_XOPEN_SOURCE=600 
> > -D__EXTENSIONS__=1
> >  > >
> >  > >             # silence common libast&co. warnings (upstream will handle 
> > this
> >  > >             # later) ...  ... about |#pragma prototyped| ...
> >  > >             CERRWARN += -erroff=E_UNRECOGNIZED_PRAGMA_IGNORED
> >  > >
> >  > >           It would be really nice if we could centralize these 
> > somewhere.
> >  > >           (Just a request, not a requirement.)
> >  >
> >  > I had the same idea... but it would mean we would need an extra
> >  > "include" statement and a new file extra for these flags... and that's
> >  > IMO an overkill unless more "common" things could be abstracted somehow.
> >
> > Well, another common thing would be the shared ksh/libshell "KSHCPPFLAGS".
> > Having a usr/src/Makefile.ast that has those three things seems worthwhile
> > to me.  Yes, it's one more Makefile -- but I think it will ultimately help
> > maintainability and help us centralize the logic that bridges between the
> > lands of AST and ON.
> 
> I still feel uneasy about the idea to create one seperate file for the
> C99MODE+CERRWARN stuff because it's AFAIK not a "catch all" solution.
> Some items in the Makefiles seem to require a specific position (e.g.
> before or after "include */Makefile.lib" etc.) and somehow I feel we may
> end up with something like usr/src/Makefile.ast_pre_stuff,
> usr/src/Makefile.ast_main_stuff and usr/src/Makefile.ast_post_stuff
> (just a feeling) ...
[snip]

Or maybe I should stop worrying... :-)
...I've added the "Makefile.ast" thing and attached the new patch as
"ksh93_integration_review_meem003.diff.txt" ...

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 7950090
 (;O/ \/ \O;)
-------------- next part --------------
Index: src/Makefile.ksh93switch
===================================================================
--- src/Makefile.ksh93switch    (revision 694)
+++ src/Makefile.ksh93switch    (working copy)
@@ -26,12 +26,11 @@
 #
 
 # Should we build ksh93 as /bin/ksh ?
-# this can be overridden via
-# $ export ON_BUILD_KSH93_AS_BINKSH=1 # at build time
+# This can be overridden at build time via:
+# $ export ON_BUILD_KSH93_AS_BINKSH=1
 ON_BUILD_KSH93_AS_BINKSH=0
 
 BINKSH_IS_KSH93_1=   $(ON_BUILD_KSH93_AS_BINKSH:0=$(POUND_SIGN))
 BINKSH_ISNOT_KSH93_1=$(ON_BUILD_KSH93_AS_BINKSH:1=$(POUND_SIGN))
 BINKSH_IS_KSH93=     $(BINKSH_IS_KSH93_1:1=)
 BINKSH_ISNOT_KSH93=  $(BINKSH_ISNOT_KSH93_1:0=)
-
Index: src/cmd/ksh/Makefile.ksh93switch
===================================================================
--- src/cmd/ksh/Makefile.ksh93switch    (revision 694)
+++ src/cmd/ksh/Makefile.ksh93switch    (working copy)
@@ -1,37 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-# ident        "%Z%%M% %I%     %E% SMI"
-#
-
-# Should we build ksh93 as /bin/ksh ?
-# this can be overridden via
-# $ export ON_BUILD_KSH93_AS_BINKSH=1 # at build time
-ON_BUILD_KSH93_AS_BINKSH=0
-
-BINKSH_IS_KSH93_1=   $(ON_BUILD_KSH93_AS_BINKSH:0=$(POUND_SIGN))
-BINKSH_ISNOT_KSH93_1=$(ON_BUILD_KSH93_AS_BINKSH:1=$(POUND_SIGN))
-BINKSH_IS_KSH93=     $(BINKSH_IS_KSH93_1:1=)
-BINKSH_ISNOT_KSH93=  $(BINKSH_ISNOT_KSH93_1:0=)
-
Index: src/cmd/ksh/Makefile.testshell
===================================================================
--- src/cmd/ksh/Makefile.testshell      (revision 724)
+++ src/cmd/ksh/Makefile.testshell      (working copy)
@@ -53,17 +53,17 @@
 #          io.sh[81]: picked up file descriptor zero for opening script file
 #   -- snip --
 #
-# - "sun_solaris_getconf.sh" is currently in the whitelist for tests which are 
allowed to fail
-#   per explicit permission by Don Cragun
+# - "sun_solaris_getconf.sh" is currently in the whitelist for tests which are
+#   allowed to fail per explicit permission by Don Cragun
 #   (see 
http://mail.opensolaris.org/pipermail/ksh93-integration-discuss/2007-April/002499.html)
-#   because Solaris 11 < B64 returns a wrong value for "SSIZE_MAX" (see bug 
#6548104). Builds
-#   on >= B64 should no longer fail.
+#   because Solaris 11 < B64 returns a wrong value for "SSIZE_MAX" (see
+#   bug #6548104). Builds on >= B64 should no longer fail.
 #
 # - These tests need a working system clock, otherwise they'll bite you.
 #
 # - The test frontend in this Makefile should be rewritten in ksh93
 #   instead of the current /usr/bin/ksh (=ksh88i). This would be far less
-#   compliciated.
+#   complicated.
 #
 # - More locales should be tested here (via ON_KSH_TEST_LOCALES below).
 #   Locales like "ru_RU.KOI8-R","de_DE.UTF-8", "is_IS.ISO8859-1", 
@@ -77,8 +77,10 @@
 #   all important markets based on suggestions by Sun's i18n team.
 #
 
+TESTSRC= $(LIBSHELLSRC)/../tests
+
 # ON_KSH_TEST_LOCALES can be overridden via
-# % export ON_KSH_TEST_LOCALES=<value> before % make install
+# $ export ON_KSH_TEST_LOCALES=<value> # before $ make install #
 ON_KSH_TEST_LOCALES = \
        C \
        en_US en_US.UTF-8 \
@@ -92,53 +94,70 @@
        zh_TW.BIG5 zh_TW.EUC zh_TW.UTF-8
 
 # ON_KSH_TEST_LIST can be overridden via
-# % export ON_KSH_TEST_LIST=<value> before % make install
-ON_KSH_TEST_LIST = $(LIBSHELLSRC)/tests/*.sh
+# $ export ON_KSH_TEST_LIST=<value> # before $ make install #
+ON_KSH_TEST_LIST = $(TESTSRC)/*.sh
 
 # We must wait for other things in this subdir to finish before running
 # the test suite, otherwise we may run into trouble that this activity
-# may disturb the test suite run (resulting in weired "heisenbug"-like
+# may disturb the test suite run (resulting in weird "heisenbug"-like
 # test failures).
 testshell: $(PROG)
        @ \
-       print '# NOTE: Make sure your binaries in ROOT match your kernel!!' ; \
-       (set +e ; export PATH="$(SRC)/cmd/ksh/$(CMDTRANSMACH):/bin:/usr/bin" ; \
-           printf "# which ksh='%s', ksh93='%s'\n" "$$(which ksh)" "$$(which 
ksh93)" ; \
+       print '# NOTE: Make sure your binaries in ROOT match your kernel!' ; \
+       ( \
+           set +o errexit ; \
+           export PATH="$(SRC)/cmd/ksh/$(CMDTRANSMACH):/bin:/usr/bin" ; \
+           printf "# which ksh='%s', ksh93='%s'\n" \
+               "$$(which ksh)" "$$(which ksh93)" ; \
        ) ; \
-       if [ "$$(isalist | fgrep "$(CMDTRANSMACH)")" = "" ] ; then \
-           printf "# ISA=$(CMDTRANSMACH) cannot be executed on this system, 
skipping tests...\n" ; \
+       if [[ "$$(isalist | fgrep "$(CMDTRANSMACH)")" = "" ]] ; then \
+           printf \
+               "# ISA='%s' not available on this system, skipping tests...\n" \
+               "$(CMDTRANSMACH)" ; \
            exit 0 ; \
        fi ; \
        exec 2>&1 ; \
-       (supported_locales="$$(locale -a)" ; \
+       (supported_locales="$$(/usr/bin/locale -a)" ; \
        for test_lang in $(ON_KSH_TEST_LOCALES) ; do \
-           if [ "$$(print "$${supported_locales}" | egrep 
"^$${test_lang}\$$")" = "" ] ; then \
-               print "# Locale $${test_lang} not supported, skipping tests..." 
; \
+           if [[ "$$(print "$${supported_locales}" | \
+                    egrep "^$${test_lang}\$$")" = "" ]] ; then \
+               printf \
+                   "# Locale '%s' not supported, skipping tests...\n" \
+                   "$${test_lang}" ; \
                continue ; \
            fi ; \
            (for test_item in $(ON_KSH_TEST_LIST) ; do \
-                   [ "$${test_item}" = "$(LIBSHELLSRC)/tests/builtins.sh" -o \
-                     "$${test_item}" = "$(LIBSHELLSRC)/tests/options.sh" -o \
-                     "$${test_item}" = 
"$(LIBSHELLSRC)/tests/sun_solaris_getconf.sh" ] && set +e ; \
-                   printf "## Running $(CMDTRANSMACH)/ksh test: LANG='%s' 
script='%s'\n" "$${test_lang}" "$$(basename "$${test_item}")"; \
-                    ( \
-                       test_output="$$( ( \
-                           export \
-                               SHELL="$(SRC)/cmd/ksh/$(CMDTRANSMACH)/ksh" \
-                               LD_LIBRARY_PATH_64="$(ROOT)/usr/lib/$(MACH64)/" 
\
-                               LD_LIBRARY_PATH_32="$(ROOT)/usr/lib/" ; \
-                               
LD_LIBRARY_PATH="$(ROOT)/usr/lib/$(MACH64)/:$(ROOT)/usr/lib/" ; \
-                           "$${SHELL}" "$(LIBSHELLSRC)/tests/shtests" -t \
-                               LD_LIBRARY_PATH_64="$${LD_LIBRARY_PATH_64}" \
-                               LD_LIBRARY_PATH_32="$${LD_LIBRARY_PATH_32}" \
-                               LD_LIBRARY_PATH="$${LD_LIBRARY_PATH}" \
-                               SHELL="$${SHELL}" \
-                               LANG="$${test_lang}" \
-                               LC_ALL="$${test_lang}" \
-                                 "$${test_item}" \
-                       ) 2>&1 | while read ; do printf "#\t%s\n" "$${REPLY}" ; 
done | tee /dev/stderr)" ; \
-                       [ "$$(print "$${test_output}" | egrep 'passed \[ .* 
tests 0 errors \]')" != "" ] || (print "##> test failed" ; exit 1) \
-                    ) ; \
-                   set -e ; \
+               [[ "$${test_item}" = "$(TESTSRC)/builtins.sh" || \
+                  "$${test_item}" = "$(TESTSRC)/options.sh" || \
+                  "$${test_item}" = "$(TESTSRC)/sun_solaris_getconf.sh" ]] && \
+                  set +o errexit ; \
+               printf \
+                   "## Running %s test: LANG='%s' script='%s'\n" \
+                   "$(CMDTRANSMACH)/ksh" \
+                   "$${test_lang}" \
+                   "$$(basename "$${test_item}")"; \
+                ( \
+                   test_output="$$( ( \
+                       export \
+                           SHELL="$(SRC)/cmd/ksh/$(CMDTRANSMACH)/ksh" \
+                           LD_LIBRARY_PATH_64="$(ROOTLIB64)/" \
+                           LD_LIBRARY_PATH_32="$(ROOTLIB)/" ; \
+                           LD_LIBRARY_PATH="$(ROOTLIB64)/:$(ROOTLIB)/" ; \
+                       "$${SHELL}" "$(TESTSRC)/shtests" -t \
+                           LD_LIBRARY_PATH_64="$${LD_LIBRARY_PATH_64}" \
+                           LD_LIBRARY_PATH_32="$${LD_LIBRARY_PATH_32}" \
+                           LD_LIBRARY_PATH="$${LD_LIBRARY_PATH}" \
+                           SHELL="$${SHELL}" \
+                           LANG="$${test_lang}" \
+                           LC_ALL="$${test_lang}" \
+                             "$${test_item}" \
+                   ) 2>&1 | while read ; do \
+                                printf "#\t%s\n" "$${REPLY}" ; \
+                            done | tee /dev/stderr)" ; \
+                   [[ "$$(print "$${test_output}" | \
+                         egrep 'passed \[ .* tests 0 errors \]')" != "" ]] || \
+                             (print "##> test failed" ; exit 1) \
+                ) ; \
+               set -o errexit ; \
            done) ; \
        done)
Index: src/cmd/ksh/sparcv9/Makefile
===================================================================
--- src/cmd/ksh/sparcv9/Makefile        (revision 718)
+++ src/cmd/ksh/sparcv9/Makefile        (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Specify the MACH we currently use to build and test ksh
 CMDTRANSMACH= $(MACH64)
 
@@ -40,7 +38,7 @@
        (print "# Installing 64bit $(PROG) aliases $(USRKSH_ALIAS_LIST)" ; \
        set -o xtrace ; \
        for i in $(USRKSH_ALIAS_LIST) ; do \
-               [ $$i = $(PROG) ] && continue ; \
+               [[ "$$i" = "$(PROG)" ]] && continue ; \
                $(RM) "$(ROOTBIN64)/$$i" ; \
                $(LN) "$(ROOTBIN64)/$(PROG)" "$(ROOTBIN64)/$$i" ; \
        done \
Index: src/cmd/ksh/sparc/Makefile
===================================================================
--- src/cmd/ksh/sparc/Makefile  (revision 718)
+++ src/cmd/ksh/sparc/Makefile  (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Specify the MACH we currently use to build and test ksh
 CMDTRANSMACH= $(MACH)
 
@@ -39,7 +37,7 @@
        (print "# Installing 32bit $(PROG) aliases $(USRKSH_ALIAS_LIST)" ; \
        set -o xtrace ; \
        for i in $(USRKSH_ALIAS_LIST) ; do \
-               [ $$i = $(PROG) ] && continue ; \
+               [[ "$$i" = "$(PROG)" ]] && continue ; \
                $(RM) "$(ROOTBIN32)/$$i" ; \
                $(LN) "$(ROOTBIN32)/$(PROG)" "$(ROOTBIN32)/$$i" ; \
        done \
Index: src/cmd/ksh/i386/Makefile
===================================================================
--- src/cmd/ksh/i386/Makefile   (revision 718)
+++ src/cmd/ksh/i386/Makefile   (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Specify the MACH we currently use to build and test ksh
 CMDTRANSMACH= $(MACH)
 
@@ -39,7 +37,7 @@
        (print "# Installing 32bit $(PROG) aliases $(USRKSH_ALIAS_LIST)" ; \
        set -o xtrace ; \
        for i in $(USRKSH_ALIAS_LIST) ; do \
-               [ $$i = $(PROG) ] && continue ; \
+               [[ "$$i" = "$(PROG)" ]] && continue ; \
                $(RM) "$(ROOTBIN32)/$$i" ; \
                $(LN) "$(ROOTBIN32)/$(PROG)" "$(ROOTBIN32)/$$i" ; \
        done \
Index: src/cmd/ksh/Makefile.com
===================================================================
--- src/cmd/ksh/Makefile.com    (revision 732)
+++ src/cmd/ksh/Makefile.com    (working copy)
@@ -25,8 +25,10 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-include ../Makefile.ksh93switch
+SHELL=/usr/bin/ksh
 
+include ../../../Makefile.ksh93switch
+
 $(BINKSH_IS_KSH93)PROG= ksh
 $(BINKSH_IS_KSH93)USRKSH_ALIAS_LIST=ksh ksh93 rksh rksh93 pfksh
 
@@ -34,23 +36,12 @@
 $(BINKSH_ISNOT_KSH93)USRKSH_ALIAS_LIST=ksh93 rksh93
 
 OBJECTS= \
-       sh/pmain.o
+       pmain.o
 
-# We are storing the object files into subdirs, following the
-# object file layout of usr/src/lib/libshell/Makefile.com
-# (this Makefile is basically a cut-down version of that
-# Makefile).
-OBJDIRS =  \
-       sh
-PICSDIRS= $(OBJDIRS)
-mkpicdirs:
-       @mkdir -p $(PICSDIRS)
-       
-LIBSHELLSRC=../../../lib/libshell/common
+LIBSHELLSRC=../../../lib/libshell/common/sh
 
-SRCS=           $(OBJECTS:%.o=$(LIBSHELLSRC)/%.c)
+SRCS=  $(OBJECTS:%.o=$(LIBSHELLSRC)/%.c)
 
-
 GROUP= bin
 LDLIBS += -lshell
 
@@ -98,21 +89,18 @@
        $(CCVERBOSE) \
        -xstrconst
 
-# Override this top level flag so the compiler builds in its native
-# C99 mode.  This has been enabled to support the math stuff in ksh93.
-C99MODE= $(C99_ENABLE) -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1
+# Set common AST flags including C99/XPG6 mode (which is needed to
+# support the math stuff in ksh93 (and allow to use it as
+# /usr/xpg4/bin/sh))
+include ../../../Makefile.ast
 
-# silence common libast&co. warnings (upstream will handle this later) ...
-# ... about |#pragma prototyped| ...
-CERRWARN += -erroff=E_UNRECOGNIZED_PRAGMA_IGNORED
-
 .KEEP_STATE:
 
 %.o:   $(LIBSHELLSRC)/%.c
        $(COMPILE.c) -c -o $@ $<
        $(POST_PROCESS_O)
 
-all:   mkpicdirs .WAIT $(PROG)
+all:   $(PROG)
 
 # We explicitly delete "ksh" and "ksh93" to catch changes in
 # BUILD_KSH93_AS_BINKSH (see Makefile.ksh93switch)
@@ -124,17 +112,20 @@
        $(LINK.c) $(OBJECTS) -o $@ $(LDLIBS)
        $(POST_PROCESS)
        (set +o errexit ; \
-       [ ! -x ksh93 ] && ln $(PROG) ksh93 ; \
-       [ ! -x ksh   ] && ln $(PROG) ksh   ; \
+       [[ ! -x ksh93 ]] && ln $(PROG) ksh93 ; \
+       [[ ! -x ksh   ]] && ln $(PROG) ksh   ; \
        true \
        )
 
-# We explicitly delete "ksh" and "ksh93" to catch changes in
-# BUILD_KSH93_AS_BINKSH (see Makefile.ksh93switch)
 clean:
        $(RM) $(OBJECTS)
-       $(RM) ksh ksh93
 
+# We explicitly delete "ksh" and "ksh93" to catch changes in
+# BUILD_KSH93_AS_BINKSH (see Makefile.ksh93switch)
+CLOBBERFILES += \
+       ksh \
+       ksh93
+
 #
 # ksh is not lint-clean yet; fake up a target.  (You can use
 # "make lintcheck" to actually run lint; please send all lint fixes
Index: src/cmd/ksh/amd64/Makefile
===================================================================
--- src/cmd/ksh/amd64/Makefile  (revision 718)
+++ src/cmd/ksh/amd64/Makefile  (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Specify the MACH we currently use to build and test ksh
 CMDTRANSMACH= $(MACH64)
 
@@ -40,7 +38,7 @@
        (print "# Installing 64bit $(PROG) aliases $(USRKSH_ALIAS_LIST)" ; \
        set -o xtrace ; \
        for i in $(USRKSH_ALIAS_LIST) ; do \
-               [ $$i = $(PROG) ] && continue ; \
+               [[ "$$i" = "$(PROG)" ]] && continue ; \
                $(RM) "$(ROOTBIN64)/$$i" ; \
                $(LN) "$(ROOTBIN64)/$(PROG)" "$(ROOTBIN64)/$$i" ; \
        done \
Index: src/cmd/ksh/Makefile
===================================================================
--- src/cmd/ksh/Makefile        (revision 718)
+++ src/cmd/ksh/Makefile        (working copy)
@@ -27,7 +27,7 @@
 
 SHELL=/usr/bin/ksh
 
-include Makefile.ksh93switch
+include ../../Makefile.ksh93switch
 
 $(BINKSH_IS_KSH93)PROG= ksh
 $(BINKSH_IS_KSH93)USRKSH_ALIAS_LIST=ksh ksh93 rksh rksh93 pfksh
@@ -67,7 +67,7 @@
        $(LN) $(ISAEXEC) $(ROOTPROG)
        @(set -o xtrace ; \
        for i in $(USRKSH_ALIAS_LIST) ; do \
-               [ $$i = $(PROG) ] && continue ; \
+               [[ "$$i" = "$(PROG)" ]] && continue ; \
                $(RM) "$(ROOTBIN)/$$i" ; \
                $(LN) "$(ROOTBIN)/$(PROG)" "$(ROOTBIN)/$$i" ; \
        done \
Index: src/cmd/Makefile
===================================================================
--- src/cmd/Makefile    (revision 715)
+++ src/cmd/Makefile    (working copy)
@@ -27,9 +27,8 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 
 include ../Makefile.master
+include ../Makefile.ksh93switch
 
-include ksh/Makefile.ksh93switch
-
 #
 #      Note that the commands 'agents', 'lp', 'perl', and 'man' are first in
 #      the list, violating alphabetical order.  This is because they are very
Index: src/cmd/nsadmin/Makefile
===================================================================
--- src/cmd/nsadmin/Makefile    (revision 694)
+++ src/cmd/nsadmin/Makefile    (working copy)
@@ -56,4 +56,3 @@
        $(RM) .login
 
 lint:
-
Index: src/cmd/ast/msgcc/Makefile
===================================================================
--- src/cmd/ast/msgcc/Makefile  (revision 718)
+++ src/cmd/ast/msgcc/Makefile  (working copy)
@@ -31,6 +31,11 @@
 
 .KEEP_STATE:
 
+# Set common AST flags including C99/XPG6 mode (which is needed to
+# support the math stuff in the AST tools and make them fully
+# POSIX conformant).
+include ../../../Makefile.ast
+
 # build rules
 CPPFLAGS = \
         $(DTEXTDOM) $(DTS_ERRNO) \
@@ -46,14 +51,6 @@
         $(CCVERBOSE) \
         -xstrconst
 
-# Override this top level flag so the compiler builds in its native
-# C99 mode.  This has been enabled to support the math stuff in the AST tools.
-C99MODE= $(C99_ENABLE) -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1
-
-# silence common libast&co. warnings (upstream will handle this later) ...
-# ... about |#pragma prototyped| ...
-CERRWARN += -erroff=E_UNRECOGNIZED_PRAGMA_IGNORED
-
 LDLIBS += -last
 msgcpp   := LDLIBS += -lpp
 
@@ -67,26 +64,14 @@
        ) >msgcc ; \
        chmod a+rx msgcc
 
-# install rules for AST tools/commands
 ROOTCMDDIR=$(ROOT)/usr/ast/bin
 
-# main
 PROG= msgcvt msggen msgget msgcpp msgcc
 
 all: $(PROG)
 
 install: all $(ROOTCMD)
 
-clean:
+clean lint:
 
-lint:
-
-# cleanup
-CLOBBERFILES += \
-       msgcc \
-       msgcvt \
-       msggen \
-       msgget \
-       msgcpp
-
 include ../../Makefile.targ
Index: src/Makefile.ast
===================================================================
--- src/Makefile.ast    (revision 0)
+++ src/Makefile.ast    (revision 0)
@@ -0,0 +1,35 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident        "%Z%%M% %I%     %E% SMI"
+#
+
+# Override this top level flag so the compiler builds in its native
+# C99 mode.  This has been enabled to support the math stuff in the
+# AST tools (including ksh93).
+C99MODE= $(C99_ENABLE) -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1
+
+# silence common AST&co. warnings...
+# ... about |#pragma prototyped| ...
+CERRWARN += -erroff=E_UNRECOGNIZED_PRAGMA_IGNORED
Index: src/lib/libshell/Makefile.demo
===================================================================
--- src/lib/libshell/Makefile.demo      (revision 720)
+++ src/lib/libshell/Makefile.demo      (working copy)
@@ -71,5 +71,4 @@
                $(ROOTDEMODIRBASE)/fun \
                $(ROOTDEMODIRBASE)/tests
 
-install: \
-       $(ROOTDEMODIRS) .WAIT $(ROOTDEMOFILES)
+install: $(ROOTDEMODIRS) .WAIT $(ROOTDEMOFILES)
Index: src/lib/libshell/sparcv9/Makefile
===================================================================
--- src/lib/libshell/sparcv9/Makefile   (revision 718)
+++ src/lib/libshell/sparcv9/Makefile   (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 include ../Makefile.com
 include ../../Makefile.lib.64
 
Index: src/lib/libshell/sparc/Makefile
===================================================================
--- src/lib/libshell/sparc/Makefile     (revision 698)
+++ src/lib/libshell/sparc/Makefile     (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 include ../Makefile.com
 
 install: all $(ROOTLIBS) $(ROOTLINKS) $(ROOTLINT)
Index: src/lib/libshell/i386/Makefile
===================================================================
--- src/lib/libshell/i386/Makefile      (revision 698)
+++ src/lib/libshell/i386/Makefile      (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 include ../Makefile.com
 
 install: all $(ROOTLIBS) $(ROOTLINKS) $(ROOTLINT)
Index: src/lib/libshell/Makefile.com
===================================================================
--- src/lib/libshell/Makefile.com       (revision 718)
+++ src/lib/libshell/Makefile.com       (working copy)
@@ -25,6 +25,8 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
+SHELL=/usr/bin/ksh
+
 LIBRARY=       libshell.a
 VERS=          .1
 
@@ -119,7 +121,7 @@
 
 LIBS =         $(DYNLIB) $(LINTLIB)
 
-# load dll, socket, nsl and secdb libraries on demand
+# load dll, socket, and secdb libraries on demand
 LDLIBS += \
        -lcmd \
        -z lazyload -ldll -z nolazyload \
@@ -137,7 +139,7 @@
 # case - it MUST come as the last element but future changes in -D options
 # may then cause silent breakage in the AST sources because the last -D
 # option specified overrides previous -D options so we prefer the current
-# way to expliclity list each single flag.
+# way to explicitly list each single flag.
 CPPFLAGS = \
        $(DTEXTDOM) $(DTS_ERRNO) \
        -Isrc/cmd/ksh93 \
Index: src/lib/libshell/amd64/Makefile
===================================================================
--- src/lib/libshell/amd64/Makefile     (revision 718)
+++ src/lib/libshell/amd64/Makefile     (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 include ../Makefile.com
 include ../../Makefile.lib.64
 
Index: src/lib/libshell/Makefile
===================================================================
--- src/lib/libshell/Makefile   (revision 718)
+++ src/lib/libshell/Makefile   (working copy)
@@ -45,7 +45,6 @@
 
 LIBRARY=       libshell.a
 
-# definitions for install_h target
 HDRS= \
        history.h \
        nval.h \
Index: src/lib/Makefile.astmsg
===================================================================
--- src/lib/Makefile.astmsg     (revision 718)
+++ src/lib/Makefile.astmsg     (working copy)
@@ -26,13 +26,13 @@
 #
 
 #
-# Temporary control building AST l10n catalogs until all build machines
-# have been updated.
+# Temporarily control building AST l10n catalogs until all build
+# machines have been updated.
 #
 
 # Should we build AST l10n catalogs ?
-# this can be overridden via
-# % export ON_BUILD_AST_L10N_CATALOGS=1 # at build time
+# This can be overridden at build time via:
+# $ export ON_BUILD_KSH93_AS_BINKSH=1
 ON_BUILD_AST_L10N_CATALOGS=0
 
 DO_BUILD_AST_CATALOGS_1=       $(ON_BUILD_AST_L10N_CATALOGS:0=$(POUND_SIGN))
@@ -41,7 +41,7 @@
 DONT_BUILD_AST_CATALOGS=       $(DONT_BUILD_AST_CATALOGS_1:0=)
 
 #
-# l10n mesage catalog generation for AST libraries
+# l10n message catalog generation for AST libraries
 #
 
 MSGLIBNAME= $(LIBRARY:.a=)
@@ -57,11 +57,11 @@
 ASTMSGS=  $(OBJECTS:%.o=msgs/%.mso)
 
 # cpp defines needed by msgcc
-i386_ASTMSGCCFLAGS=    -D_STDC_C99 -D__STDC__ -D__BUILTIN_VA_ARG_INCR -D__i386
-amd64_ASTMSGCCFLAGS=   -D_STDC_C99 -D__STDC__ -D__BUILTIN_VA_ARG_INCR -D__amd64
-sparc_ASTMSGCCFLAGS=   -D_STDC_C99 -D__STDC__ -D__BUILTIN_VA_ARG_INCR -D__sparc
-sparcv9_ASTMSGCCFLAGS= -D_STDC_C99 -D__STDC__ -D__BUILTIN_VA_ARG_INCR 
-D__sparcv9
-ASTMSGCCFLAGS=$($(TARGETMACH)_ASTMSGCCFLAGS)
+i386_ASTMSGCCFLAGS=    -D__i386
+amd64_ASTMSGCCFLAGS=   -D__amd64
+sparc_ASTMSGCCFLAGS=   -D__sparc
+sparcv9_ASTMSGCCFLAGS= -D__sparcv9
+ASTMSGCCFLAGS= -D_STDC_C99 -D__STDC__ -D__BUILTIN_VA_ARG_INCR 
$($(TARGETMACH)_ASTMSGCCFLAGS)
 
 msgs/%.mso: ../common/%.c
        @mkdir -p "$$(dirname "$@")" ; \
@@ -78,7 +78,7 @@
 
 $(ASTMSGCATALOG): $(MSGLIBNAME).msg
        @$(RM) "$(ASTMSGCATALOG)" ; \
-       cat "$(MSGLIBNAME).msg" | sed 's/^$$translation msgcc .*//' | gencat 
"$@" -
+       sed 's/^$$translation msgcc .*//' <"$(MSGLIBNAME).msg" | gencat "$@" -
 
 # Main catalog target
 $(DO_BUILD_AST_CATALOGS)_msg: $(ASTMSGCATALOG)
@@ -87,7 +87,7 @@
 # package database each time we toggle the switch)
 $(DONT_BUILD_AST_CATALOGS)_msg:
 $(DONT_BUILD_AST_CATALOGS)     $(RM) $(ASTMSGCATALOG) ; \
-       touch $(ASTMSGCATALOG)
+       $(TOUCH) $(ASTMSGCATALOG)
 
 # Add message catalogs to the list of files to "clobber"
 CLOBBERFILES += \
Index: src/lib/libcmd/sparcv9/Makefile
===================================================================
--- src/lib/libcmd/sparcv9/Makefile     (revision 698)
+++ src/lib/libcmd/sparcv9/Makefile     (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 include ../Makefile.com
 include ../../Makefile.lib.64
 
Index: src/lib/libcmd/sparc/Makefile
===================================================================
--- src/lib/libcmd/sparc/Makefile       (revision 698)
+++ src/lib/libcmd/sparc/Makefile       (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 include ../Makefile.com
 
 all: $(LIBS)
Index: src/lib/libcmd/i386/Makefile
===================================================================
--- src/lib/libcmd/i386/Makefile        (revision 698)
+++ src/lib/libcmd/i386/Makefile        (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 include ../Makefile.com
 
 all: $(LIBS)
Index: src/lib/libcmd/Makefile.com
===================================================================
--- src/lib/libcmd/Makefile.com (revision 718)
+++ src/lib/libcmd/Makefile.com (working copy)
@@ -25,6 +25,8 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
+SHELL=/usr/bin/ksh
+
 LIBRARY =      libcmd.a
 VERS =         .1
 OBJECTS =      \
@@ -77,10 +79,10 @@
 # automated code updates easier.
 MAPFILES=       ../mapfile-vers
 
-# Override this top level flag so the compiler builds in its native
-# C99+XPG6 mode.  This has been enabled to support the math stuff
-# and other features in ksh93.
-C99MODE= $(C99_ENABLE) -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1
+# Set common AST flags including C99/XPG6 mode (which is needed to
+# support the math stuff in ksh93 (and allow to use it as
+# /usr/xpg4/bin/sh))
+include ../../../Makefile.ast
 
 LIBS =         $(DYNLIB) $(LINTLIB)
 
@@ -95,7 +97,7 @@
 # case - it MUST come as the last element but future changes in -D options
 # may then cause silent breakage in the AST sources because the last -D
 # option specified overrides previous -D options so we prefer the current
-# way to expliclity list each single flag.
+# way to explicitly list each single flag.
 # Notes:
 #   - "-D_BLD_DLL" comes from ${mam_cc_DLL} in Mamfile
 CPPFLAGS = \
@@ -121,15 +123,10 @@
        $(CCVERBOSE) \
        -xstrconst
 
-# silence common libast&co. warnings (upstream will handle this later) ...
-# ... about |#pragma prototyped| ...
-CERRWARN += -erroff=E_UNRECOGNIZED_PRAGMA_IGNORED
 pics/sync.o    := CERRWARN += -erroff=E_END_OF_LOOP_CODE_NOT_REACHED
 
 .KEEP_STATE:
 
-# libcmd API is completely private and therefore does not need
-# to call "fnamecheck" here
 all: $(LIBS) 
 
 #
Index: src/lib/libcmd/amd64/Makefile
===================================================================
--- src/lib/libcmd/amd64/Makefile       (revision 698)
+++ src/lib/libcmd/amd64/Makefile       (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 include ../Makefile.com
 include ../../Makefile.lib.64
 
Index: src/lib/libcmd/Makefile
===================================================================
--- src/lib/libcmd/Makefile     (revision 718)
+++ src/lib/libcmd/Makefile     (working copy)
@@ -43,13 +43,10 @@
 
 all clean clobber install lint _msg: $(SUBDIRS)
 
-# definitions for install_h target
 HDRS=  \
        cmd.h \
        cmdext.h
 
-# libast/libcmd headers are partially generated and depend on
-# the architecture (e.g. "i386", "sparc", ...)
 HDRDIR32= $(MACH)/include/ast
 HDRDIR64= $(MACH64)/include/ast
 include ../Makefile.astinclude
Index: src/lib/libc/sparcv9/Makefile
===================================================================
--- src/lib/libc/sparcv9/Makefile       (revision 715)
+++ src/lib/libc/sparcv9/Makefile       (working copy)
@@ -934,7 +934,7 @@
 
 # Conditionally add support for making |wordexp()| check whether
 # /usr/bin/ksh is ksh93 or not
-include ../../../cmd/ksh/Makefile.ksh93switch
+include ../../../Makefile.ksh93switch
 CPPFLAGS += -DWORDEXP_KSH93=$(ON_BUILD_KSH93_AS_BINKSH)
 
 # Inform the run-time linker about libc specialized initialization
Index: src/lib/libc/sparc/Makefile
===================================================================
--- src/lib/libc/sparc/Makefile (revision 715)
+++ src/lib/libc/sparc/Makefile (working copy)
@@ -988,7 +988,7 @@
 
 # Conditionally add support for making |wordexp()| check whether
 # /usr/bin/ksh is ksh93 or not
-include ../../../cmd/ksh/Makefile.ksh93switch
+include ../../../Makefile.ksh93switch
 CPPFLAGS += -DWORDEXP_KSH93=$(ON_BUILD_KSH93_AS_BINKSH)
 
 # Inform the run-time linker about libc specialized initialization
Index: src/lib/libc/i386/Makefile.com
===================================================================
--- src/lib/libc/i386/Makefile.com      (revision 715)
+++ src/lib/libc/i386/Makefile.com      (working copy)
@@ -971,7 +971,7 @@
 
 # Conditionally add support for making |wordexp()| check whether
 # /usr/bin/ksh is ksh93 or not
-include ../../../cmd/ksh/Makefile.ksh93switch
+include ../../../Makefile.ksh93switch
 CPPFLAGS += -DWORDEXP_KSH93=$(ON_BUILD_KSH93_AS_BINKSH)
 
 # Inform the run-time linker about libc specialized initialization
Index: src/lib/libc/amd64/Makefile
===================================================================
--- src/lib/libc/amd64/Makefile (revision 715)
+++ src/lib/libc/amd64/Makefile (working copy)
@@ -924,7 +924,7 @@
 
 # Conditionally add support for making |wordexp()| check whether
 # /usr/bin/ksh is ksh93 or not
-include ../../../cmd/ksh/Makefile.ksh93switch
+include ../../../Makefile.ksh93switch
 CPPFLAGS += -DWORDEXP_KSH93=$(ON_BUILD_KSH93_AS_BINKSH)
 
 # Inform the run-time linker about libc specialized initialization
Index: src/lib/Makefile
===================================================================
--- src/lib/Makefile    (revision 731)
+++ src/lib/Makefile    (working copy)
@@ -512,7 +512,7 @@
 libsasl:       libgss libsocket pkcs11 libmd
 sasl_plugins:  pkcs11 libgss libsocket libsasl
 libsctp:       libsocket
-libshell:      libast libcmd libdll libsocket libnsl libsecdb
+libshell:      libast libcmd libdll libsocket libsecdb
 libsip:                libmd5
 libsocket:     libnsl
 libldap5:      libsasl libsocket libnsl libmd
Index: src/lib/libdll/sparcv9/Makefile
===================================================================
--- src/lib/libdll/sparcv9/Makefile     (revision 718)
+++ src/lib/libdll/sparcv9/Makefile     (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Fetch minor version from RELEASE, e.g. "10" for "5.10", "11" for "5.11" etc.
 GETRELEASEMINOR = /usr/bin/ksh -c 'x=$(RELEASE) ; print 
"$${x$(POUND_SIGN)$(POUND_SIGN)*.}"'
 
Index: src/lib/libdll/sparc/Makefile
===================================================================
--- src/lib/libdll/sparc/Makefile       (revision 698)
+++ src/lib/libdll/sparc/Makefile       (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Fetch minor version from RELEASE, e.g. "10" for "5.10", "11" for "5.11" etc.
 GETRELEASEMINOR = /usr/bin/ksh -c 'x=$(RELEASE) ; print 
"$${x$(POUND_SIGN)$(POUND_SIGN)*.}"'
 
Index: src/lib/libdll/i386/Makefile
===================================================================
--- src/lib/libdll/i386/Makefile        (revision 698)
+++ src/lib/libdll/i386/Makefile        (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Fetch minor version from RELEASE, e.g. "10" for "5.10", "11" for "5.11" etc.
 GETRELEASEMINOR = /usr/bin/ksh -c 'x=$(RELEASE) ; print 
"$${x$(POUND_SIGN)$(POUND_SIGN)*.}"'
 
Index: src/lib/libdll/Makefile.com
===================================================================
--- src/lib/libdll/Makefile.com (revision 718)
+++ src/lib/libdll/Makefile.com (working copy)
@@ -25,6 +25,8 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
+SHELL=/usr/bin/ksh
+
 LIBRARY=       libdll.a
 VERS=          .1
 
@@ -44,10 +46,10 @@
 # automated code updates easier.
 MAPFILES=       ../mapfile-vers
 
-# Override this top level flag so the compiler builds in its native
-# C99+XPG6 mode.  This has been enabled to support the math stuff
-# and other features in ksh93.
-C99MODE= $(C99_ENABLE) -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1
+# Set common AST flags including C99/XPG6 mode (which is needed to
+# support the math stuff in ksh93 (and allow to use it as
+# /usr/xpg4/bin/sh))
+include ../../../Makefile.ast
 
 LIBS =         $(DYNLIB) $(LINTLIB)
 LDLIBS +=      -last -lc
@@ -59,7 +61,7 @@
 # case - it MUST come as the last element but future changes in -D options
 # may then cause silent breakage in the AST sources because the last -D
 # option specified overrides previous -D options so we prefer the current
-# way to expliclity list each single flag.
+# way to explicitly list each single flag.
 # Notes:
 #   - "-D_BLD_DLL" comes from ${mam_cc_DLL} in Mamfile
 CPPFLAGS = \
@@ -80,9 +82,6 @@
        $(CCVERBOSE) \
        -xstrconst
 
-# silence common libast&co. warning about |#pragma prototyped|
-CERRWARN += -erroff=E_UNRECOGNIZED_PRAGMA_IGNORED
-
 .KEEP_STATE:
 
 all: $(LIBS)
Index: src/lib/libdll/amd64/Makefile
===================================================================
--- src/lib/libdll/amd64/Makefile       (revision 718)
+++ src/lib/libdll/amd64/Makefile       (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Fetch minor version from RELEASE, e.g. "10" for "5.10", "11" for "5.11" etc.
 GETRELEASEMINOR = /usr/bin/ksh -c 'x=$(RELEASE) ; print 
"$${x$(POUND_SIGN)$(POUND_SIGN)*.}"'
 
Index: src/lib/libdll/Makefile
===================================================================
--- src/lib/libdll/Makefile     (revision 718)
+++ src/lib/libdll/Makefile     (working copy)
@@ -45,7 +45,6 @@
 
 LIBRARY=       libdll.a
 
-# definitions for install_h target
 HDRS= \
        dlldefs.h
 
Index: src/lib/libast/sparcv9/Makefile
===================================================================
--- src/lib/libast/sparcv9/Makefile     (revision 718)
+++ src/lib/libast/sparcv9/Makefile     (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Fetch minor version from RELEASE, e.g. "10" for "5.10", "11" for "5.11" etc.
 GETRELEASEMINOR = /usr/bin/ksh -c 'x=$(RELEASE) ; print 
"$${x$(POUND_SIGN)$(POUND_SIGN)*.}"'
 
Index: src/lib/libast/sparc/Makefile
===================================================================
--- src/lib/libast/sparc/Makefile       (revision 718)
+++ src/lib/libast/sparc/Makefile       (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Fetch minor version from RELEASE, e.g. "10" for "5.10", "11" for "5.11" etc.
 GETRELEASEMINOR = /usr/bin/ksh -c 'x=$(RELEASE) ; print 
"$${x$(POUND_SIGN)$(POUND_SIGN)*.}"'
 
Index: src/lib/libast/i386/Makefile
===================================================================
--- src/lib/libast/i386/Makefile        (revision 718)
+++ src/lib/libast/i386/Makefile        (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Fetch minor version from RELEASE, e.g. "10" for "5.10", "11" for "5.11" etc.
 GETRELEASEMINOR = /usr/bin/ksh -c 'x=$(RELEASE) ; print 
"$${x$(POUND_SIGN)$(POUND_SIGN)*.}"'
 
Index: src/lib/libast/Makefile.com
===================================================================
--- src/lib/libast/Makefile.com (revision 718)
+++ src/lib/libast/Makefile.com (working copy)
@@ -25,6 +25,8 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
+SHELL=/usr/bin/ksh
+
 LIBRARY=       libast.a
 VERS=          .1
 
@@ -644,10 +646,10 @@
 # automated code updates easier.
 MAPFILES=       ../mapfile-vers
 
-# Override this top level flag so the compiler builds in its native
-# C99+XPG6 mode.  This has been enabled to support the math stuff
-# and other features in ksh93.
-C99MODE= $(C99_ENABLE) -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1
+# Set common AST flags including C99/XPG6 mode (which is needed to
+# support the math stuff in ksh93 (and allow to use it as
+# /usr/xpg4/bin/sh))
+include ../../../Makefile.ast
 
 # special rule because sources live both ../common (normal)
 # and $(TRANSMACH) (generated)
@@ -704,8 +706,6 @@
        $(CCVERBOSE) \
        -xstrconst
 
-# silence common libast&co. warnings (upstream will handle this later) ...
-CERRWARN += -erroff=E_UNRECOGNIZED_PRAGMA_IGNORED
 pics/$(MACH)/src/lib/libast/conftab.o  := CERRWARN += 
-erroff=E_C99_INTEGER_PROMOTION
 pics/$(MACH)/src/lib/libast/conftab.o \
 pics/$(MACH64)/src/lib/libast/conftab.o        := CERRWARN += 
-erroff=E_INIT_DOES_NOT_FIT
Index: src/lib/libast/amd64/Makefile
===================================================================
--- src/lib/libast/amd64/Makefile       (revision 718)
+++ src/lib/libast/amd64/Makefile       (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 # Fetch minor version from RELEASE, e.g. "10" for "5.10", "11" for "5.11" etc.
 GETRELEASEMINOR = /usr/bin/ksh -c 'x=$(RELEASE) ; print 
"$${x$(POUND_SIGN)$(POUND_SIGN)*.}"'
 
Index: src/lib/libast/Makefile
===================================================================
--- src/lib/libast/Makefile     (revision 718)
+++ src/lib/libast/Makefile     (working copy)
@@ -45,7 +45,6 @@
 
 LIBRARY=       libast.a
 
-# definitions for install_h target
 HDRS=  \
        align.h \
        ast_botch.h \
Index: src/lib/libpp/sparc/Makefile
===================================================================
--- src/lib/libpp/sparc/Makefile        (revision 698)
+++ src/lib/libpp/sparc/Makefile        (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 include ../Makefile.com
 
 install: all $(ROOTLIBS) $(ROOTLINKS) $(ROOTLINT)
Index: src/lib/libpp/i386/Makefile
===================================================================
--- src/lib/libpp/i386/Makefile (revision 698)
+++ src/lib/libpp/i386/Makefile (working copy)
@@ -25,8 +25,6 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
-SHELL=/usr/bin/ksh
-
 include ../Makefile.com
 
 install: all $(ROOTLIBS) $(ROOTLINKS) $(ROOTLINT)
Index: src/lib/libpp/Makefile.com
===================================================================
--- src/lib/libpp/Makefile.com  (revision 718)
+++ src/lib/libpp/Makefile.com  (working copy)
@@ -25,6 +25,8 @@
 # ident        "%Z%%M% %I%     %E% SMI"
 #
 
+SHELL=/usr/bin/ksh
+
 LIBRARY=       libpp.a
 VERS=          .1
 
@@ -62,10 +64,10 @@
 # automated code updates easier.
 MAPFILES=       ../mapfile-vers
 
-# Override this top level flag so the compiler builds in its native
-# C99+XPG6 mode.  This has been enabled to support the math stuff
-# and other features in ksh93.
-C99MODE= $(C99_ENABLE) -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1
+# Set common AST flags including C99/XPG6 mode (which is needed to
+# support the math stuff in ksh93 (and allow to use it as
+# /usr/xpg4/bin/sh))
+include ../../../Makefile.ast
 
 LIBS =         $(DYNLIB) $(LINTLIB)
 LDLIBS +=      -last -lc
@@ -77,7 +79,7 @@
 # case - it MUST come as the last element but future changes in -D options
 # may then cause silent breakage in the AST sources because the last -D
 # option specified overrides previous -D options so we prefer the current
-# way to expliclity list each single flag.
+# way to explicitly list each single flag.
 CPPFLAGS = \
        $(DTEXTDOM) $(DTS_ERRNO) \
        -I. \
@@ -96,10 +98,6 @@
        $(CCVERBOSE) \
        -xstrconst
 
-# silence common libast&co. warning about |#pragma prototyped|
-# (upstream is working on getting everything execept the
-# E_UNRECOGNIZED_PRAGMA_IGNORED stuff fixed)
-CERRWARN += -erroff=E_UNRECOGNIZED_PRAGMA_IGNORED
 pics/ppcall.o          := CERRWARN += -erroff=E_INTEGER_OVERFLOW_DETECTED
 pics/ppcontrol.o       := CERRWARN += -erroff=E_INTEGER_OVERFLOW_DETECTED
 pics/ppcpp.o           := CERRWARN += -erroff=E_INTEGER_OVERFLOW_DETECTED
Index: src/lib/libpp/Makefile
===================================================================
--- src/lib/libpp/Makefile      (revision 718)
+++ src/lib/libpp/Makefile      (working copy)
@@ -45,7 +45,6 @@
 
 LIBRARY=       libpp.a
 
-# definitions for install_h target
 HDRS= \
        pp.h \
        ppkey.h

Reply via email to