[前][次][番号順一覧][スレッド一覧]

ruby-changes:2867

From: ko1@a...
Date: 20 Dec 2007 17:08:41 +0900
Subject: [ruby-changes:2867] nobu - Ruby:r14358 (trunk): * common.mk (enc.mk): depends on rbconfig.rb.

nobu	2007-12-20 17:07:56 +0900 (Thu, 20 Dec 2007)

  New Revision: 14358

  Modified files:
    trunk/ChangeLog
    trunk/common.mk
    trunk/enc/Makefile.in
    trunk/enc/ascii.c
    trunk/enc/depend
    trunk/enc/euc_jp.c
    trunk/enc/iso_8859_1.c
    trunk/enc/iso_8859_10.c
    trunk/enc/iso_8859_11.c
    trunk/enc/iso_8859_13.c
    trunk/enc/iso_8859_14.c
    trunk/enc/iso_8859_15.c
    trunk/enc/iso_8859_16.c
    trunk/enc/iso_8859_2.c
    trunk/enc/iso_8859_3.c
    trunk/enc/iso_8859_4.c
    trunk/enc/iso_8859_5.c
    trunk/enc/iso_8859_6.c
    trunk/enc/iso_8859_7.c
    trunk/enc/iso_8859_8.c
    trunk/enc/iso_8859_9.c
    trunk/enc/make_encmake.rb
    trunk/enc/sjis.c
    trunk/enc/utf8.c
    trunk/regenc.h

  Log:
    * common.mk (enc.mk): depends on rbconfig.rb.
    
    * regenc.h (OnigEncodingDefine): external encoding definition macro.
    
    * enc/Makefile.in: fix for linking.
    
    * enc/depend, enc/make_encmake.rb: fix for Windows.
    
    
    * enc/{ascii,euc_jp,sjis,utf8,iso_8859_{1..16}}.c: renamed.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/utf8.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_9.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/make_encmake.rb?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_13.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_14.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_15.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_1.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_2.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_16.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/ascii.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_3.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/euc_jp.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/sjis.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_4.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_5.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/Makefile.in?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_6.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/regenc.h?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_7.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_10.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_8.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_11.c?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/depend?r1=14358&r2=14357
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/common.mk?r1=14358&r2=14357

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14357)
+++ ChangeLog	(revision 14358)
@@ -1,3 +1,16 @@
+Thu Dec 20 17:07:54 2007  Nobuyoshi Nakada  <nobu@r...>
+
+	* common.mk (enc.mk): depends on rbconfig.rb.
+
+	* regenc.h (OnigEncodingDefine): external encoding definition macro.
+
+	* enc/Makefile.in: fix for linking.
+
+	* enc/depend, enc/make_encmake.rb: fix for Windows.
+
+
+	* enc/{ascii,euc_jp,sjis,utf8,iso_8859_{1..16}}.c: renamed.
+
 Thu Dec 20 16:42:55 2007  Koichi Sasada  <ko1@a...>
 
 	* iseq.c (find_line_no): return 0 if not found.
Index: regenc.h
===================================================================
--- regenc.h	(revision 14357)
+++ regenc.h	(revision 14358)
@@ -177,5 +177,21 @@
  (ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_UPPER) ||\
   ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_LOWER))
    
+#ifdef ONIG_ENC_REGISTER
+extern int ONIG_ENC_REGISTER(const char *, OnigEncodingType*);
+#define OnigEncodingName(n) encoding_##n
+#define OnigEncodingDeclare(n) static OnigEncodingType OnigEncodingName(n)
+#define OnigEncodingDefine(n)			     \
+    OnigEncodingDeclare(n);			     \
+    void Init_##n(void) {			     \
+	ONIG_ENC_REGISTER(OnigEncodingName(n).name,  \
+			  &OnigEncodingName(n));     \
+    }						     \
+    OnigEncodingDeclare(n)
+#else
+#define OnigEncodingName(n) OnigEncoding##n
+#define OnigEncodingDeclare(n) OnigEncodingType OnigEncodingName(n)
+#define OnigEncodingDefine(n) OnigEncodingDeclare(n)
+#endif
 
 #endif /* REGENC_H */
Index: enc/Makefile.in
===================================================================
--- enc/Makefile.in	(revision 14357)
+++ enc/Makefile.in	(revision 14358)
@@ -1,4 +1,6 @@
 srcdir = @srcdir@
+topdir = .
+libdir = @libdir@
 top_srcdir = $(srcdir:/enc=)
 arch = @arch@
 EXTOUT = @EXTOUT@
@@ -12,16 +14,22 @@
 		  euc_jp.c sjis.c \
 		  unicode.c utf8.c
 
+RUBY_SO_NAME = @RUBY_SO_NAME@
+LIBRUBY = @LIBRUBY@
+LIBRUBY_A = @LIBRUBY_A@
+LIBRUBYARG_STATIC = @LIBRUBYARG_STATIC@
+LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@
+
 empty =
 CC = @CC@
 OUTFLAG = @OUTFLAG@$(empty)
 CFLAGS = @CFLAGS@ @ARCH_FLAG@
 INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(top_srcdir)
 DEFS = @DEFS@
-CPPFLAGS = @CPPFLAGS@
+CPPFLAGS = @CPPFLAGS@ -DONIG_ENC_REGISTER=rb_enc_register
 LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
 XLDFLAGS = @XLDFLAGS@ $(EXTLDFLAGS)
-LIBS = @LIBS@ $(EXTLIBS)
+LIBS = @LIBRUBYARG@ @LIBS@ $(EXTLIBS)
 LDSHARED = @LDSHARED@
 DLDFLAGS = @DLDFLAGS@ $(EXTLDFLAGS) @ARCH_FLAG@
 
Index: enc/euc_jp.c
===================================================================
--- enc/euc_jp.c	(revision 14357)
+++ enc/euc_jp.c	(revision 14358)
@@ -341,7 +341,7 @@
 }
 
 
-OnigEncodingType OnigEncodingEUC_JP = {
+OnigEncodingDefine(EUC_JP) = {
   mbc_enc_len,
   "EUC-JP",   /* name */
   3,          /* max enc length */
Index: enc/iso_8859_1.c
===================================================================
--- enc/iso_8859_1.c	(revision 14357)
+++ enc/iso_8859_1.c	(revision 14358)
@@ -254,7 +254,7 @@
     return FALSE;
 }
 
-OnigEncodingType OnigEncodingISO_8859_1 = {
+OnigEncodingDefine(ISO_8859_1) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-1",  /* name */
   1,             /* max enc length */
Index: enc/iso_8859_2.c
===================================================================
--- enc/iso_8859_2.c	(revision 14357)
+++ enc/iso_8859_2.c	(revision 14358)
@@ -219,7 +219,7 @@
     return FALSE;
 }
 
-OnigEncodingType OnigEncodingISO_8859_2 = {
+OnigEncodingDefine(ISO_8859_2) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-2",  /* name */
   1,             /* max enc length */
Index: enc/sjis.c
===================================================================
--- enc/sjis.c	(revision 14357)
+++ enc/sjis.c	(revision 14358)
@@ -351,7 +351,7 @@
   }
 }
 
-OnigEncodingType OnigEncodingSJIS = {
+OnigEncodingDefine(SJIS) = {
   mbc_enc_len,
   "Shift_JIS",   /* name */
   2,             /* max byte length */
Index: enc/iso_8859_3.c
===================================================================
--- enc/iso_8859_3.c	(revision 14357)
+++ enc/iso_8859_3.c	(revision 14358)
@@ -219,7 +219,7 @@
 	     flag, p, end, items);
 }
 
-OnigEncodingType OnigEncodingISO_8859_3 = {
+OnigEncodingDefine(ISO_8859_3) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-3",  /* name */
   1,             /* max enc length */
Index: enc/iso_8859_4.c
===================================================================
--- enc/iso_8859_4.c	(revision 14357)
+++ enc/iso_8859_4.c	(revision 14358)
@@ -221,7 +221,7 @@
 	     flag, p, end, items);
 }
 
-OnigEncodingType OnigEncodingISO_8859_4 = {
+OnigEncodingDefine(ISO_8859_4) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-4",  /* name */
   1,             /* max enc length */
Index: enc/iso_8859_5.c
===================================================================
--- enc/iso_8859_5.c	(revision 14357)
+++ enc/iso_8859_5.c	(revision 14358)
@@ -209,7 +209,7 @@
 	     flag, p, end, items);
 }
 
-OnigEncodingType OnigEncodingISO_8859_5 = {
+OnigEncodingDefine(ISO_8859_5) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-5",  /* name */
   1,             /* max enc length */
Index: enc/iso_8859_6.c
===================================================================
--- enc/iso_8859_6.c	(revision 14357)
+++ enc/iso_8859_6.c	(revision 14358)
@@ -76,7 +76,7 @@
     return FALSE;
 }
 
-OnigEncodingType OnigEncodingISO_8859_6 = {
+OnigEncodingDefine(ISO_8859_6) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-6",  /* name */
   1,             /* max enc length */
Index: enc/iso_8859_7.c
===================================================================
--- enc/iso_8859_7.c	(revision 14357)
+++ enc/iso_8859_7.c	(revision 14358)
@@ -206,7 +206,7 @@
 }
 
 
-OnigEncodingType OnigEncodingISO_8859_7 = {
+OnigEncodingDefine(ISO_8859_7) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-7",  /* name */
   1,             /* max enc length */
Index: enc/depend
===================================================================
--- enc/depend	(revision 14357)
+++ enc/depend	(revision 14358)
@@ -3,30 +3,51 @@
 ! encs = encs.sort_by {|e| e.split(/(\d+)/).map {|n| Integer(n) rescue n}}
 
 VPATH = <% %w[$(arch_hdrdir)/ruby $(hdrdir)/ruby $(top_srcdir) $(srcdir)].join(CONFIG["PATH_SEPARATOR"]) %>
+LIBPATH = <%libpathflag($DEFLIBPATH)%>
 
 ENCOBJS = <%encs.map {|e|"#{e}.$(OBJEXT)"}.join(" \\\n\t  ")%><%"\n" if encs.size>1%>
+ENCDEFS = <%encs.map {|e|"#{e}.def"}.join(" \\\n\t  ") if DEFFILE%><%"\n" if encs.size>1%>
 ENCSOS = <%encs.map {|e|"$(ENCSODIR)/#{e}.$(DLEXT)"}.join(" \\\n\t ")%>
 
 all: $(ENCSOS)
 
-.c.$(OBJEXT):
+! COMPILE_RULES.each do |rule|
+<%  rule % %w[c $(OBJEXT)] %>
 	<%COMPILE_C%>
+
+! end
 ! unless encs.empty?
 
 $(ENCOBJS): regenc.h oniguruma.h config.h defines.h
 
+! encs.each do |e|
+<%e%>.so: $(ENCSODIR)/<%e%>.$(DLEXT)
 ! end
+
+! end
+! link_so = LINK_SO.gsub(/\n/, "\n\t")
 ! encs.each do |e|
-$(ENCSODIR)/<%e%>.$(DLEXT): <%e%>.$(OBJEXT)
-	<%LINK_SO.gsub(/\n/, "\n\t")%>
+!   deps = "#{e}.$(OBJEXT)"
+!   deps << " #{e}-$(arch).def" if DEFFILE
+$(ENCSODIR)/<%e%>.$(DLEXT): <%deps%>
+	<%link_so.sub(/\$\(OBJS\)/, deps)%>
 
 ! end
+! if DEFFILE
+!   encs.each do |e|
+<%e%>-$(arch).def:
+	echo EXPORTS > $@
+	echo <%EXPORT_PREFIX%>Init_<%e.upcase%> >> $@
+
+!   end
+! end
 ! encs.each do |e|
 <%e%>.$(OBJEXT): <%e%>.c
 ! end
 
 clean:
 	$(RM) $(ENCSOS)
+	$(RM) $(ENCDEFS)
 	$(RM) $(ENCOBJS)
 
 distclean: clean
Index: enc/iso_8859_8.c
===================================================================
--- enc/iso_8859_8.c	(revision 14357)
+++ enc/iso_8859_8.c	(revision 14358)
@@ -76,7 +76,7 @@
     return FALSE;
 }
 
-OnigEncodingType OnigEncodingISO_8859_8 = {
+OnigEncodingDefine(ISO_8859_8) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-8",  /* name */
   1,             /* max enc length */
Index: enc/iso_8859_9.c
===================================================================
--- enc/iso_8859_9.c	(revision 14357)
+++ enc/iso_8859_9.c	(revision 14358)
@@ -213,7 +213,7 @@
 	     flag, p, end, items);
 }
 
-OnigEncodingType OnigEncodingISO_8859_9 = {
+OnigEncodingDefine(ISO_8859_9) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-9",  /* name */
   1,             /* max enc length */
Index: enc/make_encmake.rb
===================================================================
--- enc/make_encmake.rb	(revision 14357)
+++ enc/make_encmake.rb	(revision 14358)
@@ -14,11 +14,13 @@
   BUILTIN_ENCS = []
 end
 
+DEFFILE = (true if CONFIG["DLDFLAGS"].sub!(/\s+-def:\$\(DEFFILE\)\s+/, ' '))
+  
 mkin = File.read(File.join($srcdir, "Makefile.in"))
 mkin.gsub!(/@(#{CONFIG.keys.join('|')})@/) {CONFIG[$1]}
 if File.exist?(depend = File.join($srcdir, "depend"))
   tmp = ''
-  eval(serb(File.read(depend), 'tmp'))
+  eval(serb(File.read(depend), 'tmp'), binding, depend)
   mkin << "\n#### depend ####\n\n" << depend_rules(tmp).join
 end
 open(ARGV[0], 'wb') {|f|
Index: enc/utf8.c
===================================================================
--- enc/utf8.c	(revision 14357)
+++ enc/utf8.c	(revision 14358)
@@ -486,7 +486,7 @@
 						    flag, p, end, items);
 }
 
-OnigEncodingType OnigEncodingUTF8 = {
+OnigEncodingDefine(UTF8) = {
   utf8_mbc_enc_len,
   "UTF-8",     /* name */
   6,           /* max byte length */
Index: enc/iso_8859_10.c
===================================================================
--- enc/iso_8859_10.c	(revision 14357)
+++ enc/iso_8859_10.c	(revision 14358)
@@ -224,7 +224,7 @@
 	     flag, p, end, items);
 }
 
-OnigEncodingType OnigEncodingISO_8859_10 = {
+OnigEncodingDefine(ISO_8859_10) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-10", /* name */
   1,             /* max enc length */
Index: enc/iso_8859_11.c
===================================================================
--- enc/iso_8859_11.c	(revision 14357)
+++ enc/iso_8859_11.c	(revision 14358)
@@ -76,7 +76,7 @@
     return FALSE;
 }
 
-OnigEncodingType OnigEncodingISO_8859_11 = {
+OnigEncodingDefine(ISO_8859_11) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-11",  /* name */
   1,             /* max enc length */
Index: enc/ascii.c
===================================================================
--- enc/ascii.c	(revision 14357)
+++ enc/ascii.c	(revision 14358)
@@ -38,7 +38,7 @@
     return FALSE;
 }
 
-OnigEncodingType OnigEncodingASCII = {
+OnigEncodingDefine(ASCII) = {
   onigenc_single_byte_mbc_enc_len,
   "ASCII-8BIT",/* name */
   1,           /* max byte length */
Index: enc/iso_8859_13.c
===================================================================
--- enc/iso_8859_13.c	(revision 14357)
+++ enc/iso_8859_13.c	(revision 14358)
@@ -213,7 +213,7 @@
 	     flag, p, end, items);
 }
 
-OnigEncodingType OnigEncodingISO_8859_13 = {
+OnigEncodingDefine(ISO_8859_13) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-13",  /* name */
   1,             /* max enc length */
Index: enc/iso_8859_14.c
===================================================================
--- enc/iso_8859_14.c	(revision 14357)
+++ enc/iso_8859_14.c	(revision 14358)
@@ -225,7 +225,7 @@
 	     flag, p, end, items);
 }
 
-OnigEncodingType OnigEncodingISO_8859_14 = {
+OnigEncodingDefine(ISO_8859_14) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-14",  /* name */
   1,             /* max enc length */
Index: enc/iso_8859_15.c
===================================================================
--- enc/iso_8859_15.c	(revision 14357)
+++ enc/iso_8859_15.c	(revision 14358)
@@ -219,7 +219,7 @@
 	     flag, p, end, items);
 }
 
-OnigEncodingType OnigEncodingISO_8859_15 = {
+OnigEncodingDefine(ISO_8859_15) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-15",  /* name */
   1,             /* max enc length */
Index: enc/iso_8859_16.c
===================================================================
--- enc/iso_8859_16.c	(revision 14357)
+++ enc/iso_8859_16.c	(revision 14358)
@@ -222,7 +222,7 @@
 	     flag, p, end, items);
 }
 
-OnigEncodingType OnigEncodingISO_8859_16 = {
+OnigEncodingDefine(ISO_8859_16) = {
   onigenc_single_byte_mbc_enc_len,
   "ISO-8859-16",  /* name */
   1,             /* max enc length */
Index: common.mk
===================================================================
--- common.mk	(revision 14357)
+++ common.mk	(revision 14358)
@@ -343,8 +343,8 @@
 	$(MINIRUBY) -I$(srcdir)/lib -run -e mkdir -- -p "$(EXTOUT)/$(arch)/enc"
 	$(MAKE) -f enc.mk -$(MAKEFLAGS)
 
-enc.mk: miniruby$(EXEEXT) $(srcdir)/enc/make_encmake.rb \
-	$(srcdir)/enc/Makefile.in $(srcdir)/enc/depend $(srcdir)/lib/mkmf.rb
+enc.mk: $(srcdir)/enc/make_encmake.rb $(srcdir)/enc/Makefile.in $(srcdir)/enc/depend \
+	$(srcdir)/lib/mkmf.rb rbconfig.rb
 	$(MINIRUBY) $(srcdir)/enc/make_encmake.rb --builtin-encs="$(BUILTIN_ENCOBJS)" $@
 
 .PRECIOUS: $(MKFILES)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]