> 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 realize the use of SHELL=/usr/bin/ksh has been discussed
          before, and I know you want to keep it.  But for the library
          Makefiles, can we please consolidate it into libfoo/Makefile.com
          and yank it out of libfoo/$ISA/Makefile?  (That should also
          allow you to remove libcmd/$ISA/Makefile from your list of
          changed files.)

        * A nit, but almost every libfoo/Makefile.com has "explicitly"
          misspelled as "expliclity".

        * Similarly another nit: almost every libfoo/Makefile has a
          needless "definitions for install_h target" comment above HDRS.

lib/Makefile:

        * 515: libshell appears to have a spurious dependency on libnsl.

lib/libc/{sparc,sparcv9,amd64,i386}/Makefile.com:

        * It's a shame this has to be duplicated across all four Makefiles,
          but I guess that's status quo with the libc Makefiles.

        * In theory, you need a FLG here so that when someone brings
          over usr/src/lib/libc they'll get Makefile.ksh93switch brought
          over too.  But FLGs are dying soon with the Mercurial switch,
          so I guess it doesn't matter.

lib/libcmd/Makefile:

        * 51-52: Not sure why the HDRDIR32/HDRDIR64 handling warrants a
          comment here (none of the other uses seem to have comments).

lib/libcmd/Makefile.com:

        * 104: "-Isrc/lib/libcmd" seems bizarre; why is this necessary?

        * 131-132: Comment about fnamecheck omission seems unnecessary.

lib/libdll/{sparc,sparcv9,amd64,i386}/Makefile:

        * GETRELEASEMINOR seems the hard way around; seems simpler to
          update Makefile.master to have:

                RELEASE_MAJOR=5
                RELEASE_MINOR=11
                RELEASE=$(RELEASE_MAJOR).$(RELEASE_MINOR)

          ... then get rid of GETRELEASEMINOR.  (But if for some reason it
          needs to be kept, then please move it somewhere more common.)

        * Seems simpler to replace DLLPLATFORMCPPFLAGS with
          DLLPLATFORM=sun4 (or i386), and then have Makefile.com have
          "-DHOSTTYPE="sol$(RELEASE_MINOR).$(DLLPLATFORM)" in CPPFLAGS.

lib/libast/{sparc,sparcv9,amd64,i386}/Makefile:

        * Same comments as libdll above.

lib/libpp/Makefile.com

        * 100: s/execept/except/

lib/libshell/Makefile.demo:

        * 74: Continuation line here seems awkward.

lib/libshell/Makefile.com:

        * 122: Comment mentions libnsl, but it's not in the corresponding
          macro.

        * 134-171: Could we keep the CPPFLAGS in cmd/ksh/Makefile.com
          and here in-sync through includes instead?

        * 143: -Isrc/cmd/ksh93 seems suspicious; why are header files
          for the library lurking over in a command directory?

cmd/Makefile:

        * 31: Why include ksh/Makefile.ksh93switch here?  If we really
          need this, seems like Makefile.ksh93switch needs to move to a
          more common directory.

cmd/ast/msgcc/Makefile

        * 70: Comment about "install rules" doesn't seem to match code
          that follows.

        * 73: "main" comment here seems unnecessary.

        * 80-82: Suggest consolidating into `clean lint:'

        * 84-90: These lines should be needless now that all the programs
          are listed in $(PROG).

cmd/ksh/Makefile:

        * 65-74: I'm confused why this logic is here and at e.g. lines
          39-46 of cmd/ksh/i386/Makefile.

cmd/ksh/Makefile.com:

        * 39-43: This comment seems a bit hard to believe, since there
          seems to be a sizeable difference between this Makefile's
          structure and the one in libshell.  Given that there's just
          a single source file, I don't see the need for mkpicdirs.

        * 49: See previous FLG-related comment.

        * 52: Extra blank line.

        * 57-58: See previous comment on the need to share this
          list with libshell.

        * 132: I think this comment is supposed to explain why we delete
          ksh and ksh93 even for `clean' (rather than `clobber'), but I'm
          not quite getting it.

cmd/ksh/Makefile.testshell:

        * 38-44: So will this test suite failure be resolved prior to
          integration?

        * 56-61: Since we're well past build 64, can this issue be
          removed?  (If not, please reformat the comment to be 80-column
          friendly.)

        * 66: s/compliciated./complicated./

        * 81, 95: Use of csh prompt syntax seems surprising here ;-)

        * 100: s/weired/weird/.

        * 104: One exclamation point will do ;-)

        * 113-143: Please reformat to be 80-column friendly.
        
cmd/ksh/Makefile.ksh93switch:

        * 28-30: Nit: the suggestion would be easier to parse if we
          removed the embedded comment -- e.g.:

            # Should we build ksh93 as /bin/ksh ?
            # This can be overridden at build time via:
            # $ export ON_BUILD_KSH93_AS_BINKSH=1

        * 37: Extra blank line.

usr/src/lib/Makefile.astmsg:

        * 29: Should "Temporary control building" be "Temporary control
          over building"?  (Or maybe "Temporarily" was meant?)
        
        * 33-35: Similar nit to Makefile.ksh93switch.

        * 44: s/mesage/message/

        * 60-63: Seems like the common part of these macros should be
          moved into ASTMSGCCFLAGS.  (I'm also unclear why ASTMSGCCFLAGS
          is needed, rather than directly using CPPFLAGS.)

        * 69, 63, 76: Why is CFLAGS needed?

        * 79-81: Seems like it would be simpler as:

           $(ASTMSGCATALOG): $(MSGLIBNAME).msg
                @$(RM) $@; \
                $(SED) 's/^$$translation msgcc .*//' $(MSGLIBNAME).msg | gencat 
$@ -

          ... but I haven't tested it.

        * 90: $(TOUCH) instead?

cmd/sgs/libelf/Makefile.com:

        * Not sure why the DIRMODE setting is no longer needed.

Makefile.lint:
cmd/ast/Makefile:
cmd/nsadmin/Makefile:
cmd/sgs/libelf/Makefile.targ:
src/cmd/ksh/{sparc,sparcv9,amd64,i386}/Makefile:
lib/libast/Makefile:
lib/libpp/Makefile:
lib/libdll/Makefile:
lib/libdll/Makefile.com
lib/libcmd/{sparc,sparcv9,amd64,i386}/Makefile:
lib/libpp/{sparc,i386}/Makefile:
lib/libshell/{sparc,sparcv9,amd64,i386}/Makefile:
pkgdefs/Makefile:
pkgdefs/SUNWastdev/Makefile:

        * Reviewed, no comments beyond the general ones.

--
meem

Reply via email to