Commit Graph

297 Commits

Author SHA1 Message Date
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