bug#43607: Failed to install guile 3 in Mac OS

"Walter H. Yang" <[email protected]>
Newsgroups gmane.lisp.guile.bugs
Message-ID <CAATsUuXyDAGzboSo497m6dvcoobWh7UZS571CMNdZEib5pf+2g@mail.gmail.com>
Hi Guile

I'm trying to compile guile 3 from source code under Mac OS 10.15 with
macports, because the 3.0 version is not available in macports. after
compiled bdwgc from the source code, I can compile guile 3 successfully,
but it failed at 'make install' with the following error:

Must remake target `install-data-hook'.

Putting child 0x7f8549f04450 (install-data-hook) PID 98725 on the chain.

Live child 0x7f8549f04450 (install-data-hook) PID 98725

Reaping winning child 0x7f8549f04450 PID 98725

Live child 0x7f8549f04450 (install-data-hook) PID 98726

 /usr/bin/install -c -m 644 libguile-3.0-gdb.scm
/opt/local/lib/libguile-3.0.a-gdb.scm

*sed: -e: No such file or directory*

Reaping losing child 0x7f8549f04450 PID 98726

make[3]: *** [install-data-hook] Error 1

Removing child 0x7f8549f04450 PID 98726 from chain.

Reaping losing child 0x7f9c9e723fb0 PID 98724

make[2]: *** [install-data-am] Error 2

Removing child 0x7f9c9e723fb0 PID 98724 from chain.

Reaping losing child 0x7f89e501d110 PID 98618

make[1]: *** [install-am] Error 2

After a while of digging into the Makefile, I found out it caused by the
'sed -i -e ..." for:

libguile/Makefile.am:


## Instantiate a template.

INSTANTIATE =
    \

*  $(SED) -i -e 's,[@]pkgdatadir[@],$(pkgdatadir),g'
      \*

            -e 's,[@]pkglibdir[@],$(pkglibdir),g'
    \

            -e
's,[@]GUILE_EFFECTIVE_VERSION[@],$(GUILE_EFFECTIVE_VERSION),g'
...

install-data-hook: libguile-@[email protected]
...

        echo " $(INSTALL_DATA) $<                               \

$(DESTDIR)$(libdir)/$$libname-gdb.scm";                         \

        $(INSTALL_DATA) "$<"                                    \

            "$(DESTDIR)$(libdir)/$$libname-gdb.scm";            \

        $(INSTANTIATE) "$(DESTDIR)$(libdir)/$$libname-gdb.scm"


The /usr/bin/sed on Mac OS 10.15, the BSD sed, it's a bit different from
the sed on Linux, the "-i" option must be followed a SUFFIX option.


Simply, change it to sed -i "" -e ... works for me, there would be a better
solution for it.


Thanks

Hong
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.