aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile.in
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.in')
-rw-r--r--Makefile.in29
1 files changed, 25 insertions, 4 deletions
diff --git a/Makefile.in b/Makefile.in
index 7d3f54a738..8a1271c7ab 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -560,9 +560,26 @@ mjit_config.h:
$${1+printf} $${1+' "%s"'$$sep} $${1+"$$@"}; \
echo; \
}; \
- archs="$(UNIVERSAL_ARCHNAMES)"; \
- archs="$${archs:-$(ARCH_FLAG:-arch=)}"; \
+ parse_arch_flag() { \
+ while [ "$$#" -gt 0 ]; do \
+ case "$$1" in \
+ -arch) \
+ shift; \
+ archs="$${archs:+$$archs }$$1"; \
+ shift; \
+ ;; \
+ *) \
+ arch_flag="$${arch_flag:+$${arch_flag} }$$1"; \
+ shift; \
+ ;; \
+ esac; \
+ done; \
+ }; \
test "$(Q)" = @ || set -x; \
+ archs="$(UNIVERSAL_ARCHNAMES)"; \
+ arch_flag=""; \
+ parse_arch_flag $(ARCH_FLAG); \
+ need_mjit_archflag="$${archs}$${arch_flag}"; \
echo '#ifndef RUBY_MJIT_CONFIG_H'; \
echo '#define RUBY_MJIT_CONFIG_H 1'; \
echo; \
@@ -570,17 +587,21 @@ mjit_config.h:
quote MJIT_MIN_HEADER_NAME "/$(MJIT_HEADER_INSTALL_DIR)/$(MJIT_MIN_HEADER_NAME)"; \
sep=,; \
quote "MJIT_CC_COMMON " $(MJIT_CC); \
- quote "MJIT_CFLAGS $${archs:+ MJIT_ARCHFLAG}" -w; \
+ quote "MJIT_CFLAGS $${need_mjit_archflag:+ MJIT_ARCHFLAG}" -w; \
quote "MJIT_OPTFLAGS " $(MJIT_OPTFLAGS); \
quote "MJIT_DEBUGFLAGS " $(MJIT_DEBUGFLAGS); \
quote "MJIT_LDSHARED " $(MJIT_LDSHARED); \
- quote "MJIT_DLDFLAGS $${archs:+ MJIT_ARCHFLAG}" $(MJIT_DLDFLAGS); \
+ quote "MJIT_DLDFLAGS $${need_mjit_archflag:+ MJIT_ARCHFLAG}" $(MJIT_DLDFLAGS); \
quote "MJIT_LIBS " $(LIBRUBYARG_SHARED); \
$${archs:+echo} $${archs:+'#if 0'}; \
for arch in $$archs; do \
echo "#elif defined __$${arch%=*}__"; \
quote " MJIT_ARCHFLAG " -arch $${arch%=*}; \
done; \
+ $${archs:+echo} $${archs:+'#else'}; \
+ if [ "$${arch_flag}" != "" ]; then \
+ quote " MJIT_ARCHFLAG " $${arch_flag}; \
+ fi; \
$${archs:+echo} $${archs:+'#endif'}; \
echo; \
echo '#endif /* RUBY_MJIT_CONFIG_H */'; \