mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 1b26041724
			
		
	
	
		1b26041724
		
	
	
	
	
		
			
			* ext/extmk.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			310 lines
		
	
	
	
		
			8.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			310 lines
		
	
	
	
		
			8.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| SHELL = /bin/sh
 | |
| NULLCMD = :
 | |
| RUNCMD = $(SHELL)
 | |
| CHDIR = @CHDIR@
 | |
| exec = exec
 | |
| 
 | |
| #### Start of system configuration section. ####
 | |
| 
 | |
| srcdir = @srcdir@
 | |
| top_srcdir = $(srcdir)
 | |
| hdrdir = $(srcdir)/include
 | |
| 
 | |
| CC = @CC@
 | |
| YACC = bison
 | |
| PURIFY =
 | |
| AUTOCONF = autoconf
 | |
| @SET_MAKE@
 | |
| MKFILES = @MAKEFILES@
 | |
| BASERUBY = @BASERUBY@
 | |
| TEST_RUNNABLE = @TEST_RUNNABLE@
 | |
| 
 | |
| prefix = @prefix@
 | |
| exec_prefix = @exec_prefix@
 | |
| bindir = @bindir@
 | |
| sbindir = @sbindir@
 | |
| libdir = @libdir@
 | |
| libexecdir = @libexecdir@
 | |
| datarootdir = @datarootdir@
 | |
| datadir = @datadir@
 | |
| arch = @arch@
 | |
| sitearch = @sitearch@
 | |
| sitedir = @sitedir@
 | |
| ruby_version = @ruby_version@
 | |
| 
 | |
| TESTUI = console
 | |
| TESTS =
 | |
| INSTALLDOC = @INSTALLDOC@
 | |
| DOCTARGETS = @RDOCTARGET@ @CAPITARGET@
 | |
| 
 | |
| EXTOUT = @EXTOUT@
 | |
| arch_hdrdir = $(EXTOUT)/include/$(arch)
 | |
| VPATH = $(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir):$(srcdir)/enc:$(srcdir)/missing
 | |
| 
 | |
| empty =
 | |
| OUTFLAG = @OUTFLAG@$(empty)
 | |
| COUTFLAG = @COUTFLAG@$(empty)
 | |
| ARCH_FLAG = @ARCH_FLAG@
 | |
| CFLAGS = @CFLAGS@
 | |
| cflags = @cflags@
 | |
| optflags = @optflags@
 | |
| debugflags = @debugflags@
 | |
| warnflags = @warnflags@
 | |
| XCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(srcdir) @XCFLAGS@
 | |
| CPPFLAGS = @CPPFLAGS@
 | |
| LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
 | |
| EXTLDFLAGS = 
 | |
| XLDFLAGS = @XLDFLAGS@ $(EXTLDFLAGS)
 | |
| EXTLIBS = 
 | |
| LIBS = @LIBS@ $(EXTLIBS)
 | |
| MISSING = @LIBOBJS@ @ALLOCA@
 | |
| LDSHARED = @LIBRUBY_LDSHARED@
 | |
| DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(EXTLDFLAGS) $(ARCH_FLAG)
 | |
| SOLIBS = @SOLIBS@
 | |
| MAINLIBS = @MAINLIBS@
 | |
| ARCHMINIOBJS = @MINIOBJS@
 | |
| BUILTIN_ENCOBJS = @BUILTIN_ENCOBJS@
 | |
| BUILTIN_TRANSSRCS = @BUILTIN_TRANSSRCS@
 | |
| BUILTIN_TRANSOBJS = @BUILTIN_TRANSOBJS@
 | |
| 
 | |
| RUBY_BASE_NAME=@RUBY_BASE_NAME@
 | |
| RUBY_INSTALL_NAME=@RUBY_INSTALL_NAME@
 | |
| RUBY_SO_NAME=@RUBY_SO_NAME@
 | |
| EXEEXT = @EXEEXT@
 | |
| PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)
 | |
| RUBY = $(RUBY_INSTALL_NAME)
 | |
| MINIRUBY = @MINIRUBY@ $(MINIRUBYOPT)
 | |
| RUNRUBY = @RUNRUBY@ $(RUNRUBYOPT) --
 | |
| XRUBY = @XRUBY@
 | |
| 
 | |
| #### End of system configuration section. ####
 | |
| 
 | |
| MAJOR=	@MAJOR@
 | |
| MINOR=	@MINOR@
 | |
| TEENY=	@TEENY@
 | |
| 
 | |
| LIBRUBY_A     = @LIBRUBY_A@
 | |
| LIBRUBY_SO    = @LIBRUBY_SO@
 | |
| LIBRUBY_ALIASES= @LIBRUBY_ALIASES@
 | |
| LIBRUBY	      = @LIBRUBY@
 | |
| LIBRUBYARG    = @LIBRUBYARG@
 | |
| LIBRUBYARG_STATIC = @LIBRUBYARG_STATIC@
 | |
| LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@
 | |
| 
 | |
| THREAD_MODEL  = @THREAD_MODEL@
 | |
| 
 | |
| PREP          = @PREP@
 | |
| ARCHFILE      = @ARCHFILE@
 | |
| SETUP         =
 | |
| EXTSTATIC     = @EXTSTATIC@
 | |
| SET_LC_MESSAGES = env LC_MESSAGES=C
 | |
| 
 | |
| MAKEDIRS      = @MKDIR_P@
 | |
| CP            = cp
 | |
| MV            = mv
 | |
| RM            = rm -f
 | |
| RMDIRS        = @RMDIRS@
 | |
| RMALL         = @RMALL@
 | |
| NM            = @NM@
 | |
| AR            = @AR@
 | |
| ARFLAGS       = rcu
 | |
| RANLIB        = @RANLIB@
 | |
| AS            = @AS@
 | |
| ASFLAGS       = @ASFLAGS@
 | |
| IFCHANGE      = $(srcdir)/tool/ifchange
 | |
| SET_LC_MESSAGES = env LC_MESSAGES=C
 | |
| OBJDUMP       = @OBJDUMP@
 | |
| OBJCOPY       = @OBJCOPY@
 | |
| VCS           = @VCS@
 | |
| VCSUP         = @VCSUP@
 | |
| 
 | |
| OBJEXT        = @OBJEXT@
 | |
| ASMEXT        = S
 | |
| DLEXT         = @DLEXT@
 | |
| MANTYPE	      = @MANTYPE@
 | |
| 
 | |
| INSTALLED_LIST= .installed.list
 | |
| 
 | |
| MKMAIN_CMD    = mkmain.sh
 | |
| 
 | |
| SRC_FILE      = $<
 | |
| #### End of variables
 | |
| 
 | |
| all:
 | |
| 
 | |
| .DEFAULT: all
 | |
| 
 | |
| # Prevent GNU make v3 from overflowing arg limit on SysV.
 | |
| .NOEXPORT:
 | |
| 
 | |
| miniruby$(EXEEXT):
 | |
| 		@-if test -f $@; then $(MV) -f $@ $@.old; $(RM) $@.old; fi
 | |
| 		$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(DMYEXT) $(LIBS) $(OUTFLAG)$@
 | |
| 
 | |
| $(PROGRAM):
 | |
| 		@$(RM) $@
 | |
| 		$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) $(OUTFLAG)$@
 | |
| 
 | |
| # We must `rm' the library each time this rule is invoked because "updating" a
 | |
| # MAB library on Apple/NeXT (see --enable-fat-binary in configure) is not
 | |
| # supported.
 | |
| $(LIBRUBY_A):
 | |
| 		@$(RM) $@
 | |
| 		$(AR) $(ARFLAGS) $@ $(OBJS) $(DMYEXT)
 | |
| 		@-$(RANLIB) $@ 2> /dev/null || true
 | |
| 
 | |
| $(LIBRUBY_SO):
 | |
| 		@-$(PRE_LIBRUBY_UPDATE)
 | |
| 		$(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(OUTFLAG)$@
 | |
| 		-$(OBJCOPY) -w -L '@EXPORT_PREFIX@Init_*' -L '@EXPORT_PREFIX@*_threadptr_*' $@
 | |
| 		@-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link; \
 | |
| 						  File.symlink "$(LIBRUBY_SO)", link}' \
 | |
| 				$(LIBRUBY_ALIASES) || true
 | |
| 
 | |
| fake: $(arch)-fake.rb
 | |
| $(arch)-fake.rb: config.status
 | |
| 		@./config.status --file=$@:$(srcdir)/template/fake.rb.in
 | |
| 
 | |
| Makefile:	$(srcdir)/Makefile.in $(srcdir)/enc/Makefile.in
 | |
| 
 | |
| $(MKFILES): config.status
 | |
| 		MAKE=$(MAKE) $(SHELL) ./config.status
 | |
| 		@{ \
 | |
| 		    echo "all:; -@rm -f conftest.mk"; \
 | |
| 		    echo "conftest.mk: .force; @echo AUTO_REMAKE"; \
 | |
| 		    echo ".force:"; \
 | |
| 		} > conftest.mk || exit 1; \
 | |
| 		$(MAKE) -f conftest.mk | grep '^AUTO_REMAKE$$' >/dev/null 2>&1 || \
 | |
| 		{ echo "Makefile updated, restart."; exit 1; }
 | |
| 
 | |
| uncommon.mk: $(srcdir)/common.mk
 | |
| 		sed 's/{\$$([^(){}]*)[^{}]*}//g' $< > $@
 | |
| 
 | |
| config.status:	$(srcdir)/configure $(srcdir)/enc/Makefile.in
 | |
| 	PWD= MINIRUBY="$(MINIRUBY)" $(SHELL) ./config.status --recheck
 | |
| 
 | |
| $(srcdir)/configure: $(srcdir)/configure.in
 | |
| 	$(CHDIR) $(srcdir) && exec $(AUTOCONF)
 | |
| 
 | |
| incs: id.h
 | |
| 
 | |
| # Things which should be considered:
 | |
| # * with gperf v.s. without gperf
 | |
| # * committers may have various versions of gperf
 | |
| # * ./configure v.s. ../ruby/configure
 | |
| # * GNU make v.s. HP-UX make	# HP-UX make invokes the action if lex.c and keywords has same mtime.
 | |
| # * svn checkout generate a file with mtime as current time
 | |
| # * ext4 and XFS has a mtime with fractional part
 | |
| lex.c: defs/keywords
 | |
| 	@\
 | |
| 	if cmp -s $(srcdir)/defs/lex.c.src $?; then \
 | |
| 	  set -x; \
 | |
| 	  $(CP) $(srcdir)/lex.c.blt $@; \
 | |
| 	else \
 | |
| 	  set -x; \
 | |
| 	  gperf -C -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? > $@.tmp && \
 | |
| 	  $(MV) $@.tmp $@ && \
 | |
| 	  $(CP) $? $(srcdir)/defs/lex.c.src && \
 | |
| 	  $(CP) $@ $(srcdir)/lex.c.blt; \
 | |
| 	fi
 | |
| 
 | |
| NAME2CTYPE_OPTIONS = -7 -c -j1 -i1 -t -C -P -T -H uniname2ctype_hash -Q uniname2ctype_pool -N uniname2ctype_p
 | |
| 
 | |
| enc/unicode/name2ctype.h: enc/unicode/name2ctype.kwd
 | |
| 	$(MAKEDIRS) $(@D)
 | |
| 	@set +e; \
 | |
| 	if cmp -s $(?:.kwd=.src) $?; then \
 | |
| 	  set -x; \
 | |
| 	  $(CP) $(?:.kwd=.h.blt) $@; \
 | |
| 	else \
 | |
| 	  trap '$(RM) $@-1.h $@-2.h' 0 && \
 | |
| 	  set -x; \
 | |
| 	  sed '/^#ifdef USE_UNICODE_PROPERTIES/,/^#endif/d' $? | gperf $(NAME2CTYPE_OPTIONS) > $@-1.h && \
 | |
| 	  gperf $(NAME2CTYPE_OPTIONS) < $? > $@-2.h && \
 | |
| 	  diff -DUSE_UNICODE_PROPERTIES $@-1.h $@-2.h > $@.tmp || :; \
 | |
| 	  $(MV) $@.tmp $@ && \
 | |
| 	  $(CP) $? $(?:.kwd=.src) && \
 | |
| 	  $(CP) $@ $(?:.kwd=.h.blt); \
 | |
| 	fi
 | |
| 
 | |
| .c.@OBJEXT@:
 | |
| 	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $<
 | |
| 
 | |
| .s.@OBJEXT@:
 | |
| 	$(AS) $(ASFLAGS) -o $@ $<
 | |
| 
 | |
| .c.S:
 | |
| 	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -S $<
 | |
| 
 | |
| .c.i:
 | |
| 	$(CPP) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -E $< > $@
 | |
| 
 | |
| clean-local::
 | |
| 	@$(RM) ext/extinit.c ext/extinit.$(OBJEXT) ext/ripper/y.output
 | |
| 
 | |
| distclean-local::
 | |
| 	@$(RM) ext/config.cache $(RBCONFIG) Doxyfile
 | |
| 	@-$(RM) run.gdb
 | |
| 	@-$(RM) $(INSTALLED_LIST) $(arch_hdrdir)/ruby/config.h
 | |
| 	@-$(RMDIRS) $(arch_hdrdir)/ruby
 | |
| 
 | |
| distclean-rdoc:
 | |
| 	@$(RMALL) $(RDOCOUT:/=\)
 | |
| 
 | |
| clean-ext distclean-ext realclean-ext::
 | |
| 	@cd ext; set dummy `echo "${EXTS}" | tr , ' '`; shift; \
 | |
| 	test "$$#" = 0 && set .; \
 | |
| 	set dummy `for dir; do \
 | |
| 	    find $$dir -name Makefile | sed 's:^\./::;s:/Makefile$$:~:' | sort | sed 's:~$$::'; \
 | |
| 	done`; shift; \
 | |
| 	for dir; do \
 | |
| 	    echo $(@:-ext=)ing "$$dir"; \
 | |
| 	    (cd "$$dir" && exec $(MAKE) $(MFLAGS) $(@:-ext=)) && \
 | |
| 	    case "$@" in \
 | |
| 	    *distclean-ext*|*realclean-ext*) \
 | |
| 		$(RMDIRS) "$$dir";; \
 | |
| 	    esac; \
 | |
| 	done
 | |
| 
 | |
| distclean-ext realclean-ext::
 | |
| 	@-rmdir ext 2> /dev/null || true
 | |
| 
 | |
| ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP)
 | |
| 	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c ext/extinit.c
 | |
| 
 | |
| up::
 | |
| 	@$(CHDIR) "$(srcdir)" && LC_TIME=C exec $(VCSUP)
 | |
| 
 | |
| update-mspec:
 | |
| 	@$(CHDIR) $(srcdir); \
 | |
| 	if [ -d spec/mspec ]; then \
 | |
| 	  cd spec/mspec; \
 | |
| 	  echo updating mspec ...; \
 | |
| 	  exec git pull; \
 | |
| 	else \
 | |
| 	  echo retrieving mspec ...; \
 | |
| 	  exec git clone $(MSPEC_GIT_URL) spec/mspec; \
 | |
| 	fi
 | |
| 
 | |
| update-rubyspec: update-mspec
 | |
| 	@$(CHDIR) $(srcdir); \
 | |
| 	if [ -d spec/rubyspec ]; then \
 | |
| 	  cd spec/rubyspec; \
 | |
| 	  echo updating rubyspec ...; \
 | |
| 	  exec git pull; \
 | |
| 	else \
 | |
| 	  echo retrieving rubyspec ...; \
 | |
| 	  exec git clone $(RUBYSPEC_GIT_URL) spec/rubyspec; \
 | |
| 	fi
 | |
| 
 | |
| test-rubyspec:
 | |
| 	@if [ ! -d $(srcdir)/spec/rubyspec ]; then echo No rubyspec here.  make update-rubyspec first.; exit 1; fi
 | |
| 	$(RUNRUBY) $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec $(MSPECOPT)
 | |
| 
 | |
| INSNS	= opt_sc.inc optinsn.inc optunifs.inc insns.inc insns_info.inc \
 | |
| 	  vmtc.inc vm.inc
 | |
| 
 | |
| $(INSNS): $(srcdir)/insns.def vm_opts.h \
 | |
| 	  $(srcdir)/defs/opt_operand.def $(srcdir)/defs/opt_insn_unif.def \
 | |
| 	  $(srcdir)/tool/instruction.rb $(srcdir)/tool/insns2vm.rb
 | |
| 	$(BASERUBY) -Ks $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) $@
 |