# -*- makefile -*- SHELL = $(COMSPEC) MKFILES = Makefile #### Start of system configuration section. #### OS = bccwin32 RT = $(OS) ## variables may be overridden by $(compile_dir)/Makefile !ifndef srcdir srcdir = .. !endif !ifndef RUBY_INSTALL_NAME RUBY_INSTALL_NAME = ruby !endif !ifndef RUBYW_INSTALL_NAME RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw) !elif "$(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 = $(RT)-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR) !endif !ifndef icondirs !ifdef ICONDIRS icondirs=$(ICONDIRS) !endif !endif !ifdef icondirs icondirs=$(icondirs:\=/) iconinc=-I$(icondirs: = -I) !endif ############### VPATH = $(srcdir):$(srcdir)/missing .SUFFIXES: .y !ifndef CC CC = bcc32 !endif !ifndef CPP CPP = cpp32 !endif !ifndef RC RC = brcc32 !endif !ifndef YACC YACC = byacc !endif !ifndef AR AR = tlib !endif PURIFY = AUTOCONF = autoconf RM = $(srcdir:/=\)\win32\rm.bat !if !defined(PROCESSOR_ARCHITECTURE) PROCESSOR_ARCHITECTURE = x86 !endif MACHINE = $(PROCESSOR_ARCHITECTURE) !if "$(PROCESSOR_ARCHITECTURE)" == "x86" !ifndef PROCESSOR_LEVEL PROCESSOR_LEVEL = 5 !endif !if 6 < $(PROCESSOR_LEVEL) PROCESSOR_LEVEL = 6 !endif PROCESSOR_FLAG = -$(PROCESSOR_LEVEL) CPU = i$(PROCESSOR_LEVEL)86 ARCH = i386 !else CPU = $(PROCESSOR_ARCHITECTURE) ARCH = $(PROCESSOR_ARCHITECTURE) !endif !ifndef DEBUGFLAGS DEBUGFLAGS = !endif !ifndef OPTFLAGS OPTFLAGS = -O !endif !ifndef prefix prefix = /usr !endif !ifndef exec_prefix exec_prefix = $(prefix) !endif !ifndef libdir libdir = $(exec_prefix)/lib !endif !if !defined(datadir) datadir = $(prefix)/share !endif !ifndef EXTOUT EXTOUT = .ext !endif !ifndef RIDATADIR RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system !endif !ifndef TESTUI TESTUI = console !endif !ifndef TESTS TESTS = !endif !ifndef RDOCTARGET RDOCTARGET = install-doc !endif OUTFLAG = -o !ifndef CFLAGS CFLAGS = -q $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) -w- -wsus -wcpt -wdup -wext -wrng -wrpt -wzdi !endif !ifndef CPPFLAGS CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)missing !endif !ifndef LDFLAGS LDFLAGS = -S:$(STACK) !endif !ifndef RFLAGS RFLAGS = $(iconinc) !endif !ifndef EXTLIBS EXTLIBS = !endif LIBS = cw32.lib import32.lib ws2_32.lib $(EXTLIBS) MISSING = acosh.obj crypt.obj erf.obj win32.obj !ifndef STACK STACK = 0x2000000 !endif XCFLAGS = -DRUBY_EXPORT ARFLAGS = /a LD = ilink32 -q -Gn LDSHARED = $(LD) XLDFLAGS = -Tpe c0x32.obj WLDFLAGS = -aa -Tpe c0w32.obj DLDFLAGS = -Tpd c0d32.obj LIBRUBY_LDSHARED = $(LDSHARED) LIBRUBY_DLDFLAGS = -Gi $(DLDFLAGS) $(EXTLDFLAGS) LDOBJECTS = $(MAINOBJ) SOLIBS = EXEEXT = .exe PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT) WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT) RUBYDEF = $(RUBY_SO_NAME).def MINIRUBY = .\miniruby$(EXEEXT) RUNRUBY = .\ruby$(EXEEXT) "$(srcdir)runruby.rb" --extout="$(EXTOUT)" -- 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) PREP = miniruby$(EXEEXT) DMYOBJS = dmyext.obj OBJEXT = obj WINMAINOBJ = winmain.$(OBJEXT) .path.c = .;$(srcdir);$(srcdir)win32;$(srcdir)missing .path.h = .;$(srcdir);$(srcdir)win32;$(srcdir)missing .path.y = $(srcdir) .path. = $(srcdir) .c.obj: $(CC) $(CFLAGS) $(XCFLAGS) -I. $(CPPFLAGS) -c $(<:/=\) .rc.res: $(RC) $(RFLAGS) -I. -I$( $(@F) @del y.tab.c all: $(srcdir)bcc32/Makefile.sub $(srcdir)common.mk ruby: $(PROGRAM) rubyw: $(WPROGRAM) !include $(srcdir)/common.mk PHONY: Makefile config: config.h config.status config.h: @echo Creating $(@:.\=) @type > $@ &&| \#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_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 SIZEOF_TIME_T 4 \#define HAVE_PROTOTYPES 1 \#define TOKEN_PASTE(x,y) x\#\#y \#define HAVE_STDARG_PROTOTYPES 1 \#define NORETURN(x) x \#define HAVE_DECL_SYS_NERR 1 \#define HAVE_LIMITS_H 1 \#define HAVE_FCNTL_H 1 \#define HAVE_UTIME_H 1 \#define HAVE_FLOAT_H 1 \#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_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_ISNAN 1 \#define HAVE_FINITE 1 \#define HAVE_FMOD 1 \#define HAVE_WAITPID 1 \#define HAVE_FSYNC 1 \#define HAVE_GETCWD 1 \#define HAVE_CHSIZE 1 \#define HAVE_TIMES 1 \#define HAVE_LINK 1 \#define HAVE_TELLDIR 1 \#define HAVE_SEEKDIR 1 \#define HAVE_COSH 1 \#define HAVE_SINH 1 \#define HAVE_TANH 1 \#define RSHIFT(x,y) ((x)>>(int)y) \#define FILE_COUNT level \#define FILE_READPTR curp \#define inline __inline \#define NEED_IO_SEEK_BETWEEN_RW 1 \#define STACK_GROW_DIRECTION -1 \#define DEFAULT_KCODE KCODE_NONE \#define DLEXT ".so" \#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)-$(OS)" | config.status: $(MKFILES) $(srcdir)bcc32/Makefile.sub $(srcdir)common.mk @echo Creating $@ @type > $@ &&| # Generated automatically by Makefile.sub. s,@SHELL@,$$(COMSPEC),;t t s,@PATH_SEPARATOR@,;,;t t s,@CFLAGS@,$(CFLAGS),;t t s,@CPPFLAGS@,$(CPPFLAGS),;t t s,@CXXFLAGS@,$(CXXFLAGS),;t t s,@FFLAGS@,$(FFLAGS),;t t s,@LDFLAGS@,,;t t s,@LIBS@,$(LIBS),;t t s,@exec_prefix@,$${prefix},;t t s,@prefix@,$(prefix),;t t s,@program_transform_name@,s,,,,;t t s,@bindir@,$${exec_prefix}/bin,;t t s,@sbindir@,$${exec_prefix}/sbin,;t t s,@libexecdir@,$${exec_prefix}/libexec,;t t s,@datadir@,$${prefix}/share,;t t s,@sysconfdir@,$${prefix}/etc,;t t s,@sharedstatedir@,/etc,;t t s,@localstatedir@,/var,;t t s,@libdir@,$${exec_prefix}/lib,;t t s,@includedir@,$${prefix}/include,;t t s,@oldincludedir@,/usr/include,;t t s,@infodir@,$${prefix}/info,;t t s,@mandir@,$${prefix}/man,;t t s,@build@,$(CPU)-pc-$(OS),;t t s,@build_alias@,$(CPU)-$(OS),;t t s,@build_cpu@,$(CPU),;t t s,@build_vendor@,pc,;t t s,@build_os@,$(OS),;t t s,@host@,$(CPU)-pc-$(OS),;t t s,@host_alias@,$(CPU)-$(OS),;t t s,@host_cpu@,$(CPU),;t t s,@host_vendor@,pc,;t t s,@host_os@,$(OS),;t t s,@target@,$(ARCH)-pc-$(OS),;t t s,@target_alias@,$(ARCH)-$(OS),;t t s,@target_cpu@,$(ARCH),;t t s,@target_vendor@,pc,;t t s,@target_os@,$(OS),;t t s,@CC@,$(CC),;t t s,@CPP@,cpp32,;t t s,@YACC@,$(YACC),;t t s,@RANLIB@,,;t t s,@AR@,$(AR),;t t s,@ARFLAGS@,$(ARFLAGS) ,;t t s,@LN_S@,$(LN_S),;t t s,@SET_MAKE@,$(SET_MAKE),;t t s,@LIBOBJS@, acosh.obj crypt.obj erf.obj win32.obj,;t t s,@ALLOCA@,$(ALLOCA),;t t s,@DEFAULT_KCODE@,$(DEFAULT_KCODE),;t t s,@EXEEXT@,.exe,;t t s,@OBJEXT@,obj,;t t s,@XCFLAGS@,$(XCFLAGS),;t t s,@XLDFLAGS@,$(XLDFLAGS),;t t s,@DLDFLAGS@,$(DLDFLAGS),;t t s,@ARCH_FLAG@,$(ARCH_FLAG),;t t s,@STATIC@,$(STATIC),;t t s,@CCDLFLAGS@,,;t t s,@LDSHARED@,$(LDSHARED),;t t s,@DLEXT@,so,;t t s,@LIBEXT@,lib,;t t s,@STRIP@,$(STRIP),;t t s,@EXTSTATIC@,$(EXTSTATIC),;t t s,@setup@,Setup,;t t s,@MINIRUBY@,$(MINIRUBY),;t t s,@LIBRUBY_LDSHARED@,$$(LDSHARED),;t t s,@LIBRUBY_DLDFLAGS@,-Gi $$(DLDFLAGS),;t t s,@RUBY_INSTALL_NAME@,$(RUBY_INSTALL_NAME),;t t s,@rubyw_install_name@,$(RUBYW_INSTALL_NAME),;t t s,@RUBYW_INSTALL_NAME@,$(RUBYW_INSTALL_NAME),;t t s,@RUBY_SO_NAME@,$(RUBY_SO_NAME),;t t s,@LIBRUBY_A@,$$(RUBY_SO_NAME)-static.lib,;t t s,@LIBRUBY_SO@,$$(RUBY_SO_NAME).dll,;t t s,@LIBRUBY_ALIASES@,$(LIBRUBY_ALIASES),;t t s,@LIBRUBY@,$$(RUBY_SO_NAME).lib,;t t s,@LIBRUBYARG@,$$(LIBRUBYARG_SHARED),;t t s,@LIBRUBYARG_STATIC@,$$(LIBRUBY_A),;t t s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t s,@SOLIBS@,$(SOLIBS),;t t s,@DLDLIBS@,$(DLDLIBS),;t t s,@ENABLE_SHARED@,yes,;t t s,@OUTFLAG@,$(OUTFLAG),;t t s,@CPPOUTFILE@,,;t t s,@LIBPATHFLAG@, -L"%s",;t t s,@RPATHFLAG@,,;t t s,@LIBARG@,%s.lib,;t t s,@LINK_SO@,$$(LDSHARED) $$(DLDFLAGS) $$(LIBPATH) $$(OBJS), $$(@:/=\), nul, $$(LIBS) $$(LOCAL_LIBS), $$(DEFFILE), $$(RESFILE),;t t s,@COMPILE_C@,$$(CC) $$(CFLAGS) $$(CPPFLAGS) -c $$(<:/=\),;t t s,@COMPILE_CXX@,$$(CXX) $$(CXXFLAGS) $$(CPPFLAGS) -P -c $$(<:/=\),;t t s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: .%s.%s:,;t t s,@COMMON_LIBS@,m,;t t s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN;t t s,@COMMON_HEADERS@,winsock2.h windows.h,;t t s,@TRY_LINK@,$$(CC) -oconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(LIBPATH) $$(LDFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS),;t t s,@EXPORT_PREFIX@,_,;t t s,@arch@,$(ARCH)-$(OS),;t t s,@sitearch@,$(ARCH)-$(OS),;t t s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t s,@configure_args@,--enable-shared $(configure_args),;t t s,@configure_input@,$$configure_input,;t t s,@srcdir@,$(srcdir),;t t s,@top_srcdir@,$(srcdir),;t t | miniruby$(EXEEXT): @echo $(LIBS) $(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ),$@,nul,$(LIBRUBY_A) $(LIBS) $(PROGRAM): $(MAINOBJ) $(LIBRUBY_SO) $(RUBY_INSTALL_NAME).res $(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ),$@,nul,$(LIBRUBYARG) $(LIBS),,$(RUBY_INSTALL_NAME).res $(WPROGRAM): $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $(RUBYW_INSTALL_NAME).res $(LD) $(LDFLAGS) $(WLDFLAGS) $(MAINOBJ) $(WINMAINOBJ),$@,nul,$(LIBRUBYARG) $(LIBS),,$(RUBYW_INSTALL_NAME).res $(LIBRUBY_A): $(OBJS) dmyext.obj @-if exist $@ del $@ $(AR) $(ARFLAGS) "$@" $(OBJS) dmyext.obj # $(LIBRUBY): $(LIBRUBY_SO) # implib $@ $(LIBRUBY_SO) $(LIBRUBY_SO): $(LIBRUBY_A) $(EXTOBJS) $(RUBYDEF) $(RUBY_SO_NAME).res @echo $(EXTOBJS) $(LIBRUBY_LDSHARED) $(LIBRUBY_DLDFLAGS) $(EXTOBJS:/=\),$(LIBRUBY_SO),nul,$(LIBRUBY_A) $(LIBS),$(RUBYDEF),$(RUBY_SO_NAME).res $(LIBRUBY): $(LIBRUBY_SO) $(RUBYDEF): $(LIBRUBY_A) $(PREP) $(MINIRUBY) $(srcdir)bcc32/mkexports.rb -output=$@ -base=$(RUBY_SO_NAME) $(LIBRUBY_A) $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc: rbconfig.rb @$(MINIRUBY) $(srcdir)win32/resource.rb \ -ruby_name=$(RUBY_INSTALL_NAME) \ -rubyw_name=$(RUBYW_INSTALL_NAME) \ -so_name=$(RUBY_SO_NAME) \ . $(icondirs) $(srcdir)win32 clean-local:: @$(RM) ext\extinit.c ext\extinit.$(OBJEXT) *.tds *.il? $(RUBY_SO_NAME).lib @$(RM) $(RUBY_INSTALL_NAME).res $(RUBYW_INSTALL_NAME).res $(RUBY_SO_NAME).res distclean-local:: @$(RM) ext\config.cache $(RBCONFIG:/=\) @$(RM) *.map *.pdb *.ilk *.exp $(RUBYDEF) @$(RM) $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc ext/extinit.obj: ext/extinit.c $(SETUP) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -o$@ -c ext/extinit.c main.$(OBJEXT): win32.h ascii.$(OBJEXT): win32.h array.$(OBJEXT): win32.h bignum.$(OBJEXT): win32.h class.$(OBJEXT): win32.h compar.$(OBJEXT): win32.h dir.$(OBJEXT): dir.h win32.h dln.$(OBJEXT): win32.h enum.$(OBJEXT): win32.h error.$(OBJEXT): win32.h euc_jp.$(OBJEXT): win32.h eval.$(OBJEXT): win32.h file.$(OBJEXT): win32.h gc.$(OBJEXT): win32.h hash.$(OBJEXT): win32.h inits.$(OBJEXT): win32.h io.$(OBJEXT): win32.h marshal.$(OBJEXT): win32.h math.$(OBJEXT): win32.h numeric.$(OBJEXT): win32.h object.$(OBJEXT): win32.h pack.$(OBJEXT): win32.h parse.$(OBJEXT): win32.h process.$(OBJEXT): win32.h prec.$(OBJEXT): win32.h random.$(OBJEXT): win32.h range.$(OBJEXT): win32.h re.$(OBJEXT): win32.h regcomp.$(OBJEXT): win32.h regenc.$(OBJEXT): win32.h regerror.$(OBJEXT): win32.h regexec.$(OBJEXT): win32.h reggnu.$(OBJEXT): win32.h regparse.$(OBJEXT): win32.h ruby.$(OBJEXT): win32.h signal.$(OBJEXT): win32.h sjis.$(OBJEXT): win32.h sprintf.$(OBJEXT): win32.h st.$(OBJEXT): win32.h string.$(OBJEXT): win32.h struct.$(OBJEXT): win32.h time.$(OBJEXT): win32.h utf8.$(OBJEXT): win32.h util.$(OBJEXT): win32.h variable.$(OBJEXT): win32.h version.$(OBJEXT): win32.h