Skip to content

Sane and portable Makefile #4

@drbig

Description

@drbig

The big question:

Is there a sane way to make a Makefile smart-enough to figure out whether it should call ncursesw5-config or ncursesw6-config, or to report a human-readable error when it doesn't know how to deal with that, without resorting to contraptions like autotools.

Second question:

Is it possible to do a single, portable Makefile - i.e. one that will work on Linuxes and BSD/OS X (perhaps only when invoked with gmake, but that would be acceptable).

Third question:

My opinion right now is that the compiler and linker flags should at the same time be: as strict on errors as possible; and as non-assuming as possible. This is not currently the case, as there are some optimisation/hardening flags on and -Wno-implicit-function-declaration (presumably to deal with ncurses weirdness).

I'm tempted to remove the additional flags because:

  • They assume compiler features to be present
  • Any 'sane' build system should apply such flags anyway (e.g. ArchLinux's makepkg, BSD ports (if snb ever gets there)) - in a way that's actually appropriate for the particular platform

The above approach is debatable, so I'm leaving the flags as-is.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions