Commit Graph

50 Commits

Author SHA1 Message Date
Christophe de Dinechin 4a766a276a config: Make COLORIZE a weak variable
When running `make install COLORIZE=`, unwanted colorization would show up.
I'm not entirely sure when this regression appeared, since I used to do that.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2021-03-04 08:33:07 +01:00
Christophe de Dinechin bdf6542c8b install: Select which kind of files go in package subdirectory
By default, headers, share, doc, license, config and var go into a per-package
subdirectory, i.e. install in `/usr/include/my-package` or
`/usr/local/share/my-ackage`.

Binaries and libraries go at the top of the corresponding directory by default.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2021-02-23 11:11:53 +01:00
Christophe de Dinechin 91591b99f8 colorization: Check pipe status
Commands that were subjected to colorization would lose their exit status.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2021-02-16 11:08:47 +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 de73b3c76e Simplify the color filter
The color filter is now entirely based on the "true &&" prefix for build steps.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2021-02-11 15:32:30 +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 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 5146122af7 Automatic copyright header adjustment 2019-03-22 16:43: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 470dbb60f6 Minor whitespace adjustment 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 46d167ca66 Add PREFIX_SBIN, PREFIX_LIBEXEC and PREFIX_VAR
There are no corresponding installation rules yet
2019-03-18 11:10:18 +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 d4567d429d Add a default PRODUCTS_VERSION 2019-03-11 08:43:01 +01:00
Christophe de Dinechin 42c96f890b Split system-wide setup and local setup
The local setup is used during the build, e.g. includes BUILDROOT.
The system setup is used after installation
2019-03-11 08:43:01 +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 8d288a681b Avoid errors to show up when git fails (tarball case) 2018-09-20 17:18:29 +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 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 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 0dd26e708d Do not disable printing directories by default 2018-05-14 16:14:19 +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 0ae490d5fd Add results from pkg-config to config.h 2018-04-12 12:39:36 +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 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 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 9d72c7ebfc Add SYSCONFIG path, defaults to /etc 2018-04-04 10:21:04 +02:00
Christophe de Dinechin 3d95749be5 Remove useless variables 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 34075d3782 Remove extra / in $(PREFIX)share 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
Christophe de Dinechin 8d0b734e70 Add TOP variable to indicate top-level directory
This makes the output file organization cleaner in case where the
'build' directory is not itself at the top-level.
2018-04-04 10:21:04 +02:00
Christophe de Dinechin b8c5d9776f Add PREFIX_SHARE variable 2018-04-04 10:21:03 +02:00
Christophe de Dinechin 4ce7372146 Add OUTPUT and LOGS environment variables
They used to be called with annoying names that nobody would use
2018-04-04 10:21:03 +02:00
Christophe de Dinechin 981fe36296 Add support for installing header files 2018-04-04 10:21:03 +02:00
Christophe de Dinechin 154ca40451 Fixups for ancient versions of mingw
Tested with mingw32-4.8.2 and make 3.79.1 running on Windows XP
2018-04-04 10:21:03 +02:00
Christophe de Dinechin 5daca154c9 Add support for the `make V=1` convention 2018-04-04 10:21:03 +02:00
Christophe de Dinechin 17c952b837 Add support for DESTDIR, closes #11 2018-04-04 10:21:03 +02:00
Christophe de Dinechin 4cabbde4b4 Change the way standard conformance is specified 2018-04-04 10:20:57 +02:00
Christophe de Dinechin 21f8ba43ec Make COLORIZE overridable 2018-04-04 10:19:39 +02:00
Christophe de Dinechin df15e9dd69 Put config.$(BUILDENV).mk at end to help with variable overrides 2018-04-04 10:19:39 +02:00
Christophe de Dinechin f147fd7689 Remove --line-buffered for MinGW 2018-04-04 10:19:39 +02:00
Christophe de Dinechin 1c3c0e606c Initial state 2018-04-04 10:19:24 +02:00