From e7ce523bb172c36b61cd5fc8d141a4488323bd84 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 21 Oct 2002 14:03:46 +0000 Subject: * configure.in (XCFLAGS): CFLAGS to comile ruby itself. * configure.in (LIBEXT): suffix for static libraries. * configure.in (LIBPATHFLAG): switch template to specify library path. * configure.in (LINK_SO): command to link shared objects. * configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent files. * configure.in (EXPORT_PREFIX): prefix to exported symbols on Windows. * configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS): libraries, macros and headers used in common. * configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode excutable name. * Makefile.in (CFLAGS): append XCFLAGS. * Makefile.in (PREP): miscellaneous system dependent files. * Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb. * Makefile.in (fake.rb): CROSS_COMPILING keeps building platform. * Makefile.in (MAKEFILES): depend on *.in and config.status. * Makefile.in (parse.c): replace "y.tab.c" with actual name for byacc. * ext/extmk.rb, lib/mkmf.rb: integrated. * ext/extmk.rb: propagate MFLAGS. * ext/extmk.rb (extmake): make dummy Makefile to clean even if no Makefile is made. * lib/mkmf.rb (older): accept multiple file names and Time objects. * lib/mkmf.rb (xsystem): split and qoute. * lib/mkmf.rb (cpp_include): make include directives. * lib/mkmf.rb (try_func): try wheather specified function is available. * lib/mkmf.rb (install_files): default to site-install. * lib/mkmf.rb (checking_for): added. * lib/mkmf.rb (find_executable0): just find executable file with no message. * lib/mkmf.rb (create_header): output header file is variable. * lib/mkmf.rb (create_makefile): separate sections. * lib/mkmf.rb (init_mkmf): initialize global variables. * win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added. * bcc32/Makefile.sub (ARCH): fixed to i386. * win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not link EXTOBJS. * ext/dl/extconf.rb: use try_cpp to cross compile. * ext/dl/extconf.rb: not modify files in source directory. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- win32/Makefile.sub | 113 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 72 insertions(+), 41 deletions(-) (limited to 'win32/Makefile.sub') diff --git a/win32/Makefile.sub b/win32/Makefile.sub index fc0c9c4c65..653aad32a8 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -25,11 +25,14 @@ iconinc=-I$(icondirs: = -I) ############### VPATH = $(srcdir):$(srcdir)/missing -.SUFFIXES: .y +.SUFFIXES: .y .def .lib !if !defined(CC) CC = cl !endif +!if !defined(CPP) +CPP = $(CC) -E +!endif !if !defined(YACC) YACC = byacc !endif @@ -75,14 +78,11 @@ prefix = /usr DESTDIR = $(prefix) !endif !if !defined(CFLAGS) -CFLAGS = -nologo -MD -DNT=1 $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) +CFLAGS = -MD -DNT=1 $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) !endif !if !defined(CPPFLAGS) CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/missing -DLIBRUBY_SO=\"$(LIBRUBY_SO)\" !endif -!if !defined(LDFLAGS) -LDFLAGS = $(CFLAGS) -Fm -!endif !if !defined(XLDFLAGS) XLDFLAGS = !endif @@ -94,15 +94,25 @@ EXTLIBS = !endif LIBS = user32.lib advapi32.lib wsock32.lib $(EXTLIBS) MISSING = acosh.obj crypt.obj win32.obj isinf.obj isnan.obj -LDSHARED = $(CC) -LD -DLDFLAGS = + +ARFLAGS = -machine:$(MACHINE) -out: +CC = $(CC) -nologo +LD = $(CC) +LDSHARED = $(LD) -LD +XCFLAGS = +LDFLAGS = -link -incremental:no -pdb:none +DLDFLAGS = $(LDFLAGS) -dll +XLDFLAGS = -stack:$(STACK) SOLIBS = +LIBRUBY_LDSHARED = $(LDSHARED) +LIBRUBY_DLDFLAGS = $(EXTLDFLAGS) -def:$(RUBYDEF) + EXEEXT = .exe PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT) WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT) RUBYDEF = $(RUBY_SO_NAME).def -MINIRUBY=miniruby$(EXEEXT) +MINIRUBY = .\miniruby$(EXEEXT) !if !defined(STACK) STACK = 0x2000000 @@ -116,7 +126,7 @@ LIBRUBY_SO = $(RUBY_SO_NAME).dll LIBRUBY = $(RUBY_SO_NAME).lib LIBRUBYARG = $(LIBRUBY) -EXTOBJS = dmyext.obj +EXTOBJS = MAINOBJ = main.obj WINMAINOBJ = winmain.obj @@ -161,7 +171,7 @@ OBJS = array.obj \ all: ext miniruby$(EXEEXT) rbconfig.rb \ $(LIBRUBY) $(MISCLIBS) - @.\miniruby$(EXEEXT) $(srcdir)/ext/extmk.rb + @$(MINIRUBY) $(srcdir)/ext/extmk.rb $(EXTSTATIC) $(MAKE) -$(MFLAGS)$(MAKEFLAGS) ext: @mkdir $@ @@ -264,17 +274,16 @@ config.h: Makefile $(srcdir)/win32/Makefile.sub #define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/1.7/$(ARCH)-$(RT)" < $@ +config.status: Makefile $(srcdir)/win32/Makefile.sub + @echo Creating <<$@ # 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@,user32.lib advapi32.lib wsock32.lib,;t t +s,@LDFLAGS@,,;t t +s,@LIBS@,$(LIBS),;t t s,@exec_prefix@,$${prefix},;t t s,@prefix@,,;t t s,@program_transform_name@,s,,,,;t t @@ -306,10 +315,11 @@ 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@,$$(CC) -E,;t t +s,@CPP@,$(CPP),;t t s,@YACC@,$(YACC),;t t s,@RANLIB@,rem,;t t s,@AR@,$(AR),;t t +s,@ARFLAGS@,$(ARFLAGS):,;t t s,@LN_S@,$(LN_S),;t t s,@SET_MAKE@,$(SET_MAKE),;t t s,@LIBOBJS@, acosh.obj crypt.obj win32.obj isinf.obj isnan.obj,;t t @@ -318,12 +328,13 @@ 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,@DLDFLAGS@,$(DLDFLAGS) $$(LIBPATH) -def:$$(DEFFILE),;t t s,@STATIC@,$(STATIC),;t t s,@CCDLFLAGS@,-DIMPORT,;t t -s,@LDSHARED@,$$(CC) -LD,;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 @@ -331,6 +342,8 @@ s,@MINIRUBY@,$(MINIRUBY),;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,@rubyw_install_name@,$(RUBYW_INSTALL_NAME),;t t +s,@RUBYW_INSTALL_NAME@,$(RUBYW_INSTALL_NAME),;t t s,@RUBY_SO_NAME@,$(RUBY_SO_NAME),;t t s,@LIBRUBY_A@,lib$$(RUBY_INSTALL_NAME).lib,;t t s,@LIBRUBY_SO@,$$(RUBY_SO_NAME).dll,;t t @@ -342,6 +355,17 @@ s,@DLDLIBS@,$(DLDLIBS),;t t s,@ENABLE_SHARED@,yes,;t t s,@OUTFLAG@,-Fe,;t t s,@CPPOUTFILE@,-P,;t t +s,@LIBPATHFLAG@, -libpath:%s,;t t +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,@TRY_LINK@,$$(CC) -Feconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS) $$(LDFLAGS) $$(XLDFLAGS),;t t +s,@COMMON_LIBS@,m,;t t +s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN;t t +s,@COMMON_HEADERS@,winsock2.h windows.h,;t t +s,@EXPORT_PREFIX@, ,;t t s,@arch@,$(ARCH)-$(OS),;t t s,@sitearch@,$(ARCH)-$(RT),;t t s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t @@ -349,36 +373,40 @@ 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 -<< +<