From 984f9a0df167c8f68832388b10c0d395a099d7a9 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 22 Feb 2005 14:52:59 +0000 Subject: * configure.in, lib/mkmf.rb: use simple commands if available. * mkconfig.rb: remove autoconf internal variables from rbconfig.rb. * lib/mkmf.rb (create_makefile): substitute implicit rules in depend file. * {bcc32,win32,wince}/Makefile.sub (COMPILE_RULES, RULE_SUBST): include $(topdir) and $(hdrdir) to search path. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 12 +++++++++++ bcc32/Makefile.sub | 3 ++- configure.in | 7 ++++++ lib/mkmf.rb | 62 ++++++++++++++++++++++++++++++++++++++++-------------- mkconfig.rb | 2 +- win32/Makefile.sub | 3 ++- wince/Makefile.sub | 3 ++- 7 files changed, 72 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index ba338622a9..e0e776544a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +Tue Feb 22 23:52:45 2005 Nobuyoshi Nakada + + * configure.in, lib/mkmf.rb: use simple commands if available. + + * mkconfig.rb: remove autoconf internal variables from rbconfig.rb. + + * lib/mkmf.rb (create_makefile): substitute implicit rules in depend + file. + + * {bcc32,win32,wince}/Makefile.sub (COMPILE_RULES, RULE_SUBST): + include $(topdir) and $(hdrdir) to search path. + Tue Feb 22 23:51:45 2005 Nobuyoshi Nakada * ext/syck/rubyext.c: get rid of warnings caused by a bug of VC. diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub index 230050d4db..8d91be7530 100644 --- a/bcc32/Makefile.sub +++ b/bcc32/Makefile.sub @@ -368,7 +368,8 @@ 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,@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 diff --git a/configure.in b/configure.in index 1f1f611ebc..3516686d7e 100644 --- a/configure.in +++ b/configure.in @@ -188,6 +188,13 @@ 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 diff --git a/lib/mkmf.rb b/lib/mkmf.rb index c4c16c44ea..be4b897a6e 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -877,10 +877,11 @@ ruby_version = #{Config::CONFIG['ruby_version']} ruby = #{$ruby} RUBY = #{($nmake && !$extmk && !$configure_args.has_key?('--ruby')) ? '$(ruby:/=\)' : '$(ruby)'} RM = #{config_string('RM') || '$(RUBY) -run -e rm -- -f'} -MAKEDIRS = $(RUBY) -run -e mkdir -- -p -INSTALL_PROG = $(RUBY) -run -e install -- -vpm 0755 -INSTALL_DATA = $(RUBY) -run -e install -- -vpm 0644 -COPY = $(RUBY) -run -e cp -- -v +MAKEDIRS = #{config_string('MAKEDIRS') || '$(RUBY) -run -e mkdir -- -p'} +INSTALL = #{config_string('INSTALL') || '$(RUBY) -run -e install -- -vp'} +INSTALL_PROG = $(INSTALL) -m 0755 +INSTALL_DATA = $(INSTALL) -m 0644 +COPY = #{config_string('COPY') || '$(RUBY) -run -e cp -- -v'} #### End of system configuration section. #### @@ -1078,28 +1079,56 @@ site-install-rb: install-rb end depend = File.join(srcdir, "depend") - cont = rule = false if File.exist?(depend) open(depend, "r") do |dfile| mfile.printf "###\n" - while line = dfile.gets() - line.gsub!(/\.o\b/, ".#{$OBJEXT}") - line.gsub!(/\$\(hdrdir\)\/config.h/, $config_h) if $config_h - if $nmake - rule = /^[$\w][^#]*:/ =~ line unless cont - cont = /(?:^|[^\\])(?:\\\\)*\\$/ =~ line - if rule - line.gsub!(%r"(?<=\s)(?!\.)(?=[^\s\/]+\.(?:#{(SRC_EXT + ['h']).join('|')})(?:\s|\z))"o, '{.;$(VPATH)}') + 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 - line.sub!(/^(\.\w+)(\.\w+)(?=\s*:)/, '{.;$(VPATH)}\1{}\2') + impconv[] end end + if /\A\.(\w+)\.(\w+)(?:\s*:)/ =~ line + implicit = [[$1, $2], [$']] + next + elsif RULE_SUBST and /\A[$\w][^#]*:/ =~ line + line.gsub!(%r"(?<=\A|\s)(?!\.)([^$(){}+=:\s\/\\,]+)(?=\s|\z)") {|*m| RULE_SUBST % m} + end mfile.print line end + while line = dfile.gets() + line.gsub!(/\.o\b/, ".#{$OBJEXT}") + line.gsub!(/\$\(hdrdir\)\/config.h/, $config_h) if $config_h + 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 - vpath = ($nmake ? "{$(hdrdir)}" : "") - mfile.print "$(OBJS): #{vpath}ruby.h #{vpath}defines.h #{$config_h}\n" + 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 @@ -1202,6 +1231,7 @@ COMMON_HEADERS = (hdr.join("\n") unless hdr.empty?) COMMON_LIBS = config_string('COMMON_LIBS', &split) || [] COMPILE_RULES = config_string('COMPILE_RULES', &split) || %w[.%s.%s:] +RULE_SUBST = config_string('RULE_SUBST') COMPILE_C = config_string('COMPILE_C') || '$(CC) $(CFLAGS) $(CPPFLAGS) -c $<' COMPILE_CXX = config_string('COMPILE_CXX') || '$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<' TRY_LINK = config_string('TRY_LINK') || diff --git a/mkconfig.rb b/mkconfig.rb index e743aa803d..246e2c6abf 100644 --- a/mkconfig.rb +++ b/mkconfig.rb @@ -44,7 +44,7 @@ File.foreach "config.status" do |line| elsif /^s[%,]@(\w+)@[%,](.*)[%,]/ =~ line name = $1 val = $2 || "" - next if /^(INSTALL|DEFS|configure_input|srcdir|top_srcdir)$/ =~ name + next if /^(?:ac_.*|DEFS|configure_input|.*(?:src|build)dir)$/ =~ name next if $install_name and /^RUBY_INSTALL_NAME$/ =~ name next if $so_name and /^RUBY_SO_NAME$/ =~ name v = " CONFIG[\"" + name + "\"] = " + diff --git a/win32/Makefile.sub b/win32/Makefile.sub index 95007145e1..d889b2b8d4 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -363,7 +363,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@,m,;t t s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN;t t diff --git a/wince/Makefile.sub b/wince/Makefile.sub index b5856a8c39..6db823d063 100644 --- a/wince/Makefile.sub +++ b/wince/Makefile.sub @@ -389,7 +389,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 -- cgit v1.2.3