SHELL = $(COMSPEC) #### Start of system configuration section. #### ## variables may be overridden by $(compile_dir)/Makefile !ifndef srcdir srcdir = .. !endif !ifndef RUBY_INSTALL_NAME RUBY_INSTALL_NAME = ruby !endif !if !defined(RUBYW_INSTALL_NAME) || "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)" RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw) !endif !if "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)" RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w !endif !ifndef RUBY_SO_NAME RUBY_SO_NAME = rubymw !endif !if !defined(icondirs) && defined(ICONDIRS) icondirs=$(ICONDIRS) !endif !if defined(icondirs) icondirs=$(icondirs:\=/) iconinc=-I$(icondirs) !endif ############### VPATH = $(srcdir):$(srcdir)/missing .SUFFIXES: .y CC = cl YACC = byacc PURIFY = AUTOCONF = autoconf prefix = /usr CFLAGS = -nologo -DNT=1 -Zi -MD -O2b2xg- -G5 CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/missing -DLIBRUBY_SO=\"$(LIBRUBY_SO)\" LDFLAGS = $(CFLAGS) -Fm XLDFLAGS = #EXTLIBS = LIBS = user32.lib advapi32.lib wsock32.lib $(EXTLIBS) MISSING = crypt.obj win32.obj isinf.obj isnan.obj LDSHARED = DLDFLAGS = SOLIBS = RFLAGS = -r EXEEXT = .exe PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT) WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT) RUBYDEF = $(RUBY_SO_NAME).def STACK = 0x2000000 ORGLIBPATH = $(LIB) #### End of system configuration section. #### LIBRUBY_A = lib$(RUBY_INSTALL_NAME).lib LIBRUBY_SO = $(RUBY_SO_NAME).dll LIBRUBY = $(RUBY_SO_NAME).lib LIBRUBYARG = $(LIBRUBY) EXTOBJS = dmyext.obj MAINOBJ = main.obj WINMAINOBJ = winmain.obj OBJS = array.obj \ bignum.obj \ class.obj \ compar.obj \ dir.obj \ dln.obj \ enum.obj \ error.obj \ eval.obj \ file.obj \ gc.obj \ hash.obj \ inits.obj \ io.obj \ marshal.obj \ math.obj \ numeric.obj \ object.obj \ pack.obj \ parse.obj \ prec.obj \ process.obj \ random.obj \ range.obj \ re.obj \ regex.obj \ ruby.obj \ signal.obj \ sprintf.obj \ st.obj \ string.obj \ struct.obj \ time.obj \ util.obj \ variable.obj \ version.obj \ $(MISSING) all: miniruby$(EXEEXT) rbconfig.rb ext/extmk.rb \ $(LIBRUBY) $(MISCLIBS) set LIB=..\..;$(ORGLIBPATH) @.\miniruby$(EXEEXT) -Cext extmk.rb ruby: $(PROGRAM) rubyw: $(WPROGRAM) lib: $(LIBRUBY) dll: $(LIBRUBY_SO) config.h config.status: $(srcdir)/win32/$$@.in @type $(srcdir:/=\)\win32\$@.in > $@ ext/extmk.rb: $(srcdir)/ext/extmk.rb.in config.status @echo Creating ext/extmk.rb @.\miniruby$(EXEEXT) $(srcdir)/ext/configsub.rb \ -srcdir=$(srcdir) \ -install_name=$(RUBY_INSTALL_NAME) \ -so_name=$(RUBY_SO_NAME) \ -output=$@ $(srcdir)/ext/extmk.rb.in miniruby$(EXEEXT): $(OBJS) $(MAINOBJ) $(EXTOBJS) @echo $(EXTOBJS) @echo $(LIBS) $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(OBJS) $(LIBS) -Fe$@ $(PROGRAM): $(MAINOBJ) $(LIBRUBY_SO) $*.res $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $*.res \ -Fe$@ $(LIBRUBYARG) -link -stack:$(STACK) -incremental:no $(WPROGRAM): $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $*.res $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(WINMAINOBJ) $*.res \ -Fe$@ $(LIBRUBYARG) -link -stack:$(STACK) -subsystem:Windows -incremental:no $(LIBRUBY_A): $(OBJS) dmyext.obj lib -nologo /OUT:$@ $(OBJS) dmyext.obj $(LIBRUBY): $(RUBYDEF) lib -nologo /OUT:$@ /DEF:$(RUBYDEF) $(LIBRUBY_SO): $(LIBRUBY_A) $(EXTOBJS) $(RUBYDEF) $@.res set LIB=.\win32;$(ORGLIBPATH) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBY_A) $@.res $(LIBS) \ -Fe$@ -link -dll -def:$(RUBYDEF) !if "$(LIBRUBY_SO)" != "rubymw.dll" rubymw.dll: $(LIBRUBY) $(CC) -nologo $(EXTOBJS) $(LIBRUBY) -o $@ -link /DLL /DEF:$(RUBYDEF) !endif $(RUBYDEF): $(LIBRUBY_A) miniruby$(EXEEXT) .\miniruby$(EXEEXT) $(srcdir)/win32/mkexports.rb -output=$@ $(LIBRUBY_A) install: rbconfig.rb .\miniruby.exe $(srcdir)/instruby.rb $(DESTDIR) clean: @if exist $(LIBRUBY_A) del $(LIBRUBY_A) @if exist $(MAINOBJ) del $(MAINOBJ) @if exist rbconfig.rb del rbconfig.rb @if exist ext\extinit.c del ext\extinit.c @if exist ext\extinit.obj del ext\extinit.obj @if exist ext\vc*.pdb del ext\vc*.pdb @if exist *.obj del *.obj @if exist *.res del *.res @-.\miniruby$(EXEEXT) -Cext extmk.rb clean distclean: clean @if exist Makefile del Makefile @if exist ext\extmk.rb del ext\extmk.rb @if exist config.h del config.h @if exist ext\config.cache del ext\config.cache @if exist config.cache del config.cache @if exist config.log del config.log @if exist config.status del config.status @if exist *~ del *~ @if exist *.bak del *.bak @if exist *.stackdump del *.stackdump @if exist *.core del *.core @if exist gmon.out del gmon.out @if exist y.tab.c del y.tab.c @if exist y.output del y.output @if exist *.map del *.map @if exist *.pdb del *.pdb @if exist *.ilk del *.ilk @if exist *.exp del *.exp @if exist $(RUBYDEF) del $(RUBYDEF) @if exist $(RUBY_INSTALL_NAME).rc del $(RUBY_INSTALL_NAME).rc @if exist $(RUBYW_INSTALL_NAME).rc del $(RUBYW_INSTALL_NAME).rc @if exist $(LIBRUBY_SO).rc del $(LIBRUBY_SO).rc @if exist $(PROGRAM) del $(PROGRAM) @if exist $(WPROGRAM) del $(WPROGRAM) @if exist $(LIBRUBY_SO) del $(LIBRUBY_SO) @if exist $(LIBRUBY) del $(LIBRUBY) @if exist ext\nul if not exist ext\* rmdir ext @if exist miniruby$(EXEEXT) del miniruby$(EXEEXT) realclean: distclean @if exist parse.c del parse.c @if exist lex.c del lex.c test: miniruby$(EXEEXT) @.\miniruby$(EXEEXT) $(srcdir)/rubytest.rb rbconfig.rb: miniruby$(EXEEXT) config.status @.\miniruby$(EXEEXT) $(srcdir)/mkconfig.rb -srcdir=$(srcdir) \ -install_name=$(RUBY_INSTALL_NAME) \ -so_name=$(RUBY_SO_NAME) rbconfig.rb $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(LIBRUBY_SO).rc: rbconfig.rb @.\miniruby$(EXEEXT) $(srcdir)/win32/resource.rb \ -ruby_name=$(RUBY_INSTALL_NAME) \ -rubyw_name=$(RUBYW_INSTALL_NAME) \ -so_name=$(LIBRUBY_SO) \ . $(icondirs) $(srcdir)/win32 #config.status: $(srcdir)/configure # $(SHELL) ./config.status --recheck {$(srcdir)/missing}.c.obj: $(CC) $(CFLAGS) -I. -I$( $@ @del y.tab.c {$(srcdir)}parse.c: parse.y alloca.obj: $(srcdir)/missing/alloca.c crypt.obj: $(srcdir)/missing/crypt.c dup2.obj: $(srcdir)/missing/dup2.c finite.obj: $(srcdir)/missing/finite.c flock.obj: $(srcdir)/missing/flock.c isinf.obj: $(srcdir)/missing/isinf.c isnan.obj: $(srcdir)/missing/isnan.c memcmp.obj: $(srcdir)/missing/memcmp.c memmove.obj: $(srcdir)/missing/memmove.c mkdir.obj: $(srcdir)/missing/mkdir.c vsnprintf.obj: $(srcdir)/missing/vsnprintf.c strcasecmp.obj: $(srcdir)/missing/strcasecmp.c strncasecmp.obj: $(srcdir)/missing/strncasecmp.c strchr.obj: $(srcdir)/missing/strchr.c strdup.obj: $(srcdir)/missing/strdup.c strerror.obj: $(srcdir)/missing/strerror.c strftime.obj: $(srcdir)/missing/strftime.c strstr.obj: $(srcdir)/missing/strstr.c strtod.obj: $(srcdir)/missing/strtod.c strtol.obj: $(srcdir)/missing/strtol.c strtoul.obj: $(srcdir)/missing/strtoul.c nt.obj: $(srcdir)/missing/nt.c x68.obj: $(srcdir)/missing/x68.c os2.obj: $(srcdir)/missing/os2.c dl_os2.obj: $(srcdir)/missing/dl_os2.c # when I use -I., there is confliction at "OpenFile" # so, set . into environment varible "include" win32.obj: $(srcdir)/win32/win32.c # Prevent GNU make v3 from overflowing arg limit on SysV. .NOEXPORT: ### parse.obj: {$(srcdir)}parse.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/env.h $(srcdir)/node.h $(srcdir)/st.h $(srcdir)/regex.h $(srcdir)/util.h $(srcdir)/lex.c ### array.obj: $(srcdir)/array.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h bignum.obj: $(srcdir)/bignum.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h class.obj: $(srcdir)/class.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/node.h $(srcdir)/st.h compar.obj: $(srcdir)/compar.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h dir.obj: $(srcdir)/dir.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h dln.obj: $(srcdir)/dln.c config.h $(srcdir)/defines.h $(srcdir)/dln.h dmyext.obj: $(srcdir)/dmyext.c enum.obj: $(srcdir)/enum.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h error.obj: $(srcdir)/error.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/env.h eval.obj: $(srcdir)/eval.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/node.h $(srcdir)/env.h $(srcdir)/rubysig.h $(srcdir)/st.h $(srcdir)/dln.h file.obj: $(srcdir)/file.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/rubyio.h $(srcdir)/rubysig.h gc.obj: $(srcdir)/gc.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/rubysig.h $(srcdir)/st.h $(srcdir)/node.h $(srcdir)/env.h $(srcdir)/re.h $(srcdir)/regex.h hash.obj: $(srcdir)/hash.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/st.h $(srcdir)/rubysig.h $(srcdir)/util.h inits.obj: $(srcdir)/inits.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h io.obj: $(srcdir)/io.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/rubyio.h $(srcdir)/rubysig.h $(srcdir)/env.h main.obj: $(srcdir)/main.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h marshal.obj: $(srcdir)/marshal.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/rubyio.h $(srcdir)/st.h prec.obj: $(srcdir)/prec.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h math.obj: $(srcdir)/math.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h numeric.obj: $(srcdir)/numeric.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h object.obj: $(srcdir)/object.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/st.h pack.obj: $(srcdir)/pack.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h process.obj: $(srcdir)/process.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/rubysig.h $(srcdir)/st.h random.obj: $(srcdir)/random.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h range.obj: $(srcdir)/range.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h re.obj: $(srcdir)/re.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/re.h $(srcdir)/regex.h regex.obj: $(srcdir)/regex.c config.h $(srcdir)/regex.h $(srcdir)/util.h ruby.obj: $(srcdir)/ruby.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/dln.h $(srcdir)/util.h signal.obj: $(srcdir)/signal.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/rubysig.h sprintf.obj: $(srcdir)/sprintf.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h st.obj: $(srcdir)/st.c config.h $(srcdir)/st.h string.obj: $(srcdir)/string.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/re.h $(srcdir)/regex.h struct.obj: $(srcdir)/struct.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h time.obj: $(srcdir)/time.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h util.obj: $(srcdir)/util.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/util.h variable.obj: $(srcdir)/variable.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/env.h $(srcdir)/node.h $(srcdir)/st.h version.obj: $(srcdir)/version.c $(srcdir)/ruby.h config.h $(srcdir)/defines.h $(srcdir)/intern.h $(srcdir)/version.h $(OBJS) $(MAINOBJ) $(WINMAINOBJ): $(srcdir)/win32/win32.h