From 162b04061133c92f3b703c245eecfd0e0b6c5636 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 30 Mar 2005 14:45:05 +0000 Subject: * Makefile.in, */Makefile.sub, */configure.bat, cygwin/GNUmakefile.in, common.mk, configure.in, ext/extmk.rb, lib/mkmf.rb, instruby.rb, runruby.rb: backport extout. [ruby-dev:25963] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 + Makefile.in | 312 ++++++---------------------------- bcc32/Makefile.sub | 354 ++++++++++++++------------------------ bcc32/configure.bat | 62 ++++++- common.mk | 29 +--- configure.in | 30 +++- cygwin/GNUmakefile.in | 17 +- ext/extmk.rb | 258 +++++++++++++++++++++------- instruby.rb | 64 +++++-- lib/mkmf.rb | 261 +++++++++++++++++++++------- win32/Makefile.sub | 411 ++++++++++---------------------------------- win32/configure.bat | 31 ++++ wince/Makefile.sub | 463 ++++++++++++++------------------------------------ wince/configure.bat | 155 ++++++++++------- 14 files changed, 1068 insertions(+), 1386 deletions(-) diff --git a/ChangeLog b/ChangeLog index 44b2059076..fb2dffd357 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Wed Mar 30 23:44:50 2005 Nobuyoshi Nakada + + * Makefile.in, */Makefile.sub, */configure.bat, + cygwin/GNUmakefile.in, common.mk, configure.in, ext/extmk.rb, + lib/mkmf.rb, instruby.rb, runruby.rb: backport extout. + [ruby-dev:25963] + Wed Mar 30 17:41:48 2005 Hidetoshi NAGAI * ext/tcltklib/tcltklib.c: add TclTkIp#_create_console() method to diff --git a/Makefile.in b/Makefile.in index 663ba43111..4837ca24cf 100644 --- a/Makefile.in +++ b/Makefile.in @@ -10,6 +10,7 @@ YACC = @YACC@ PURIFY = AUTOCONF = autoconf @SET_MAKE@ +MKFILES = @MAKEFILES@ prefix = @prefix@ exec_prefix = @exec_prefix@ @@ -17,10 +18,19 @@ bindir = @bindir@ sbindir = @sbindir@ libdir = @libdir@ libexecdir = @libexecdir@ +datadir = @datadir@ arch = @arch@ sitearch = @sitearch@ sitedir = @sitedir@ +TESTUI = console +TESTS = +RDOCTARGET = @RDOCTARGET@ + +EXTOUT = @EXTOUT@ +RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system + +OUTFLAG = -o CFLAGS = @CFLAGS@ @XCFLAGS@ @ARCH_FLAG@ CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@ @@ -39,7 +49,9 @@ RUBY_SO_NAME=@RUBY_SO_NAME@ EXEEXT = @EXEEXT@ PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT) RUBY = $(RUBY_INSTALL_NAME) +RUBYOPT = MINIRUBY = @MINIRUBY@ +RUNRUBY = @RUNRUBY@ #### End of system configuration section. #### @@ -55,135 +67,58 @@ LIBRUBYARG = @LIBRUBYARG@ LIBRUBYARG_STATIC = @LIBRUBYARG_STATIC@ LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@ -PREP = @PREP@ @ARCHFILE@ +PREP = @PREP@ +ARCHFILE = @ARCHFILE@ SETUP = EXTSTATIC = @EXTSTATIC@ +RM = rm -f +NM = @NM@ +AR = @AR@ +ARFLAGS = rcu +RANLIB = @RANLIB@ + +OBJEXT = @OBJEXT@ + EXTOBJS = DLDOBJS = $(DMYEXT) -DMYEXT = dmyext.@OBJEXT@ - -MAINOBJ = main.@OBJEXT@ - -OBJS = array.@OBJEXT@ \ - bignum.@OBJEXT@ \ - class.@OBJEXT@ \ - compar.@OBJEXT@ \ - dir.@OBJEXT@ \ - dln.@OBJEXT@ \ - enum.@OBJEXT@ \ - error.@OBJEXT@ \ - eval.@OBJEXT@ \ - file.@OBJEXT@ \ - gc.@OBJEXT@ \ - hash.@OBJEXT@ \ - inits.@OBJEXT@ \ - io.@OBJEXT@ \ - marshal.@OBJEXT@ \ - math.@OBJEXT@ \ - numeric.@OBJEXT@ \ - object.@OBJEXT@ \ - pack.@OBJEXT@ \ - parse.@OBJEXT@ \ - process.@OBJEXT@ \ - prec.@OBJEXT@ \ - random.@OBJEXT@ \ - range.@OBJEXT@ \ - re.@OBJEXT@ \ - regex.@OBJEXT@ \ - ruby.@OBJEXT@ \ - signal.@OBJEXT@ \ - sprintf.@OBJEXT@ \ - st.@OBJEXT@ \ - string.@OBJEXT@ \ - struct.@OBJEXT@ \ - time.@OBJEXT@ \ - util.@OBJEXT@ \ - variable.@OBJEXT@ \ - version.@OBJEXT@ \ - $(MISSING) + +MAINOBJ = main.$(OBJEXT) MANTYPE = @MANTYPE@ -SCRIPT_ARGS = --dest-dir="$(DESTDIR)" \ - --make="$(MAKE)" \ - --mflags="$(MFLAGS)" \ - --make-flags="$(MAKEFLAGS)" +#### End of variables + +all: -all: @MAKEFILES@ miniruby$(EXEEXT) rbconfig.rb $(LIBRUBY) - @$(MINIRUBY) $(srcdir)/ext/extmk.rb --extstatic="$(EXTSTATIC)" $(SCRIPT_ARGS) +.DEFAULT: all -miniruby$(EXEEXT): config.status $(LIBRUBY_A) $(MAINOBJ) $(DMYEXT) - @rm -f $@ - $(PURIFY) $(CC) $(LDFLAGS) $(MAINLIBS) $(MAINOBJ) $(DMYEXT) $(LIBRUBY_A) $(LIBS) -o $@ +# Prevent GNU make v3 from overflowing arg limit on SysV. +.NOEXPORT: -$(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(EXTOBJS) $(SETUP) miniruby$(EXEEXT) - @rm -f $@ - $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@ +miniruby$(EXEEXT): + @$(RM) $@ + $(PURIFY) $(CC) $(MAINOBJ) $(LIBRUBY_A) $(LIBS) $(OUTFLAG)$@ $(LDFLAGS) $(MAINLIBS) + +$(PROGRAM): + @$(RM) $@ + $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) $(OUTFLAG)$@ # We must `rm' the library each time this rule is invoked because "updating" a # MAB library on Apple/NeXT (see --enable-fat-binary in configure) is not # supported. -$(LIBRUBY_A): $(OBJS) $(DMYEXT) - @rm -f $@ - @AR@ rcu $@ $(OBJS) $(DMYEXT) - @-@RANLIB@ $@ 2> /dev/null || true +$(LIBRUBY_A): + @$(RM) $@ + $(AR) $(ARFLAGS) $@ $(OBJS) $(DMYEXT) + @-$(RANLIB) $@ 2> /dev/null || true -$(LIBRUBY_SO): $(OBJS) $(DLDOBJS) miniruby$(EXEEXT) $(PREP) - $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) -o $@ +$(LIBRUBY_SO): + $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(OUTFLAG)$@ @-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link; \ File.symlink "$(LIBRUBY_SO)", link}' \ $(LIBRUBY_ALIASES) || true -ruby.imp: $(LIBRUBY_A) - @@NM@ -Pgp $(LIBRUBY_A) | awk 'BEGIN{print "#!"}; $$2~/^[BD]$$/{print $$1}' | sort -u -o $@ -# $(MINIRUBY) $< $@ - -install: install-nodoc @RDOCTARGET@ - -install-nodoc: rbconfig.rb - $(MINIRUBY) $(srcdir)/instruby.rb $(SCRIPT_ARGS) --mantype="$(MANTYPE)" - $(MINIRUBY) $(srcdir)/ext/extmk.rb $(SCRIPT_ARGS) install - -what-where no-install: rbconfig.rb - $(MINIRUBY) $(srcdir)/instruby.rb -n $(SCRIPT_ARGS) --mantype="$(MANTYPE)" - $(MINIRUBY) $(srcdir)/ext/extmk.rb -n $(SCRIPT_ARGS) install - -install-doc: - @echo Generating RDoc documentation - $(bindir)/$(PROGRAM) $(srcdir)/bin/rdoc --all --ri-system $(srcdir) - -clean-ext: - @-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(SCRIPT_ARGS) clean 2> /dev/null || true - -clean-local: - @rm -f $(OBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY_ALIASES) - @rm -f ext/extinit.c ext/extinit.@OBJEXT@ dmyext.@OBJEXT@ - @rm -f $(PROGRAM) miniruby$(EXEEXT) - -clean: clean-ext clean-local - -distclean-ext: - @-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(SCRIPT_ARGS) distclean 2> /dev/null || true - -distclean-local: clean-local - @rm -f @MAKEFILES@ config.h rbconfig.rb - @rm -f ext/config.cache config.cache config.log config.status - @rm -f *~ core *.core gmon.out y.tab.c y.output ruby.imp - -distclean: distclean-ext distclean-local - -realclean: distclean - @rm -f parse.c - @rm -f lex.c - -test: miniruby$(EXEEXT) rbconfig.rb $(PROGRAM) PHONY - @./miniruby$(EXEEXT) $(srcdir)/rubytest.rb - -rbconfig.rb: miniruby$(EXEEXT) $(srcdir)/mkconfig.rb config.status $(PREP) - @$(MINIRUBY) $(srcdir)/mkconfig.rb rbconfig.rb - -fake.rb: miniruby$(EXEEXT) Makefile +fake.rb: Makefile @echo ' \ class Object; \ CROSS_COMPILING = RUBY_PLATFORM; \ @@ -202,13 +137,7 @@ fake.rb: miniruby$(EXEEXT) Makefile Makefile: $(srcdir)/Makefile.in -.PRECIOUS: @MAKEFILES@ - -.PHONY: test install install-nodoc install-doc - -PHONY: - -@MAKEFILES@: config.status +$(MKFILES): config.status $(srcdir)/common.mk MAKE=$(MAKE) $(SHELL) ./config.status @{ \ echo "all:; -@rm -f conftest.mk"; \ @@ -224,11 +153,8 @@ config.status: $(srcdir)/configure $(srcdir)/configure: $(srcdir)/configure.in cd $(srcdir) && $(AUTOCONF) -.c.@OBJEXT@: - $(CC) $(CFLAGS) $(CPPFLAGS) -c $< - lex.c: keywords - @-rm -f $@ + @-$(RM) $@ gperf -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? > $@ || \ cp "$(srcdir)/$@" . @@ -237,144 +163,14 @@ lex.c: keywords sed '/^#/s|y\.tab\.c|$@|' y.tab.c > $@ rm -f y.tab.c -ext/extinit.@OBJEXT@: ext/extinit.c $(SETUP) - $(CC) $(CFLAGS) $(CPPFLAGS) @OUTFLAG@$@ -c ext/extinit.c - -acosh.@OBJEXT@: $(srcdir)/missing/acosh.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/acosh.c - -alloca.@OBJEXT@: $(srcdir)/missing/alloca.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/alloca.c - -crypt.@OBJEXT@: $(srcdir)/missing/crypt.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/crypt.c - -dup2.@OBJEXT@: $(srcdir)/missing/dup2.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/dup2.c - -fileblocks.@OBJEXT@: $(srcdir)/missing/fileblocks.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/fileblocks.c - -finite.@OBJEXT@: $(srcdir)/missing/finite.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/finite.c - -flock.@OBJEXT@: $(srcdir)/missing/flock.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/flock.c - -isinf.@OBJEXT@: $(srcdir)/missing/isinf.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/isinf.c - -isnan.@OBJEXT@: $(srcdir)/missing/isnan.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/isnan.c - -fnmatch.@OBJEXT@: $(srcdir)/missing/fnmatch.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/fnmatch.c - -memcmp.@OBJEXT@: $(srcdir)/missing/memcmp.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/memcmp.c - -memmove.@OBJEXT@: $(srcdir)/missing/memmove.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/memmove.c - -mkdir.@OBJEXT@: $(srcdir)/missing/mkdir.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/mkdir.c - -vsnprintf.@OBJEXT@: $(srcdir)/missing/vsnprintf.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/vsnprintf.c - -strcasecmp.@OBJEXT@: $(srcdir)/missing/strcasecmp.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strcasecmp.c - -strncasecmp.@OBJEXT@: $(srcdir)/missing/strncasecmp.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strncasecmp.c - -strchr.@OBJEXT@: $(srcdir)/missing/strchr.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strchr.c - -strerror.@OBJEXT@: $(srcdir)/missing/strerror.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strerror.c - -strftime.@OBJEXT@: $(srcdir)/missing/strftime.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strftime.c - -strstr.@OBJEXT@: $(srcdir)/missing/strstr.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strstr.c - -strtol.@OBJEXT@: $(srcdir)/missing/strtol.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strtol.c - -strtoul.@OBJEXT@: $(srcdir)/missing/strtoul.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strtoul.c - -x68.@OBJEXT@: $(srcdir)/missing/x68.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/x68.c - -os2.@OBJEXT@: $(srcdir)/missing/os2.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/os2.c +.c.@OBJEXT@: + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -dl_os2.@OBJEXT@: $(srcdir)/missing/dl_os2.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/dl_os2.c +clean-local:: + @$(RM) ext/extinit.c ext/extinit.$(OBJEXT) -win32.@OBJEXT@: $(srcdir)/win32/win32.c - $(CC) $(CFLAGS) $(CPPFLAGS) -I$(srcdir)/win32 -c $(srcdir)/win32/win32.c +distclean-local:: + @$(RM) ext/config.cache $(RBCONFIG) -# Prevent GNU make v3 from overflowing arg limit on SysV. -.NOEXPORT: -### -array.@OBJEXT@: array.c ruby.h config.h defines.h intern.h missing.h \ - util.h st.h -bignum.@OBJEXT@: bignum.c ruby.h config.h defines.h intern.h missing.h -class.@OBJEXT@: class.c ruby.h config.h defines.h intern.h missing.h \ - rubysig.h node.h st.h -compar.@OBJEXT@: compar.c ruby.h config.h defines.h intern.h missing.h -dir.@OBJEXT@: dir.c ruby.h config.h defines.h intern.h missing.h util.h -dln.@OBJEXT@: dln.c ruby.h config.h defines.h intern.h missing.h dln.h -dmyext.@OBJEXT@: dmyext.c -enum.@OBJEXT@: enum.c ruby.h config.h defines.h intern.h missing.h node.h \ - util.h -error.@OBJEXT@: error.c ruby.h config.h defines.h intern.h missing.h \ - env.h st.h -eval.@OBJEXT@: eval.c ruby.h config.h defines.h intern.h missing.h node.h \ - env.h util.h rubysig.h st.h dln.h -file.@OBJEXT@: file.c ruby.h config.h defines.h intern.h missing.h \ - rubyio.h rubysig.h util.h dln.h -gc.@OBJEXT@: gc.c ruby.h config.h defines.h intern.h missing.h rubysig.h \ - st.h node.h env.h re.h regex.h -hash.@OBJEXT@: hash.c ruby.h config.h defines.h intern.h missing.h st.h \ - util.h rubysig.h -inits.@OBJEXT@: inits.c ruby.h config.h defines.h intern.h missing.h -io.@OBJEXT@: io.c ruby.h config.h defines.h intern.h missing.h rubyio.h \ - rubysig.h env.h util.h -main.@OBJEXT@: main.c ruby.h config.h defines.h intern.h missing.h -marshal.@OBJEXT@: marshal.c ruby.h config.h defines.h intern.h missing.h \ - rubyio.h st.h util.h -math.@OBJEXT@: math.c ruby.h config.h defines.h intern.h missing.h -numeric.@OBJEXT@: numeric.c ruby.h config.h defines.h intern.h missing.h -object.@OBJEXT@: object.c ruby.h config.h defines.h intern.h missing.h \ - st.h util.h -pack.@OBJEXT@: pack.c ruby.h config.h defines.h intern.h missing.h -parse.@OBJEXT@: parse.c ruby.h config.h defines.h intern.h missing.h \ - env.h node.h st.h regex.h util.h lex.c -prec.@OBJEXT@: prec.c ruby.h config.h defines.h intern.h missing.h -process.@OBJEXT@: process.c ruby.h config.h defines.h intern.h missing.h \ - rubysig.h st.h -random.@OBJEXT@: random.c ruby.h config.h defines.h intern.h missing.h -range.@OBJEXT@: range.c ruby.h config.h defines.h intern.h missing.h -re.@OBJEXT@: re.c ruby.h config.h defines.h intern.h missing.h re.h \ - regex.h -regex.@OBJEXT@: regex.c config.h regex.h -ruby.@OBJEXT@: ruby.c ruby.h config.h defines.h intern.h missing.h dln.h \ - node.h util.h -signal.@OBJEXT@: signal.c ruby.h config.h defines.h intern.h missing.h \ - rubysig.h -sprintf.@OBJEXT@: sprintf.c ruby.h config.h defines.h intern.h missing.h -st.@OBJEXT@: st.c config.h st.h -string.@OBJEXT@: string.c ruby.h config.h defines.h intern.h missing.h \ - re.h regex.h -struct.@OBJEXT@: struct.c ruby.h config.h defines.h intern.h missing.h -time.@OBJEXT@: time.c ruby.h config.h defines.h intern.h missing.h -util.@OBJEXT@: util.c ruby.h config.h defines.h intern.h missing.h util.h -variable.@OBJEXT@: variable.c ruby.h config.h defines.h intern.h \ - missing.h env.h node.h st.h util.h -version.@OBJEXT@: version.c ruby.h config.h defines.h intern.h missing.h \ - version.h +ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP) + $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -o$@ -c ext/extinit.c diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub index cac6128bdb..5fe7937e0c 100644 --- a/bcc32/Makefile.sub +++ b/bcc32/Makefile.sub @@ -1,6 +1,7 @@ # -*- makefile -*- SHELL = $(COMSPEC) +MKFILES = Makefile #### Start of system configuration section. #### OS = bccwin32 @@ -56,6 +57,7 @@ AR = tlib PURIFY = AUTOCONF = autoconf +RM = $(srcdir:/=\)\win32\rm.bat !if !defined(PROCESSOR_ARCHITECTURE) PROCESSOR_ARCHITECTURE = x86 @@ -91,9 +93,26 @@ exec_prefix = $(prefix) !ifndef libdir libdir = $(exec_prefix)/lib !endif -!ifndef DESTDIR -DESTDIR = $(prefix) +!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 -tWR -tWC $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) -w- -wsus -wcpt -wdup -wext -wrng -wrpt -wzdi !endif @@ -135,6 +154,7 @@ 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) @@ -145,70 +165,46 @@ LIBRUBY_SO = $(RUBY_SO_NAME).dll LIBRUBY = $(RUBY_SO_NAME).lib LIBRUBYARG = $(LIBRUBY) -!ifndef EXTOBJS -EXTOBJS = dmyext.obj -!endif - -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: miniruby$(EXEEXT) rbconfig.rb \ - $(LIBRUBY) $(MISCLIBS) - .\miniruby$(EXEEXT) $(srcdir)ext/extmk.rb --extstatic=$(EXTSTATIC) $(SCRIPT_ARGS) +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) -lib: $(LIBRUBY) -dll: $(LIBRUBY_SO) -config: config.h config.status +!include $(srcdir)/common.mk -config.h: - @echo Creating $(@:.\=) - @type > $@ &&| +PHONY: Makefile + +CONFIG_H = ./.config.h.time + +config: config.status + +config.status: $(CONFIG_H) + +$(CONFIG_H): $(MKFILES) $(srcdir)bcc32/Makefile.sub + @$(srcdir:/=\)win32\ifchange.bat config.h &&| \#define HAVE_SYS_TYPES_H 1 \#define HAVE_SYS_STAT_H 1 \#define HAVE_STDLIB_H 1 @@ -274,7 +270,6 @@ config.h: \#define STACK_GROW_DIRECTION -1 \#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)" @@ -282,12 +277,14 @@ config.h: \#define RUBY_ARCHLIB "/lib/ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)" \#define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)" | + @exit > $@ -config.status: Makefile $(srcdir)bcc32/Makefile.sub +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 @@ -295,7 +292,7 @@ s,@FFLAGS@,$(FFLAGS),;t t s,@LDFLAGS@,,;t t s,@LIBS@,$(LIBS),;t t s,@exec_prefix@,$${prefix},;t t -s,@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 @@ -345,12 +342,16 @@ s,@STATIC@,$(STATIC),;t t s,@CCDLFLAGS@,,;t t s,@LDSHARED@,$(LDSHARED),;t t s,@DLEXT@,so,;t t -s,@DLEXT2@,dll,;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,@PREP@,miniruby$(EXEEXT),;t t +s,@RUNRUBY@,$(RUNRUBY),;t t +s,@EXTOUT@,$(EXTOUT),;t t +s,@ARCHFILE@,,;t t +s,@RDOCTARGET@,,;t t s,@LIBRUBY_LDSHARED@,$$(LDSHARED),;t t s,@LIBRUBY_DLDFLAGS@,-Gi $$(DLDFLAGS),;t t s,@RUBY_INSTALL_NAME@,$(RUBY_INSTALL_NAME),;t t @@ -367,7 +368,7 @@ s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t s,@SOLIBS@,$(SOLIBS),;t t s,@DLDLIBS@,$(DLDLIBS),;t t s,@ENABLE_SHARED@,yes,;t t -s,@OUTFLAG@,-o,;t t +s,@OUTFLAG@,$(OUTFLAG),;t t s,@CPPOUTFILE@,,;t t s,@LIBPATHFLAG@, -L"%s",;t t s,@RPATHFLAG@,,;t t @@ -375,8 +376,9 @@ 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,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: {$$(topdir)}.%s{}.%s: {$$(hdrdir)}.%s{}.%s: .%s.%s:,;t t +s,@RULE_SUBST@,{.;$$(VPATH)}%s,;t t +s,@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 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 @@ -390,9 +392,9 @@ s,@srcdir@,$(srcdir),;t t s,@top_srcdir@,$(srcdir),;t t | -miniruby$(EXEEXT): $(LIBRUBY_A) $(MAINOBJ) dmyext.obj +miniruby$(EXEEXT): @echo $(LIBS) - $(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) dmyext.obj,$@,nul,$(LIBRUBY_A) $(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 @@ -407,83 +409,14 @@ $(LIBRUBY_A): $(OBJS) dmyext.obj # $(LIBRUBY): $(LIBRUBY_SO) # implib $@ $(LIBRUBY_SO) -$(LIBRUBY_SO) $(LIBRUBY): $(LIBRUBY_A) $(EXTOBJS) $(RUBYDEF) $(RUBY_SO_NAME).res +$(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 -$(RUBYDEF): $(LIBRUBY_A) miniruby$(EXEEXT) - $(MINIRUBY) $(srcdir)bcc32/mkexports.rb -output=$@ $(LIBRUBY_A) - -install: rbconfig.rb - $(MINIRUBY) $(srcdir)instruby.rb $(SCRIPT_ARGS) - $(MINIRUBY) $(srcdir)ext/extmk.rb $(SCRIPT_ARGS) install - -what-where no-install: rbconfig.rb - $(MINIRUBY) $(srcdir)instruby.rb -n $(SCRIPT_ARGS) - $(MINIRUBY) $(srcdir)ext/extmk.rb -n $(SCRIPT_ARGS) install - -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 - @if exist *.il? del *.il? - -clean-ext: - @-$(MINIRUBY) $(srcdir)ext/extmk.rb $(SCRIPT_ARGS) clean - -distclean: distclean-ext distclean-local - -distclean-local: clean-local - @if exist Makefile del Makefile - @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 $(RUBY_INSTALL_NAME).rc del $(RUBY_INSTALL_NAME).rc - @if exist $(RUBYW_INSTALL_NAME).rc del $(RUBYW_INSTALL_NAME).rc - @if exist $(RUBY_SO_NAME).rc del $(RUBY_SO_NAME).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) $(srcdir)ext/extmk.rb $(SCRIPT_ARGS) distclean - -realclean: distclean - @if exist parse.c del parse.c - @if exist lex.c del lex.c - -test: miniruby$(EXEEXT) rbconfig.rb $(PROGRAM) NUL - @$(MINIRUBY) $(srcdir)rubytest.rb - -rbconfig.rb: miniruby$(EXEEXT) config.status - @$(MINIRUBY) $(srcdir)mkconfig.rb -srcdir=$(srcdir) \ - -install_name=$(RUBY_INSTALL_NAME) \ - -so_name=$(RUBY_SO_NAME) rbconfig.rb +$(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 \ @@ -492,95 +425,56 @@ $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc: rbconfig.rb -so_name=$(RUBY_SO_NAME) \ . $(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) $(XCFLAGS) -I. $(CPPFLAGS) -c $(<:/=\) +post-install-ext:: + $(MINIRUBY) -I$(srcdir)lib -rrbconfig -rfileutils \ + -e 'FileUtils.rm_f(Dir[File.join(Config::CONFIG["archdir"],"**","*.tds")])' -.rc.res: - $(RC) $(RFLAGS) -I. -I$( $(@F) - @del y.tab.c +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 -parse.c: parse.y +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 -acosh.obj: acosh.c win32.h -alloca.obj: alloca.c win32.h -crypt.obj: crypt.c win32.h -dup2.obj: dup2.c win32.h -erf.obj: erf.c win32.h -finite.obj: finite.c win32.h -flock.obj: flock.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 - -### -array.obj: array.c ruby.h config.h defines.h intern.h missing.h util.h st.h win32.h -bignum.obj: bignum.c ruby.h config.h defines.h intern.h missing.h win32.h -class.obj: class.c ruby.h config.h defines.h intern.h missing.h rubysig.h node.h st.h win32.h -compar.obj: compar.c ruby.h config.h defines.h intern.h missing.h win32.h -dir.obj: dir.c ruby.h config.h defines.h intern.h missing.h util.h win32.h -dln.obj: dln.c ruby.h config.h defines.h intern.h missing.h dln.h win32.h -dmyext.obj: dmyext.c -enum.obj: enum.c ruby.h config.h defines.h intern.h missing.h node.h util.h win32.h -error.obj: error.c ruby.h config.h defines.h intern.h missing.h env.h st.h win32.h -eval.obj: eval.c ruby.h config.h defines.h intern.h missing.h node.h env.h util.h rubysig.h st.h dln.h win32.h -file.obj: file.c ruby.h config.h defines.h intern.h missing.h rubyio.h rubysig.h util.h dln.h win32.h -gc.obj: gc.c ruby.h config.h defines.h intern.h missing.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 missing.h st.h util.h rubysig.h win32.h -inits.obj: inits.c ruby.h config.h defines.h intern.h missing.h win32.h -io.obj: io.c ruby.h config.h defines.h intern.h missing.h rubyio.h rubysig.h env.h util.h win32.h -main.obj: main.c ruby.h config.h defines.h intern.h missing.h win32.h -marshal.obj: marshal.c ruby.h config.h defines.h intern.h missing.h rubyio.h st.h util.h win32.h -math.obj: math.c ruby.h config.h defines.h intern.h missing.h win32.h -numeric.obj: numeric.c ruby.h config.h defines.h intern.h missing.h win32.h -object.obj: object.c ruby.h config.h defines.h intern.h missing.h st.h util.h win32.h -pack.obj: pack.c ruby.h config.h defines.h intern.h missing.h win32.h -parse.obj: parse.c ruby.h config.h defines.h intern.h missing.h env.h node.h st.h regex.h util.h lex.c win32.h -prec.obj: prec.c ruby.h config.h defines.h intern.h missing.h win32.h -process.obj: process.c ruby.h config.h defines.h intern.h missing.h rubysig.h st.h win32.h -random.obj: random.c ruby.h config.h defines.h intern.h missing.h win32.h -range.obj: range.c ruby.h config.h defines.h intern.h missing.h win32.h -re.obj: re.c ruby.h config.h defines.h intern.h missing.h re.h regex.h win32.h -regex.obj: regex.c config.h regex.h win32.h -ruby.obj: ruby.c ruby.h config.h defines.h intern.h missing.h dln.h node.h util.h win32.h -signal.obj: signal.c ruby.h config.h defines.h intern.h missing.h rubysig.h win32.h -sprintf.obj: sprintf.c ruby.h config.h defines.h intern.h missing.h win32.h -st.obj: st.c config.h st.h -string.obj: string.c ruby.h config.h defines.h intern.h missing.h re.h regex.h win32.h -struct.obj: struct.c ruby.h config.h defines.h intern.h missing.h win32.h -time.obj: time.c ruby.h config.h defines.h intern.h missing.h win32.h -util.obj: util.c ruby.h config.h defines.h intern.h missing.h util.h win32.h -variable.obj: variable.c ruby.h config.h defines.h intern.h missing.h env.h node.h st.h util.h win32.h -version.obj: version.c ruby.h config.h defines.h intern.h missing.h version.h win32.h +main.$(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 +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 +regex.$(OBJEXT): win32.h +ruby.$(OBJEXT): win32.h +signal.$(OBJEXT): win32.h +sprintf.$(OBJEXT): win32.h +st.$(OBJEXT): win32.h +string.$(OBJEXT): win32.h +struct.$(OBJEXT): win32.h +time.$(OBJEXT): win32.h +util.$(OBJEXT): win32.h +variable.$(OBJEXT): win32.h +version.$(OBJEXT): win32.h diff --git a/bcc32/configure.bat b/bcc32/configure.bat index 449b6e25b5..91a4028c94 100644 --- a/bcc32/configure.bat +++ b/bcc32/configure.bat @@ -8,25 +8,79 @@ echo>> ~tmp~.mak conf = %0 echo>> ~tmp~.mak $(conf:\=/): nul echo>> ~tmp~.mak @del ~tmp~.mak echo>> ~tmp~.mak @-$(MAKE) -l$(MAKEFLAGS) -f $(@D)setup.mak \ -echo>> ~tmp~.mak bcc32dir="$(@D)" \ :loop if "%1" == "" goto :end +if "%1" == "--prefix" goto :prefix if "%1" == "--srcdir" goto :srcdir if "%1" == "srcdir" goto :srcdir if "%1" == "--target" goto :target if "%1" == "target" goto :target - echo>> ~tmp~.mak "%1" +if "%1" == "--with-static-linked-ext" goto :extstatic +if "%1" == "--program-suffix" goto :suffix +if "%1" == "--program-name" goto :progname +if "%1" == "--enable-install-doc" goto :enable-rdoc +if "%1" == "--disable-install-doc" goto :disable-rdoc +if "%1" == "-h" goto :help +if "%1" == "--help" goto :help + echo>> ~tmp~.mak "%1" \ shift goto :loop :srcdir - echo>> ~tmp~.mak "srcdir=%2" + echo>> ~tmp~.mak -D"srcdir=%2" \ + shift + shift +goto :loop +:prefix + echo>> ~tmp~.mak -D"prefix=%2" \ + shift + shift +goto :loop +:suffix + echo>> ~tmp~.mak -D"RUBY_SUFFIX=%2" \ + shift + shift +goto :loop +:installname + echo>> ~tmp~.mak -D"RUBY_INSTALL_NAME=%2" \ + shift + shift +goto :loop +:soname + echo>> ~tmp~.mak -D"RUBY_SO_NAME=%2" \ shift shift goto :loop :target - echo>> ~tmp~.mak %2 + echo>> ~tmp~.mak "%2" \ shift shift goto :loop +:extstatic + echo>> ~tmp~.mak -D"EXTSTATIC=static" \ + shift +goto :loop +:enable-rdoc + echo>> ~tmp~.mak -D"RDOCTARGET=install-doc" \ + shift +goto :loop +:disable-rdoc + echo>> ~tmp~.mak -D"RDOCTARGET=install-nodoc" \ + shift +goto :loop +:help + echo Configuration: + echo --help display this help + echo --srcdir=DIR find the sources in DIR [configure dir or `..'] + echo Installation directories: + echo --prefix=PREFIX install files in PREFIX [/usr] + echo System types: + echo --target=TARGET configure for TARGET [i386-bccwin32] + echo Optional Package: + echo --with-static-linked-ext link external modules statically + echo --enable-install-doc install rdoc indexes during install + del ~tmp~.mak +goto :exit :end +echo>> ~tmp~.mak bcc32dir="$(@D)" make -s -f ~tmp~.mak +:exit diff --git a/common.mk b/common.mk index 3a71fa8d75..5723094288 100644 --- a/common.mk +++ b/common.mk @@ -9,7 +9,6 @@ DMYEXT = dmyext.$(OBJEXT) MAINOBJ = main.$(OBJEXT) OBJS = array.$(OBJEXT) \ - ascii.$(OBJEXT) \ bignum.$(OBJEXT) \ class.$(OBJEXT) \ compar.$(OBJEXT) \ @@ -17,7 +16,6 @@ OBJS = array.$(OBJEXT) \ dln.$(OBJEXT) \ enum.$(OBJEXT) \ error.$(OBJEXT) \ - euc_jp.$(OBJEXT) \ eval.$(OBJEXT) \ file.$(OBJEXT) \ gc.$(OBJEXT) \ @@ -35,20 +33,14 @@ OBJS = array.$(OBJEXT) \ random.$(OBJEXT) \ range.$(OBJEXT) \ re.$(OBJEXT) \ - regcomp.$(OBJEXT) \ - regenc.$(OBJEXT) \ - regerror.$(OBJEXT) \ - regexec.$(OBJEXT) \ - regparse.$(OBJEXT) \ + regex.$(OBJEXT) \ ruby.$(OBJEXT) \ signal.$(OBJEXT) \ - sjis.$(OBJEXT) \ sprintf.$(OBJEXT) \ st.$(OBJEXT) \ string.$(OBJEXT) \ struct.$(OBJEXT) \ time.$(OBJEXT) \ - utf8.$(OBJEXT) \ util.$(OBJEXT) \ variable.$(OBJEXT) \ version.$(OBJEXT) \ @@ -198,8 +190,6 @@ win32.$(OBJEXT): {$(VPATH)}win32.c array.$(OBJEXT): {$(VPATH)}array.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \ {$(VPATH)}util.h {$(VPATH)}st.h -ascii.$(OBJEXT): {$(VPATH)}ascii.c {$(VPATH)}regenc.h \ - {$(VPATH)}oniguruma.h config.h bignum.$(OBJEXT): {$(VPATH)}bignum.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h class.$(OBJEXT): {$(VPATH)}class.c {$(VPATH)}ruby.h config.h \ @@ -220,8 +210,6 @@ enum.$(OBJEXT): {$(VPATH)}enum.c {$(VPATH)}ruby.h config.h \ error.$(OBJEXT): {$(VPATH)}error.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \ {$(VPATH)}env.h {$(VPATH)}st.h -euc_jp.$(OBJEXT): {$(VPATH)}euc_jp.c {$(VPATH)}regenc.h \ - {$(VPATH)}oniguruma.h eval.$(OBJEXT): {$(VPATH)}eval.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \ {$(VPATH)}node.h {$(VPATH)}env.h {$(VPATH)}util.h \ @@ -273,24 +261,13 @@ range.$(OBJEXT): {$(VPATH)}range.c {$(VPATH)}ruby.h config.h \ re.$(OBJEXT): {$(VPATH)}re.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \ {$(VPATH)}re.h {$(VPATH)}regex.h -regcomp.$(OBJEXT): {$(VPATH)}regcomp.c {$(VPATH)}oniguruma.h \ - {$(VPATH)}regint.h {$(VPATH)}regparse.h {$(VPATH)}regenc.h config.h -regenc.$(OBJEXT): {$(VPATH)}regenc.c {$(VPATH)}regint.h \ - {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h config.h -regerror.$(OBJEXT): {$(VPATH)}regerror.c {$(VPATH)}regint.h \ - {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h config.h -regexec.$(OBJEXT): {$(VPATH)}regexec.c {$(VPATH)}regint.h \ - {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h config.h -regparse.$(OBJEXT): {$(VPATH)}regparse.c {$(VPATH)}oniguruma.h \ - {$(VPATH)}regint.h {$(VPATH)}regparse.h {$(VPATH)}regenc.h config.h +regex.$(OBJEXT): {$(VPATH)}regex.c config.h {$(VPATH)}regex.h ruby.$(OBJEXT): {$(VPATH)}ruby.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \ {$(VPATH)}dln.h {$(VPATH)}node.h {$(VPATH)}util.h signal.$(OBJEXT): {$(VPATH)}signal.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \ {$(VPATH)}rubysig.h -sjis.$(OBJEXT): {$(VPATH)}sjis.c {$(VPATH)}regenc.h \ - {$(VPATH)}oniguruma.h config.h sprintf.$(OBJEXT): {$(VPATH)}sprintf.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h st.$(OBJEXT): {$(VPATH)}st.c config.h {$(VPATH)}st.h @@ -301,8 +278,6 @@ struct.$(OBJEXT): {$(VPATH)}struct.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h time.$(OBJEXT): {$(VPATH)}time.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h -utf8.$(OBJEXT): {$(VPATH)}utf8.c {$(VPATH)}regenc.h \ - {$(VPATH)}oniguruma.h config.h util.$(OBJEXT): {$(VPATH)}util.c {$(VPATH)}ruby.h config.h \ {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \ {$(VPATH)}util.h diff --git a/configure.in b/configure.in index cedfe6795e..5ed741ba63 100644 --- a/configure.in +++ b/configure.in @@ -192,6 +192,15 @@ AC_PROG_MAKE_SET AC_AIX AC_MINIX +AC_SUBST(RM, ['rm -f']) +AC_SUBST(CP, ['cp -v']) +AC_SUBST(INSTALL, ['install -vp']) +if $as_mkdir_p; then + AC_SUBST(MAKEDIRS, ['mkdir -p']) +else + AC_SUBST(MAKEDIRS, ['install -d']) +fi + dnl check for large file stuff AC_SYS_LARGEFILE @@ -246,7 +255,7 @@ if test "$rb_cv_stdarg" = yes; then fi AC_CACHE_CHECK([for noreturn], rb_cv_noreturn, -[rb_cv_noreturn=no +[rb_cv_noreturn=x for mac in "x __attribute__ ((noreturn))" "__declspec(noreturn) x" x; do AC_TRY_COMPILE( [#define NORETURN(x) $mac @@ -830,6 +839,7 @@ if test "$with_dln_a_out" != yes; then hpux*) DLDFLAGS="$DLDFLAGS -E" : ${LDSHARED='ld -b'} XLDFLAGS="$XLDFLAGS -Wl,-E" + : ${LIBPATHENV=SHLIB_PATH} rb_cv_dlopen=yes;; solaris*) if test "$GCC" = yes; then : ${LDSHARED='$(CC) -Wl,-G'} @@ -891,6 +901,7 @@ if test "$with_dln_a_out" != yes; then rb_cv_dlopen=yes ;; darwin*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress -flat_namespace'} : ${LDFLAGS=""} + : ${LIBPATHENV=DYLD_LIBRARY_PATH} rb_cv_dlopen=yes ;; aix*) : ${LDSHARED='/usr/ccs/bin/ld'} XLDFLAGS="$XLDFLAGS -Wl,-bE:ruby.imp" @@ -899,6 +910,7 @@ if test "$with_dln_a_out" != yes; then : ${ARCHFILE="ruby.imp"} TRY_LINK='$(CC) $(LDFLAGS) -oconftest $(INCFLAGS) -I$(hdrdir) $(CPPFLAGS) $(CFLAGS)' TRY_LINK="$TRY_LINK"' $(src) $(LIBPATH) $(LOCAL_LIBS) $(LIBS)' + : ${LIBPATHENV=SHLIB_PATH} rb_cv_dlopen=yes ;; human*) : ${DLDFLAGS=''} @@ -916,6 +928,7 @@ if test "$with_dln_a_out" != yes; then DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lbe -lroot" ;; esac + : ${LIBPATHENV=LIBRARY_PATH} rb_cv_dlopen=yes ;; nto-qnx*) DLDFLAGS="$DLDFLAGS -L/lib -L/usr/lib -L/usr/local/lib" : ${LDSHARED='ld -Bshareable -x'} @@ -924,6 +937,7 @@ if test "$with_dln_a_out" != yes; then cygwin*|mingw*) : ${LDSHARED="${CC} -shared -s"} XLDFLAGS="$XLDFLAGS -Wl,--stack,0x02000000" DLDFLAGS="${DLDFLAGS} -Wl,--enable-auto-import,--export-all" + : ${LIBPATHENV=""} rb_cv_dlopen=yes ;; hiuxmpp) : ${LDSHARED='ld -r'} ;; atheos*) : ${LDSHARED="$CC -shared"} @@ -945,6 +959,7 @@ fi AC_SUBST(LINK_SO) AC_SUBST(LIBPATHFLAG) AC_SUBST(RPATHFLAG) +AC_SUBST(LIBPATHENV, "${LIBPATHENV-LD_LIBRARY_PATH}") AC_SUBST(TRY_LINK) dln_a_out_works=no @@ -1103,12 +1118,16 @@ fi if test x"$cross_compiling" = xyes; then test x"$MINIRUBY" = x && MINIRUBY="${RUBY-ruby} -I`pwd` -rfake" PREP=fake.rb + RUNRUBY='$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`' else MINIRUBY='./miniruby$(EXEEXT)' - PREP='' + PREP='miniruby$(EXEEXT)' + RUNRUBY='$(MINIRUBY) $(srcdir)/runruby.rb --extout=$(EXTOUT) --' fi AC_SUBST(MINIRUBY) AC_SUBST(PREP) +AC_SUBST(RUNRUBY) +AC_SUBST(EXTOUT, [${EXTOUT-.ext}]) FIRSTMAKEFILE="" LIBRUBY_A='lib$(RUBY_SO_NAME)-static.a' @@ -1474,5 +1493,10 @@ else fi : > confdefs.h -AC_CONFIG_FILES([$FIRSTMAKEFILE Makefile]) +AC_CONFIG_FILES($FIRSTMAKEFILE) +AC_CONFIG_FILES(Makefile, [{ + echo; test x"$EXEEXT" = x || echo 'miniruby: miniruby$(EXEEXT)' + test "$RUBY_INSTALL_NAME$EXEEXT" = ruby || echo 'ruby: $(PROGRAM);' + sed ['s/{\$([^(){}]*)[^{}]*}//g'] ${srcdir}/common.mk +} >> Makefile], [RUBY_INSTALL_NAME=$RUBY_INSTALL_NAME EXEEXT=$EXEEXT]) AC_OUTPUT diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in index da9efaab47..03208df11c 100644 --- a/cygwin/GNUmakefile.in +++ b/cygwin/GNUmakefile.in @@ -1,11 +1,14 @@ include Makefile ENABLE_SHARED=@ENABLE_SHARED@ +DLLWRAP = @DLLWRAP@ --target=@target_os@ ifeq (@target_os@,cygwin) DLL_BASE_NAME := $(subst .dll,,$(LIBRUBY_SO)) else DLL_BASE_NAME := $(RUBY_SO_NAME) + DLLWRAP += -mno-cygwin + VPATH += $(srcdir)/win32 endif ifneq ($(ENABLE_SHARED),yes) @@ -24,6 +27,10 @@ endif WPROGRAM = $(RUBYW_INSTALL_NAME)$(EXEEXT) SOLIBS := $(DLL_BASE_NAME).res.@OBJEXT@ $(SOLIBS) EXTOBJS += $(@:$(EXEEXT)=.res.@OBJEXT@) +RCFILES = $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(DLL_BASE_NAME).rc + +ruby: $(PROGRAM) +rubyw: $(WPROGRAM) $(LIBRUBY): $(RUBY_EXP) $(LIBRUBY_SO) $(RUBY_EXP) $(LIBRUBY_SO): $(DLL_BASE_NAME).res.@OBJEXT@ @@ -31,7 +38,7 @@ $(RUBY_EXP) $(LIBRUBY_SO): $(DLL_BASE_NAME).res.@OBJEXT@ %.res.@OBJEXT@: %.rc @WINDRES@ --include-dir . --include-dir $( true) + end + end + return false + end + $target = target + /^STATIC_LIB[ \t]*=[ \t]*\S+/ =~ m or $static = nil + $preload = Shellwords.shellwords(m[/^preload[ \t]*=[ \t]*(.*)/, 1] || "") + $DLDFLAGS += " " + (m[/^DLDFLAGS[ \t]*=[ \t]*(.*)/, 1] || "") + if s = m[/^LIBS[ \t]*=[ \t]*(.*)/, 1] + s.sub!(/^#{Regexp.quote($LIBRUBYARG)} */, "") + s.sub!(/ *#{Regexp.quote($LIBS)}$/, "") + $libs = s + end + $LOCAL_LIBS = m[/^LOCAL_LIBS[ \t]*=[ \t]*(.*)/, 1] || "" + $LIBPATH = Shellwords.shellwords(m[/^libpath[ \t]*=[ \t]*(.*)/, 1] || "") - %w[$(libdir) $(topdir)] + true +end + def extmake(target) print "#{$message} #{target}\n" $stdout.flush @@ -57,8 +95,7 @@ def extmake(target) return true if $nodynamic and not $static end - init_mkmf - + FileUtils.mkpath target unless File.directory?(target) begin dir = Dir.pwd FileUtils.mkpath target unless File.directory?(target) @@ -72,18 +109,21 @@ def extmake(target) $mdir = target $srcdir = File.join($top_srcdir, "ext", $mdir) $preload = nil + $compiled[target] = false makefile = "./Makefile" + ok = File.exist?(makefile) unless $ignore - if $static || - !(t = modified?(makefile, MTIMES)) || - %W<#{$srcdir}/makefile.rb #{$srcdir}/extconf.rb - #{$srcdir}/depend>.any? {|f| modified?(f, [t])} - then - $defs = [] - Logging::logfile 'mkmf.log' - Config::CONFIG["srcdir"] = $srcdir - rm_f makefile - begin + Config::CONFIG["srcdir"] = $srcdir + Config::CONFIG["topdir"] = $topdir + begin + if (!(ok &&= extract_makefile(makefile)) || + !(t = modified?(makefile, MTIMES)) || + %W"#{$srcdir}/makefile.rb #{$srcdir}/extconf.rb #{$srcdir}/depend".any? {|f| modified?(f, [t])}) + then + ok = false + init_mkmf + Logging::logfile 'mkmf.log' + rm_f makefile if File.exist?($0 = "#{$srcdir}/makefile.rb") load $0 elsif File.exist?($0 = "#{$srcdir}/extconf.rb") @@ -91,31 +131,38 @@ def extmake(target) else create_makefile(target) end - File.exist?(makefile) - rescue SystemExit - # ignore - ensure - rm_f "conftest*" - $0 = $PROGRAM_NAME - Config::CONFIG["srcdir"] = $top_srcdir + $extupdate = true + ok = File.exist?(makefile) end - else - true + rescue SystemExit + # ignore + ensure + rm_f "conftest*" + config = $0 + $0 = $PROGRAM_NAME + Config::CONFIG["srcdir"] = $top_srcdir + Config::CONFIG["topdir"] = topdir + end + end + ok = yield(ok) if block_given? + unless ok + open(makefile, "w") do |f| + f.print dummy_makefile($srcdir) end - else - File.exist?(makefile) - end or open(makefile, "w") do |f| - f.print dummy_makefile($srcdir) return true end args = sysquote($mflags) if $static - args += ["static"] + args += ["static"] unless $clean $extlist.push [$static, $target, File.basename($target), $preload] end unless system($make, *args) $ignore or $continue or return false end + $compiled[target] = true + if $clean and $clean != true + File.unlink(makefile) rescue nil + end if $static $extflags ||= "" $extlibs ||= [] @@ -131,24 +178,65 @@ def extmake(target) $topdir = topdir Dir.chdir dir end + begin + Dir.rmdir target + target = File.dirname(target) + rescue SystemCallError + break + end while true true end +def compiled?(target) + $compiled[target] +end + def parse_args() - getopts('n', 'extstatic:', 'dest-dir:', - 'make:', 'make-flags:', 'mflags:') - - $dryrun = $OPT['n'] - $force_static = $OPT['extstatic'] == 'static' - $destdir = $OPT['dest-dir'] || '' - $make = $OPT['make'] || $make || 'make' - mflags = ($OPT['make-flags'] || '').strip - mflags = ($OPT['mflags'] || '').strip if mflags.empty? - - $mflags = Shellwords.shellwords(mflags) - if arg = $mflags.first - arg.insert(0, '-') if /\A[^-][^=]*\Z/ =~ arg + $mflags = [] + + opts = nil + $optparser ||= OptionParser.new do |opts| + opts.on('-n') {$dryrun = true} + opts.on('--[no-]extension [EXTS]', Array) do |v| + $extension = (v == false ? [] : v) + end + opts.on('--[no-]extstatic [STATIC]', Array) do |v| + if ($extstatic = v) == false + $extstatic = [] + elsif v + $force_static = true + $extstatic.delete("static") + $extstatic = nil if $extstatic.empty? + end + end + opts.on('--dest-dir=DIR') do |v| + $destdir = v + end + opts.on('--extout=DIR') do |v| + $extout = (v unless v.empty?) + end + opts.on('--make=MAKE') do |v| + $make = v || 'make' + end + opts.on('--make-flags=FLAGS', '--mflags', Shellwords) do |v| + if arg = v.first + arg.insert(0, '-') if /\A[^-][^=]*\Z/ =~ arg + end + $mflags.concat(v) + end + opts.on('--message [MESSAGE]', String) do |v| + $message = v + end end + begin + $optparser.parse!(ARGV) + rescue OptionParser::InvalidOption => e + retry if /^--/ =~ e.args[0] + $optparser.warn(e) + abort opts.to_s + end + + $destdir ||= '' $make, *rest = Shellwords.shellwords($make) $mflags.unshift(*rest) unless rest.empty? @@ -173,24 +261,33 @@ def parse_args() $destdir = File.expand_path($destdir) $mflags.defined?("DESTDIR") or $mflags << "DESTDIR=#{$destdir}" end + if $extout + $extout = '$(topdir)/'+$extout + $extout_prefix = $extout ? "$(extout)$(target_prefix)/" : "" + $mflags << "extout=#$extout" << "extout_prefix=#$extout_prefix" + end end parse_args() +if target = ARGV.shift and /^[a-z-]+$/ =~ target + $mflags.push(target) + target = target.sub(/^(dist|real)(?=(?:clean)?$)/, '') + case target + when /clean/ + $ignore ||= true + $clean = $1 ? $1[0] : true + when /^install\b/ + $install = true + $ignore ||= true + $mflags.unshift("INSTALL_PROG=install -c -p -m 0755", + "INSTALL_DATA=install -c -p -m 0644", + "MAKEDIRS=mkdir -p") if $dryrun + end +end unless $message - if $message = ARGV.shift and /^[a-z]+$/ =~ $message - $mflags.push($message) - $message = $message.sub(/^(?:dist|real)(?=(?:clean)?$)/, '\1') - case $message - when "clean" - $ignore ||= true - when "install" - $ignore ||= true - $mflags.unshift("INSTALL_PROG=install -c -p -m 0755", - "INSTALL_DATA=install -c -p -m 0644", - "MAKEDIRS=mkdir -p") if $dryrun - end - $message.sub!(/e?$/, "ing") + if target + $message = target.sub(/^(\w+)e?\b/, '\1ing').tr('-', ' ') else $message = "compiling" end @@ -204,13 +301,19 @@ elsif $nmake else $ruby = '$(topdir)/miniruby' + EXEEXT end -$ruby << " -I$(topdir) -I$(hdrdir)/lib" +$ruby << " -I'$(topdir)' -I'$(hdrdir)/lib'" $config_h = '$(topdir)/config.h' MTIMES = [__FILE__, 'rbconfig.rb', srcdir+'/lib/mkmf.rb'].collect {|f| File.mtime(f)} # get static-link modules $static_ext = {} +if $extstatic + $extstatic.each do |target| + target = target.downcase if /mswin32|bccwin32/ =~ RUBY_PLATFORM + $static_ext[target] = $static_ext.size + end +end for dir in ["ext", File::join($top_srcdir, "ext")] setup = File::join(dir, CONFIG['setup']) if File.file? setup @@ -228,13 +331,34 @@ for dir in ["ext", File::join($top_srcdir, "ext")] next end target = target.downcase if /mswin32|bccwin32/ =~ RUBY_PLATFORM - $static_ext[target] = true + $static_ext[target] = $static_ext.size end MTIMES << f.mtime $setup = setup f.close break end +end unless $extstatic + +ext_prefix = "#{$top_srcdir}/ext" +exts = $static_ext.sort_by {|t, i| i}.collect {|t, i| t} +exts |= $extension if $extension +exts |= Dir.glob("#{ext_prefix}/*/**/extconf.rb").collect {|d| + d = File.dirname(d) + d.slice!(0, ext_prefix.length + 1) + d +}.sort unless $extension + +if $extout + Config.expand(extout = "#$extout", Config::CONFIG.merge("topdir"=>$topdir)) + if $install + Config.expand(dest = "#{$destdir}#{$rubylibdir}") + FileUtils.cp_r(extout+"/.", dest, :verbose => true, :noop => $dryrun) + exit + end + unless $ignore + FileUtils.mkpath(extout) + end end dir = Dir.pwd @@ -242,17 +366,19 @@ FileUtils::makedirs('ext') Dir::chdir('ext') $hdrdir = $top_srcdir = relative_from(srcdir, $topdir = "..") -ext_prefix = "#{$top_srcdir}/ext" -Dir.glob("#{ext_prefix}/*/**/extconf.rb") do |d| - d = File.dirname(d) - d.slice!(0, ext_prefix.length + 1) - extmake(d) or exit(1) +exts.each do |d| + extmake(d) or abort end $hdrdir = $top_srcdir = srcdir $topdir = "." if $ignore + FileUtils.rm_f(%W"extinit.c extinit.#{$OBJEXT}") if $clean Dir.chdir ".." + if $clean + Dir.rmdir('ext') rescue nil + FileUtils.rm_rf(extout) if $extout + end exit end @@ -305,11 +431,13 @@ SRC end rubies = [] %w[RUBY RUBYW].each {|r| - config_string(r+"_INSTALL_NAME", Config::CONFIG) {|r| rubies << r+EXEEXT} + if r = arg_config("--"+r.downcase) || config_string(r+"_INSTALL_NAME") + rubies << r+EXEEXT + end } Dir.chdir ".." -if $extlist.size > 0 +if !$extlist.empty? and $extupdate rm_f(Config::CONFIG["LIBRUBY_SO"]) end puts "making #{rubies.join(', ')}" diff --git a/instruby.rb b/instruby.rb index f56bb2e7ca..98d2714fb6 100644 --- a/instruby.rb +++ b/instruby.rb @@ -7,27 +7,32 @@ srcdir = File.dirname(__FILE__) $:.unshift File.join(srcdir, "lib") require 'fileutils' require 'shellwords' -require 'getopts' +require 'optparse' +require 'optparse/shellwords' require 'tempfile' +STDOUT.sync = true File.umask(0) def parse_args() - getopts('n', 'dest-dir:', - 'make:', 'make-flags:', 'mflags:', - 'mantype:doc') - - $dryrun = $OPT['n'] - $destdir = $OPT['dest-dir'] || '' - $make = $OPT['make'] || $make || 'make' - $mantype = $OPT['mantype'] - mflags = ($OPT['make-flags'] || '').strip - mflags = ($OPT['mflags'] || '').strip if mflags.empty? - - $mflags = Shellwords.shellwords(mflags) - if arg = $mflags.first - arg.insert(0, '-') if /\A[^-][^=]*\Z/ =~ arg + $mantype = 'doc' + $destdir = nil + $make = 'make' + $mflags = [] + $install = [] + opt = OptionParser.new + opt.on('-n') {$dryrun = true} + opt.on('--dest-dir=DIR') {|dir| $destdir = dir} + opt.on('--make=COMMAND') {|make| $make = make} + opt.on('--mantype=MAN') {|man| $mantype = man} + opt.on('--make-flags=FLAGS', '--mflags', Shellwords) do |v| + if arg = v.first + arg.insert(0, '-') if /\A[^-][^=]*\Z/ =~ arg + end + $mflags.concat(v) end + opt.on('--install=TYPE', [:bin, :lib, :man]) {|ins| $install << ins} + opt.parse! rescue abort [$!.message, opt].join("\n") $make, *rest = Shellwords.shellwords($make) $mflags.unshift(*rest) unless rest.empty? @@ -55,6 +60,10 @@ include FileUtils::NoWrite if $dryrun @fileutils_output = STDOUT @fileutils_label = '' +def install?(type) + yield if $install.empty? or $install.include?(type) +end + def install(src, dest, options = {}) options[:preserve] = true super @@ -99,11 +108,29 @@ arc = CONFIG["LIBRUBY_A"] makedirs [bindir, libdir, rubylibdir, archlibdir, sitelibdir, sitearchlibdir] +install?(:bin) do ruby_bin = File.join(bindir, ruby_install_name) +major = CONFIG["MAJOR"] +minor = CONFIG["MINOR"] +teeny = CONFIG["TEENY"] +os = CONFIG["target_os"] +suffixes = %W[#{major}#{minor} #{major}#{minor}#{teeny} +#{major}#{minor}-#{os} #{major}#{minor}#{teeny}-#{os} +-#{major}.#{minor} -#{major}.#{minor}.#{teeny} +] +def suffixes.link(bin) + each do |suf| + ln(bin+exeext, bin+suf+exeext, force: true) + end +rescue NotImplementedError +end + install ruby_install_name+exeext, ruby_bin+exeext, :mode => 0755 +suffixes.link(ruby_bin) if rubyw_install_name and !rubyw_install_name.empty? install rubyw_install_name+exeext, bindir, :mode => 0755 + suffixes.link(File.join(bindir, rubyw_install_name)) end install dll, bindir, :mode => 0755 if enable_shared and dll != lib install lib, libdir, :mode => 0755 unless lib == arc @@ -121,9 +148,11 @@ if dll == lib and dll != arc ln_sf(dll, File.join(libdir, link)) end end +end Dir.chdir srcdir +install?(:lib) do ruby_shebang = File.join(CONFIG["bindir"], ruby_install_name) if File::ALT_SEPARATOR ruby_bin_dosish = ruby_shebang.tr(File::SEPARATOR, File::ALT_SEPARATOR) @@ -176,7 +205,9 @@ for f in Dir["lib/**/*{.rb,help-message}"] makedirs dir install f, dir, :mode => 0644 end +end +install?(:bin) do for f in Dir["*.h"] install f, archlibdir, :mode => 0644 end @@ -185,7 +216,9 @@ if RUBY_PLATFORM =~ /mswin32|mingw|bccwin32/ makedirs File.join(archlibdir, "win32") install "win32/win32.h", File.join(archlibdir, "win32"), :mode => 0644 end +end +install?(:man) do for mdoc in Dir["*.[1-9]"] next unless File.file?(mdoc) and open(mdoc){|fh| fh.read(1) == '.'} @@ -212,5 +245,6 @@ for mdoc in Dir["*.[1-9]"] install w.path, destfile, :mode => 0644 end end +end # vi:set sw=2: diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 5c4917c944..2222eb5705 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -40,7 +40,6 @@ unless defined? $configure_args end end -$srcdir = nil $libdir = CONFIG["libdir"] $rubylibdir = CONFIG["rubylibdir"] $archdir = CONFIG["archdir"] @@ -55,6 +54,8 @@ $cygwin = /cygwin/ =~ RUBY_PLATFORM $human = /human/ =~ RUBY_PLATFORM $netbsd = /netbsd/ =~ RUBY_PLATFORM $os2 = /os2/ =~ RUBY_PLATFORM +$beos = /beos/ =~ RUBY_PLATFORM +$solaris = /solaris/ =~ RUBY_PLATFORM def config_string(key, config = CONFIG) s = config[key] and !s.empty? and block_given? ? yield(s) : s @@ -73,6 +74,32 @@ INSTALL_DIRS = [ [dir_re('sitearchdir'), "$(RUBYARCHDIR)"] ] +def install_dirs(target_prefix = nil) + if $extout + dirs = [ + ['RUBYCOMMONDIR', '$(extout)'], + ['RUBYLIBDIR', '$(extout)$(target_prefix)'], + ['RUBYARCHDIR', '$(extout)/$(arch)$(target_prefix)'], + ['extout', "#$extout"], + ['extout_prefix', "#$extout_prefix"], + ] + elsif $extmk + dirs = [ + ['RUBYCOMMONDIR', '$(rubylibdir)'], + ['RUBYLIBDIR', '$(rubylibdir)$(target_prefix)'], + ['RUBYARCHDIR', '$(archdir)$(target_prefix)'], + ] + else + dirs = [ + ['RUBYCOMMONDIR', '$(sitedir)$(target_prefix)'], + ['RUBYLIBDIR', '$(sitelibdir)$(target_prefix)'], + ['RUBYARCHDIR', '$(sitearchdir)$(target_prefix)'], + ] + end + dirs << ['target_prefix', (target_prefix ? "/#{target_prefix}" : "")] + dirs +end + def map_dir(dir, map = nil) map ||= INSTALL_DIRS map.inject(dir) {|dir, (orig, new)| dir.gsub(orig, new)} @@ -290,6 +317,30 @@ def cpp_include(header) end end +def with_cppflags(flags) + cppflags = $CPPFLAGS + $CPPFLAGS = flags + ret = yield +ensure + $CPPFLAGS = cppflags unless ret +end + +def with_cflags(flags) + cflags = $CFLAGS + $CFLAGS = flags + ret = yield +ensure + $CFLAGS = cflags unless ret +end + +def with_ldflags(flags) + ldflags = $LDFLAGS + $LDFLAGS = flags + ret = yield +ensure + $LDFLAGS = ldflags unless ret +end + def try_static_assert(expr, headers = nil, opt = "", &b) headers = cpp_include(headers) try_compile(< /dev/null || true" + unless $static.nil? + mfile.print "$(STATIC_LIB): $(OBJS)\n\t" + mfile.print "$(AR) #{config_string('ARFLAGS') || 'cru '}$@ $(OBJS)" + config_string('RANLIB') do |ranlib| + mfile.print "\n\t@-#{ranlib} $(DLLIB) 2> /dev/null || true" + end end mfile.print "\n\n" if makedef @@ -1000,15 +1089,53 @@ static: $(STATIC_LIB) if File.exist?(depend) open(depend, "r") do |dfile| mfile.printf "###\n" + cont = implicit = nil + impconv = proc do + COMPILE_RULES.each {|rule| mfile.print(rule % implicit[0], implicit[1])} + implicit = nil + end + ruleconv = proc do |line| + if implicit + if /\A\t/ =~ line + implicit[1] << line + next + else + impconv[] + end + end + if m = /\A\.(\w+)\.(\w+)(?:\s*:)/.match(line) + implicit = [[m[1], m[2]], [m.post_match]] + next + elsif RULE_SUBST and /\A[$\w][^#]*:/ =~ line + line.gsub!(%r"(\s)(?!\.)([^$(){}+=:\s\/\\,]+)(?=\s|\z)") {$1 + RULE_SUBST % $2} + end + mfile.print line + end while line = dfile.gets() line.gsub!(/\.o\b/, ".#{$OBJEXT}") - if $nmake - line.gsub!(%r"(\s)([^\s\/]+\.(?:#{(SRC_EXT + ['h']).join('|')}))(?=\s|\z)", '\1{.;$(VPATH)}\2') - end line.gsub!(/\$\(hdrdir\)\/config.h/, $config_h) if $config_h - mfile.print line + if /(?:^|[^\\])(?:\\\\)*\\$/ =~ line + (cont ||= []) << line + next + elsif cont + line = (cont << line).join + cont = nil + end + ruleconv.call(line) + end + if cont + ruleconv.call(cont.join) + elsif implicit + impconv.call end end + else + headers = %w[ruby.h defines.h] + if RULE_SUBST + headers.each {|h| h.sub!(/.*/) {|*m| RULE_SUBST % m}} + end + headers << $config_h if $config_h + mfile.print "$(OBJS): ", headers.join(' '), "\n" end $makefile_created = true @@ -1044,14 +1171,17 @@ def init_mkmf(config = CONFIG) $LOCAL_LIBS = "" - $cleanfiles = [] - $distcleanfiles = [] + $cleanfiles = config_string('CLEANFILES') {|s| Shellwords.shellwords(s)} || [] + $distcleanfiles = config_string('DISTCLEANFILES') {|s| Shellwords.shellwords(s)} || [] + + $extout ||= nil + $extout_prefix ||= nil $arg_config.clear dir_config("opt") end -FailedMassage = < $(@:/=\) -config.status: Makefile $(srcdir)/win32/Makefile.sub - @echo Creating <<$@ +config.status: $(MKFILES) $(srcdir)/win32/Makefile.sub $(srcdir)/common.mk + @echo Creating $@ + @exit <<$@ # 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 @@ -309,7 +290,7 @@ s,@FFLAGS@,$(FFLAGS),;t t s,@LDFLAGS@,,;t t s,@LIBS@,$(LIBS),;t t s,@exec_prefix@,$${prefix},;t t -s,@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 @@ -350,10 +331,10 @@ 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,@OBJEXT@,$(OBJEXT),;t t s,@XCFLAGS@,$(XCFLAGS),;t t s,@XLDFLAGS@,$(XLDFLAGS),;t t -s,@DLDFLAGS@,$(DLDFLAGS) $$(LIBPATH) -def:$$(DEFFILE),;t t +s,@DLDFLAGS@,$(DLDFLAGS) $$(LIBPATH) -def:$$(DEFFILE) -implib:$$(*F:.so=)-$$(arch).lib -pdb:$$(*F:.so=)-$$(arch).pdb,;t t s,@ARCH_FLAG@,$(ARCH_FLAG),;t t s,@STATIC@,$(STATIC),;t t s,@CCDLFLAGS@,,;t t @@ -365,6 +346,11 @@ s,@STRIP@,$(STRIP),;t t s,@EXTSTATIC@,$(EXTSTATIC),;t t s,@setup@,Setup,;t t s,@MINIRUBY@,$(MINIRUBY),;t t +s,@PREP@,miniruby$(EXEEXT),;t t +s,@RUNRUBY@,$(RUNRUBY),;t t +s,@EXTOUT@,$(EXTOUT),;t t +s,@ARCHFILE@,,;t t +s,@RDOCTARGET@,$(RDOCTARGET),;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 @@ -381,7 +367,7 @@ s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t s,@SOLIBS@,$(SOLIBS),;t t s,@DLDLIBS@,$(DLDLIBS),;t t s,@ENABLE_SHARED@,yes,;t t -s,@OUTFLAG@,-Fe,;t t +s,@OUTFLAG@,$(OUTFLAG),;t t s,@CPPOUTFILE@,-P,;t t s,@LIBPATHFLAG@, -libpath:"%s",;t t s,@RPATHFLAG@,,;t t @@ -389,11 +375,13 @@ s,@LIBARG@,%s.lib,;t t s,@LINK_SO@,$$(LDSHARED) -Fe$$(@) $$(OBJS) $$(LIBS) $$(LOCAL_LIBS) $$(DLDFLAGS),;t t s,@COMPILE_C@,$$(CC) $$(CFLAGS) $$(CPPFLAGS) -c -Tc$$(<:\=/),;t t s,@COMPILE_CXX@,$$(CXX) $$(CXXFLAGS) $$(CPPFLAGS) -c -Tp$$(<:\=/),;t t -s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: .%s.%s:,;t t +s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: {$$(topdir)}.%s{}.%s: {$$(hdrdir)}.%s{}.%s: .%s.%s:,;t t +s,@RULE_SUBST@,{.;$$(srcdir);$$(topdir);$$(hdrdir)}%s,;t t s,@TRY_LINK@,$$(CC) -Feconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS) -link $$(LDFLAGS) $$(LIBPATH) $$(XLDFLAGS),;t t s,@COMMON_LIBS@,m,;t t s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN;t t s,@COMMON_HEADERS@,windows.h winsock.h,;t t +s,@DISTCLEANFILES@,vc*.pdb,;t t s,@EXPORT_PREFIX@, ,;t t s,@arch@,$(ARCH)-$(OS),;t t s,@sitearch@,$(ARCH)-$(RT),;t t @@ -404,111 +392,47 @@ s,@srcdir@,$(srcdir),;t t s,@top_srcdir@,$(srcdir),;t t < $@ @del y.tab.c -{$(srcdir)}parse.c: parse.y +$(OBJS): {$(srcdir)}win32/win32.h + +dir.$(OBJEXT): {$(srcdir)}win32/dir.h 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 -erf.obj: {$(srcdir)}missing/erf.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 {$(srcdir)}ruby.h config.h \ - {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.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)}st.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)}util.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)}util.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 -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 diff --git a/win32/configure.bat b/win32/configure.bat index 97a8945c41..11383e08bd 100755 --- a/win32/configure.bat +++ b/win32/configure.bat @@ -10,10 +10,14 @@ echo>> ~tmp~.mak @del ~tmp~.mak echo>> ~tmp~.mak @-$(MAKE) -l$(MAKEFLAGS) -f $(@D)/setup.mak \ :loop if "%1" == "" goto :end +if "%1" == "--prefix" goto :prefix if "%1" == "--srcdir" goto :srcdir if "%1" == "srcdir" goto :srcdir if "%1" == "--target" goto :target if "%1" == "target" goto :target +if "%1" == "--with-static-linked-ext" goto :extstatic +if "%1" == "--program-suffix" goto :suffix +if "%1" == "--program-name" goto :progname if "%1" == "--enable-install-doc" goto :enable-rdoc if "%1" == "--disable-install-doc" goto :disable-rdoc if "%1" == "-h" goto :help @@ -26,11 +30,35 @@ goto :loop shift shift goto :loop +:prefix + echo>> ~tmp~.mak "prefix=%2" \ + shift + shift +goto :loop +:suffix + echo>> ~tmp~.mak "RUBY_SUFFIX=%2" \ + shift + shift +goto :loop +:installname + echo>> ~tmp~.mak "RUBY_INSTALL_NAME=%2" \ + shift + shift +goto :loop +:soname + echo>> ~tmp~.mak "RUBY_SO_NAME=%2" \ + shift + shift +goto :loop :target echo>> ~tmp~.mak "%2" \ shift shift goto :loop +:extstatic + echo>> ~tmp~.mak "EXTSTATIC=static" \ + shift +goto :loop :enable-rdoc echo>> ~tmp~.mak "RDOCTARGET=install-doc" \ shift @@ -43,9 +71,12 @@ goto :loop echo Configuration: echo --help display this help echo --srcdir=DIR find the sources in DIR [configure dir or `..'] + echo Installation directories: + echo --prefix=PREFIX install files in PREFIX [/usr] echo System types: echo --target=TARGET configure for TARGET [i386-mswin32] echo Optional Package: + echo --with-static-linked-ext link external modules statically echo --enable-install-doc install rdoc indexes during install del ~tmp~.mak goto :exit diff --git a/wince/Makefile.sub b/wince/Makefile.sub index 3d5eed13ae..1dfa07de1c 100644 --- a/wince/Makefile.sub +++ b/wince/Makefile.sub @@ -1,6 +1,8 @@ # -*- makefile -*- SHELL = $(COMSPEC) +MKFILES = Makefile +NULL = nul #### Start of system configuration section. #### @@ -26,7 +28,7 @@ iconinc=-I$(icondirs: = -I) !endif ############### -VPATH = $(srcdir):$(srcdir)/missing +VPATH = $(srcdir);$(srcdir)/missing;$(srcdir)/wince .SUFFIXES: .y .def .lib !if !defined(CC) @@ -41,6 +43,7 @@ YACC = byacc AR = lib -nologo PURIFY = AUTOCONF = autoconf +RM = $(srcdir)\win32\rm.bat !if !defined(PROCESSOR_ARCHITECTURE) PROCESSOR_ARCHITECTURE = x86 @@ -66,11 +69,9 @@ DEBUGFLAGS = -Zi !if !defined(OPTFLAGS) OPTFLAGS = -w -O2b2xg- !endif -!ifndef OS -OS = mswin32 -!endif -!ifndef RT -RT = msvcrt +!if !defined(OS) || !defined(RT) +OS = mswince +RT = $(OS) !endif !ifndef RUBY_SO_NAME @@ -80,7 +81,6 @@ RUBY_SO_NAME = $(RT)-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR) RUBY_PLATFORM = $(ARCH)-$(OS) !endif - !if !defined(prefix) prefix = /usr !endif @@ -90,17 +90,34 @@ exec_prefix = $(prefix) !if !defined(libdir) libdir = $(exec_prefix)/lib !endif -!if !defined(DESTDIR) -DESTDIR = $(prefix) +!if !defined(datadir) +datadir = $(prefix)/share +!endif +!ifndef EXTOUT +EXTOUT = .ext +!endif +!ifndef RIDATADIR +RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system !endif +!ifndef RDOCTARGET +RDOCTARGET = install-doc +!endif + +OUTFLAG = -Fe !if !defined(CFLAGS) CFLAGS = $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) !endif !if !defined(CPPFLAGS) -CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/missing -I$(srcdir)/wince +CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/missing -I$(srcdir)/wince \ + $(CECPUDEF) -DUNDER_CE -D_WIN32_WCE=$(SUBSYSVERSION:.=) \ + -DFILENAME_MAX=MAX_PATH -DTLS_OUT_OF_INDEXES=0xFFFFFFFF \ + -DBUFSIZ=512 -D_UNICODE -DUNICODE +!endif +!if !defined(LDFLAGS) +LDFLAGS = -link -incremental:yes -pdb:none -machine:$(MACHINE) -subsystem:$(SUBSYSTEM) !endif !if !defined(XLDFLAGS) -XLDFLAGS = +XLDFLAGS = -stack:$(STACK) -subsystem:$(SUBSYSTEM) !endif !if !defined(RFLAGS) RFLAGS = -r @@ -108,22 +125,20 @@ RFLAGS = -r !if !defined(EXTLIBS) EXTLIBS = !endif -LIBS = coredll.lib winsock.lib $(EXTLIBS) +LIBS = coredll.lib ceshell.lib winsock.lib $(EXTLIBS) MISSING = acosh.obj crypt.obj dup2.obj erf.obj hypot.obj \ - isinf.obj isnan.obj strftime.obj win32.obj -WINCEOBJ= assert.obj direct.obj errno.obj io_wce.obj process_wce.obj \ + isinf.obj isnan.obj strftime.obj win32.obj \ + assert.obj direct.obj errno.obj io_wce.obj process_wce.obj \ signal_wce.obj stdio.obj stdlib.obj string_wce.obj \ - time_wce.obj wince.obj winsock2.obj -WINCESYSOBJ = stat.obj timeb.obj utime.obj + time_wce.obj wince.obj winsock2.obj \ + stat.obj timeb.obj utime.obj ARFLAGS = -machine:$(MACHINE) -out: CC = $(CC) -nologo LD = $(CC) LDSHARED = $(LD) -LD -XCFLAGS = -LDFLAGS = -link -incremental:yes -pdb:none -MACHINE:$(MACHINE) -subsystem:$(SUBSYSTEM) +XCFLAGS = -DRUBY_EXPORT DLDFLAGS = $(LDFLAGS) -dll -XLDFLAGS = -stack:$(STACK) -subsystem:$(SUBSYSTEM) SOLIBS = LIBRUBY_LDSHARED = $(LDSHARED) @@ -131,10 +146,12 @@ LIBRUBY_DLDFLAGS = $(EXTLDFLAGS) -def:$(RUBYDEF) EXEEXT = .exe PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT) -WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT) RUBYDEF = $(RUBY_SO_NAME).def -MINIRUBY = .\minirubyce$(EXEEXT) -MINIRUBY_WIN = .\miniruby$(EXEEXT) +MINIRUBY = $(RUBY) -I$(MAKEDIR) -rfake +RUNRUBY = $(MINIRUBY) "$(srcdir)/runruby.rb" --extout="$(EXTOUT)" -- +!ifndef RUBY +RUBY = ruby +!endif !if !defined(STACK) STACK = 0x200000,0x10000 @@ -148,64 +165,27 @@ LIBRUBY_SO = $(RUBY_SO_NAME).dll LIBRUBY = $(RUBY_SO_NAME).lib LIBRUBYARG = $(LIBRUBY) +PREP = fake.rb + +!if !defined(EXTSTATIC) +EXTSTATIC = +!endif + +OBJEXT = obj + EXTOBJS = +DLDOBJS = -MAINOBJ = main.obj -WINMAINOBJ = wincemain.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) \ - $(WINCEOBJ) \ - $(WINCESYSOBJ) - -all: ext minirubyce$(EXEEXT) rbconfig.rb \ - $(LIBRUBY) $(MISCLIBS) - @$(MINIRUBY_WIN) $(srcdir)/ext/extmk.rb --extstatic=$(EXTSTATIC) --make "$(MAKE)" --make-flags "-$(MFLAGS)$(MAKEFLAGS)" - -ext: - @mkdir $@ +WINMAINOBJ = wincemain.$(OBJEXT) +all: $(srcdir)/wince/Makefile.sub $(srcdir)/common.mk ruby: $(PROGRAM) -rubyw: $(WPROGRAM) -lib: $(LIBRUBY) -dll: $(LIBRUBY_SO) -config: config.h config.status +CONFIG_H = ./.config.h.time + +config: config.status + +config.status: $(CONFIG_H) BANG = ! @@ -213,8 +193,9 @@ BANG = ! !include config.h !endif -config.h: - @echo Creating <<$@ +$(CONFIG_H): $(MKFILES) $(srcdir)/wince/Makefile.sub + @echo Creating config.h + @$(srcdir:/=\)\win32\ifchange.bat config.h << #define STDC_HEADERS 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_STAT_H 1 @@ -286,7 +267,6 @@ config.h: #define NEED_IO_SEEK_BETWEEN_RW 1 #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)" @@ -320,12 +300,15 @@ $(BANG)endif #define ispunct(c) ( !(isalnum(c)||isspace(c))?1:0 ) #define isxdigit(c) ( ((c>=0&&c<=9)||(c>='A'&&c<='F')||(c>='a'&&c<='f'))?1:0 ) #endif -< $(@:/=\) -config.status: Makefile $(srcdir)/wince/Makefile.sub - @echo Creating <<$@ +config.status: $(MKFILES) $(srcdir)/wince/Makefile.sub $(srcdir)/common.mk + @echo Creating $@ + @exit <<$@ # 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 @@ -333,7 +316,7 @@ s,@FFLAGS@,$(FFLAGS),;t t s,@LDFLAGS@,,;t t s,@LIBS@,$(LIBS),;t t s,@exec_prefix@,$${prefix},;t t -s,@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 @@ -374,21 +357,25 @@ s,@LIBOBJS@, acosh.obj crypt.obj erf.obj win32.obj isinf.obj isnan.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,@OBJEXT@,$(OBJEXT),;t t s,@XCFLAGS@,$(XCFLAGS),;t t s,@XLDFLAGS@,$(XLDFLAGS),;t t -s,@DLDFLAGS@,$(DLDFLAGS) $$(LIBPATH) -def:$$(DEFFILE),;t t +s,@DLDFLAGS@,$(DLDFLAGS) $$(LIBPATH) -def:$$(DEFFILE) -implib:$$(*F:.so=)-$$(arch).lib -pdb:$$(*F:.so=)-$$(arch).pdb,;t t s,@ARCH_FLAG@,$(ARCH_FLAG),;t t s,@STATIC@,$(STATIC),;t t -s,@CCDLFLAGS@,-DIMPORT,;t t +s,@CCDLFLAGS@,,;t t s,@LDSHARED@,$(LDSHARED),;t t s,@DLEXT@,so,;t t -s,@DLEXT2@,dll,;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,@PREP@,miniruby$(EXEEXT),;t t +s,@RUNRUBY@,$(RUNRUBY),;t t +s,@EXTOUT@,$(EXTOUT),;t t +s,@ARCHFILE@,,;t t +s,@RDOCTARGET@,,;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 @@ -405,7 +392,7 @@ s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t s,@SOLIBS@,$(SOLIBS),;t t s,@DLDLIBS@,$(DLDLIBS),;t t s,@ENABLE_SHARED@,yes,;t t -s,@OUTFLAG@,-Fe,;t t +s,@OUTFLAG@,$(OUTFLAG),;t t s,@CPPOUTFILE@,-P,;t t s,@LIBPATHFLAG@, -libpath:"%s",;t t s,@RPATHFLAG@,,;t t @@ -413,7 +400,8 @@ s,@LIBARG@,%s.lib,;t t s,@LINK_SO@,$$(LDSHARED) -Fe$$(@) $$(OBJS) $$(LIBS) $$(LOCAL_LIBS) $$(DLDFLAGS),;t t s,@COMPILE_C@,$$(CC) $$(CFLAGS) $$(CPPFLAGS) -c -Tc$$(<:\=/),;t t s,@COMPILE_CXX@,$$(CXX) $$(CXXFLAGS) $$(CPPFLAGS) -c -Tp$$(<:\=/),;t t -s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: .%s.%s:,;t t +s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: {$$(topdir)}.%s{}.%s: {$$(hdrdir)}.%s{}.%s: .%s.%s:,;t t +s,@RULE_SUBST@,{.;$$(srcdir);$$(topdir);$$(hdrdir)}%s,;t t s,@TRY_LINK@,$$(CC) -Feconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS) -link $$(LDFLAGS) $$(LIBPATH) $$(XLDFLAGS),;t t s,@COMMON_LIBS@,coredll winsock,;t t s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN;t t @@ -426,127 +414,75 @@ s,@configure_args@,--with-make-prog=nmake --enable-shared $(configure_args),;t t s,@configure_input@,$$configure_input,;t t s,@srcdir@,$(srcdir),;t t s,@top_srcdir@,$(srcdir),;t t -s,@RUBY_PLATFORM@,$(RUBY_PLATFORM),;t t < $@ @del y.tab.c -{$(srcdir)}parse.c: parse.y +!include $(srcdir)/common.mk + +$(OBJS): {$(srcdir)}win32/win32.h + +dir.$(OBJEXT): {$(srcdir)}win32/dir.h 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 -erf.obj: {$(srcdir)}missing/erf.c -finite.obj: {$(srcdir)}missing/finite.c -flock.obj: {$(srcdir)}missing/flock.c -isinf.obj: {$(srcdir)}missing/isinf.c -isnan.obj: {$(srcdir)}missing/isnan.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 {$(srcdir)}ruby.h config.h \ - {$(srcdir)}defines.h {$(srcdir)}intern.h {$(srcdir)}missing.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)}st.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)}util.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)}util.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 -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 diff --git a/wince/configure.bat b/wince/configure.bat index 5e7b1b6b93..3ec2757294 100644 --- a/wince/configure.bat +++ b/wince/configure.bat @@ -1,59 +1,96 @@ -@echo off -::: Don't set environment variable in batch file other than autoexec.bat -::: to avoid "Out of environment space" problem on Windows 95/98. -::: set TMPMAKE=~tmp~.mak - -echo> ~tmp~.mak #### -echo>> ~tmp~.mak conf = %0 -echo>> ~tmp~.mak $(conf:\=/): nul -echo>> ~tmp~.mak @del ~tmp~.mak -echo>> ~tmp~.mak @-$(MAKE) -l$(MAKEFLAGS) -f $(@D)/setup.mak \ -:loop -if "%1" == "" goto :end -if "%1" == "--srcdir" goto :srcdir -if "%1" == "srcdir" goto :srcdir -if "%1" == "--target" goto :target -if "%1" == "target" goto :target -if "%1" == "--program-suffix" goto :suffix -if "%1" == "--program-name" goto :progname -if "%1" == "CC" goto :define -if "%1" == "EMBEDDED_TOOLS_DIR" goto :define -if "%1" == "CE_TOOLS_DIR" goto :define -if "%1" == "EMBEDDED_TOOLS4_DIR" goto :define -if "%1" == "CE_TOOLS4_DIR" goto :define - echo>> ~tmp~.mak "%1" \ - shift -goto :loop -:srcdir - echo>> ~tmp~.mak "srcdir=%2" \ - shift - shift -goto :loop -:suffix - echo>> ~tmp~.mak "RUBY_SUFFIX=%2" \ - shift - shift -goto :loop -:installname - echo>> ~tmp~.mak "RUBY_INSTALL_NAME=%2" \ - shift - shift -goto :loop -:soname - echo>> ~tmp~.mak "RUBY_SO_NAME=%2" \ - shift - shift -goto :loop -:define - echo>> ~tmp~.mak "%1=%2" \ - shift - shift -goto :loop -:target - echo>> ~tmp~.mak "%2" \ - shift - shift -goto :loop -:end -echo>> ~tmp~.mak WIN32DIR=$(@D) -nmake -alf ~tmp~.mak +@echo off +::: Don't set environment variable in batch file other than autoexec.bat +::: to avoid "Out of environment space" problem on Windows 95/98. +::: set TMPMAKE=~tmp~.mak + +echo> ~tmp~.mak #### +echo>> ~tmp~.mak conf = %0 +echo>> ~tmp~.mak $(conf:\=/): nul +echo>> ~tmp~.mak @del ~tmp~.mak +echo>> ~tmp~.mak @-$(MAKE) -l$(MAKEFLAGS) -f $(@D)/setup.mak \ +:loop +if "%1" == "" goto :end +if "%1" == "--prefix" goto :prefix +if "%1" == "--srcdir" goto :srcdir +if "%1" == "srcdir" goto :srcdir +if "%1" == "--target" goto :target +if "%1" == "target" goto :target +if "%1" == "--with-static-linked-ext" goto :extstatic +if "%1" == "--program-suffix" goto :suffix +if "%1" == "--program-name" goto :progname +if "%1" == "--enable-install-doc" goto :enable-rdoc +if "%1" == "--disable-install-doc" goto :disable-rdoc +if "%1" == "-h" goto :help +if "%1" == "--help" goto :help +if "%1" == "CC" goto :define +if "%1" == "EMBEDDED_TOOLS_DIR" goto :define +if "%1" == "CE_TOOLS_DIR" goto :define +if "%1" == "EMBEDDED_TOOLS4_DIR" goto :define +if "%1" == "CE_TOOLS4_DIR" goto :define + echo>> ~tmp~.mak "%1" \ + shift +goto :loop +:srcdir + echo>> ~tmp~.mak "srcdir=%2" \ + shift + shift +goto :loop +:prefix + echo>> ~tmp~.mak "prefix=%2" \ + shift + shift +goto :loop +:suffix + echo>> ~tmp~.mak "RUBY_SUFFIX=%2" \ + shift + shift +goto :loop +:installname + echo>> ~tmp~.mak "RUBY_INSTALL_NAME=%2" \ + shift + shift +goto :loop +:soname + echo>> ~tmp~.mak "RUBY_SO_NAME=%2" \ + shift + shift +goto :loop +:define + echo>> ~tmp~.mak "%1=%2" \ + shift + shift +goto :loop +:target + echo>> ~tmp~.mak "%2" \ + shift + shift +goto :loop +:extstatic + echo>> ~tmp~.mak "EXTSTATIC=static" \ + shift +goto :loop +:enable-rdoc + echo>> ~tmp~.mak "RDOCTARGET=install-doc" \ + shift +goto :loop +:disable-rdoc + echo>> ~tmp~.mak "RDOCTARGET=install-nodoc" \ + shift +goto :loop +:help + echo Configuration: + echo --help display this help + echo --srcdir=DIR find the sources in DIR [configure dir or `..'] + echo Installation directories: + echo --prefix=PREFIX install files in PREFIX [/usr] + echo System types: + echo --target=TARGET configure for TARGET [i386-mswin32] + echo Optional Package: + echo --with-static-linked-ext link external modules statically + echo --enable-install-doc install rdoc indexes during install + del ~tmp~.mak +goto :exit +:end +echo>> ~tmp~.mak WIN32DIR=$(@D) +nmake -alf ~tmp~.mak +:exit -- cgit v1.2.3