mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-01-23 02:14:37 +00:00
Commit 6a51c7e ("make: Allow to install in custom dirs") replaced
all := assignments with ?=, effectively disabling the LIBDIR guessing
logic (as once a variable is assigned, further ?= make no sense).
That commit description says that setting PREFIX from make command line
didn't work. I can't find the original bug report but according to
GNU make documentation (see [1], [2]) as well as to my best knowledge,
any variable set in Makefile can be overridden from the command line,
unless "override VAR = value" is used in the Makefile.
The result of this patch is LIBDIR is correctly set for distros such as
Fedora and Debian, so "make install" works more correct. Surely, any
variable can still be overriden from the command line.
I have also checked the build of Fedora package from criu.spec with this
change -- it works fine.
Now, I am not sure why it was not working for the original bug reporter.
The only hypothesis I have is he tried to do something like
PREFIX=/usr make
instead of
make PREFIX=/usr
If this was the case, it was not a bug but wrong usage.
While at it, fix LIBDIR description in INSTALL.md.
[1] https://www.gnu.org/software/make/manual/html_node/Overriding.html
[2] https://www.gnu.org/software/make/manual/html_node/Override-Directive.html
travis-ci: success for Makefile.install fixes
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
56 lines
1.4 KiB
Text
56 lines
1.4 KiB
Text
#
|
|
# Installation paths.
|
|
PREFIX := /usr/local
|
|
BINDIR := $(PREFIX)/bin
|
|
SBINDIR := $(PREFIX)/sbin
|
|
MANDIR := $(PREFIX)/share/man
|
|
SYSTEMDUNITDIR := $(PREFIX)/lib/systemd/system
|
|
LOGROTATEDIR := $(PREFIX)/etc/logrotate.d
|
|
LIBDIR := $(PREFIX)/lib
|
|
INCLUDEDIR := $(PREFIX)/include
|
|
LIBEXECDIR := $(PREFIX)/libexec
|
|
|
|
#
|
|
# For recent Debian/Ubuntu with multiarch support.
|
|
DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null)
|
|
ifneq "$(DEB_HOST_MULTIARCH)" ""
|
|
LIBDIR := $(PREFIX)/lib/$(DEB_HOST_MULTIARCH)
|
|
else
|
|
#
|
|
# For most other systems
|
|
ifeq "$(shell uname -m)" "x86_64"
|
|
LIBDIR := $(PREFIX)/lib64
|
|
endif
|
|
endif
|
|
|
|
export BINDIR SBINDIR MANDIR SYSTEMDUNITDIR LOGROTATEDIR
|
|
export INCLUDEDIR LIBDIR DESTDIR PREFIX LIBEXECDIR
|
|
|
|
install-tree:
|
|
$(Q) mkdir -p $(DESTDIR)$(SYSTEMDUNITDIR)
|
|
$(Q) mkdir -p $(DESTDIR)$(LOGROTATEDIR)
|
|
$(Q) mkdir -p $(DESTDIR)$(INCLUDEDIR)
|
|
$(Q) mkdir -p $(DESTDIR)$(LIBEXECDIR)
|
|
.PHONY: install-tree
|
|
|
|
install-man:
|
|
$(Q) $(MAKE) -C Documentation install
|
|
.PHONY: install-man
|
|
|
|
install-lib: lib
|
|
$(Q) $(MAKE) -C lib install
|
|
.PHONY: install-lib
|
|
|
|
install-criu: criu
|
|
$(Q) $(MAKE) $(build)=criu install
|
|
.PHONY: install-criu
|
|
|
|
install: install-man install-lib install-criu
|
|
@true
|
|
.PHONY: install
|
|
|
|
uninstall:
|
|
$(Q) $(MAKE) -C Documentation $@
|
|
$(Q) $(MAKE) -C lib $@
|
|
$(Q) $(MAKE) -C criu $@
|
|
.PHONY: uninstall
|