Commit Graph

169 Commits

Author SHA1 Message Date
Christophe de Dinechin fd9c4a2afb Fix order-only so that it does not introduce hard dependencies
With pre-3.80 make, the rules would introduce hard dependencies
instead of order-only dependencies, leading to a complete rebuild
of everything with every 'make'
2018-05-09 11:36:06 +02:00
Christophe de Dinechin 77b5010339 Pass MIQ variable to children make 2018-05-09 11:35:38 +02:00
Christophe de Dinechin bb93d3fb7a Fix the passing of the -rpath option to the linker 2018-04-13 16:20:54 +02:00
Christophe de Dinechin 5bcfdb969d Verify the installation step in the gitlab CI 2018-04-13 15:24:51 +02:00
Christophe de Dinechin c691f04167 Add check for the 'sigaction' function
This check is easier to get in autoconf than a test for struct sigaction.
It's also more complete, since the recorder actually needs the function.
2018-04-13 15:19:18 +02:00
Christophe de Dinechin 5cda3e208b Lookup the configuration files in the right spot if MIQ not installed 2018-04-13 15:17:08 +02:00
Christophe de Dinechin 65c65d32dd Add HEADERS variable 2018-04-12 13:17:21 +02:00
Christophe de Dinechin 91c679f114 Add documentation on how to use Make-It-Quick as submodule 2018-04-12 12:39:36 +02:00
Christophe de Dinechin fc6eb82353 Remove extraneous trailing / in include path 2018-04-12 12:39:36 +02:00
Christophe de Dinechin d6cd86f615 Add more config checks (lifted from SPICE/gtk) 2018-04-12 12:39:36 +02:00
Christophe de Dinechin 0ae490d5fd Add results from pkg-config to config.h 2018-04-12 12:39:36 +02:00
Christophe de Dinechin 6dd6537407 Add a check for alloca() (moved from SPICE/common) 2018-04-10 19:11:34 +02:00
Christophe de Dinechin 87ba839cdd Simplify rules for the dependencies 2018-04-10 18:56:25 +02:00
Christophe de Dinechin 0ab021d64b A better way to run tests 2018-04-10 18:42:35 +02:00
Christophe de Dinechin e7c15a35ae Add better libtool support in config.gnu.mk
When LIBTOOL is set, then we use libtool all the way.
Otherwise, we manually perform the compile/link stages.
2018-04-10 18:40:00 +02:00
Christophe de Dinechin b678656455 Add support for generating pkg-config files 2018-04-10 18:37:37 +02:00
Christophe de Dinechin 2bcd0c9bcf Makefile rules refactoring - MIQ namespace + solidity
A number of changes in this commit:

1. Variable namespace cleanup:
   Rename non-configurable variables as MIQ_XYZ.

2. Internal target namespace cleanup
   Rename intermediate targets to begin with a dot (.)
   For example .build, .prebuild, etc.
   This impacts makefiles that hook for example to prebuild
   (now they need to hook to the .prebuild target)

3. Target, variant and build-environment variables names
   For example, dependencies on $(TARGET) moved from DEFINES_xyz
   to DEFINES_TARGET_xyz instead of DEFINES_xyz, and same thing
   for includes, sources, etc.

4. Protection of special user-level top-level targets
   A target like log-% no longer interferes with a file name such
   as log-file.c

5. Better support for multiple products
   When building foo.exe and bar.lib, there can be different
   sources for each project, i.e. $(SOURCES_foo) and $(SOURCES_bar).
2018-04-10 18:37:27 +02:00
Christophe de Dinechin 6fb78fe4ed Remove empty line 2018-04-04 12:15:54 +02:00
Christophe de Dinechin d2b03b4031 Use a wildcard for the list of configuration files to install 2018-04-04 10:32:09 +02:00
Christophe de Dinechin e0de7fd034 Install configuration sources
The configuration sources are installed in /usr[/local]/lib/make-it-quick
The config.local-setup.mk contains installation-dependent setup.
2018-04-04 10:32:09 +02:00
Christophe de Dinechin 198ad6420d Change project name to 'Make-it-Quick', and make it installable
This simplifies the management of projects using make-it-quick by
putting the makefile include files in a shared location
(typically /usr/local/include/make-it-quick)
2018-04-04 10:32:09 +02:00
Christophe de Dinechin 4d77ac826f Copyright update for 2018 2018-04-04 10:31:11 +02:00
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