This is very similar to the problem with headers, except that in this case,
the variables for installation override were missing.
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
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>
Since DYLD_LIBRARY_PATH does not work on Big Sur, it is necessary to use a
heavier hammer. So for development targets, we set the rpath to include testing
paths, which make it "work". A bit ugly.
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
- 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>
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>
This is part of the ongoing effort to clarify the variable names.
These variables could be modifed by the environment.
Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
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>
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.
MinGW now seems to be able to cope with the -rpath option in ld.
However, it's necessary to place LDFLAGS after objects, as observed
with BUILDENV-specific LDFLAGS, i.e. LDFLAGS_BUILDENV_mingw=-lregex
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
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).
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)