Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
This is more like a beta than a release candidate. Will make changes
based on feedback from some testers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also, use default abbreviation length, so that abbreviated object name in
VERSION would match github's display of commit IDs.
|
|
PR #98 hints that we were venturing into downstream's territory: compiler and
linker flags may be OS-specific, while preprocessor flags and libraries are our
responsibility. Provide clean separation between these categories.
Downstreams may still need to provide "--std=c99" in CFLAGS though.
|
|
|
|
When '--as-needed' linker flag is added to LDFLAGS, linker strips out
the symbols from the libraries needed for the tests due to the order
in which the libraries appear on the command line. List the source
files before the libraries to fix the linking issue.
For more information, see:
https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed#Importance_of_linking_order
Signed-off-by: Göktürk Yüksek <gokturk@gentoo.org>
|
|
|
|
Previously imv used -std=gnu11 flag which activated GNU "extensions" of C11
standard. This masked a portability issue in imv: strduo(3) should not have
been visible in `src/loader.c` without inclusion of `<string.h>` header. This
have been fixed. To remidy GNU libc's stange choice to hide X/Open interfaces
in C99 code by default _XOPEN_SOURCE macro was also set. (This should have no
effect on most other platforms.)
|
|
|
|
|
|
|
|
When operating in git repo, build system will include abbreviated git hash in
imv version number. If there is no git repo around (eg. building from tarball),
fall back to version number in Makefile.
Fixes #90
|
|
|
|
for i in "..."; do ...; done ideom guarantees single iteration with $i set to
everything between "in" and ';'.
|
|
|
|
|
|
|
|
It was introduced to make object files depend on $(BUILDDIR) so that creating it
could be moved into separate rule, executed once. That was a bad idea, because
"obj" had to be phony, thus making all targets that depend on it obsolete
between runs of make. This change introduces order-only rule that makes object
files depend on $(BUILDDIR) without obsoleting other targets.
|
|
Recursively expanded variables (VAR = CONTENT) are evaluated when used. Simply
extended variables (VAR := CONTENT) are expanded immediately, and remain stable
throughout lifetime of the process, reducing fragility of build system.
|
|
* Allow building off read-only source tree.
* Allow setting build directory from environment.
These changes allow parallel building of imv for multiple architectures, which
is used by package management systems of some operating systems.
|
|
|
|
|
|
If V variable is set to any value, commands will be echoed to standard output.
|
|
This might be desired when platform has its own, custom layout (eg. OpenBSD or
Solaris), or when user wants to install the program to his home directory.
|
|
When CFLAGS contain "`cmd`" construct, the "cmd" command is executed every time
when make issues shell command with expanded CFLAGS. Using "$(shell cmd)"
instead forces make to expand output of "cmd" into CFLAGS.
|
|
Some package management systems allow users to set default CFLAGS and LDFLAGS
and then supply them to the make via environment. This change makes build
infrastructure respect such settings.
Also, don't force non-essential flags.
|
|
Most package management systems already expect "PREFIX" macro to control
installation path.
|
|
|
|
|
|
|
|
|
|
The linking argument isn't strictly needed, since SDL pulls that in, but
there's no harm in manually specifying it for people reading the
Makefile to see.
|
|
|
|
|
|
TODO: The font needs to be configurable with an option.
Refs #35
|
|
|
|
|
|
|
|
|
|
|