URI: 
       makefile-guidelines: some incremental improvements - bitreich-style - Style guide for programmers.
  HTML git clone git://bitreich.org/bitreich-style
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
   DIR LICENSE
       ---
   DIR commit 60d0637f5edd99ec9ee1175d37a3f7b03db3d318
   DIR parent 040830cabbba670cfbac39d214fe274d7c10b88d
  HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Wed, 10 Jun 2020 14:46:27 +0200
       
       makefile-guidelines: some incremental improvements
       
       * Fix the direct link to the POSIX make link (it was a HTML frame).
       * Add a note to make porters-life easier. #porterlivesmatter
       * Fix ar rc to ar -rc (quinq).
       * Also copy the LICENSE documentation: cp ${DOC}.
       * Add some references.
       * Some line-wrapping fixes.
       
       Diffstat:
         M c/makefile-guideline.txt            |      42 ++++++++++++++++++++-----------
       
       1 file changed, 27 insertions(+), 15 deletions(-)
       ---
   DIR diff --git a/c/makefile-guideline.txt b/c/makefile-guideline.txt
       @@ -33,6 +33,14 @@ Do not use GNUisms in Makefiles. Testing with different make implementations
        like BSD make which mostly respect POSIX is very useful.  Use POSIX Makefile
        rules: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html
        
       +Trying to place yourself into the shoes of a package maintainer / porter. This
       +is helpful to make sure the package is easy to maintain:
       +
       +* https://www.openbsd.org/faq/ports/
       +* https://www.netbsd.org/docs/pkgsrc/
       +* https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html
       +* https://wiki.voidlinux.org/A_General_Introduction_To_Package_Creation
       +
        
        Variables
        ---------
       @@ -54,13 +62,19 @@ It is recommended to respect the following commonly-used variables.
        Specifying compiler and linker flags:
        
        * $CC, $CFLAGS, $LDFLAGS, $CPPFLAGS: make sure to respect the default set flags
       -  as specified in POSIX: https://pubs.opengroup.org/onlinepubs/9699919799/
       -  under the section "Default rules". This make it easier for the ports build system
       -  to use the set variables and not having to patch the Makefile in some way.
       -* $CFLAGS: do not hard-code optimization flags like (-O2) or diagnostic flags such as
       -  -Wall, -Wextra, -pedantic. Of course do not specify unportable compiler flags.
       -* $LDFLAGS: do not hard-code linker flags like -s (symbol stripping) or -g, -static
       -  or such flags.
       +  as specified in POSIX:
       +
       +  https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html under the
       +  section "Default rules". This make it easier for the ports build system to use
       +  the set variables and not having to patch the Makefile in some way.
       +
       +* $CFLAGS: do not hard-code optimization flags like (-O2) or diagnostic flags
       +  such as -Wall, -Wextra, -pedantic. Of course do not specify unportable compiler
       +  flags.
       +
       +* $LDFLAGS: do not hard-code linker flags like -s (symbol stripping) or -g,
       +  -static or such flags.
       +
        * Libraries: using separate variables for compile and link per library (for
          example libpng, libjpeg) can be useful for building in ports.
          For example a variable LIBPNG_CFLAGS, LIBPNG_LDFLAGS for the header files or
       @@ -190,7 +204,7 @@ Compiling, use the system specified CFLAGS and CPPFLAGS.
        
            40        
            41        ${LIBJSON}: ${LIBJSONOBJ}
       -    42                ${AR} rc $@ $?
       +    42                ${AR} -rc $@ $?
            43                ${RANLIB} $@
            44        
        
       @@ -235,7 +249,7 @@ busy as a process.
            61                for f in ${BIN}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done
            62                # installing example files.
            63                mkdir -p "${DESTDIR}${DOCPREFIX}"
       -    64                cp -f README "${DESTDIR}${DOCPREFIX}"
       +    64                cp -f ${DOC} "${DESTDIR}${DOCPREFIX}"
            65                # installing manual pages for general commands: section 1.
            66                mkdir -p "${DESTDIR}${MANPREFIX}/man1"
            67                cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1"
       @@ -261,12 +275,10 @@ rmdir returns an error code then that is ok and make still proceeds.
            79        .PHONY: all clean dist install uninstall
        
        
       +References
       +----------
        
       -
       -TODO
       -
       -References:
        - https://www.gnu.org/prep/standards/standards.html#DESTDIR
        - https://nullprogram.com/blog/2017/08/20/
       -
       -- https://www.openbsd.org/faq/ports/
       +- https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html
       +- https://pubs.opengroup.org/onlinepubs/9699919799/