Christophe de Dinechin
1ca933bf93
install: Do not evaluate .install unless we are installing
...
Since `.install` has directory dependencies on the install directories, this
results in attempts to create directories even if you don't install.
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2021-11-26 18:30:36 +01:00
Christophe de Dinechin
e5fd9fe039
install: Fix creation of shared library symbolic links
...
When installing a shared library, make sure we actually create the symbolic
links for major and minor versions.
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2021-03-04 09:41:48 +01:00
Christophe de Dinechin
085a0856ee
Refactor installation
...
- Avoid installing files that are already installed
- Use the .ext conventions for the variables names
- Only create install targets for things to install
- Create a new `INSTALLABLE` variable
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2021-02-12 12:10:41 +01:00
Christophe de Dinechin
f717241a47
Colorize test results even if at top-level
...
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2021-02-11 13:07:16 +01:00
Christophe de Dinechin
fecb3057e0
Colorize generate steps even when generating makefiles
...
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2021-02-11 08:13:16 +01:00
Christophe de Dinechin
16ab4de4f8
colorization: Put colorization of config in COLORIZE
...
Also standardize the size of the output of the various steps.
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2021-02-10 23:11:48 +01:00
Christophe de Dinechin
df4c924ff6
More renaming using the .ext convention
...
Changed more variables with the convention to use .ext rather than _EXT.
For example, replace PREFIX_DLL with PREFIX.dll.
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2020-12-18 20:51:12 +01:00
Christophe de Dinechin
13ef51b35c
Repair installation of DLLs
...
The INSTALL_DLL variable was replaced with INSTALL.dll
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2020-12-18 20:02:58 +01:00
Christophe de Dinechin
dce5f235b7
Replace [BUILD] with [LINK] in the output
...
This is more standard
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2020-09-02 00:53:45 +02:00
Christophe de Dinechin
42a0bb0ac2
Make the COMPILE and LINK build steps more generic
...
By using names like COMPILE.c and LINK.lib, this will make it easier to
generate build rules more easily based on extensions
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2020-09-02 00:44:09 +02:00
Christophe de Dinechin
445cae64ae
Rename OBJFILES to BUILD
...
This is more consistent with having simple names for variables. Also, this
contains all the build intermediate products, not just object files.
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2020-09-01 22:11:55 +02:00
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