Christophe de Dinechin
caf1021828
Tentatively restore the dependency post-processing code that had been removed
2018-11-19 18:59:32 +01:00
Christophe de Dinechin
2037bcc92c
Avoid running tests when no 'test' or 'check' target is invoked
2018-11-19 10:30:18 +01:00
Christophe de Dinechin
86fd196813
Repair the test target
...
Add .build target to MIQ_BUILD_TEST explicitly, to avoid one extra
step that introduces a circular dependency which breaks the test build.
2018-10-27 13:12:40 +02:00
Christophe de Dinechin
741ce2047c
Simple implementation of the 'dist' rule
...
This is for better compatibility with automake-generated makefiles.
It generates a distribution tar file.
2018-09-20 15:49:53 +02:00
Christophe de Dinechin
4b5a42369d
Add installcheck target for compatibility with automake-generated makefiles
...
This target at the moment does the same thing as check. There is no
real provision at the moment for checking the installation.
2018-09-20 15:49:06 +02:00
Christophe de Dinechin
f6b87eda37
Implement the uninstall target
...
This is to improve compatibility with automake
2018-09-20 15:49:06 +02:00
Christophe de Dinechin
425b400d69
Do not emit -L option in package if no library
...
A package like spice-protocol does not generate any library,
only headers, so emitting -L option generates warnings in user packages.
2018-06-19 18:38:00 +02:00
Christophe de Dinechin
b42abcf3cc
Add ability to put different package headers than install path
...
The SPICE protocol package installs headers in /usr/include/spice-1/spice,
but then returns -I/usr/include/spice-1, the code using #include <spice/blah.h>
So adding one level of indirection to deal with that case.
2018-06-19 18:19:44 +02:00
Christophe de Dinechin
a71249c34d
Avoid passing full names when linking LIBRARIES
...
While it's OK to link a library by giving its .a name, it doesn't
work well when linking with a .so, since it encodes the full path
of the .so name in the result
2018-06-15 09:38:35 +02:00
Christophe de Dinechin
10c7dcd30d
Add colorized output of configuration result
2018-06-14 17:39:09 +02:00
Christophe de Dinechin
0e8c83820b
Add support for shared-library versioning
2018-06-14 17:39:09 +02:00
Christophe de Dinechin
46ff3609e1
Make it possible to run the tests from local MIQ
2018-05-17 15:50:41 +02:00
Christophe de Dinechin
b49f74f58b
Fix the execution of tests
2018-05-17 14:30:36 +02:00
Christophe de Dinechin
261186169a
Make sure we create the output directory when building, fixes #1
...
Reported-by: Jochen Becher <jochen_becher@gmx.de>
2018-05-17 14:30:36 +02:00
Christophe de Dinechin
7a7040ceff
Do not generate a variant when building a library
2018-05-15 16:33:11 +02:00
Christophe de Dinechin
3edf56abd4
Write 'Error' in a way that our 'Error:' grep does not find it
...
Otherwise, the error reporting at end of build erroneously reports a number
of errors by scanning the build log.
2018-05-14 16:21:23 +02:00
Christophe de Dinechin
0dd26e708d
Do not disable printing directories by default
2018-05-14 16:14:19 +02:00
Christophe de Dinechin
044d38528c
Ensure that we print where we build before configuring
2018-05-09 11:36:20 +02:00
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
65c65d32dd
Add HEADERS variable
2018-04-12 13:17:21 +02:00
Christophe de Dinechin
fc6eb82353
Remove extraneous trailing / in include path
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
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
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
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
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
32982f98c6
When cleaning, also clean libraries
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
547bc93ad3
Fix passing of libraries during test
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
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
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