./devel/smake, Highly portable UNIX make implementation

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 1.5, Package name: smake-1.5, Maintainer: micha

Schily make

Highly portable UNIX make implementation written by Joerg Schilling.

Required to build:

Master sites:

SHA1: 355c162afdffb730e632902620397cc7851c3595
RMD160: 8239c965ad9da0d7ce21c39ed28f3f367f929cbf
Filesize: 4790.634 KB

Version history: (Expand)

CVS history: (Expand)

   2021-06-25 15:41:48 by Michael Baeuerle | Files touched by this commit (1)
Log message:
archivers/tartest: Add version 1.23

Tartest reads a tar archive from stdin and checks this archive for
compliance with POSIX.1-1990.
   2021-06-25 12:43:03 by Michael Baeuerle | Files touched by this commit (3) | Package updated
Log message:
devel/smake: Update to 1.5

Create OS rule for mips64eb architecture too (bulk build failed).

Changelog from AN-2021-05-19:
- smake: smake "MACRO += value" now works.

  smake did implement command line macros like "MACRO=value" since
  spring 1996 but did not yet support "MACRO +=value" as well.

- smake: smake "MACRO::=value" "MACRO:::=value", "MACRO \ 
+:= value"
  now work as well.

- smake: The man page now mentions the new command line macro operators
  ::=, :::=, += and +:=

- smake: Version bumped to 1.5

Changelog from AN-2021-06-07:
- smake: the MAKEFLAGS parser has been enhanced to understand the
  encoding used by the BSD make program "bmake". This is needed to
  support something like "bmake INS_BASE=xxx" on FreeBSD while
  compiling the schilytools.

  This parser enhancement also covers some incompatibilities with
  the MAKEFLAGS= values created by SunPro Make (e.g. a missing --
  before the make macro definitions are added).

  Thanks to Robert Clausecker for reporting.

- smake: The smake man page now also mentions SunPro make as dmake(1)
  and make(1s) in the "SEE ALSO" section.
   2021-04-26 12:38:11 by Michael Baeuerle | Files touched by this commit (2) | Package updated
Log message:
devel/smake: Update to 1.4

Changelog from AN-2021-04-21:
- smake: We now support the idiosyncratic way, GNU make implements ::=
  that results in unpredictable behavior with larger makefiles since ::=
  creates a different macro type that causes the += operator to behave
  different from the usual way introduced in January 1986 by SunPro Make.
  += does not expand the right hand side before appending to an existing
  make macro since it has been introduced in January 1986.

  += now expands the right hand side before appending to an existing
  ::= typed macro. Such a macro is created if the first assignment
  to that macro is done via ::=.

  Using such a make macro does not expand such macros at use time.
  This includes expansions to the left side and the right side of
  a colon (:) dependency list and expansions for rule commands.

- smake: The new operators :::= and +:= have been introduced in
  order to add an orthogonal (and thus better) counterpart to the
  GNU make ::= feature that has become part of the upcoming POSIX
  ISSUE 8.

  We will propose this as a new POSIX feature soon. In special since
  it has been implemented in smake and SunPro Make, see below.

  :::= assigns a normal make macro after expanding the right hand side

  +:=  appends to any maro type after expanding the right hand side

  This permits predictable behavior for larger or structured makefile
  systems (based on the "include" statement), where it is not possible
  to know easily whether a mace macro has been created with a
  NAME=value assignment or with a NAME:=value assignment.

  Note that the official method in make since 45 years (since make
  exists) to prohibit macro expansion is not to use a ::= type macro
  but rather to use two '$' signs in the related value of the macro.

- smake: The man page now mentions the new features

- smake: The option -j maxjobs is now supported, but ignored.

  This makes smake compatible to the upcoming POSIX ISSUE 8

- smake: added a new function ungetch().

- smake: version bumped to 1.4
   2020-11-25 16:24:46 by Michael Baeuerle | Files touched by this commit (2) | Package updated
Log message:
smake: Update to 1.3nb15

Changelog from AN-2020-11-04:
- Makefile system: include/schily/nlsdefs.h no longer by default defines
  the macro __() because this is in conflict with definitions that are
  present in the system include files from newer HP-UX versions.

  Thanks to Rudi Blom for reporting.

- smake: The new POSIX ::= assign macro feature has been implemented.
  Today, this is an alias for :=, but we may make := compatible to the
  SunPro Make feature := (conditional macro assignment) compatible:

      target := MACRO = value
      target := MACRO += value

- smake: The new POSIX ?= conditional macro assignment operator has
  been added.

  Note that like with +=, there is a need to have a space character
  before ?= in order to be recognised. This is because smake and
  SunPro Make support to have the characters '+' and '?' as part of
  a macro name.

  Note that some other make implementations that do not support
  '+' and '?' as part of a macro name may be happy with something like
  "MACRO+= value" or "MACRO?= value" but this is definitely not

Changelog from AN-2020-11-25:
- Makefile System: Added support for MacOS on arm64

  Thanks to a hint from Ryan Schmidt from macports

  Note that due to outstanding replies to recent changes in configure,
  it could up to now not be verified that all configure tests now work in
  a way that results in correct overall results. See below for an in
  depth report on the changes.

- Makefile System: autoconf (config.guess & config.sub) now supports
  the new arm64 Apple systems.

  Thanks to Ryan Schmidt from macports for provinding the needed uname(1)

- Makefile System: Added a new shell script "autoconf/uname" that helps
  to create shell scrips that allow to emulate an alien host system in
  order to test the correct behavior of configure.guess and configure.sub
  on the main development platform.

  This helps to adapt configure.guess and configure.sub to new platforms
  in the future.

- Makefile System: The new clang compiler as published with the upcomming
  ARM macs has been preconfigured with

      -Werror -Wimplicit-function-declaration

  as the default behavior and thus is in conflict with the existing base
  assumption of the autoconf system that minimalistic C-code used for
  compile/link allows to check for the existence of a specific function
  in libc without a need to know which system #include file is used to
  define a prototype for that function.

  This clang version, as a result of this default, behaves like a C++
  compiler and aborts if a function is used with no previous function
  prototype. This caused most of the existing autoconf test to fail with
  error messages about missing prototypes.

  We implemented a workaround using these methods for the identified

  - Most of the exit() calls in the various main() functions have
    been replaced by return() to avoid a need to
    #include <stdlib.h> in special since these test may be the
    case for layered tests that #include files from the higher
    level parts.

  - Many autoconf tests programs now #include more system include
    files, e.g. stdlib.h and unistd.h to avoid missing prototype
    errors. This cannot reliably be done in tests that are used as
    a base for higher level tests where the high level test
    #includes own system include files, since older platforms do
    not support to #include the same file twice.

    So this is tricky...

  - A test for a Linux glibc bug caused by incorect #pragma weak
    usage inside glibc that prevents one or more functions from
    ecvt()/fcvt()/gcvt() from being usable outside glibc now uses
    hand-written prototypes for some of the libc interface
    functions in order to avoid using the system includes. If we
    did not do that, we could not use ecvt()/fcvt()/gcvt() on
    MacOS anymore.

  Thanks to Ryan Schmidt from macports for reporting and for the given
  help that was needed for remote debugging.

  Please send the needed feedback on whether the current state of the
  configure script results on correct autoconf results on the M1 Macs.
   2020-10-23 13:13:00 by Michael Baeuerle | Files touched by this commit (2) | Package updated
Log message:
devel/smake: Update to 1.3nb14

New features with AN-2020-09-04:
- autoconf: congig.guess: FreeBSD on 64 bit ARM returns arm64 from
  uname -m; this was previously not supported and rejected by config.sub.
  We now convert "arm64" into "aarch64" in config.guess to \ 
get the usual
  expected results.

- Makefile system: RULES/rules.env The environment variables FIGNORE,
  unexported from the enviroment.

  In special FIGNORE is dangerous, as it is frequently used by bash
  users but tells ksh93 to modify it's behavior with "echo *" and
  this may cause strange things with our makefiles in case that
  /bin/sh is ksh92. This applies e.g. to Oracle Solaris 11 and

- smake: new version date, this had been forgotten with the last change

New features with AN-2020-10-09:
- autoconf: Added support for newer HP-UX versions on Itanium.

  Thanks to Rudi Blom for reporting and making a change proposal.
   2020-08-26 15:28:09 by Michael Baeuerle | Files touched by this commit (2) | Package updated
Log message:
devel/smake: Update to 1.3nb13

New features with AN-2020-07-18:
- Makefile system: changed several "echo MAKING... && sh ./MKLINKS"
  into "echo MAKING... ; sh ./MKLINKS"

  This allows an optimization in smake to avoid a call to sh -c "cmd".
  if the command is a simple command or a simple command prefixed by
  "echo something ;". Since 2012, we implement an inline echo command
  in smake to speed up makefile execution.

- smake: The -a option is now no longer missing in the smake -help
  output. This has been forgotten when the option has been added in March.

New features with AN-2020-08-12:
- autoconf: added a new test for the existence of <sys/auxv.h>

- autoconf: added new tests for Linux getauxval() and FreeBSD elf_aux_info()

- libschily: getexecpath.c now uses getauxval() on Linux and elf_aux_info()
  on FreeBSD. This was needed since readlink("/proc/curproc/file") on
  FreeBSD returns random values for hardlinked files, making it impossible
  to use the result in order to find out which behavior variant of a
  fat binary is requested.

- smake: Added some code to allow better debugging of MAKEFLAGS related

- smake: we now use strdup() to remember the content of the MAKEFLAGS
  environment as the content of a pointer into the environment array
  did change unexpectedly on DJGPP.

  Thanks to a hint from Albert Wik.
   2020-07-22 12:19:45 by Michael Baeuerle | Files touched by this commit (1)
Log message:
devel/smake: Add homepage
   2020-07-17 13:41:42 by Michael Baeuerle | Files touched by this commit (1)
Log message:
devel/smake: Whitespace corrected (space removed)

Found by pkglint.