[MacPorts] #54124: guile @2.2.2 won't build on PPC Leopard, Mac OS X 10.5.8, because is uses non-existing /lib/cpp as C preprocessor
MacPorts
noreply at macports.org
Tue Sep 8 22:14:40 UTC 2020
#54124: guile @2.2.2 won't build on PPC Leopard, Mac OS X 10.5.8, because is uses
non-existing /lib/cpp as C preprocessor
------------------------+---------------------------------------
Reporter: ballapete | Owner: kencu
Type: defect | Status: closed
Priority: Normal | Milestone:
Component: ports | Version: 2.4.1
Resolution: fixed | Keywords: tiger leopard snowleopard
Port: guile |
------------------------+---------------------------------------
Comment (by ballapete):
Why are the pre-built GO files rebuilt?
The toplevel `Makefile`, in `${worksrcpath}`, has around line # 1700:
{{{
SUBDIRS = \
lib \
meta \
libguile \
bootstrap \
module \
guile-readline \
examples \
emacs \
test-suite \
benchmark-suite \
gc-benchmarks \
am \
doc
}}}
So there is a strict order in which `Guile` is being built. In target
`$(am__recursive_targets):` we find this recipe around line # 1870:
{{{
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
}}}
Make echos what it will perform in which sub-directory and then does
perform this, i.e. a `make all`. So we enter `${worksrcpath}/bootstrap`.
The `Makefile` here has:
(((
all: all-am
}}}
`=>`
(((
all-am: Makefile $(DATA)
}}}
where DATA is defined as:
{{{
DATA = $(nobase_noinst_DATA)
}}}
`=>`
(((
nobase_noinst_DATA = $(GOBJECTS)
}}}
which are
{{{
GOBJECTS = $(SOURCES:%.scm=%.go)
}}}
The SOURCES are 93 SCM files. More important is the compilation rule from
SCM to GO: `%.scm=%.go` which is:
{{{
.scm.go:
$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \
$(top_builddir)/meta/build-env \
guild compile --target="$(GUILE_TARGET)" \
$(GUILE_WARNINGS) $(GUILE_OPTIMIZATIONS) \
-L "$(abs_top_srcdir)/module" \
-L "$(abs_top_srcdir)/guile-readline" \
-o "$@" "$<"
}}}
and appears as, just one example for the first source SCM file:
{{{
GUILE_AUTO_COMPILE=0 \
../meta/build-env \
guild compile --target="powerpc-apple-darwin9" \
-O1 \
-L
"/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7/module"
\
-L
"/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_guile/guile/work/guile-2.2.7
/guile-readline" \
-o "ice-9/eval.go" "../module/ice-9/eval.scm"
wrote `ice-9/eval.go'
}}}
`../meta/build-env` sets for example `${worksrcpath}/libguile` as leading
element in `$PATH`. This directory contains shell scripts `guild` and
`guile`.
For me these 93 bootstrap GO file are built unconditionally. (I am going
to check what is happening on x86_64 hardware.)
--
Ticket URL: <https://trac.macports.org/ticket/54124#comment:68>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list