make install target does not work on FreeBSD #45

Closed
opened 2024-08-22 01:37:10 +00:00 by Levitating · 1 comment
Contributor

The current make install target uses install -D to create leading components when install into a directory.

Lines 218 to 220 in dcbb488
${TAB}install -D ${OUT}/lib/${LIB_NAME}.o \$(PREFIX)/lib/${LIB_NAME}.o
${TAB}install -D ${OUT}/lib/lib${LIB_NAME}.a \$(PREFIX)/lib/lib${LIB_NAME}.a
${TAB}install -D ${OUT}/lib/lib${LIB_NAME}.so \$(PREFIX)/lib/lib${LIB_NAME}.so

This doesn't work on some variants of install(1).
See the FreeBSD install(1) where -d is used for the same purpose.

root@freebie:~/Cytoplasm # make install
install -D out/lib/libCytoplasm.a /usr/local/lib/libCytoplasm.a
usage: install [-bCcpSsUv] [-f flags] [-g group] [-m mode] [-o owner]
               [-M log] [-D dest] [-h hash] [-T tags]
               [-B suffix] [-l linkflags] [-N dbdir]
               file1 file2
       install [-bCcpSsUv] [-f flags] [-g group] [-m mode] [-o owner]
               [-M log] [-D dest] [-h hash] [-T tags]
               [-B suffix] [-l linkflags] [-N dbdir]
               file1 ... fileN directory
       install -dU [-vU] [-g group] [-m mode] [-N dbdir] [-o owner]
               [-M log] [-D dest] [-h hash] [-T tags]
               directory ...
*** Error code 64

Stop.
make: stopped in /root/Cytoplasm
The current make `install` target uses `install -D` to create leading components when install into a directory. https://git.telodendria.io/Telodendria/Cytoplasm/src/commit/dcbb488f7df8dae9dbaa3a06b580aaf49c6117c0/configure#L218-L220 This doesn't work on some variants of `install(1)`. See the [FreeBSD install(1)](https://man.freebsd.org/cgi/man.cgi?query=install&apropos=0&sektion=0&manpath=FreeBSD+14.1-RELEASE+and+Ports&arch=default&format=html) where `-d` is used for the same purpose. ``` root@freebie:~/Cytoplasm # make install install -D out/lib/libCytoplasm.a /usr/local/lib/libCytoplasm.a usage: install [-bCcpSsUv] [-f flags] [-g group] [-m mode] [-o owner] [-M log] [-D dest] [-h hash] [-T tags] [-B suffix] [-l linkflags] [-N dbdir] file1 file2 install [-bCcpSsUv] [-f flags] [-g group] [-m mode] [-o owner] [-M log] [-D dest] [-h hash] [-T tags] [-B suffix] [-l linkflags] [-N dbdir] file1 ... fileN directory install -dU [-vU] [-g group] [-m mode] [-N dbdir] [-o owner] [-M log] [-D dest] [-h hash] [-T tags] directory ... *** Error code 64 Stop. make: stopped in /root/Cytoplasm ```
Author
Contributor

This appears to be a duplicate of issue #13 which wasn't completely fixed by 08166dd3a7.

This appears to be a duplicate of issue #13 which wasn't completely fixed by https://git.telodendria.io/Telodendria/Cytoplasm/commit/08166dd3a77609b7a87e618f42099bbfd346204c.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Telodendria/Cytoplasm#45
No description provided.