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 = RDOCTARGET = @RDOCTARGET@ 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) -- #### 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 = @MAKEDIRS@ 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) $(ARCHFILE) $(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_*' $@ @-$(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 id.h: parse.h $(srcdir)/tool/generic_erb.rb $(srcdir)/template/id.h.tmpl $(BASERUBY) $(srcdir)/tool/generic_erb.rb --output=$@ \ $(srcdir)/template/id.h.tmpl --vpath=$(VPATH) parse.h # Things which should be considered: # * with gperf v.s. without 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 # * 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 .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:: @set dummy ${EXTS}; shift; \ if test "$$#" = 0; then \ set dummy `find ext -name Makefile | sed 's:^ext/::;s:/Makefile$$::' | sort`; \ shift; \ fi; \ for dir; do \ [ -f "ext/$$dir/Makefile" ] || continue; \ echo $(@:-ext=)ing "$$dir"; \ (cd "ext/$$dir" && exec $(MAKE) $(MFLAGS) $(@:-ext=)) && \ case "$@" in \ *distclean-ext*|*realclean-ext*) \ $(RMDIRS) "ext/$$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 -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 $(BASERUBY) -Ks $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) $@