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 !if !defined(icondirs) && defined(ICONDIRS) icondirs=$(ICONDIRS) !endif !if defined(icondirs) icondirs=$(icondirs:\=/) iconinc=-I$(icondirs: = -I) !endif ############### VPATH = $(srcdir):$(srcdir)/missing .SUFFIXES: .y .def .lib !if !defined(CC) CC = cl !endif !if !defined(CPP) CPP = $(CC) -E !endif !if !defined(YACC) YACC = byacc !endif AR = lib -nologo PURIFY = AUTOCONF = autoconf !if !defined(PROCESSOR_ARCHITECTURE) PROCESSOR_ARCHITECTURE = x86 !endif MACHINE = $(PROCESSOR_ARCHITECTURE) !if "$(PROCESSOR_ARCHITECTURE)" == "x86" !if !defined(PROCESSOR_LEVEL) PROCESSOR_LEVEL = 5 !endif !if 6 < $(PROCESSOR_LEVEL) PROCESSOR_LEVEL = 6 !endif PROCESSOR_FLAG = -G$(PROCESSOR_LEVEL) CPU = i$(PROCESSOR_LEVEL)86 ARCH = i386 !else CPU = $(PROCESSOR_ARCHITECTURE) ARCH = $(PROCESSOR_ARCHITECTURE) !endif !if !defined(DEBUGFLAGS) DEBUGFLAGS = -Zi !endif !if !defined(OPTFLAGS) OPTFLAGS = -O2b2xg- !endif OS = mswin32 RT = msvcrt !ifndef RUBY_SO_NAME RUBY_SO_NAME = $(RT)-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR) !endif !if !defined(prefix) prefix = /usr !endif !if !defined(DESTDIR) DESTDIR = $(prefix) !endif !if !defined(CFLAGS) CFLAGS = -MD $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) !endif !if !defined(CPPFLAGS) CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/missing !endif !if !defined(XLDFLAGS) XLDFLAGS = !endif !if !defined(RFLAGS) RFLAGS = -r !endif !if !defined(EXTLIBS) EXTLIBS = !endif LIBS = oldnames.lib user32.lib advapi32.lib wsock32.lib $(EXTLIBS) MISSING = acosh.obj crypt.obj win32.obj ARFLAGS = -machine:$(MACHINE) -out: CC = $(CC) -nologo LD = $(CC) LDSHARED = $(LD) -LD XCFLAGS = -DRUBY_EXPORT LDFLAGS = -link -incremental:no -pdb:none DLDFLAGS = $(LDFLAGS) -dll XLDFLAGS = -stack:$(STACK) SOLIBS = LIBRUBY_LDSHARED = $(LDSHARED) LIBRUBY_DLDFLAGS = $(EXTLDFLAGS) -def:$(RUBYDEF) EXEEXT = .exe PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT) WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT) RUBYDEF = $(RUBY_SO_NAME).def MINIRUBY = .\miniruby$(EXEEXT) !if !defined(STACK) STACK = 0x2000000 !endif ORGLIBPATH = $(LIB) #### End of system configuration section. #### LIBRUBY_A = $(RUBY_SO_NAME)-static.lib LIBRUBY_SO = $(RUBY_SO_NAME).dll LIBRUBY = $(RUBY_SO_NAME).lib LIBRUBYARG = $(LIBRUBY) EXTOBJS = 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) SCRIPT_ARGS = "--dest-dir=$(DESTDIR)" \ "--make=$(MAKE)" \ "--mflags=$(MFLAGS)" \ "--make-flags=$(MAKEFLAGS)" all: ext miniruby$(EXEEXT) rbconfig.rb \ $(LIBRUBY) $(MISCLIBS) @$(MINIRUBY) $(srcdir)/ext/extmk.rb --extstatic=$(EXTSTATIC) $(SCRIPT_ARGS) ext: @mkdir $@ ruby: $(PROGRAM) rubyw: $(WPROGRAM) lib: $(LIBRUBY) dll: $(LIBRUBY_SO) config: config.h config.status config.h: @echo Creating <<$@ #define STDC_HEADERS 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_MEMORY_H 1 #define HAVE_FLOAT_H 1 #define HAVE_OFF_T 1 #define SIZEOF_INT 4 #define SIZEOF_SHORT 2 #define SIZEOF_LONG 4 #define SIZEOF_LONG_LONG 0 #define SIZEOF___INT64 8 #define SIZEOF_OFF_T 4 #define SIZEOF_VOIDP 4 #define SIZEOF_FLOAT 4 #define SIZEOF_DOUBLE 8 #define HAVE_PROTOTYPES 1 #define TOKEN_PASTE(x,y) x##y #define HAVE_STDARG_PROTOTYPES 1 #if _MSC_VER > 1100 && !defined NORETURN #define NORETURN(x) __declspec(noreturn) x #else #define NORETURN(x) x #endif #define HAVE_DECL_SYS_NERR 1 #define STDC_HEADERS 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_LIMITS_H 1 #define HAVE_FCNTL_H 1 #define HAVE_SYS_UTIME_H 1 #define HAVE_MEMORY_H 1 #define uid_t int #define gid_t int #define HAVE_STRUCT_STAT_ST_RDEV 1 #define HAVE_ST_RDEV 1 #define GETGROUPS_T int #define RETSIGTYPE void #define HAVE_ALLOCA 1 #define HAVE_DUP2 1 #define HAVE_MEMCMP 1 #define HAVE_MEMMOVE 1 #define HAVE_MKDIR 1 #define HAVE_STRCASECMP 1 #define HAVE_STRNCASECMP 1 #define HAVE_STRERROR 1 #define HAVE_STRFTIME 1 #define HAVE_STRCHR 1 #define HAVE_STRSTR 1 #define HAVE_STRTOD 1 #define HAVE_STRTOL 1 #define HAVE_STRTOUL 1 #define HAVE_FLOCK 1 #define HAVE_VSNPRINTF 1 #define HAVE_ISINF 1 #define HAVE_ISNAN 1 #define HAVE_FINITE 1 #define HAVE_FMOD 1 #define HAVE_FREXP 1 #define HAVE_HYPOT 1 #define HAVE_MODF 1 #define HAVE_WAITPID 1 #define HAVE_FSYNC 1 #define HAVE_CHSIZE 1 #define HAVE_TIMES 1 #define HAVE__SETJMP 1 #define HAVE_TELLDIR 1 #define HAVE_SEEKDIR 1 #define HAVE_MKTIME 1 #define HAVE_COSH 1 #define HAVE_SINH 1 #define HAVE_TANH 1 #define HAVE_EXECVE 1 #define HAVE_TZNAME 1 #define HAVE_DAYLIGHT 1 #define SETPGRP_VOID 1 #define inline __inline #define NEED_IO_SEEK_BETWEEN_RW 1 #define RSHIFT(x,y) ((x)>>(int)y) #define FILE_COUNT _cnt #define FILE_READPTR _ptr #define DEFAULT_KCODE KCODE_NONE #define DLEXT ".so" #define DLEXT2 ".dll" #define RUBY_LIB "/lib/ruby/$(MAJOR).$(MINOR)" #define RUBY_SITE_LIB "/lib/ruby/site_ruby" #define RUBY_SITE_LIB2 "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)" #define RUBY_PLATFORM "$(ARCH)-$(OS)" #define RUBY_ARCHLIB "/lib/ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)" #define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(RT)" < $@ @del y.tab.c {$(srcdir)}parse.c: parse.y ext/extinit.obj: ext/extinit.c $(SETUP) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -Fo$@ -c ext/extinit.c acosh.obj: {$(srcdir)}missing/acosh.c 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 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: ### array.obj: {$(srcdir)}array.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}util.h {$(srcdir)}st.h {$(srcdir)}/win32/win32.h bignum.obj: {$(srcdir)}bignum.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h class.obj: {$(srcdir)}class.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}rubysig.h {$(srcdir)}node.h {$(srcdir)}st.h \ {$(srcdir)}/win32/win32.h compar.obj: {$(srcdir)}compar.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h dir.obj: {$(srcdir)}dir.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}util.h {$(srcdir)}/win32/win32.h dln.obj: {$(srcdir)}dln.c config.h {$(srcdir)}defines.h \ {$(srcdir)}dln.h {$(srcdir)}/win32/win32.h dmyext.obj: {$(srcdir)}dmyext.c enum.obj: {$(srcdir)}enum.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}node.h {$(srcdir)}util.h {$(srcdir)}/win32/win32.h error.obj: {$(srcdir)}error.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}env.h {$(srcdir)}version.h {$(srcdir)}/win32/win32.h eval.obj: {$(srcdir)}eval.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}node.h {$(srcdir)}env.h {$(srcdir)}util.h \ {$(srcdir)}rubysig.h {$(srcdir)}st.h {$(srcdir)}dln.h \ {$(srcdir)}/win32/win32.h file.obj: {$(srcdir)}file.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}rubyio.h {$(srcdir)}rubysig.h {$(srcdir)}util.h \ {$(srcdir)}dln.h {$(srcdir)}/win32/win32.h gc.obj: {$(srcdir)}gc.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}rubysig.h {$(srcdir)}st.h {$(srcdir)}node.h \ {$(srcdir)}env.h {$(srcdir)}re.h {$(srcdir)}regex.h \ {$(srcdir)}/win32/win32.h hash.obj: {$(srcdir)}hash.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}st.h {$(srcdir)}util.h {$(srcdir)}rubysig.h \ {$(srcdir)}/win32/win32.h inits.obj: {$(srcdir)}inits.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h io.obj: {$(srcdir)}io.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}rubyio.h {$(srcdir)}rubysig.h {$(srcdir)}env.h \ {$(srcdir)}util.h {$(srcdir)}/win32/win32.h main.obj: {$(srcdir)}main.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h marshal.obj: {$(srcdir)}marshal.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}rubyio.h {$(srcdir)}st.h {$(srcdir)}/win32/win32.h math.obj: {$(srcdir)}math.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h numeric.obj: {$(srcdir)}numeric.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h object.obj: {$(srcdir)}object.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}st.h {$(srcdir)}/win32/win32.h pack.obj: {$(srcdir)}pack.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h parse.obj: {$(srcdir)}parse.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}env.h {$(srcdir)}node.h {$(srcdir)}st.h {$(srcdir)}regex.h \ {$(srcdir)}util.h {$(srcdir)}lex.c {$(srcdir)}/win32/win32.h prec.obj: {$(srcdir)}prec.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h process.obj: {$(srcdir)}process.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}rubysig.h {$(srcdir)}st.h {$(srcdir)}/win32/win32.h random.obj: {$(srcdir)}random.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h range.obj: {$(srcdir)}range.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h re.obj: {$(srcdir)}re.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}re.h {$(srcdir)}regex.h {$(srcdir)}/win32/win32.h regex.obj: {$(srcdir)}regex.c config.h {$(srcdir)}regex.h \ {$(srcdir)}/win32/win32.h ruby.obj: {$(srcdir)}ruby.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}dln.h {$(srcdir)}node.h {$(srcdir)}util.h \ {$(srcdir)}/win32/win32.h signal.obj: {$(srcdir)}signal.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}rubysig.h {$(srcdir)}/win32/win32.h sprintf.obj: {$(srcdir)}sprintf.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h st.obj: {$(srcdir)}st.c config.h {$(srcdir)}st.h \ {$(srcdir)}/win32/win32.h string.obj: {$(srcdir)}string.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}re.h {$(srcdir)}regex.h {$(srcdir)}/win32/win32.h struct.obj: {$(srcdir)}struct.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h time.obj: {$(srcdir)}time.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}/win32/win32.h util.obj: {$(srcdir)}util.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}util.h {$(srcdir)}/win32/win32.h variable.obj: {$(srcdir)}variable.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}env.h {$(srcdir)}node.h {$(srcdir)}st.h {$(srcdir)}util.h \ {$(srcdir)}/win32/win32.h version.obj: {$(srcdir)}version.c {$(srcdir)}ruby.h config.h \ {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.h \ {$(srcdir)}version.h {$(srcdir)}/win32/win32.h