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-@GUILE_EFFECTIVE_VERSION@-gdb.scm

...

        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