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

ruby-changes:2978

From: ko1@a...
Date: 22 Dec 2007 15:15:01 +0900
Subject: [ruby-changes:2978] nobu - Ruby:r14469 (trunk): * common.mk (encs, ext/ripper/ripper.c): needs MFLAGS.

nobu	2007-12-22 15:14:50 +0900 (Sat, 22 Dec 2007)

  New Revision: 14469

  Added files:
    trunk/tool/make-snapshot
  Modified files:
    trunk/ChangeLog
    trunk/common.mk
    trunk/configure.in
    trunk/include/ruby/defines.h
    trunk/version.c
    trunk/version.h

  Log:
    * common.mk (encs, ext/ripper/ripper.c): needs MFLAGS.
    
    * configure.in (STRINGIZE): stringizing macro.
    
    * include/ruby/defines.h (STRINGIZE): fallback.
    
    * tool/make-snapshot: new file.
    
    * version.c (ruby_description, ruby_copyright): string constants for
      -v option.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/version.h?r1=14469&r2=14468
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14469&r2=14468
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/version.c?r1=14469&r2=14468
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/tool/make-snapshot?revision=14469&view=markup
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/tool/make-snapshot?r1=14469&r2=14468
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/configure.in?r1=14469&r2=14468
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/include/ruby/defines.h?r1=14469&r2=14468
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/common.mk?r1=14469&r2=14468

Index: include/ruby/defines.h
===================================================================
--- include/ruby/defines.h	(revision 14468)
+++ include/ruby/defines.h	(revision 14469)
@@ -64,6 +64,11 @@
 void *xrealloc2(void*,size_t,size_t);
 void xfree(void*);
 
+#define STRINGIZE(expr) STRINGIZE0(expr)
+#ifndef STRINGIZE0
+#define STRINGIZE0(expr) #expr
+#endif
+
 #if SIZEOF_LONG_LONG > 0
 # define LONG_LONG long long
 #elif SIZEOF___INT64 > 0
Index: configure.in
===================================================================
--- configure.in	(revision 14468)
+++ configure.in	(revision 14469)
@@ -323,6 +323,41 @@
   AC_DEFINE(TOKEN_PASTE(x,y),[x/**/y])
 fi
 
+AC_CACHE_CHECK(stringization, rb_cv_stringization, [
+  rb_cv_stringization=no
+  for string in "#expr" '"expr"'; do
+    AC_COMPILE_IFELSE([
+      AC_LANG_BOOL_COMPILE_TRY([
+#define STRINGIZE0(expr) $string
+#define STRINGIZE(expr) STRINGIZE0(expr)
+#undef real_test_for_stringization
+#define test_for_stringization -.real_test_for_stringization.-
+const char stringized[[]] = STRINGIZE(test_for_stringization);
+], [sizeof(stringized) == 32])],
+      [rb_cv_stringization="$string"; break],
+      [rb_cv_stringization=no])
+  done]
+)
+AC_DEFINE(STRINGIZE(expr),STRINGIZE0(expr))
+if test x"$rb_cv_stringization" != xno -a "$rb_cv_stringization" != "#expr"; then
+  AC_DEFINE_UNQUOTED(STRINGIZE0(expr),$rb_cv_stringization)
+  AC_DEFINE(OLD_FASHIONED_STRINGIZATION,1)
+fi
+
+AC_CACHE_CHECK([string literal concatenation],
+  rb_cv_string_literal_concatenation, [
+  AC_COMPILE_IFELSE([
+    AC_LANG_BOOL_COMPILE_TRY([
+const char concatenated_literal[[]] = "literals" "to"
+  "be" "concatenated.";
+], [sizeof(concatenated_literal) == 26])],
+    [rb_cv_string_literal_concatenation=yes],
+    [rb_cv_string_literal_concatenation=no])]
+)
+if test "$rb_cv_string_literal_concatenation" = no; then
+  AC_DEFINE(NO_STRING_LITERAL_CONCATENATION,1)
+fi
+
 AC_CACHE_CHECK(for variable length prototypes and stdarg.h, rb_cv_stdarg,
   [AC_TRY_COMPILE([
 #include <stdarg.h>
@@ -1564,6 +1599,12 @@
 esac
 
 CPPFLAGS="$CPPFLAGS "'$(DEFS)'
+test -z "$CFLAGS" || CFLAGS="$CFLAGS "; CFLAGS="$CFLAGS"'${cflags}'
+test -z "$CPPFLAGS" || CPPFLAGS="$CPPFLAGS "; CPPFLAGS="$CPPFLAGS"'${cppflags}'
+AC_SUBST(cppflags, [])dnl
+AC_SUBST(cflags, ["${optflags} ${debugflags}"])dnl
+AC_SUBST(optflags)dnl
+AC_SUBST(debugflags)dnl
 AC_SUBST(XCFLAGS)dnl
 AC_SUBST(XLDFLAGS)dnl
 AC_SUBST(LIBRUBY_LDSHARED)
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14468)
+++ ChangeLog	(revision 14469)
@@ -1,3 +1,16 @@
+Sat Dec 22 15:14:48 2007  Nobuyoshi Nakada  <nobu@r...>
+
+	* common.mk (encs, ext/ripper/ripper.c): needs MFLAGS.
+
+	* configure.in (STRINGIZE): stringizing macro.
+
+	* include/ruby/defines.h (STRINGIZE): fallback.
+
+	* tool/make-snapshot: new file.
+
+	* version.c (ruby_description, ruby_copyright): string constants for
+	  -v option.
+
 Sat Dec 22 15:03:37 2007  Shugo Maeda  <shugo@r...>
 
 	* lib/net/imap.rb (initialize): fixed documentation.
Index: common.mk
===================================================================
--- common.mk	(revision 14468)
+++ common.mk	(revision 14469)
@@ -341,7 +341,7 @@
 
 encs: enc.mk
 	$(MINIRUBY) -I$(srcdir)/lib -run -e mkdir -- -p "$(EXTOUT)/$(arch)/enc"
-	$(MAKE) -f enc.mk -$(MAKEFLAGS)
+	$(MAKE) -f enc.mk $(MFLAGS)$(MAKEFLAGS)
 
 enc.mk: $(srcdir)/enc/make_encmake.rb $(srcdir)/enc/Makefile.in $(srcdir)/enc/depend \
 	$(srcdir)/lib/mkmf.rb $(RBCONFIG)
@@ -650,13 +650,16 @@
 prelude.c: $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $(srcdir)/gem_prelude.rb $(RBCONFIG)
 	$(MINIRUBY) -I$(srcdir) -I$(srcdir)/lib -rrbconfig $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $(srcdir)/gem_prelude.rb $@
 
-prereq: incs {$(VPATH)}parse.c $(srcdir)/ext/ripper/ripper.c {$(VPATH)}miniprelude.c
+prereq: incs {$(VPATH)}parse.c $(srcdir)/ext/ripper/ripper.c {$(VPATH)}miniprelude.c {$(VPATH)}revision.h
 
 docs:
 	$(BASERUBY) -I$(srcdir) $(srcdir)/tool/makedocs.rb $(INSNS2VMOPT)
 
+revision.h:
+	exit > $@
+
 $(srcdir)/ext/ripper/ripper.c:
-	cd $(srcdir)/ext/ripper && exec $(MAKE) -f depend -$(MAKEFLAGS) top_srcdir=../.. srcdir=.
+	cd $(srcdir)/ext/ripper && exec $(MAKE) -f depend $(MFLAGS)$(MAKEFLAGS) top_srcdir=../.. srcdir=.
 
 ##
 
Index: version.c
===================================================================
--- version.c	(revision 14468)
+++ version.c	(revision 14469)
@@ -14,34 +14,38 @@
 #include "version.h"
 #include <stdio.h>
 
+#define PRINT(type) puts(ruby_##type)
+#define MKSTR(type) rb_obj_freeze(rb_str_new(ruby_##type, sizeof(ruby_##type)-1))
+
 const char ruby_version[] = RUBY_VERSION;
 const char ruby_release_date[] = RUBY_RELEASE_DATE;
 const char ruby_platform[] = RUBY_PLATFORM;
 const int ruby_patchlevel = RUBY_PATCHLEVEL;
+const char ruby_description[] = RUBY_DESCRIPTION;
+const char ruby_copyright[] = RUBY_COPYRIGHT;
 
 void
 Init_version(void)
 {
-    VALUE v = rb_obj_freeze(rb_str_new2(ruby_version));
-    VALUE d = rb_obj_freeze(rb_str_new2(ruby_release_date));
-    VALUE p = rb_obj_freeze(rb_str_new2(ruby_platform));
-
-    rb_define_global_const("RUBY_VERSION", v);
-    rb_define_global_const("RUBY_RELEASE_DATE", d);
-    rb_define_global_const("RUBY_PLATFORM", p);
+    rb_define_global_const("RUBY_VERSION", MKSTR(version));
+    rb_define_global_const("RUBY_RELEASE_DATE", MKSTR(release_date));
+    rb_define_global_const("RUBY_PLATFORM", MKSTR(platform));
     rb_define_global_const("RUBY_PATCHLEVEL", INT2FIX(RUBY_PATCHLEVEL));
+    rb_define_global_const("RUBY_REVISION", INT2FIX(RUBY_REVISION));
+    rb_define_global_const("RUBY_DESCRIPTION", MKSTR(description));
+    rb_define_global_const("RUBY_COPYRIGHT", MKSTR(copyright));
 }
 
 void
 ruby_show_version(void)
 {
-    printf("ruby %s (%s patchlevel %d) [%s]\n", RUBY_VERSION, RUBY_RELEASE_DATE, RUBY_PATCHLEVEL, RUBY_PLATFORM);
+    PRINT(description);
     fflush(stdout);
 }
 
 void
 ruby_show_copyright(void)
 {
-    printf("ruby - Copyright (C) 1993-%d Yukihiro Matsumoto\n", RUBY_RELEASE_YEAR);
+    PRINT(copyright);
     exit(0);
 }
Index: version.h
===================================================================
--- version.h	(revision 14468)
+++ version.h	(revision 14469)
@@ -16,4 +16,42 @@
 RUBY_EXTERN const char ruby_release_date[];
 RUBY_EXTERN const char ruby_platform[];
 RUBY_EXTERN const int ruby_patchlevel;
+RUBY_EXTERN const char ruby_description[];
+RUBY_EXTERN const char ruby_copyright[];
 #endif
+
+#define RUBY_AUTHOR "Yukihiro Matsumoto"
+#define RUBY_BIRTH_YEAR 1993
+#define RUBY_BIRTH_MONTH 2
+#define RUBY_BIRTH_DAY 24
+
+#ifndef RUBY_REVISION
+#include "revision.h"
+#endif
+#ifndef RUBY_REVISION
+#define RUBY_REVISION 0
+#endif
+
+#if RUBY_VERSION_TEENY > 0 && RUBY_PATCHLEVEL < 5000 && !RUBY_REVISION
+#define RUBY_RELEASE_STR "patchlevel"
+#define RUBY_RELEASE_NUM RUBY_PATCHLEVEL
+#else
+#ifdef RUBY_BRANCH_NAME
+#define RUBY_RELEASE_STR RUBY_BRANCH_NAME
+#else
+#define RUBY_RELEASE_STR "revision"
+#endif
+#define RUBY_RELEASE_NUM RUBY_REVISION
+#endif
+
+# define RUBY_DESCRIPTION	    \
+    "ruby "RUBY_VERSION		    \
+    " ("RUBY_RELEASE_DATE" "	    \
+    RUBY_RELEASE_STR" "		    \
+    STRINGIZE(RUBY_RELEASE_NUM)") " \
+    "["RUBY_PLATFORM"]"
+# define RUBY_COPYRIGHT 	    \
+    "ruby - Copyright (C) "	    \
+    STRINGIZE(RUBY_BIRTH_YEAR)"-"   \
+    STRINGIZE(RUBY_RELEASE_YEAR)" " \
+    RUBY_AUTHOR
Index: tool/make-snapshot
===================================================================
--- tool/make-snapshot	(revision 0)
+++ tool/make-snapshot	(revision 14469)
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+LC_ALL=C LANG=C
+SVNURL=http://svn.ruby-lang.org/repos/ruby/trunk
+export LC_ALL LANG
+: ${VPATH=include/ruby} ${YACC=bison} ${BASERUBY=ruby} ${RUBY=ruby} ${MV=mv}
+export VPATH YACC BASERUBY RUBY MV
+
+[ -d "$1" ] || mkdir "$1" || exit 1
+dest=`cd "$1"; pwd`
+
+tmp=${TMP_DIR-/tmp}/ #ruby-snapshot-$$
+mkdir -p "$tmp"
+cd "$tmp"
+revision=`svn export $SVNURL ruby | sed -n '$s/.*\([0-9]+\).*/\1/p'`
+[ $revision ] || revision=`svn info $SVNURL | sed -n 's/Revision: //p'`
+echo "#define RUBY_REVISION $revision" > ruby/revision.h
+v=ruby-r$revision
+mv ruby $v
+(cd $v; sed 's/{[^{}]*}//g' common.mk | make -f - prereq srcdir=.)
+
+for cmd in "bzip tarball.tar.bz2 tar cjf" "gzip tarball.tar.gz tar czf" "zip archive.zip zip -qr"; do
+    mesg="${cmd%%.*}" cmd="${cmd#*.}"
+    ext="${cmd%% *}" cmd="${cmd#* }"
+    echo -n creating $mesg... $dest/$v.$ext
+    if $cmd $dest/$v.$ext $v; then
+	echo " done"
+    else
+	echo " failed"
+    fi
+done

Property changes on: tool/make-snapshot
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + LF


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

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