Christophe de Dinechin
ff92a7386f
Replace OBJ_EXT with EXT.obj and similar for other extensions
...
This will allow to make the code dealing with extensions more generic in the
future.
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2020-09-01 22:04:53 +02:00
Christophe de Dinechin
57de2052a5
Fix typo in pkgconfig.pcrule generation fo includedir
...
Signed-off-by: Christophe de Dinechin <dinechin@redhat.com>
2020-07-06 10:31:44 +02:00
Christophe de Dinechin
ab18d4ba1f
Place -I options from configuration behind project's
...
Discovered that while compiling on a machine where some package had
installed a header file in `/usr/local/include` with the same name as
a header in the project.
With the old rules, the command line looked like:
-I/usr/local/include ... -I/project/include
where the first option came from some pkg-config output.
This caused compilation-errors, since the `/usr/local/include` header
was preferred over the project's.
2020-03-04 21:22:56 +01:00
Christophe de Dinechin
536df86ed1
Fix typo in dependency rule for .cc files (.ccc -> .cc)
2019-05-03 19:13:55 +02:00
Christophe de Dinechin
7a3a86be7c
Fix the -rpath opption on Linux
...
On Linux, -rpath must also be given on the executable
(On macOS where I first tested, it's sufficient to use it on the libraries)
2019-04-12 22:37:35 +02:00
Christophe de Dinechin
34b4ba8909
Add RECURSE_FLAGS_xyz when building a subdirectory
...
This makes it possible to pass directory-dependent flags,
for example disabling tests in 'somedir' using:
RECURSE_FLAGS_somedir= RUN_TESTS=
2019-04-01 23:11:00 +02:00
Christophe de Dinechin
1f845c7ee5
Do not rebuild target product every time
...
The final product was rebuilt every time because of the rule
to create the output directory. Made it an order-only dependency.
2019-04-01 22:58:47 +02:00
Christophe de Dinechin
5146122af7
Automatic copyright header adjustment
2019-03-22 16:43:14 +01:00
Christophe de Dinechin
6c4528ab6f
Whitespace normalization
2019-03-19 15:58:14 +01:00
Christophe de Dinechin
c8aa5562e5
Follow GNU guidelines regarding GPLv3
...
- Rename LICENSE to COPYING
- Add recommended header in each file
2019-03-18 11:10:18 +01:00
Christophe de Dinechin
8031dd771f
Add support for DOC_INSTALL
...
Follow the pattern of %doc on Fedora
2019-03-18 11:10:18 +01:00
Christophe de Dinechin
08959dbd71
Restore SHR_INSTALL in list of items to install
2019-03-18 11:10:18 +01:00
Christophe de Dinechin
246604d8c3
Make sure that what we install is built before we try installing it
...
For example, a header may be generated, and needs to be built
before we can install it.
2019-03-18 11:10:18 +01:00
Christophe de Dinechin
b55b6b8694
If make-it-quick is installed, don't update MIQ path as we go
2019-03-12 14:02:27 +01:00
Christophe de Dinechin
14a2be96b0
Add support for man page generation and installation
...
Man pages are installed gzipped by default, and can be generated
from .pod files using pod2man.
2019-03-12 14:02:27 +01:00
Christophe de Dinechin
ec4c992ffe
Install support files without execute permission
...
This is mostly to avoid getting warnings from fedpkg
2019-03-09 13:48:45 +01:00
Christophe de Dinechin
29a1312825
Split install directories from prefix directories
...
Earlier, $(PREFIX_LIB) would be the path for libraries,
but also for installation. That led makefiles to adjusting
the prefix in order to install in some subdirectory.
That does not work in a distro setup where PREFIX_BIN
and the like are provided by the build environment,
and represent the base of that build environment.
2019-03-09 13:48:45 +01:00
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