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 !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 = rubybcc !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 RC RC = brc32 !endif !ifndef YACC YACC = byacc !endif PURIFY = AUTOCONF = autoconf !if !defined(PROCESSOR_ARCHITECTURE) || "$(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 = i$(PROCESSOR_LEVEL)86 !else CPU = $(PROCESSOR_ARCHITECTURE) ARCH = $(PROCESSOR_ARCHITECTURE) !endif !ifndef DEBUGFLAGS DEBUGFLAGS = !endif !ifndef OPTFLAGS OPTFLAGS = -O !endif OS = bccwin32 !ifndef prefix prefix = /usr !endif !ifndef DESTDIR DESTDIR = $(prefix) !endif !ifndef CFLAGS CFLAGS = -DNT=1 $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) -w-aus -w-par -w-pro !endif !ifndef CPPFLAGS CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)missing -DLIBRUBY_SO=\"$(LIBRUBY_SO)\" !endif !ifndef LDFLAGS LDFLAGS = $(CFLAGS) !endif !ifndef XLDFLAGS XLDFLAGS = !endif !ifndef RFLAGS RFLAGS = -r !endif !ifndef EXTLIBS EXTLIBS = # cw32.lib !endif LIBS = $(EXTLIBS) MISSING = acosh.obj crypt.obj win32.obj !ifndef STACK STACK = 0x2000000 !endif LDSHARED = $(CC) -lS:$(STACK) LINK = $(LDSHARED) -WC LINK_W = $(LDSHARED) -W LINK_SO = $(LDSHARED) -WD DLDFLAGS = SOLIBS = EXEEXT = .exe PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT) WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT) RUBYDEF = $(RUBY_SO_NAME).def MINIRUBY=miniruby$(EXEEXT) 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) @.\miniruby$(EXEEXT) -Cext extmk.rb ruby: $(PROGRAM) rubyw: $(WPROGRAM) lib: $(LIBRUBY) dll: $(LIBRUBY_SO) config: config.h config.status config.h: Makefile $(srcdir)bcc32/Makefile.sub @echo Creating config.h type > $@ &&| \#define HAVE_PROTOTYPES 1 \#define HAVE_STDARG_PROTOTYPES 1 /* \#define HAVE_ATTR_NORETURN 1 */ \#define NORETURN(x) x \#define TOKEN_PASTE(x,y) x\#\#y \#define inline __inline /* \#define HAVE_DIRENT_H 1 */ /* \#define HAVE_UNISTD_H 1 */ \#define HAVE_STDLIB_H 1 \#define HAVE_LIMITS_H 1 /* \#define HAVE_SYS_FILE_H 1 */ \#define HAVE_FCNTL_H 1 /* \#define HAVE_PWD_H 1 */ /* \#define HAVE_SYS_TIME_H 1 */ /* \#define HAVE_SYS_TIMES_H 1 */ /* \#define HAVE_SYS_PARAM_H 1 */ /* \#define HAVE_SYS_WAIT_H 1 */ \#define HAVE_STRING_H 1 /* \#define HAVE_UTIME_H 1 */ \#define HAVE_MEMORY_H 1 /* \#define HAVE_ST_BLKSIZE 1 */ \#define HAVE_ST_RDEV 1 /* \#define GETGROUPS_T gid_t */ \#define GETGROUPS_T int \#define RETSIGTYPE void \#define HAVE_ALLOCA 1 \#define vfork fork \#define HAVE_FMOD 1 /* \#define HAVE_RANDOM 1 */ \#define HAVE_WAITPID 1 \#define HAVE_GETCWD 1 /* \#define HAVE_TRUNCATE 1 */ \#define HAVE_CHSIZE 1 \#define HAVE_TIMES 1 /* \#define HAVE_UTIMES 1 */ /* \#define HAVE_FCNTL 1 */ /* \#define HAVE_SETITIMER 1 */ \#define HAVE_GETGROUPS 1 /* \#define HAVE_SIGPROCMASK 1 */ \#define HAVE_GETLOGIN 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)>>y) \#define FILE_COUNT level \#define FILE_READPTR curp \#define DEFAULT_KCODE KCODE_NONE \#define DLEXT ".so" \#define DLEXT2 ".dll" \#define RUBY_LIB "/lib/ruby/1.7" \#define RUBY_SITE_LIB "/lib/ruby/site_ruby" \#define RUBY_SITE_LIB2 "/lib/ruby/site_ruby/1.7" \#define RUBY_PLATFORM "$(ARCH)-$(OS)" \#define RUBY_ARCHLIB "/lib/ruby/1.7/$(ARCH)-$(OS)" \#define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/1.7/$(ARCH)-$(OS)" \#define SIZEOF_INT 4 \#define SIZEOF_SHORT 2 \#define SIZEOF_LONG 4 \#define SIZEOF___INT64 8 \#define SIZEOF_VOIDP 4 \#define SIZEOF_FLOAT 4 \#define SIZEOF_DOUBLE 8 \#define HAVE_DECL_SYS_NERR 1 \#define HAVE_ISINF 1 \#define HAVE_ISNAN 1 \#define HAVE_MEMMOVE 1 \#define HAVE_MKDIR 1 \#define HAVE_STRCASECMP 1 \#define HAVE_STRNCASECMP 1 \#define HAVE_STRCHR 1 \#define HAVE_STRERROR 1 \#define HAVE_STRFTIME 1 \#define HAVE_STRSTR 1 \#define HAVE_STRTOD 1 \#define HAVE_STRTOUL 1 | config.status: Makefile $(srcdir)bcc32/Makefile.sub $(MINIRUBY) @echo Creating config.status @$(MINIRUBY) -pe "~/@CFLAGS@/||$$_.sub!(/'$(CFLAGS)'/, '$$(CFLAGS)')" > $@ &&| # Generated automatically by Makefile.sub. s,@SHELL@,$$(COMSPEC),;t t s,@CFLAGS@,$(CFLAGS),;t t s,@CPPFLAGS@,$(CPPFLAGS),;t t s,@CXXFLAGS@,$(CXXFLAGS),;t t s,@FFLAGS@,$(FFLAGS),;t t s,@LDFLAGS@,$(LDFLAGS),;t t s,@LIBS@,,;t t s,@exec_prefix@,$${prefix},;t t s,@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@,rem,;t t s,@AR@,tlib -nologo,;t t s,@LN_S@,$(LN_S),;t t s,@SET_MAKE@,$(SET_MAKE),;t t s,@LIBOBJS@, acosh.obj crypt.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,@XLDFLAGS@,$(XLDFLAGS),;t t s,@DLDFLAGS@,$$(CFLAGS),;t t s,@STATIC@,$(STATIC),;t t s,@CCDLFLAGS@,-DIMPORT,;t t s,@LDSHARED@,ilink32 -S:$(STACK) -Tpd,;t t s,@DLEXT@,so,;t t s,@DLEXT2@,dll,;t t s,@STRIP@,$(STRIP),;t t s,@EXTSTATIC@,$(EXTSTATIC),;t t s,@setup@,Setup,;t t s,@LIBRUBY_LDSHARED@,$(LIBRUBY_LDSHARED),;t t s,@LIBRUBY_DLDFLAGS@,$(LIBRUBY_DLDFLAGS),;t t s,@RUBY_INSTALL_NAME@,$(RUBY_INSTALL_NAME),;t t s,@RUBY_SO_NAME@,$(RUBY_SO_NAME),;t t s,@LIBRUBY_A@,lib$$(RUBY_INSTALL_NAME).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@,$$(RUBY_SO_NAME).lib,;t t s,@SOLIBS@,$(SOLIBS),;t t s,@DLDLIBS@,$(DLDLIBS),;t t s,@ENABLE_SHARED@,yes,;t t s,@arch@,$(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 | 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) $(LINK) -e$@ $(MAINOBJ) $(EXTOBJS) $(OBJS) $(LIBS) $(PROGRAM): $(MAINOBJ) $(LIBRUBY_SO) $(*:.exe=.res) $(LINK) -e$@ $(MAINOBJ) $(LIBRUBYARG) $(WPROGRAM): $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $(*:.exe=.res) $(LINK_W) -e$@ $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBYARG) $(LIBRUBY_A): $(OBJS) dmyext.obj @-if exist $@ del $@ tlib $@ /a @&&| $(OBJS) dmyext.obj | $(LIBRUBY): $(LIBRUBY_SO) implib $@ $(LIBRUBY_SO) $(LIBRUBY_SO): $(LIBRUBY_A) $(EXTOBJS) $(RUBYDEF) $(*:.dll=.res) $(LINK_SO) -e$@ $(MAINOBJ) $(EXTOBJS) $(LIBRUBY_A) $(LIBS) $(RUBYDEF): $(LIBRUBY_A) miniruby$(EXEEXT) .\miniruby$(EXEEXT) $(srcdir)bcc32/mkexports.rb -output=$@ $(LIBRUBY_A) install: rbconfig.rb .\miniruby$(EXEEXT) $(srcdir)instruby.rb $(DESTDIR) clean: clean-ext clean-local clean-local: @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 @if exist *.tds del *.tds clean-ext: @-.\miniruby$(EXEEXT) -Cext extmk.rb clean distclean: distclean-ext distclean-local distclean-local: clean-local @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 pub.def del pub.def @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) distclean-ext: @-.\miniruby$(EXEEXT) -Cext extmk.rb distclean 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 .path.c = .;$(srcdir);$(srcdir)win32;$(srcdir)missing .path.h = .;$(srcdir);$(srcdir)win32;$(srcdir)missing .path.y = $(srcdir) .c.obj: $(CC) $(CFLAGS) -I. $(CPPFLAGS) -c $(<:/=\) .rc.res: $(RC) -I. -I$( $(@F) @del y.tab.c parse.c: parse.y acosh.obj: acosh.c win32.h alloca.obj: alloca.c win32.h crypt.obj: crypt.c win32.h dup2.obj: dup2.c win32.h finite.obj: finite.c win32.h flock.obj: flock.c win32.h isinf.obj: isinf.c win32.h isnan.obj: isnan.c win32.h memcmp.obj: memcmp.c win32.h memmove.obj: memmove.c win32.h mkdir.obj: mkdir.c win32.h vsnprintf.obj: vsnprintf.c win32.h strcasecmp.obj: strcasecmp.c win32.h strncasecmp.obj: strncasecmp.c win32.h strchr.obj: strchr.c win32.h strdup.obj: strdup.c win32.h strerror.obj: strerror.c win32.h strftime.obj: strftime.c win32.h strstr.obj: strstr.c win32.h strtod.obj: strtod.c win32.h strtol.obj: strtol.c win32.h strtoul.obj: strtoul.c win32.h nt.obj: nt.c win32.h x68.obj: x68.c win32.h os2.obj: os2.c win32.h dl_os2.obj: dl_os2.c win32.h # when I use -I., there is confliction at "OpenFile" # so, set . into environment varible "include" win32.obj: win32.c win32.h ### parse.obj: parse.c ruby.h config.h defines.h intern.h env.h node.h st.h regex.h util.h lex.c win32.h ### array.obj: array.c ruby.h config.h defines.h intern.h win32.h bignum.obj: bignum.c ruby.h config.h defines.h intern.h win32.h class.obj: class.c ruby.h config.h defines.h intern.h node.h st.h win32.h compar.obj: compar.c ruby.h config.h defines.h intern.h win32.h dir.obj: dir.c ruby.h config.h defines.h intern.h win32.h dln.obj: dln.c config.h defines.h dln.h win32.h dmyext.obj: dmyext.c win32.h enum.obj: enum.c ruby.h config.h defines.h intern.h win32.h error.obj: error.c ruby.h config.h defines.h intern.h env.h win32.h eval.obj: eval.c ruby.h config.h defines.h intern.h node.h env.h rubysig.h st.h dln.h win32.h file.obj: file.c ruby.h config.h defines.h intern.h rubyio.h rubysig.h win32.h gc.obj: gc.c ruby.h config.h defines.h intern.h rubysig.h st.h node.h env.h re.h regex.h win32.h hash.obj: hash.c ruby.h config.h defines.h intern.h st.h rubysig.h util.h win32.h inits.obj: inits.c ruby.h config.h defines.h intern.h win32.h io.obj: io.c ruby.h config.h defines.h intern.h rubyio.h rubysig.h env.h win32.h main.obj: main.c ruby.h config.h defines.h intern.h win32.h marshal.obj: marshal.c ruby.h config.h defines.h intern.h rubyio.h st.h win32.h prec.obj: prec.c ruby.h config.h defines.h intern.h win32.h math.obj: math.c ruby.h config.h defines.h intern.h win32.h numeric.obj: numeric.c ruby.h config.h defines.h intern.h win32.h object.obj: object.c ruby.h config.h defines.h intern.h st.h win32.h pack.obj: pack.c ruby.h config.h defines.h intern.h win32.h process.obj: process.c ruby.h config.h defines.h intern.h rubysig.h st.h win32.h random.obj: random.c ruby.h config.h defines.h intern.h win32.h range.obj: range.c ruby.h config.h defines.h intern.h win32.h re.obj: re.c ruby.h config.h defines.h intern.h re.h regex.h win32.h regex.obj: regex.c config.h regex.h util.h win32.h ruby.obj: ruby.c ruby.h config.h defines.h intern.h dln.h util.h win32.h signal.obj: signal.c ruby.h config.h defines.h intern.h rubysig.h win32.h sprintf.obj: sprintf.c ruby.h config.h defines.h intern.h win32.h st.obj: st.c config.h st.h win32.h string.obj: string.c ruby.h config.h defines.h intern.h re.h regex.h win32.h struct.obj: struct.c ruby.h config.h defines.h intern.h win32.h time.obj: time.c ruby.h config.h defines.h intern.h win32.h util.obj: util.c ruby.h config.h defines.h intern.h util.h win32.h variable.obj: variable.c ruby.h config.h defines.h intern.h env.h node.h st.h win32.h version.obj: version.c ruby.h config.h defines.h intern.h version.h win32.h