From 69ac654c90178dce12c3365afbc03447a0fccf78 Mon Sep 17 00:00:00 2001 From: yugui Date: Sat, 11 Oct 2014 02:11:53 +0000 Subject: Merges a patch form naclports. * configure.in (RUBY_NACL and others): Supports PNaCl. * dln.c: replace the old hacky dynamic loading over HTTP with nacl_io. * file.c: tenatively use access(2) instead of eaccess. (rb_file_load_ok): weaken with attribute but not by postprocess. * io.c (socket.h): now NaCl has socket.h (flock): disable here instead of nacl/ioctl.h * nacl/GNUmakefile.in (CC, LD, NM, AR, AS, RANLIB, OBJDUMP, OBJCOPY): respect path to them if they are absolute. This helps naclports to build ruby in their source tree. (PROGRAM_NMF, .SUFFIXES): support .pnexe for PNaCl. (ruby.o, file.o): move the hack to attributes in ruby.c and file.c * nacl/ioctl.h: removed. move the hack to io.c. * nacl/nacl-config.rb: support arm, pnacl and others. * nacl/pepper_main.c: support build in a naclports tree. * ruby.c (rb_load_file): weaken with attribute but not by postprocess. The patch is by sbc@google.com and the Native Client Authors. It is available at: * https://chromium.googlesource.com/external/naclports.git/+/873ca4910a5f9d4206306aacb4ed79c587c6a5f3/ports/ruby/nacl.patch git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- nacl/GNUmakefile.in | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) (limited to 'nacl/GNUmakefile.in') diff --git a/nacl/GNUmakefile.in b/nacl/GNUmakefile.in index c1aaa36c7c..0ad8a29ee5 100644 --- a/nacl/GNUmakefile.in +++ b/nacl/GNUmakefile.in @@ -7,45 +7,54 @@ include Makefile NACL_SDK_ROOT=@NACL_SDK_ROOT@ NACL_TOOLCHAIN=@NACL_TOOLCHAIN@ NACL_TOOLCHAIN_DIR=$(NACL_SDK_ROOT)/toolchain/$(NACL_TOOLCHAIN) + +# Don't override CC/LD/etc if they are already set to absolute +# paths (this is the case when building in the naclports tree). +ifeq ($(dir $(CC)),./) CC:=$(NACL_TOOLCHAIN_DIR)/bin/$(CC) +endif +ifeq ($(dir $(LD)),./) LD:=$(NACL_TOOLCHAIN_DIR)/bin/$(LD) +endif +ifeq ($(dir $(NM)),./) NM:=$(NACL_TOOLCHAIN_DIR)/bin/$(NM) +endif +ifeq ($(dir $(AR)),./) AR:=$(NACL_TOOLCHAIN_DIR)/bin/$(AR) +endif +ifeq ($(dir $(AS)),./) AS:=$(NACL_TOOLCHAIN_DIR)/bin/$(AS) +endif +ifeq ($(dir $(RANLIB)),./) RANLIB:=$(NACL_TOOLCHAIN_DIR)/bin/$(RANLIB) +endif +ifeq ($(dir $(OBJDUMP)),./) OBJDUMP:=$(NACL_TOOLCHAIN_DIR)/bin/$(OBJDUMP) +endif +ifeq ($(dir $(OBJCOPY)),./) OBJCOPY:=$(NACL_TOOLCHAIN_DIR)/bin/$(OBJCOPY) +endif PYTHON=@PYTHON@ PPROGRAM=pepper-$(PROGRAM) PEPPER_LIBS=-lppapi -PROGRAM_NMF=$(PROGRAM:.nexe=.nmf) -PPROGRAM_NMF=$(PPROGRAM:.nexe=.nmf) +PROGRAM_NMF=$(PROGRAM:$(EXEEXT)=.nmf) +PPROGRAM_NMF=$(PPROGRAM:$(EXEEXT)=.nmf) GNUmakefile: $(srcdir)/nacl/GNUmakefile.in $(PPROGRAM): $(PROGRAM) pepper_main.$(OBJEXT) $(Q)$(MAKE) $(MFLAGS) PROGRAM=$(PPROGRAM) MAINOBJ="pepper_main.$(OBJEXT)" LIBS="$(LIBS) $(PEPPER_LIBS)" program -$(PROGRAM_NMF) $(PPROGRAM_NMF): $(@:.nmf=.nexe) nacl/create_nmf.rb +$(PROGRAM_NMF) $(PPROGRAM_NMF): $(@:.nmf=$(EXEEXT)) nacl/create_nmf.rb .PHONY: pprogram package show_naclflags -.SUFFIXES: .nexe .nmf -.nexe.nmf: +.SUFFIXES: $(EXEEXT) .nmf +$(EXEEXT).nmf: $(ECHO) generating manifest $@ - $(Q)$(MINIRUBY) $(srcdir)/nacl/create_nmf.rb --verbose=$(V) $(@:.nmf=.nexe) $@ + $(Q)$(MINIRUBY) $(srcdir)/nacl/create_nmf.rb --verbose=$(V) $(@:.nmf=$(EXEEXT)) $@ pepper_main.$(OBJEXT): $(srcdir)/nacl/pepper_main.c @$(ECHO) compiling nacl/pepper_main.c $(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $(srcdir)/nacl/pepper_main.c -ruby.$(OBJEXT): - @$(ECHO) compiling $< - $(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@.tmp -c $< - $(Q) $(OBJCOPY) --weaken-symbol=rb_load_file $@.tmp $@ - @-$(RM) $@.tmp -file.$(OBJEXT): - @$(ECHO) compiling $< - $(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@.tmp -c $< - $(Q) $(OBJCOPY) --weaken-symbol=rb_file_load_ok $@.tmp $@ - @-$(RM) $@.tmp .rbconfig.time: @$(MAKE) .rbconfig.raw.time RBCONFIG=.rbconfig.raw.time -- cgit v1.2.3