
1: SHELL = /bin/sh 2: NULLCMD = : 3: 4: #### Start of system configuration section. #### 5: 6: srcdir = @srcdir@ 7: hdrdir = $(srcdir)/include 8: 9: CC = @CC@ 10: YACC = bison 11: PURIFY = 12: AUTOCONF = autoconf 13: @SET_MAKE@ 14: MKFILES = @MAKEFILES@ 15: BASERUBY = @BASERUBY@ 16: 17: prefix = @prefix@ 18: exec_prefix = @exec_prefix@ 19: bindir = @bindir@ 20: sbindir = @sbindir@ 21: libdir = @libdir@ 22: libexecdir = @libexecdir@ 23: datarootdir = @datarootdir@ 24: datadir = @datadir@ 25: arch = @arch@ 26: sitearch = @sitearch@ 27: sitedir = @sitedir@ 28: 29: TESTUI = console 30: TESTS = 31: RDOCTARGET = @RDOCTARGET@ 32: 33: EXTOUT = @EXTOUT@ 34: RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system 35: arch_hdrdir = $(EXTOUT)/include/$(arch) 36: VPATH = $(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir):$(srcdir)/enc:$(srcdir)/missing 37: 38: empty = 39: OUTFLAG = @OUTFLAG@$(empty) 40: COUTFLAG = @COUTFLAG@$(empty) 41: CFLAGS = @CFLAGS@ @ARCH_FLAG@ 42: XCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(srcdir) @XCFLAGS@ 43: CPPFLAGS = @CPPFLAGS@ 44: LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@ 45: EXTLDFLAGS = 46: XLDFLAGS = @XLDFLAGS@ $(EXTLDFLAGS) 47: EXTLIBS = 48: LIBS = @LIBS@ $(EXTLIBS) 49: MISSING = @LIBOBJS@ @ALLOCA@ 50: LDSHARED = @LIBRUBY_LDSHARED@ 51: DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(EXTLDFLAGS) @ARCH_FLAG@ 52: SOLIBS = @SOLIBS@ 53: MAINLIBS = @MAINLIBS@ 54: MINIOBJS = @MINIOBJS@ miniprelude.$(OBJEXT) 55: BUILTIN_ENCOBJS = @BUILTIN_ENCOBJS@ 56: 57: RUBY_INSTALL_NAME=@RUBY_INSTALL_NAME@ 58: RUBY_SO_NAME=@RUBY_SO_NAME@ 59: EXEEXT = @EXEEXT@ 60: PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT) 61: RUBY = $(RUBY_INSTALL_NAME) 62: MINIRUBY = @MINIRUBY@ $(MINIRUBYOPT) 63: RUNRUBY = @RUNRUBY@ $(RUNRUBYOPT) -- 64: 65: #### End of system configuration section. #### 66: 67: MAJOR= @MAJOR@ 68: MINOR= @MINOR@ 69: TEENY= @TEENY@ 70: 71: LIBRUBY_A = @LIBRUBY_A@ 72: LIBRUBY_SO = @LIBRUBY_SO@ 73: LIBRUBY_ALIASES= @LIBRUBY_ALIASES@ 74: LIBRUBY = @LIBRUBY@ 75: LIBRUBYARG = @LIBRUBYARG@ 76: LIBRUBYARG_STATIC = @LIBRUBYARG_STATIC@ 77: LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@ 78: 79: THREAD_MODEL = @THREAD_MODEL@ 80: 81: PREP = @PREP@ 82: ARCHFILE = @ARCHFILE@ 83: SETUP = 84: EXTSTATIC = @EXTSTATIC@ 85: 86: CP = cp 87: MV = mv 88: RM = rm -f 89: NM = @NM@ 90: AR = @AR@ 91: ARFLAGS = rcu 92: RANLIB = @RANLIB@ 93: AS = @AS@ 94: ASFLAGS = @ASFLAGS@ 95: 96: OBJEXT = @OBJEXT@ 97: ASMEXT = S 98: DLEXT = @DLEXT@ 99: MANTYPE = @MANTYPE@ 100: 101: INSTALLED_LIST= .installed.list 102: #### End of variables 103: 104: all: 105: 106: .DEFAULT: all 107: 108: # Prevent GNU make v3 from overflowing arg limit on SysV. 109: .NOEXPORT: 110: 111: miniruby$(EXEEXT): 112: @$(RM) $@ 113: $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(DMYEXT) $(ARCHFILE) $(LIBS) $(OUTFLAG)$@ 114: 115: $(PROGRAM): 116: @$(RM) $@ 117: $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) $(OUTFLAG)$@ 118: 119: # We must `rm' the library each time this rule is invoked because "updating" a 120: # MAB library on Apple/NeXT (see --enable-fat-binary in configure) is not 121: # supported. 122: $(LIBRUBY_A): 123: @$(RM) $@ 124: $(AR) $(ARFLAGS) $@ $(OBJS) $(DMYEXT) 125: @-$(RANLIB) $@ 2> /dev/null || true 126: 127: $(LIBRUBY_SO): 128: @-$(PRE_LIBRUBY_UPDATE) 129: $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(OUTFLAG)$@ 130: @-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link; \ 131: File.symlink "$(LIBRUBY_SO)", link}' \ 132: $(LIBRUBY_ALIASES) || true 133: 134: fake.rb: Makefile 135: @echo ' \ 136: class Object; \ 137: CROSS_COMPILING = RUBY_PLATFORM; \ 138: remove_const :RUBY_PLATFORM; \ 139: remove_const :RUBY_VERSION; \ 140: RUBY_PLATFORM = "@arch@"; \ 141: RUBY_VERSION = "@MAJOR@.@MINOR@.@TEENY@"; \ 142: end; \ 143: if RUBY_PLATFORM =~ /mswin|bccwin|mingw/; \ 144: class File; \ 145: remove_const :ALT_SEPARATOR; \ 146: ALT_SEPARATOR = "\\"; \ 147: end; \ 148: end; \ 149: ' > $@ 150: 151: Makefile: $(srcdir)/Makefile.in 152: 153: $(MKFILES): config.status $(srcdir)/common.mk 154: MAKE=$(MAKE) $(SHELL) ./config.status 155: @{ \ 156: echo "all:; -@rm -f conftest.mk"; \ 157: echo "conftest.mk: .force; @echo AUTO_REMAKE"; \ 158: echo ".force:"; \ 159: } > conftest.mk || exit 1; \ 160: $(MAKE) -f conftest.mk | grep '^AUTO_REMAKE$$' >/dev/null 2>&1 || \ 161: { echo "Makefile updated, restart."; exit 1; } 162: 163: config.status: $(srcdir)/configure 164: MINIRUBY="$(MINIRUBY)" $(SHELL) ./config.status --recheck 165: 166: $(srcdir)/configure: $(srcdir)/configure.in 167: cd $(srcdir) && $(AUTOCONF) 168: 169: # Things which should be considered: 170: # * with gperf v.s. without gperf 171: # * ./configure v.s. ../ruby/configure 172: # * GNU make v.s. HP-UX make # HP-UX make invokes the action if lex.c and keywords has same mtime. 173: # * svn checkout generate a file with mtime as current time 174: # * XFS has a mtime with fractional part 175: lex.c: keywords 176: if cmp -s $(srcdir)/lex.c.src $?; then \ 177: cp $(srcdir)/lex.c.blt $@; \ 178: else \ 179: gperf -C -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? > $@.tmp && \ 180: mv $@.tmp $@ && \ 181: cp $? $(srcdir)/lex.c.src && \ 182: cp $@ $(srcdir)/lex.c.blt; \ 183: fi 184: 185: .c.@OBJEXT@: 186: $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $< 187: 188: .s.@OBJEXT@: 189: $(AS) $(ASFLAGS) -o $@ $< 190: 191: .c.S: 192: $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -S $< 193: 194: clean-local:: 195: @$(RM) ext/extinit.c ext/extinit.$(OBJEXT) 196: 197: distclean-local:: 198: @$(RM) ext/config.cache $(RBCONFIG) 199: 200: ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP) 201: $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c ext/extinit.c