7
#### Start of system configuration section. ####
9
## variables may be overridden by $(compile_dir)/Makefile
13
!ifndef RUBY_INSTALL_NAME
14
RUBY_INSTALL_NAME = ruby$(RUBY_SUFFIX)
16
!if !defined(RUBYW_INSTALL_NAME) || "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)"
17
RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw)
19
!if "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)"
20
RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w
22
!if !defined(icondirs) && defined(ICONDIRS)
26
icondirs=$(icondirs:\=/)
27
iconinc=-I$(icondirs: = -I)
31
VPATH = $(srcdir);$(srcdir)/missing;$(srcdir)/win32
32
.SUFFIXES: .y .def .lib
37
!if !defined(CPP) || "$(CPP)" == "cl"
46
RM = $(COMSPEC) /C $(srcdir:/=\)\win32\rm.bat
48
!if !defined(PROCESSOR_ARCHITECTURE)
49
PROCESSOR_ARCHITECTURE = x86
51
MACHINE = $(PROCESSOR_ARCHITECTURE)
52
!if "$(PROCESSOR_ARCHITECTURE)" == "x86"
53
!if !defined(PROCESSOR_LEVEL)
56
!if 6 < $(PROCESSOR_LEVEL)
60
PROCESSOR_FLAG = -G$(PROCESSOR_LEVEL)
62
CPU = i$(PROCESSOR_LEVEL)86
65
CPU = $(PROCESSOR_ARCHITECTURE)
66
ARCH = $(PROCESSOR_ARCHITECTURE)
68
!if !defined(DEBUGFLAGS) && $(MSC_VER) < 1400
71
!if !defined(OPTFLAGS)
82
!error RT not defined. Retry from configure pass.
86
RUBY_SO_NAME = $(RT)-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)
92
!if !defined(exec_prefix)
93
exec_prefix = $(prefix)
96
libdir = $(exec_prefix)/lib
105
RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system
114
RDOCTARGET = install-nodoc
119
CFLAGS = -MD $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG)
121
!if !defined(LDFLAGS)
122
LDFLAGS = -link -incremental:no -debug -opt:ref -opt:icf
124
!if !defined(XLDFLAGS)
125
XLDFLAGS = -stack:$(STACK)
130
!if !defined(EXTLIBS)
133
!if !defined(USE_WINSOCK2)
134
LIBS = oldnames.lib user32.lib advapi32.lib wsock32.lib $(EXTLIBS)
136
LIBS = oldnames.lib user32.lib advapi32.lib ws2_32.lib $(EXTLIBS)
138
MISSING = acosh.obj crypt.obj erf.obj win32.obj
140
ARFLAGS = -machine:$(MACHINE) -out:
144
XCFLAGS = -DRUBY_EXPORT -I. -I$(srcdir) -I$(srcdir)/missing
145
!if $(MSC_VER) >= 1400
146
# Prevents VC++ 2005 (cl ver 14) warnings
147
CPPFLAGS = $(CPPFLAGS) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
148
MANIFESTTOOL = mt -nologo
149
LDSHARED_1 = $(MANIFESTTOOL) -manifest $(@).manifest -outputresource:$(@);2
150
LDSHARED_2 = @$(RM) $(@:/=\).manifest
153
DLDFLAGS = $(LDFLAGS) -dll
156
LIBRUBY_LDSHARED = $(LDSHARED)
157
LIBRUBY_DLDFLAGS = $(EXTLDFLAGS) -def:$(RUBYDEF)
160
PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)
161
WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT)
162
RUBYDEF = $(RUBY_SO_NAME).def
163
MINIRUBY = .\miniruby$(EXEEXT) $(MINIRUBYOPT)
164
RUNRUBY = .\ruby$(EXEEXT) "$(srcdir)/runruby.rb" --extout="$(EXTOUT)" --
171
#### End of system configuration section. ####
173
LIBRUBY_A = $(RUBY_SO_NAME)-static.lib
174
LIBRUBY_SO = $(RUBY_SO_NAME).dll
175
LIBRUBY = $(RUBY_SO_NAME).lib
176
LIBRUBYARG = $(LIBRUBY)
178
PREP = miniruby$(EXEEXT)
180
!if !defined(EXTSTATIC)
186
INSTALLED_LIST= .installed.list
188
WINMAINOBJ = winmain.$(OBJEXT)
189
MINIOBJS = dmydln.$(OBJEXT)
191
all: $(srcdir)/win32/Makefile.sub $(srcdir)/common.mk
196
!include $(srcdir)/common.mk
198
CONFIG_H = ./.config.h.time
200
config: config.status
202
config.status: $(CONFIG_H)
204
$(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub
205
@echo Creating config.h
206
@$(COMSPEC) /C $(srcdir:/=\)\win32\ifchange.bat config.h <<
207
#if _MSC_VER != $(MSC_VER)
208
#error MSC version unmatch
210
!if defined(USE_WINSOCK2)
211
#define USE_WINSOCK2 1
213
#define STDC_HEADERS 1
214
#define HAVE_SYS_TYPES_H 1
215
#define HAVE_SYS_STAT_H 1
216
#define HAVE_STDLIB_H 1
217
#define HAVE_STRING_H 1
218
#define HAVE_MEMORY_H 1
219
!if $(MSC_VER) >= 1400
220
#define HAVE_LONG_LONG 1
224
#define SIZEOF_SHORT 2
225
#define SIZEOF_LONG 4
226
!if $(MSC_VER) >= 1400
227
#define SIZEOF_LONG_LONG 8
229
#define SIZEOF_LONG_LONG 0
231
#define SIZEOF___INT64 8
232
#define SIZEOF_OFF_T 4
233
#define SIZEOF_VOIDP 4
234
#define SIZEOF_FLOAT 4
235
#define SIZEOF_DOUBLE 8
236
!if $(MSC_VER) >= 1400
237
#define SIZEOF_TIME_T 8
239
#define SIZEOF_TIME_T 4
241
#define HAVE_PROTOTYPES 1
242
#define TOKEN_PASTE(x,y) x##y
243
#define HAVE_STDARG_PROTOTYPES 1
244
!if $(MSC_VER) > 1100
245
#define NORETURN(x) __declspec(noreturn) x
247
#define RUBY_EXTERN extern __declspec(dllimport)
248
#define HAVE_DECL_SYS_NERR 1
249
#define HAVE_LIMITS_H 1
250
#define HAVE_FCNTL_H 1
251
#define HAVE_SYS_UTIME_H 1
252
#define HAVE_FLOAT_H 1
256
#define HAVE_STRUCT_STAT_ST_RDEV 1
257
#define HAVE_ST_RDEV 1
258
#define GETGROUPS_T int
259
#define RETSIGTYPE void
260
#define HAVE_ALLOCA 1
262
#define HAVE_MEMCMP 1
263
#define HAVE_MEMMOVE 1
265
#define HAVE_STRCASECMP 1
266
#define HAVE_STRNCASECMP 1
267
#define HAVE_STRERROR 1
268
#define HAVE_STRFTIME 1
269
#define HAVE_STRCHR 1
270
#define HAVE_STRSTR 1
271
#define HAVE_STRTOD 1
272
#define HAVE_STRTOL 1
273
#define HAVE_STRTOUL 1
275
#define HAVE_VSNPRINTF 1
277
#define HAVE_FINITE 1
282
#define HAVE_WAITPID 1
284
#define HAVE_GETCWD 1
285
#define HAVE_CHSIZE 1
289
#define HAVE__SETJMP 1
290
#define HAVE_TELLDIR 1
291
#define HAVE_SEEKDIR 1
292
#define HAVE_MKTIME 1
296
#define HAVE_TZNAME 1
297
#define HAVE_DAYLIGHT 1
298
#define SETPGRP_VOID 1
299
#define RSHIFT(x,y) ((x)>>(int)y)
300
#define FILE_COUNT _cnt
301
#define FILE_READPTR _ptr
302
#define inline __inline
303
#define NEED_IO_SEEK_BETWEEN_RW 1
304
#define STACK_GROW_DIRECTION -1
305
#define DEFAULT_KCODE KCODE_NONE
307
#define DLEXT2 ".dll"
308
#define RUBY_LIB "/lib/ruby/$(MAJOR).$(MINOR)"
309
#define RUBY_SITE_LIB "/lib/ruby/site_ruby"
310
#define RUBY_SITE_LIB2 "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)"
311
#define RUBY_PLATFORM "$(ARCH)-$(OS)"
312
#define RUBY_ARCHLIB "/lib/ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)"
313
#define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(RT)"
317
config.status: $(MKFILES) $(srcdir)/win32/Makefile.sub $(srcdir)/common.mk
320
# Generated automatically by Makefile.sub.
321
s,@SHELL@,$$(COMSPEC),;t t
322
s,@BUILD_FILE_SEPARATOR@,\,;t t
323
s,@PATH_SEPARATOR@,;,;t t
324
s,@CFLAGS@,$(CFLAGS),;t t
325
s,@CPPFLAGS@,$(CPPFLAGS),;t t
326
s,@CXXFLAGS@,$(CXXFLAGS),;t t
327
s,@FFLAGS@,$(FFLAGS),;t t
329
s,@LIBS@,$(LIBS),;t t
330
s,@exec_prefix@,$${prefix},;t t
332
s,@program_transform_name@,s,$$,$(RUBY_SUFFIX),,;t t
333
s,@bindir@,$${exec_prefix}/bin,;t t
334
s,@sbindir@,$${exec_prefix}/sbin,;t t
335
s,@libexecdir@,$${exec_prefix}/libexec,;t t
336
s,@datadir@,$${prefix}/share,;t t
337
s,@sysconfdir@,$${prefix}/etc,;t t
338
s,@sharedstatedir@,/etc,;t t
339
s,@localstatedir@,/var,;t t
340
s,@libdir@,$${exec_prefix}/lib,;t t
341
s,@includedir@,$${prefix}/include,;t t
342
s,@oldincludedir@,/usr/include,;t t
343
s,@infodir@,$${prefix}/info,;t t
344
s,@mandir@,$${prefix}/man,;t t
345
s,@build@,$(CPU)-pc-$(OS),;t t
346
s,@build_alias@,$(CPU)-$(OS),;t t
347
s,@build_cpu@,$(CPU),;t t
348
s,@build_vendor@,pc,;t t
349
s,@build_os@,$(OS),;t t
350
s,@host@,$(CPU)-pc-$(OS),;t t
351
s,@host_alias@,$(CPU)-$(OS),;t t
352
s,@host_cpu@,$(CPU),;t t
353
s,@host_vendor@,pc,;t t
354
s,@host_os@,$(OS),;t t
355
s,@target@,$(ARCH)-pc-$(OS),;t t
356
s,@target_alias@,$(ARCH)-$(OS),;t t
357
s,@target_cpu@,$(ARCH),;t t
358
s,@target_vendor@,pc,;t t
359
s,@target_os@,$(OS),;t t
362
s,@YACC@,$(YACC),;t t
365
s,@ARFLAGS@,$(ARFLAGS),;t t
366
s,@LN_S@,$(LN_S),;t t
367
s,@SET_MAKE@,$(SET_MAKE),;t t
368
s,@CP@,copy > nul,;t t
369
s,@LIBOBJS@, acosh.obj crypt.obj erf.obj win32.obj,;t t
370
s,@ALLOCA@,$(ALLOCA),;t t
371
s,@DEFAULT_KCODE@,$(DEFAULT_KCODE),;t t
373
s,@OBJEXT@,$(OBJEXT),;t t
374
s,@XCFLAGS@,$(XCFLAGS),;t t
375
s,@XLDFLAGS@,$(XLDFLAGS),;t t
376
s,@DLDFLAGS@,$(DLDFLAGS) $$(LIBPATH) -def:$$(DEFFILE) -implib:$$(*F:.so=)-$$(arch).lib -pdb:$$(*F:.so=)-$$(arch).pdb,;t t
377
s,@ARCH_FLAG@,$(ARCH_FLAG),;t t
378
s,@STATIC@,$(STATIC),;t t
380
s,@LDSHARED@,$(LDSHARED),;t t
384
s,@STRIP@,$(STRIP),;t t
385
s,@EXTSTATIC@,$(EXTSTATIC),;t t
387
s,@MINIRUBY@,$(MINIRUBY),;t t
388
s,@PREP@,miniruby$(EXEEXT),;t t
389
s,@RUNRUBY@,$(RUNRUBY),;t t
390
s,@EXTOUT@,$(EXTOUT),;t t
392
s,@RDOCTARGET@,$(RDOCTARGET),;t t
393
s,@LIBRUBY_LDSHARED@,$(LIBRUBY_LDSHARED),;t t
394
s,@LIBRUBY_DLDFLAGS@,$(LIBRUBY_DLDFLAGS),;t t
395
s,@RUBY_INSTALL_NAME@,$(RUBY_INSTALL_NAME),;t t
396
s,@rubyw_install_name@,$(RUBYW_INSTALL_NAME),;t t
397
s,@RUBYW_INSTALL_NAME@,$(RUBYW_INSTALL_NAME),;t t
398
s,@RUBY_SO_NAME@,$(RUBY_SO_NAME),;t t
399
s,@LIBRUBY_A@,$$(RUBY_SO_NAME)-static.lib,;t t
400
s,@LIBRUBY_SO@,$$(RUBY_SO_NAME).dll,;t t
401
s,@LIBRUBY_ALIASES@,$(LIBRUBY_ALIASES),;t t
402
s,@LIBRUBY@,$$(RUBY_SO_NAME).lib,;t t
403
s,@LIBRUBYARG@,$$(LIBRUBYARG_SHARED),;t t
404
s,@LIBRUBYARG_STATIC@,$$(LIBRUBY_A),;t t
405
s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t
406
s,@SOLIBS@,$(SOLIBS),;t t
407
s,@DLDLIBS@,$(DLDLIBS),;t t
408
s,@ENABLE_SHARED@,yes,;t t
409
s,@OUTFLAG@,$(OUTFLAG),;t t
410
s,@CPPOUTFILE@,-P,;t t
411
s,@LIBPATHFLAG@, -libpath:"%s",;t t
413
s,@LIBARG@,%s.lib,;t t
414
s,@LINK_SO@,$$(LDSHARED) -Fe$$(@) $$(OBJS) $$(LIBS) $$(LOCAL_LIBS) $$(DLDFLAGS),;t t
415
!if $(MSC_VER) >= 1400
416
s,@LINK_SO@,$(MANIFESTTOOL) -manifest $$(@).manifest -outputresource:$$(@);2,;t t
417
s,@LINK_SO@,@$$(RM) $$(@:/=\).manifest,;t t
419
s,@COMPILE_C@,$$(CC) $$(INCFLAGS) $$(CFLAGS) $$(CPPFLAGS) -c -Tc$$(<:\=/),;t t
420
s,@COMPILE_CXX@,$$(CXX) $$(INCFLAGS) $$(CXXFLAGS) $$(CPPFLAGS) -c -Tp$$(<:\=/),;t t
421
s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: {$$(topdir)}.%s{}.%s: {$$(hdrdir)}.%s{}.%s: .%s.%s:,;t t
422
s,@RULE_SUBST@,{.;$$(srcdir);$$(topdir);$$(hdrdir)}%s,;t t
423
s,@TRY_LINK@,$$(CC) -Feconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS) -link $$(LDFLAGS) $$(LIBPATH) $$(XLDFLAGS),;t t
424
s,@COMMON_LIBS@,m,;t t
425
s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN,;t t
426
!if defined(USE_WINSOCK2)
427
s,@COMMON_HEADERS@,winsock2.h windows.h,;t t
429
s,@COMMON_HEADERS@,windows.h winsock.h,;t t
431
s,@DISTCLEANFILES@,vc*.pdb,;t t
432
s,@EXPORT_PREFIX@, ,;t t
433
s,@arch@,$(ARCH)-$(OS),;t t
434
s,@sitearch@,$(ARCH)-$(RT),;t t
435
s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t
436
s,@configure_args@,--with-make-prog=nmake --enable-shared $(configure_args),;t t
437
s,@configure_input@,$$configure_input,;t t
438
s,@srcdir@,$(srcdir),;t t
439
s,@top_srcdir@,$(srcdir),;t t
444
$(PURIFY) $(CC) $(MAINOBJ) $(MINIOBJS) $(LIBRUBY_A) $(LIBS) -Fe$@ $(LDFLAGS)
448
$(PROGRAM): $(RUBY_INSTALL_NAME).res
449
$(PURIFY) $(CC) $(MAINOBJ) $(RUBY_INSTALL_NAME).res \
450
$(OUTFLAG)$@ $(LIBRUBYARG) $(LDFLAGS) $(XLDFLAGS)
454
$(WPROGRAM): $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $(RUBYW_INSTALL_NAME).res
455
$(PURIFY) $(CC) $(MAINOBJ) $(WINMAINOBJ) \
456
$(RUBYW_INSTALL_NAME).res $(OUTFLAG)$@ $(LIBRUBYARG) \
457
$(LDFLAGS) $(XLDFLAGS) -subsystem:Windows
461
$(LIBRUBY_A): $(OBJS) $(DMYEXT)
462
$(AR) $(ARFLAGS)$@ $(OBJS) $(DMYEXT)
464
$(LIBRUBY): $(RUBYDEF)
465
$(AR) $(ARFLAGS)$@ -def:$(RUBYDEF)
467
$(LIBRUBY_SO): $(LIBRUBY_A) $(DLDOBJS) $(RUBYDEF) $(RUBY_SO_NAME).res
469
@-$(PRE_LIBRUBY_UPDATE)
470
$(LDSHARED) $(MAINOBJ) $(DLDOBJS) $(LIBRUBY_A) \
471
$(RUBY_SO_NAME).res $(LIBS) -Fe$@ $(LDFLAGS) \
476
$(RUBYDEF): $(LIBRUBY_A) $(PREP)
477
$(MINIRUBY) $(srcdir)/win32/mkexports.rb -output=$@ $(LIBRUBY_A)
479
{$(srcdir)/win32}.def.lib:
480
$(AR) $(ARFLAGS)$@ -def:$<
483
@$(RM) ext\extinit.c ext\extinit.$(OBJEXT) ext\vc*.pdb miniruby.lib
484
@$(RM) $(RUBY_INSTALL_NAME).res $(RUBYW_INSTALL_NAME).res $(RUBY_SO_NAME).res
487
@$(RM) ext\config.cache $(RBCONFIG:/=\)
488
@$(RM) *.map *.pdb *.ilk *.exp $(RUBYDEF)
489
@$(RM) $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc
491
$(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc: $(RBCONFIG)
492
@$(MINIRUBY) $(srcdir)/win32/resource.rb \
493
-ruby_name=$(RUBY_INSTALL_NAME) \
494
-rubyw_name=$(RUBYW_INSTALL_NAME) \
495
-so_name=$(RUBY_SO_NAME) \
496
. $(icondirs) $(srcdir)/win32
498
{$(srcdir)/missing}.c.obj:
499
$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -c -Tc$(<:\=/)
500
{$(srcdir)/win32}.c.obj:
501
$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -c -Tc$(<:\=/)
503
$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -c -Tc$(<:\=/)
505
$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -c -Tc$(<:\=/)
508
$(RC) -I. -I$(<D) $(iconinc) -I$(srcdir)/win32 $(RFLAGS) -fo$@ $(<:\=/)
511
$(YACC) $(YFLAGS) $(<:\=/)
512
sed -e "s!^ *extern char \*getenv();!/* & */!;s/^\(#.*\)y\.tab/\1parse/" y.tab.c > $@
515
$(OBJS): {$(srcdir)}win32/win32.h
517
dir.$(OBJEXT): {$(srcdir)}win32/dir.h
519
ext/extinit.obj: ext/extinit.c $(SETUP)
520
$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -Fo$@ -c ext/extinit.c