Commit Graph

147 Commits

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