Work around shell syntax error on Solaris
The shell in Solaris 10 has trouble understanding the syntax I used in YJIT's library merging script. This commit reduces the code the shell needs to parse before exiting on non-YJIT builds to hopefully fix the error on Solaris.
This commit is contained in:
parent
840dbe1cbf
commit
c466f270b8
Notes:
git
2022-04-28 07:59:33 +09:00
@ -272,6 +272,13 @@ DESTDIR = @DESTDIR@
|
|||||||
configure_args = @configure_args@
|
configure_args = @configure_args@
|
||||||
#### End of variables
|
#### End of variables
|
||||||
|
|
||||||
|
# Shell short-circuiting for dodging syntax error on older shells, e.g.
|
||||||
|
# Solaris. Hack: make sends <backslash><newline> to the shell per POSIX, and
|
||||||
|
# two backslashes stops escaping the newline.
|
||||||
|
YJIT_BUILD_ONLY0 = $(YJIT_SUPPORT:no=exit; \\)
|
||||||
|
YJIT_BUILD_ONLY1 = $(YJIT_BUILD_ONLY0:dev=)
|
||||||
|
YJIT_BUILD_ONLY = $(YJIT_BUILD_ONLY1:yes=)
|
||||||
|
|
||||||
ABI_VERSION_HDR = $(hdrdir)/ruby/internal/abi.h
|
ABI_VERSION_HDR = $(hdrdir)/ruby/internal/abi.h
|
||||||
|
|
||||||
.SUFFIXES: .inc .h .c .y .i .$(ASMEXT) .$(DTRACE_EXT)
|
.SUFFIXES: .inc .h .c .y .i .$(ASMEXT) .$(DTRACE_EXT)
|
||||||
@ -305,15 +312,14 @@ $(LIBRUBY_A):
|
|||||||
@-[ -z "$(EXTSTATIC)" ] || $(PRE_LIBRUBY_UPDATE)
|
@-[ -z "$(EXTSTATIC)" ] || $(PRE_LIBRUBY_UPDATE)
|
||||||
$(ECHO) linking static-library $@
|
$(ECHO) linking static-library $@
|
||||||
$(Q) $(AR) $(ARFLAGS) $@ $(LIBRUBY_A_OBJS) $(INITOBJS)
|
$(Q) $(AR) $(ARFLAGS) $@ $(LIBRUBY_A_OBJS) $(INITOBJS)
|
||||||
$(Q) if [ -f '$(YJIT_LIBS)' ]; then \
|
$(Q) $(YJIT_BUILD_ONLY)\
|
||||||
set -eu && \
|
set -eu && \
|
||||||
echo 'merging $(YJIT_LIBS) into $@' && \
|
echo 'merging $(YJIT_LIBS) into $@' && \
|
||||||
$(RMALL) '$(CARGO_TARGET_DIR)/libyjit/' && \
|
$(RMALL) '$(CARGO_TARGET_DIR)/libyjit/' && \
|
||||||
$(MAKEDIRS) '$(CARGO_TARGET_DIR)/libyjit/' && \
|
$(MAKEDIRS) '$(CARGO_TARGET_DIR)/libyjit/' && \
|
||||||
$(CP) '$(YJIT_LIBS)' '$(CARGO_TARGET_DIR)/libyjit/' && \
|
$(CP) '$(YJIT_LIBS)' '$(CARGO_TARGET_DIR)/libyjit/' && \
|
||||||
(cd '$(CARGO_TARGET_DIR)/libyjit/' && $(AR) -x libyjit.a) && \
|
(cd '$(CARGO_TARGET_DIR)/libyjit/' && $(AR) -x libyjit.a) && \
|
||||||
$(AR) $(ARFLAGS) $@ $$(find '$(CARGO_TARGET_DIR)/libyjit/' -name '*.o') ; \
|
$(AR) $(ARFLAGS) $@ $$(find '$(CARGO_TARGET_DIR)/libyjit/' -name '*.o') ;
|
||||||
fi
|
|
||||||
@-$(RANLIB) $@ 2> /dev/null || true
|
@-$(RANLIB) $@ 2> /dev/null || true
|
||||||
|
|
||||||
verify-static-library: $(LIBRUBY_A)
|
verify-static-library: $(LIBRUBY_A)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user