Christophe de Dinechin
2b7ddbe26f
Add 'reformat' alias for 'clang-format' since I naturally typed it twice already
2018-04-04 10:31:11 +02:00
Christophe de Dinechin
9f78375264
Add clang-format rule to reformat source files
2018-04-04 10:31:11 +02:00
Christophe de Dinechin
5eca8a01aa
Add more checks for recent versions of MinGW
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
5d385379e2
Avoid a warning with -fPIC on MinGW
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
f4715b4916
Cygwin is strange, and actually requires .a extension for libraries
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
faac4b1e05
DLL extension for Cygwin must be .dll for things to work OK
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
16943ff6a2
Make cygwin inherit directly from GNU instead of MinGW
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
0a4e651300
Do not use rpath on mingw
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
6f173149a9
Recent versions of MinGW have grep --line-buffered, restoring
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
a2e9094513
Add preliminary MSYS support
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
15738f7504
Add YouTube video
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
b236f6cffe
Add link to SPICE build
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
218dc2c82e
Update README with tips on how to build
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
8e826a885a
Fix location for the build output
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
0317d1ea97
Fix the colorize target
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
37f7dc4f9d
Make sure that LDFLAGS are set when running configuration steps
...
This is necessary for example when specific flags are required to
find a library in a configuration rule, e.g. LDFLAGS=/some/path
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
856fca299e
Correctly generate pkg-config.mk when CONFIG=libX but no PKGCONFIGS
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
9d72c7ebfc
Add SYSCONFIG path, defaults to /etc
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
32982f98c6
When cleaning, also clean libraries
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
e19bbc0a79
Reference library directories correctly
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
c1cc66ade3
Add -Wl,-rpath option to standard GNU ld
...
(This differs from macOS where -rpath is a gcc driver option)
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
172dbe84d6
Make the build for libraries more robust in case of mis-spelling
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
502d12b9b6
Cleanup variants
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
472c390157
Put the /dev/null in $(CAT)
...
Also do not build library checks with $(CFG_CFLAGS), because they are
neither needed nor available at that point.
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
4d5957d73d
Fix test environment TEST_ENV for `make test`
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
547bc93ad3
Fix passing of libraries during test
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
00942dc77a
Restrict variable names when transforming cfg.h into cfg.mk
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
3d95749be5
Remove useless variables
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
3821686b85
Show variant information in [BEGIN] and [END] steps
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
96d1e61a61
Better install process
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
13ceb48407
Cleanup cleanup rules
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
7530c15a96
Document PKGCONFIGS
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
7a79b726c1
Recent changes to GNU simplify the macosx rules
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
49adc492f5
Do not add LDFLAGS when building static libraries
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
c15ff77bf4
Allow paralllel builds for configuration steps (defer after variants resolved)
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
9da269b646
Disable configuration steps before actually building
...
This ensures that configuration steps are properly logged in make.log
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
4eab5b04b5
Remove extra / in top level .mkdir
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
34075d3782
Remove extra / in $(PREFIX)share
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
4cba1dc07f
Avoid extra / after $(OUTPUT)
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
dc429be3b2
Avoid adding / in $(OBJDIR)
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
b6e7ccf05d
Change location for build outputs to something more practical for daily use
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
8d0b734e70
Add TOP variable to indicate top-level directory
...
This makes the output file organization cleaner in case where the
'build' directory is not itself at the top-level.
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
671883dbf1
pkg-config results must be in OBJDIR, not OBJROOT
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
cb6b38ad72
Extract link libraries from CONFIG libX entries
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
332be643c7
Put variants as part of configuration phase rather than libraries
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
a4398bbd79
Clarify order of targets in parallel builds
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
3d675e35fb
Add support for optional pkg-config entries
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
c199342ed4
Add check for strtok_r
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
7f5780099c
Add -fPIC to standard flags
2018-04-04 10:21:04 +02:00
Christophe de Dinechin
24eff2112b
Workaround a bug in GNU make when reloading generated makefiles
...
The problem was discovered testing parallel builds.
The configuration rules depend on generated pkg-config.mk files.
However, experimentally, variables set in these files are not
correctly reloaded in rules declared in other variables.
Specifically, $(CFLAGS_PKGCONFIG) was not re-expanded after being
modified, which led to configuration builds to lack the required
flags, causing false configuration step failures.
The flags are now explicitly listed using $(shell cat...), which
is a little bit more expensive during the configuration step, but
ensures that the flags are correctly seen. Note that at that stage,
the dependency ensures that all the files were built correctly.
2018-04-04 10:21:04 +02:00