icecc / icecream

Distributed compiler with a central scheduler to share build load
GNU General Public License v2.0
1.58k stars 248 forks source link

`make DESTDIR` broken #612

Open Zalewa opened 1 year ago

Zalewa commented 1 year ago

Problem 1: make DESTDIR=../AAA install will install to AAA, not ../AAA

$ file AAA
AAA: cannot open `AAA' (No such file or directory)

$ file ../AAA
../AAA: cannot open `../AAA' (No such file or directory)

$ make DESTDIR=../AAA install
Making install in services
(logs ...)

$ file ../AAA
../AAA: cannot open `../AAA' (No such file or directory)

$ file AAA
AAA: directory

Notably, wget 1.21.3 has an identical problem, but zlib 1.2.13 does it as expected - the AAA directory is created at ../AAA.

Problem 2: make DESTDIR fails when the directory is not absolute:

$ make DESTDIR=AAA install
Making install in services
make[1]: Wejście do katalogu '/data/foss/icecc/_build/icecream-debug/services'
make[2]: Wejście do katalogu '/data/foss/icecc/_build/icecream-debug/services'
 /bin/mkdir -p 'AAA/opt/icecc/icecream_debug_amd64/lib'
 /bin/sh ../libtool --silent  --mode=install /usr/bin/install -c   libicecc.la 'AAA/opt/icecc/icecream_debug_amd64/lib'
Usage: /data/foss/icecc/_build/icecream-debug/libtool [OPTION]... [MODE-ARG]...
Try 'libtool --help' for more information.
libtool:   error: 'AAA/opt/icecc/icecream_debug_amd64/lib' must be an absolute directory name
make[2]: *** [Makefile:452: install-libLTLIBRARIES] Błąd 1
make[2]: Opuszczenie katalogu '/data/foss/icecc/_build/icecream-debug/services'
make[1]: *** [Makefile:777: install-am] Błąd 2
make[1]: Opuszczenie katalogu '/data/foss/icecc/_build/icecream-debug/services'
make: *** [Makefile:429: install-recursive] Błąd 1

Workaround: Run it with an absolute path like this: make DESTDIR=$(cd .. && pwd)/AAA install