1# -*- makefile -*-
2
3SHELL = $(COMSPEC)
4MKFILES = Makefile
5
6!ifndef MFLAGS
7MFLAGS=-
8!endif
9
10#### Start of system configuration section. ####
11!ifndef OS
12OS = bccwin32
13!endif
14!if !defined(RT)
15!error RT not defined.  Retry from configure pass.
16!endif
17
18arch = $(ARCH)-$(OS)
19
20## variables may be overridden by $(compile_dir)/Makefile
21!ifndef srcdir
22srcdir = ..
23!endif
24!ifndef RUBY_INSTALL_NAME
25RUBY_INSTALL_NAME = ruby
26!endif
27!ifndef RUBYW_INSTALL_NAME
28RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw)
29!elif "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)"
30RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw)
31!endif
32!if "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)"
33RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w
34!endif
35!ifndef RUBY_SO_NAME
36RUBY_SO_NAME = $(RT)-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)$(TEENY)
37!endif
38!ifndef icondirs
39!ifdef ICONDIRS
40icondirs=$(ICONDIRS)
41!endif
42!endif
43!ifdef icondirs
44icondirs=$(icondirs:\=/)
45iconinc=-I$(icondirs: = -I)
46!endif
47###############
48
49.SUFFIXES: .y
50
51!ifndef CC
52CC = bcc32
53!endif
54!ifndef CPP
55CPP = cpp32
56!endif
57!ifndef RC
58RC = brcc32
59!endif
60!ifndef YACC
61YACC = bison
62!endif
63!ifndef AR
64AR = tlib
65!endif
66!ifndef BASERUBY
67BASERUBY = ruby
68!endif
69
70PURIFY =
71AUTOCONF = autoconf
72IFCHANGE = $(srcdir:/=\)\win32\ifchange.bat
73RM = $(srcdir:/=\)\win32\rm.bat
74CP = copy > nul
75MV = move > nul
76
77!if !defined(PROCESSOR_ARCHITECTURE)
78PROCESSOR_ARCHITECTURE = x86
79!endif
80MACHINE = $(PROCESSOR_ARCHITECTURE)
81!if "$(PROCESSOR_ARCHITECTURE)" == "x86"
82!ifndef PROCESSOR_LEVEL
83PROCESSOR_LEVEL = 5
84!endif
85!if 6 < $(PROCESSOR_LEVEL)
86PROCESSOR_LEVEL = 6
87!endif
88PROCESSOR_FLAG = -$(PROCESSOR_LEVEL)
89CPU = i$(PROCESSOR_LEVEL)86
90ARCH = i386
91!else
92CPU = $(PROCESSOR_ARCHITECTURE)
93ARCH = $(PROCESSOR_ARCHITECTURE)
94!endif
95!ifndef DEBUGFLAGS
96DEBUGFLAGS = 
97!endif
98!ifndef OPTFLAGS
99OPTFLAGS = -O
100!endif
101
102!ifndef prefix
103prefix = /usr
104!endif
105!ifndef exec_prefix
106exec_prefix = $(prefix)
107!endif
108!ifndef libdir
109libdir = $(exec_prefix)/lib
110!endif
111!if !defined(datadir)
112datadir = $(prefix)/share
113!endif
114!ifndef EXTOUT
115EXTOUT = .ext
116!endif
117!ifndef TESTUI
118TESTUI = console
119!endif
120!ifndef TESTS
121TESTS =
122!endif
123!ifndef RDOCTARGET
124RDOCTARGET = install-doc
125!endif
126
127OUTFLAG       = -o
128COUTFLAG      = -o
129!ifndef CFLAGS
130CFLAGS = -q -tWR -tWC $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) -w- -wsus -wcpt -wdup -wext -wrng -wrpt -wzdi
131!endif
132!ifndef DEFS
133DEFS =
134!endif
135!ifndef CPPFLAGS
136CPPFLAGS =
137!endif
138CPPFLAGS = $(DEFS) $(CPPFLAGS)
139!ifndef CXXFLAGS
140CXXFLAGS = $(CFLAGS)
141!endif
142!ifndef LDFLAGS
143LDFLAGS = -S:$(STACK)
144!endif
145!ifndef RFLAGS
146RFLAGS = $(iconinc)
147!endif
148!ifndef EXTLIBS
149EXTLIBS =
150!endif
151!ifndef MEMLIB
152MEMLIB =
153!endif
154LIBS = $(MEMLIB) cw32i.lib import32.lib ws2_32.lib $(EXTLIBS)
155MISSING = acosh.obj cbrt.obj crypt.obj erf.obj lgamma_r.obj strlcat.obj strlcpy.obj tgamma.obj win32.obj
156
157!ifndef STACK
158STACK = 0x2000000
159!endif
160
161XCFLAGS = -DRUBY_EXPORT -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(srcdir) -I$(srcdir)/missing
162
163ARFLAGS = /a /p32
164LD = ilink32 -q -Gn
165LDSHARED  = $(LD)
166XLDFLAGS  = -Tpe c0x32.obj
167WLDFLAGS  = -aa -Tpe c0w32.obj
168DLDFLAGS  = -Tpd c0d32.obj
169LIBRUBY_LDSHARED = $(LDSHARED)
170LIBRUBY_DLDFLAGS = -Gi $(DLDFLAGS) $(EXTLDFLAGS)
171LDOBJECTS = $(MAINOBJ)
172
173SOLIBS = 
174
175EXEEXT = .exe
176PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)
177WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT)
178RUBYDEF = $(RUBY_SO_NAME).def
179MINIRUBY = .\miniruby$(EXEEXT) -I$(srcdir)/lib $(MINIRUBYOPT)
180RUNRUBY = .\$(PROGRAM) -i"$(EXTOUT)/$(arch)" "$(srcdir)/runruby.rb" --extout="$(EXTOUT)" --
181
182ORGLIBPATH = $(LIB)
183
184#### End of system configuration section. ####
185
186LIBRUBY_A     = $(RUBY_SO_NAME)-static.lib
187LIBRUBY_SO    = $(RUBY_SO_NAME).dll
188LIBRUBY       = $(RUBY_SO_NAME).lib
189LIBRUBYARG    = $(LIBRUBY)
190THREAD_MODEL  = win32
191
192PREP          = miniruby$(EXEEXT)
193
194OBJEXT        = obj
195ASMEXT        = asm
196
197INSTALLED_LIST= .installed.list
198
199MKMAIN_CMD    = mkmain.bat
200
201SRC_FILE      = $(<:\=/)
202
203WINMAINOBJ    = winmain.$(OBJEXT)
204ARCHMINIOBJS  = dmydln.$(OBJEXT)
205
206arch_hdrdir = $(EXTOUT)/include/$(arch)
207hdrdir = $(srcdir)/include
208VPATH = $(arch_hdrdir)/ruby;$(hdrdir)/ruby;$(srcdir);$(srcdir)/enc;$(srcdir)/missing;$(srcdir)/win32
209
210.path.c = .;$(srcdir);$(srcdir)/enc;$(srcdir)/win32;$(srcdir)/missing
211.path.ci = $(srcdir)
212.path.inc = .;$(srcdir)
213.path.def = .;$(srcdir)
214.path.h = .;$(arch_hdrdir)/ruby;$(hdrdir)/ruby;$(srcdir);$(srcdir)/win32;$(srcdir)/missing
215.path.y = $(srcdir)
216.path. = $(srcdir)
217
218.c.obj:
219	$(CC) $(CFLAGS) $(XCFLAGS) -I. $(CPPFLAGS) $(COUTFLAG)$@ -c $(<:/=\)
220
221.c.asm:
222	$(CC) $(CFLAGS) $(XCFLAGS) -I. $(CPPFLAGS) $(COUTFLAG)$@ -S $(<:\=/)
223
224.rc.res:
225	$(RC) $(RFLAGS) -I. -I$(<D). $(iconinc) -I$(srcdir)/win32 $(RFLAGS) -fo$@ $(<:/=\)
226
227all: $(srcdir)/bcc32/Makefile.sub $(srcdir)/common.mk
228
229ruby: $(PROGRAM)
230rubyw: $(WPROGRAM)
231
232!include $(srcdir)/common.mk
233
234$(MKFILES): $(srcdir)/bcc32/Makefile.sub $(srcdir)/bcc32/configure.bat $(srcdir)/bcc32/setup.mak
235	$(COMSPEC) /C $(srcdir:/=\)\bcc32\configure.bat $(configure_args)
236	@echo $(MKFILES) should be updated, re-run $(MAKE).
237	@$(MAKE) > nul -q -f &&|
238PHONY: nul
239	@exit
240|
241
242PHONY: nul
243
244RUBY_CONFIG_H = $(arch_hdrdir)/ruby/config.h
245CONFIG_H = ./.config.h.time
246
247config: config.status
248
249config.status: $(CONFIG_H)
250
251guard = INCLUDE_RUBY_CONFIG_H
252
253$(CONFIG_H): $(MKFILES) $(srcdir)/bcc32/Makefile.sub
254	@if not exist $(arch_hdrdir:/=\) md $(arch_hdrdir:/=\)
255	@if not exist $(arch_hdrdir:/=\)\ruby md $(arch_hdrdir:/=\)\ruby
256	@$(IFCHANGE) $(RUBY_CONFIG_H:/=\) &&|
257\#ifndef $(guard)
258\#define $(guard) 1
259\#define NO_BIG_INLINE 1
260\#define HAVE_SYS_TYPES_H 1
261\#define HAVE_SYS_STAT_H 1
262\#define HAVE_STDLIB_H 1
263\#define HAVE_STRING_H 1
264\#define HAVE_MEMORY_H 1
265\#define HAVE_LONG_LONG 1
266\#define HAVE_OFF_T 1
267\#define SIZEOF_INT 4
268\#define SIZEOF_SHORT 2
269\#define SIZEOF_LONG 4
270\#define SIZEOF_LONG_LONG 0
271\#define SIZEOF___INT64 8
272\#define SIZEOF_OFF_T 8
273\#define SIZEOF_VOIDP 4
274\#define SIZEOF_FLOAT 4
275\#define SIZEOF_DOUBLE 8
276\#define SIZEOF_TIME_T 4
277\#define SIZEOF_RLIM_T 0
278\#define SIZEOF_SIZE_T 4
279\#define SIZEOF_PTRDIFF_T 4
280\#define HAVE_PROTOTYPES 1
281\#define TOKEN_PASTE(x,y) x\#\#y
282\#define HAVE_STDARG_PROTOTYPES 1
283\#define NORETURN(x) x
284\#define RUBY_EXTERN extern __declspec(dllimport)
285\#define HAVE_DECL_SYS_NERR 1
286\#define HAVE_LIMITS_H 1
287\#define HAVE_FCNTL_H 1
288\#define HAVE_UTIME_H 1
289\#define HAVE_FLOAT_H 1
290\#define rb_uid_t uid_t
291\#define rb_gid_t gid_t
292\#define rb_pid_t int
293\#define HAVE_STRUCT_STAT_ST_RDEV 1
294\#define HAVE_ST_RDEV 1
295!if $(BORLANDC) < 0x0580
296\#define int8_t signed char
297\#define uint8_t unsigned char
298\#define int16_t short
299\#define uint16_t unsigned short
300\#define int32_t int
301\#define uint32_t unsigned int
302\#define int64_t __int64
303\#define uint64_t unsigned __int64
304\#define ssize_t int
305!endif
306\#define HAVE_INT8_T 1
307\#define HAVE_UINT8_T 1
308\#define SIZEOF_INT8_T 1
309\#define HAVE_INT16_T 1
310\#define HAVE_UINT16_T 1
311\#define SIZEOF_INT32_T 2
312\#define HAVE_INT32_T 1
313\#define HAVE_UINT32_T 1
314\#define SIZEOF_INT32_T 4
315\#define HAVE_INT64_T 1
316\#define HAVE_UINT64_T 1
317\#define SIZEOF_INT64_T 8
318\#define HAVE_INTPTR_T 1
319\#define HAVE_UINTPTR_T 1
320\#define HAVE_SSIZE_T 1
321\#define GETGROUPS_T int
322\#define RETSIGTYPE void
323\#define HAVE_ALLOCA 1
324\#define HAVE_DUP2 1
325\#define HAVE_MEMMOVE 1
326\#define HAVE_MKDIR 1
327\#define HAVE_STRCASECMP 1
328\#define HAVE_STRNCASECMP 1
329\#define HAVE_STRERROR 1
330\#define HAVE_STRFTIME 1
331\#define HAVE_STRCHR 1
332\#define HAVE_STRSTR 1
333\#define HAVE_STRTOD 1
334\#define HAVE_STRTOL 1
335\#define HAVE_STRTOUL 1
336\#define HAVE_SNPRINTF 1
337\#define HAVE_VSNPRINTF 1
338\#define HAVE_ISNAN 1
339\#define HAVE_FINITE 1
340\#define HAVE_HYPOT 1
341\#define HAVE_FMOD 1
342\#define HAVE_WAITPID 1
343\#define HAVE_FSYNC 1
344\#define HAVE_GETCWD 1
345\#define HAVE_TRUNCATE 1
346\#define HAVE_FTRUNCATE 1
347\#define HAVE_FSEEKO 1
348\#define HAVE_FTELLO 1
349\#define HAVE_TIMES 1
350\#define HAVE_FCNTL 1
351\#define HAVE_LINK 1
352\#define HAVE_TELLDIR 1
353\#define HAVE_SEEKDIR 1
354\#define HAVE_COSH 1
355\#define HAVE_SINH 1
356\#define HAVE_TANH 1
357\#define RSHIFT(x,y) ((x)>>(int)y)
358\#define FILE_COUNT level
359\#define FILE_READPTR curp
360\#define RUBY_SETJMP(env) setjmp(env)
361\#define RUBY_LONGJMP(env,val) longjmp(env,val)
362\#define RUBY_JMP_BUF jmp_buf
363\#define inline __inline
364\#define NEED_IO_SEEK_BETWEEN_RW 1
365\#define STACK_GROW_DIRECTION -1
366\#define DEFAULT_KCODE KCODE_NONE
367\#define LOAD_RELATIVE 1
368\#define DLEXT ".so"
369\#define RUBY_LIB_PREFIX "/lib/ruby"
370\#define RUBY_PLATFORM "$(ARCH)-$(OS)"
371\#endif /* $(guard) */
372|
373	@exit > $(@:/=\)
374
375config.status: $(MKFILES) $(srcdir)/bcc32/Makefile.sub $(srcdir)/common.mk
376	@echo Creating $@
377	@type > $@ &&|
378# Generated automatically by Makefile.sub.
379s,@SHELL@,$$(COMSPEC),;t t
380s,@BUILD_FILE_SEPARATOR@,\,;t t
381s,@PATH_SEPARATOR@,;,;t t
382s,@CFLAGS@,$(CFLAGS),;t t
383s,@DEFS@,$(DEFS),;t t
384s,@CPPFLAGS@,$(CPPFLAGS),;t t
385s,@CXXFLAGS@,$(CXXFLAGS),;t t
386s,@FFLAGS@,$(FFLAGS),;t t
387s,@LDFLAGS@,,;t t
388s,@LIBS@,$(LIBS),;t t
389s,@exec_prefix@,$${prefix},;t t
390s,@prefix@,$(prefix),;t t
391s,@program_transform_name@,s,,,,;t t
392s,@bindir@,$${exec_prefix}/bin,;t t
393s,@sbindir@,$${exec_prefix}/sbin,;t t
394s,@libexecdir@,$${exec_prefix}/libexec,;t t
395s,@datadir@,$${prefix}/share,;t t
396s,@sysconfdir@,$${prefix}/etc,;t t
397s,@sharedstatedir@,/etc,;t t
398s,@localstatedir@,/var,;t t
399s,@libdir@,$${exec_prefix}/lib,;t t
400s,@includedir@,$${prefix}/include,;t t
401s,@oldincludedir@,/usr/include,;t t
402s,@infodir@,$${prefix}/info,;t t
403s,@mandir@,$${prefix}/man,;t t
404s,@ridir@,$${prefix}/share/ri,;t t
405s,@build@,$(CPU)-pc-$(OS),;t t
406s,@build_alias@,$(CPU)-$(OS),;t t
407s,@build_cpu@,$(CPU),;t t
408s,@build_vendor@,pc,;t t
409s,@build_os@,$(OS),;t t
410s,@host@,$(CPU)-pc-$(OS),;t t
411s,@host_alias@,$(CPU)-$(OS),;t t
412s,@host_cpu@,$(CPU),;t t
413s,@host_vendor@,pc,;t t
414s,@host_os@,$(OS),;t t
415s,@target@,$(ARCH)-pc-$(OS),;t t
416s,@target_alias@,$(ARCH)-$(OS),;t t
417s,@target_cpu@,$(ARCH),;t t
418s,@target_vendor@,pc,;t t
419s,@target_os@,$(OS),;t t
420s,@CC@,$(CC),;t t
421s,@CPP@,cpp32,;t t
422s,@CXX@,$$(CC),;t t
423s,@LD@,$(LD),;t t
424s,@YACC@,$(YACC),;t t
425s,@RANLIB@,,;t t
426s,@AR@,$(AR),;t t
427s,@ARFLAGS@,$(ARFLAGS) ,;t t
428s,@LN_S@,$(LN_S),;t t
429s,@SET_MAKE@,MFLAGS = -$$(MAKEFLAGS),;t t
430s,@RM@,$$(top_srcdir:/=\)\win32\rm.bat,;t t
431s,@CP@,copy > nul,;t t
432s,@LIBOBJS@, $(MISSING),;t t
433s,@ALLOCA@,$(ALLOCA),;t t
434s,@DEFAULT_KCODE@,$(DEFAULT_KCODE),;t t
435s,@EXEEXT@,.exe,;t t
436s,@OBJEXT@,obj,;t t
437s,@XCFLAGS@,$(XCFLAGS),;t t
438s,@XLDFLAGS@,$(XLDFLAGS),;t t
439s,@DLDFLAGS@,$(DLDFLAGS),;t t
440s,@ARCH_FLAG@,$(ARCH_FLAG),;t t
441s,@STATIC@,$(STATIC),;t t
442s,@CCDLFLAGS@,,;t t
443s,@LDSHARED@,$(LDSHARED),;t t
444s,@DLEXT@,so,;t t
445s,@LIBEXT@,lib,;t t
446s,@STRIP@,$(STRIP),;t t
447s,@EXTSTATIC@,$(EXTSTATIC),;t t
448s,@setup@,Setup,;t t
449s,@MINIRUBY@,$(MINIRUBY),;t t
450s,@PREP@,miniruby$(EXEEXT),;t t
451s,@RUNRUBY@,$(RUNRUBY),;t t
452s,@EXTOUT@,$(EXTOUT),;t t
453s,@ARCHFILE@,,;t t
454s,@RDOCTARGET@,,;t t
455s,@LIBRUBY_LDSHARED@,$$(LDSHARED),;t t
456s,@LIBRUBY_DLDFLAGS@,-Gi $$(DLDFLAGS),;t t
457s,@RUBY_INSTALL_NAME@,$(RUBY_INSTALL_NAME),;t t
458s,@rubyw_install_name@,$(RUBYW_INSTALL_NAME),;t t
459s,@RUBYW_INSTALL_NAME@,$(RUBYW_INSTALL_NAME),;t t
460s,@RUBY_SO_NAME@,$(RUBY_SO_NAME),;t t
461s,@LIBRUBY_A@,$$(RUBY_SO_NAME)-static.lib,;t t
462s,@LIBRUBY_SO@,$$(RUBY_SO_NAME).dll,;t t
463s,@LIBRUBY_ALIASES@,$(LIBRUBY_ALIASES),;t t
464s,@LIBRUBY@,$$(RUBY_SO_NAME).lib,;t t
465s,@LIBRUBYARG@,$$(LIBRUBYARG_SHARED),;t t
466s,@LIBRUBYARG_STATIC@,$$(LIBRUBY_A),;t t
467s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t
468s,@SOLIBS@,$(SOLIBS),;t t
469s,@DLDLIBS@,$(DLDLIBS),;t t
470s,@ENABLE_SHARED@,yes,;t t
471s,@OUTFLAG@,$(OUTFLAG),;t t
472s,@COUTFLAG@,$(COUTFLAG),;t t
473s,@CPPOUTFILE@,,;t t
474s,@LIBPATHFLAG@, -L"%s",;t t
475s,@RPATHFLAG@,,;t t
476s,@LIBARG@,%s.lib,;t t
477s,@LINK_SO@,$$(LDSHARED) $$(DLDFLAGS) $$(LIBPATH) $$(OBJS:/=\), $$(@:/=\), nul, $$(LIBS) $$(LOCAL_LIBS), $$(DEFFILE:/=\), $$(RESFILE:/=\),;t t
478s,@COMPILE_C@,$$(CC) $$(INCFLAGS) $$(CFLAGS) $$(CPPFLAGS) $(COUTFLAG)$$(@) -c $$(<:/=\),;t t
479s,@COMPILE_CXX@,$$(CXX) $$(INCFLAGS) $$(CXXFLAGS) $$(CPPFLAGS) -P $(COUTFLAG)$$(@) -c $$(<:/=\),;t t
480s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: {$$(topdir)}.%s{}.%s: {$$(hdrdir)}.%s{}.%s: .%s.%s:,;t t
481s,@RULE_SUBST@,{.;$$(VPATH)}%s,;t t
482s,@COMMON_LIBS@,m advapi32 avicap32 avifil32 cap comctl32 comdlg32 dlcapi gdi32 glu32 imagehlp imm32 inetmib1 kernel32 loadperf lsapi32 lz32 mapi32 mgmtapi mpr msacm32 msvfw32 nddeapi netapi32 ole32 oleaut32 oledlg olepro32 opengl32 pdh pkpd32 rasapi32 rasdlg rassapi rpcrt4 setupapi shell32 shfolder snmpapi sporder tapi32 url user32 vdmdbg version win32spl winmm wintrust wsock32,;t t
483s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN WIN32,;t t
484s,@COMMON_HEADERS@,winsock2.h windows.h,;t t
485s,@cleanlibs@,$$*.tds,;t t
486s,@cleanobjs@,$$*-$$(arch).def $$*.il? $$*.lib,;t t
487s,@TRY_LINK@,$$(CC) -oconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(LIBPATH) $$(LDFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS),;t t
488s,@EXPORT_PREFIX@,_,;t t
489s,@arch@,$(ARCH)-$(OS),;t t
490s,@sitearch@,$(ARCH)-$(OS),;t t
491s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t
492s,@vendordir@,$${prefix}/lib/ruby/vendor_ruby,;t t
493s,@rubyhdrdir@,$$(includedir)/ruby-$$(MAJOR).$$(MINOR).$$(TEENY),;t t
494s,@sitehdrdir@,$$(rubyhdrdir)/site_ruby,;t t
495s,@vendorhdrdir@,$$(rubyhdrdir)/vendor_ruby,;t t
496s,@configure_args@,--enable-shared $(configure_args),;t t
497s,@configure_input@,$$configure_input,;t t
498s,@srcdir@,$(srcdir),;t t
499s,@top_srcdir@,$(srcdir),;t t
500|
501
502miniruby$(EXEEXT):
503		@echo $(LIBS)
504		$(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(MINIOBJS) $(COMMONOBJS:/=\) $(DMYEXT),$@,nul,$(LIBS)
505
506$(PROGRAM):	$(MAINOBJ) $(LIBRUBY_SO) $(RUBY_INSTALL_NAME).res
507		$(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ),$@,nul,$(LIBRUBYARG) $(LIBS),,$(RUBY_INSTALL_NAME).res
508
509$(WPROGRAM):	$(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $(RUBYW_INSTALL_NAME).res
510		$(LD) $(LDFLAGS) $(WLDFLAGS) $(MAINOBJ) $(WINMAINOBJ),$@,nul,$(LIBRUBYARG) $(LIBS),,$(RUBYW_INSTALL_NAME).res
511
512$(LIBRUBY_A):	$(OBJS) $(DMYEXT)
513		@-if exist $@ del $@
514		$(AR) $(ARFLAGS) "$@" $(OBJS) $(DMYEXT)
515
516# $(LIBRUBY):	$(LIBRUBY_SO)
517#		implib $@ $(LIBRUBY_SO)
518
519$(LIBRUBY_SO): $(LIBRUBY_A) $(DLDOBJS) $(RUBYDEF) $(RUBY_SO_NAME).res
520		@echo $(DLDOBJS)
521		@$(PRE_LIBRUBY_UPDATE)
522		$(LIBRUBY_LDSHARED) $(LIBRUBY_DLDFLAGS) $(DLDOBJS:/=\),$(LIBRUBY_SO),nul,$(LIBRUBY_A) $(LIBS),$(RUBYDEF),$(RUBY_SO_NAME).res
523
524$(LIBRUBY): $(LIBRUBY_SO)
525
526$(RUBYDEF):	$(LIBRUBY_A) $(PREP)
527		$(MINIRUBY) $(srcdir)/bcc32/mkexports.rb -output=$@ -base=$(RUBY_SO_NAME) $(LIBRUBY_A)
528
529$(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc: rbconfig.rb $(srcdir)/revision.h $(srcdir)/win32/resource.rb
530		@$(MINIRUBY) $(srcdir)/win32/resource.rb \
531			-ruby_name=$(RUBY_INSTALL_NAME) \
532			-rubyw_name=$(RUBYW_INSTALL_NAME) \
533			-so_name=$(RUBY_SO_NAME) \
534			. $(icondirs) $(srcdir)/win32
535
536lex.c: {$(srcdir)}lex.c.blt
537	copy "$(?:/=\)" $@
538
539post-install-bin::
540	@$(NULLCMD)
541post-install-lib::
542	@$(NULLCMD)
543post-install-ext-comm::
544	@$(NULLCMD)
545post-install-ext-arch::
546	@$(NULLCMD)
547post-install-man::
548	@$(NULLCMD)
549post-install-doc::
550	@$(NULLCMD)
551
552clean-local::
553		@$(RM) $(WINMAINOBJ) ext\extinit.c ext\extinit.$(OBJEXT) *.tds *.il? $(RUBY_SO_NAME).lib
554		@$(RM) $(RUBY_INSTALL_NAME).res $(RUBYW_INSTALL_NAME).res $(RUBY_SO_NAME).res
555		@$(RM) *.map *.pdb *.ilk *.exp $(RUBYDEF) ext\ripper\y.output
556
557distclean-local::
558		@$(RM) ext\config.cache $(RBCONFIG:/=\)
559		@$(RM) $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc
560
561clean-ext distclean-ext realclean-ext::
562		@for /R ext %I in (.) do @if exist %I\Makefile ( \
563		    echo $(@:-ext=)ing %~nI & \
564		    cd %I & \
565		    $(MAKE) $(MFLAGS) $(@:-ext=) & \
566		    cd %CD% \
567		)
568
569ext/extinit.obj: ext/extinit.c $(SETUP)
570	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c ext/extinit.c
571
572main.$(OBJEXT): win32.h
573ascii.$(OBJEXT): win32.h
574array.$(OBJEXT): win32.h
575bignum.$(OBJEXT): win32.h
576class.$(OBJEXT): win32.h
577compar.$(OBJEXT): win32.h
578dir.$(OBJEXT): dir.h win32.h
579dln.$(OBJEXT): win32.h
580enum.$(OBJEXT): win32.h
581error.$(OBJEXT): win32.h
582euc_jp.$(OBJEXT): win32.h
583eval.$(OBJEXT): win32.h
584file.$(OBJEXT): win32.h
585gc.$(OBJEXT): win32.h
586hash.$(OBJEXT): win32.h
587inits.$(OBJEXT): win32.h
588io.$(OBJEXT): win32.h
589marshal.$(OBJEXT): win32.h
590math.$(OBJEXT): win32.h
591numeric.$(OBJEXT): win32.h
592object.$(OBJEXT): win32.h
593pack.$(OBJEXT): win32.h
594parse.$(OBJEXT): win32.h
595process.$(OBJEXT): win32.h
596prec.$(OBJEXT): win32.h
597random.$(OBJEXT): win32.h
598range.$(OBJEXT): win32.h
599re.$(OBJEXT): win32.h
600regcomp.$(OBJEXT): win32.h
601regenc.$(OBJEXT): win32.h
602regerror.$(OBJEXT): win32.h
603regexec.$(OBJEXT): win32.h
604reggnu.$(OBJEXT): win32.h
605regparse.$(OBJEXT): win32.h
606ruby.$(OBJEXT): win32.h
607signal.$(OBJEXT): win32.h
608sjis.$(OBJEXT): win32.h
609sprintf.$(OBJEXT): win32.h
610st.$(OBJEXT): win32.h
611string.$(OBJEXT): win32.h
612struct.$(OBJEXT): win32.h
613time.$(OBJEXT): win32.h
614utf_8.$(OBJEXT): win32.h
615util.$(OBJEXT): win32.h
616variable.$(OBJEXT): win32.h
617version.$(OBJEXT): win32.h
618