# Cc always picks ruby/ruby.h on OS X

**URL:** <https://www.ruby-forum.com/t/cc-always-picks-ruby-ruby-h-on-os-x/142550>\
**Category:** Development\
**Created:** [July 9, 2008, 3:22am UTC](https://www.ruby-forum.com/t/cc-always-picks-ruby-ruby-h-on-os-x/142550 "2008-07-09T03:22:59Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [July 9, 2008, 3:22am UTC](https://www.ruby-forum.com/t/cc-always-picks-ruby-ruby-h-on-os-x/142550/1 "2008-07-09T03:22:59Z")

</div>

ã€€ruby 1.8 ã® tk ãƒ©ã‚¤ãƒ–ãƒ©ãƒªãŒ OS X ä¸Šã§ãƒ“ãƒ«ãƒ‰ã§ããªã„ä»¶ã§ã™ã€‚

ã€€OS X ã® gcc ã«ã¯ä»•æŽ›ã‘ãŒã‚ã‚Šã€ ruby 1.9 ãŒå…¥ã£ã¦ã„ãªãã¦ã‚‚  
#include \<ruby/ruby.h\> ã¯

/System/Library/Frameworks/Ruby.framework/Headers/ruby.h

ã‚’æ‹¾ã£ã¦ã—ã¾ã„ã¾ã™ã€‚(frameworkå/Headersä»¥ä¸‹ã®ãƒ‘ã‚¹)

ã€€ä»¥ä¸‹ã®ä¿®æ­£ã§ç›´ã‚Šã¾ã™ã€‚ã‚³ãƒŸãƒƒãƒˆã—ã¦ã‚ˆã„ã§ã—ã‚‡ã†ã‹ã€‚

# Index: trunk/ext/tk/tcltklib.c

— trunk/ext/tk/tcltklib.c (revision 17964)  
+++ trunk/ext/tk/tcltklib.c (working copy)  
@@ -8,8 +8,7 @@

#include “ruby.h”

# -#ifdef HAVE\_RUBY\_RUBY\_H -/\* #include “ruby/ruby.h” \*/ +#ifdef HAVE\_RUBY\_SIGNAL\_H #include “ruby/signal.h” #ifdef HAVE\_RUBY\_ENCODING\_H #include “ruby/encoding.h” Index: trunk/ext/tk/extconf.rb

— trunk/ext/tk/extconf.rb (revision 17964)  
+++ trunk/ext/tk/extconf.rb (working copy)  
@@ -5,7 +5,7 @@ require ‘mkmf’  
is\_win32 = (/mswin|mingw|cygwin|bccwin|wince/ =~ RUBY\_PLATFORM)  
#is\_macosx = (/darwin/ =~ RUBY\_PLATFORM)

# -have\_header(“ruby/ruby.h”) +have\_header(“ruby/signal.h”) have\_header(“ruby/encoding.h”) have\_func(“ruby\_native\_thread\_p”, “ruby.h”) have\_func(“rb\_errinfo”, “ruby.h”) Index: trunk/ext/tk/tkutil/tkutil.c

— trunk/ext/tk/tkutil/tkutil.c (revision 17964)  
+++ trunk/ext/tk/tkutil/tkutil.c (working copy)  
@@ -11,8 +11,7 @@

#include “ruby.h”

# -#ifdef HAVE\_RUBY\_RUBY\_H -/\* #include “ruby/ruby.h” \*/ +#ifdef HAVE\_RUBY\_SIGNAL\_H #include “ruby/signal.h” #include “ruby/st.h” #else Index: branches/ruby\_1\_8/ext/tk/tcltklib.c

— branches/ruby\_1\_8/ext/tk/tcltklib.c (revision 17964)  
+++ branches/ruby\_1\_8/ext/tk/tcltklib.c (working copy)  
@@ -8,8 +8,7 @@

#include “ruby.h”

# -#ifdef HAVE\_RUBY\_RUBY\_H -/\* #include “ruby/ruby.h” \*/ +#ifdef HAVE\_RUBY\_SIGNAL\_H #include “ruby/signal.h” #ifdef HAVE\_RUBY\_ENCODING\_H #include “ruby/encoding.h” Index: branches/ruby\_1\_8/ext/tk/extconf.rb

— branches/ruby\_1\_8/ext/tk/extconf.rb (revision 17964)  
+++ branches/ruby\_1\_8/ext/tk/extconf.rb (working copy)  
@@ -5,7 +5,7 @@ require ‘mkmf’  
is\_win32 = (/mswin|mingw|cygwin|bccwin|wince/ =~ RUBY\_PLATFORM)  
#is\_macosx = (/darwin/ =~ RUBY\_PLATFORM)

# -have\_header(“ruby/ruby.h”) +have\_header(“ruby/signal.h”) have\_header(“ruby/encoding.h”) have\_func(“ruby\_native\_thread\_p”, “ruby.h”) have\_func(“rb\_errinfo”, “ruby.h”) Index: branches/ruby\_1\_8/ext/tk/tkutil/tkutil.c

— branches/ruby\_1\_8/ext/tk/tkutil/tkutil.c (revision 17964)  
+++ branches/ruby\_1\_8/ext/tk/tkutil/tkutil.c (working copy)  
@@ -11,8 +11,7 @@

#include “ruby.h”

-#ifdef HAVE\_RUBY\_RUBY\_H  
-/\* #include “ruby/ruby.h” \*/  
+#ifdef HAVE\_RUBY\_SIGNAL\_H  
#include “ruby/signal.h”  
#include “ruby/st.h”  
#else

---

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [July 9, 2008, 3:32am UTC](https://www.ruby-forum.com/t/cc-always-picks-ruby-ruby-h-on-os-x/142550/2 "2008-07-09T03:32:20Z")

</div>

At Wed, 9 Jul 2008 10:14:07 +0900,  
I wrote:

> ã€€ruby 1.8 ã® tk ãƒ©ã‚¤ãƒ–ãƒ©ãƒªãŒ OS X ä¸Šã§ãƒ“ãƒ«ãƒ‰ã§ããªã„ä»¶ã§ã™ã€‚
> 
> ã€€OS X ã® gcc ã«ã¯ä»•æŽ›ã‘ãŒã‚ã‚Šã€ ruby 1.9 ãŒå…¥ã£ã¦ã„ãªãã¦ã‚‚  
> #include \<ruby/ruby.h\> ã¯
> 
> /System/Library/Frameworks/Ruby.framework/Headers/ruby.h
> 
> ã‚’æ‹¾ã£ã¦ã—ã¾ã„ã¾ã™ã€‚(frameworkå/Headersä»¥ä¸‹ã®ãƒ‘ã‚¹)
> 
> ã€€ä»¥ä¸‹ã®ä¿®æ­£ã§ç›´ã‚Šã¾ã™ã€‚ã‚³ãƒŸãƒƒãƒˆã—ã¦ã‚ˆã„ã§ã—ã‚‡ã†ã‹ã€‚

ext/tk/tkutil/extconf.rb ã®ãƒ‘ãƒƒãƒãŒæ¼ã‚Œã¦ã„ã¾ã—ãŸã€‚

# Index: trunk/ext/tk/tcltklib.c

— trunk/ext/tk/tcltklib.c (revision 17964)  
+++ trunk/ext/tk/tcltklib.c (working copy)  
@@ -8,8 +8,7 @@

#include “ruby.h”

# -#ifdef HAVE\_RUBY\_RUBY\_H -/\* #include “ruby/ruby.h” \*/ +#ifdef HAVE\_RUBY\_SIGNAL\_H #include “ruby/signal.h” #ifdef HAVE\_RUBY\_ENCODING\_H #include “ruby/encoding.h” Index: trunk/ext/tk/extconf.rb

— trunk/ext/tk/extconf.rb (revision 17964)  
+++ trunk/ext/tk/extconf.rb (working copy)  
@@ -5,7 +5,7 @@ require ‘mkmf’  
is\_win32 = (/mswin|mingw|cygwin|bccwin|wince/ =~ RUBY\_PLATFORM)  
#is\_macosx = (/darwin/ =~ RUBY\_PLATFORM)

# -have\_header(“ruby/ruby.h”) +have\_header(“ruby/signal.h”) have\_header(“ruby/encoding.h”) have\_func(“ruby\_native\_thread\_p”, “ruby.h”) have\_func(“rb\_errinfo”, “ruby.h”) Index: trunk/ext/tk/tkutil/extconf.rb

— trunk/ext/tk/tkutil/extconf.rb (revision 17964)  
+++ trunk/ext/tk/tkutil/extconf.rb (working copy)  
@@ -7,7 +7,7 @@ end

if has\_tk  
require ‘mkmf’

- have\_header(“ruby/ruby.h”)

- have\_header(“ruby/signal.h”)  
have\_func(“rb\_obj\_instance\_exec”, “ruby.h”)  
have\_func(“rb\_sym\_to\_s”, “ruby.h”)  
have\_func(“strndup”, “string.h”)  
Index: trunk/ext/tk/tkutil/tkutil.c  
===================================================================  
— trunk/ext/tk/tkutil/tkutil.c (revision 17964)  
+++ trunk/ext/tk/tkutil/tkutil.c (working copy)  
@@ -11,8 +11,7 @@

#include “ruby.h”

# -#ifdef HAVE\_RUBY\_RUBY\_H -/\* #include “ruby/ruby.h” \*/ +#ifdef HAVE\_RUBY\_SIGNAL\_H #include “ruby/signal.h” #include “ruby/st.h” #else Index: branches/ruby\_1\_8/ext/tk/tcltklib.c

— branches/ruby\_1\_8/ext/tk/tcltklib.c (revision 17964)  
+++ branches/ruby\_1\_8/ext/tk/tcltklib.c (working copy)  
@@ -8,8 +8,7 @@

#include “ruby.h”

# -#ifdef HAVE\_RUBY\_RUBY\_H -/\* #include “ruby/ruby.h” \*/ +#ifdef HAVE\_RUBY\_SIGNAL\_H #include “ruby/signal.h” #ifdef HAVE\_RUBY\_ENCODING\_H #include “ruby/encoding.h” Index: branches/ruby\_1\_8/ext/tk/extconf.rb

— branches/ruby\_1\_8/ext/tk/extconf.rb (revision 17964)  
+++ branches/ruby\_1\_8/ext/tk/extconf.rb (working copy)  
@@ -5,7 +5,7 @@ require ‘mkmf’  
is\_win32 = (/mswin|mingw|cygwin|bccwin|wince/ =~ RUBY\_PLATFORM)  
#is\_macosx = (/darwin/ =~ RUBY\_PLATFORM)

# -have\_header(“ruby/ruby.h”) +have\_header(“ruby/signal.h”) have\_header(“ruby/encoding.h”) have\_func(“ruby\_native\_thread\_p”, “ruby.h”) have\_func(“rb\_errinfo”, “ruby.h”) Index: branches/ruby\_1\_8/ext/tk/tkutil/extconf.rb

— branches/ruby\_1\_8/ext/tk/tkutil/extconf.rb (revision 17964)  
+++ branches/ruby\_1\_8/ext/tk/tkutil/extconf.rb (working copy)  
@@ -7,7 +7,7 @@ end

if has\_tk  
require ‘mkmf’

- have\_header(“ruby/ruby.h”)

- have\_header(“ruby/signal.h”)  
have\_func(“rb\_obj\_instance\_exec”, “ruby.h”)  
have\_func(“rb\_sym\_to\_s”, “ruby.h”)  
have\_func(“strndup”, “string.h”)  
Index: branches/ruby\_1\_8/ext/tk/tkutil/tkutil.c  
===================================================================  
— branches/ruby\_1\_8/ext/tk/tkutil/tkutil.c (revision 17964)  
+++ branches/ruby\_1\_8/ext/tk/tkutil/tkutil.c (working copy)  
@@ -11,8 +11,7 @@

#include “ruby.h”

-#ifdef HAVE\_RUBY\_RUBY\_H  
-/\* #include “ruby/ruby.h” \*/  
+#ifdef HAVE\_RUBY\_SIGNAL\_H  
#include “ruby/signal.h”  
#include “ruby/st.h”  
#else

---

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [July 9, 2008, 9:11am UTC](https://www.ruby-forum.com/t/cc-always-picks-ruby-ruby-h-on-os-x/142550/3 "2008-07-09T09:11:46Z")

</div>

At Wed, 9 Jul 2008 10:49:46 +0900,  
Urabe S. wrote:

> ãªã‚“ã§tkã¯#include \<ruby/ruby.h\>ã—ã¦ã‚‹ã‚“ã§ã—ã‚‡ã†ã‹?
> 
> ä¸€èˆ¬çš„ã«#include ã—ãŸã¨ãã«ãŒã©ã“ã‹ã‚‰æ‹¾ã‚ã‚Œã¦ãã‚‹ã‹ã¯ã‚³ãƒ³ãƒ‘ã‚¤  
> ãƒ©å®Ÿè£…ä¾å­˜ã§ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ã¯ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ã§ããªã„ã¨æ€ã„ã¾ã™ã€‚

ã€€ãƒ‘ãƒƒãƒã‚’ã‚ˆãè¦‹ã¦ã»ã—ã„ã‚“ã§ã™ãŒã€ #include \<ruby/ruby.h\> ã¯ã—ã¦  
ã„ã¾ã›ã‚“ã‚ˆã€‚1.9ç³»ãªã®ã‹ã®åˆ¤å®šã«ä½¿ã£ã¦ã„ã¦ã€ãã‚ŒãŒã†ã¾ãã„ã‹ãªã„  
ç†ç”±ãŒä¸Šè¨˜ã§ã™ã€‚

ã€€å®Ÿéš›ã« #include ã—ã¦ã„ã‚‹ã®ã¯ \<ruby/signal.h\> ãªã®ã§ã€åŒãƒ˜ãƒƒãƒ€  
ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã‚ˆã†ã«ã™ã‚‹ã®ãŒç§ã®ãƒ‘ãƒƒãƒã§ã™ã€‚

---

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [July 9, 2008, 3:52pm UTC](https://www.ruby-forum.com/t/cc-always-picks-ruby-ruby-h-on-os-x/142550/4 "2008-07-09T15:52:41Z")

</div>

e$B$J$+$@$G$9!#e(B

At Wed, 9 Jul 2008 10:14:07 +0900,  
Akinori MUSHA wrote in [ruby-dev:35396]:

> e$B!!e(BOS X e$B$Ne(B gcc e$B$K$O;E3]$1$,$"$j!"e(B ruby 1.9 e$B$,F~$C$F$$$J$/$F$be(B  
> #include \<ruby/ruby.h\> e$B$Oe(B
> 
> /System/Library/Frameworks/Ruby.framework/Headers/ruby.h
> 
> e$B$r=&$C$F$7$^$$$^$9!#e(B(frameworke$BL\>e(B/Headerse$B0J2\<$N%Q%9e(B)

e$B$=$N\>l9g!"e(Bruby/ruby.he$B$rFI$`$?$a$K$Oe(B #include  
\<ruby/ruby/ruby.h\>  
e$B$H$7$J$1$l$P$J$i$J$$$s$G$7$g$&$+!#e(B

---

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [July 9, 2008, 4:24am UTC](https://www.ruby-forum.com/t/cc-always-picks-ruby-ruby-h-on-os-x/142550/5 "2008-07-09T04:24:10Z")

</div>

e$BKNIt$G$9!#e(B

Akinori MUSHA e$B$5$s$O=q$-$^$7$?e(B:

> e$B!!e(Bruby 1.8 e$B$Ne(B tk e$B%i%$%V%i%j$,e(B OS X e$B\>e$G%S%k%I$G$-$J$$7o$G$9!#e(B
> 
> e$B!!e(BOS X e$B$Ne(B gcc e$B$K$O;E3]$1$,$"$j!"e(B ruby 1.9 e$B$,F~$C$F$$$J$/$F$be(B  
> #include \<ruby/ruby.h\> e$B$Oe(B
> 
> /System/Library/Frameworks/Ruby.framework/Headers/ruby.h
> 
> e$B$r=&$C$F$7$^$$$^$9!#e(B(frameworke$BL\>e(B/Headerse$B0J2\<$N%Q%9e(B)

e$B$J$s$Ge(Btke$B$Oe(B#include \<ruby/ruby.h\>e$B$7$F$k$s$G$7$g$&$+e(B?

e$B0lHLE\*$Ke(B#include  
e$B$7$?$H$-$Ke(Be$B$,$I$3$+$i=&$o$l$F$/$k$+$O%3%s%Q%$e(B  
e$B%i\<BAu0MB8$G!"%f!\<%6!\<$+$i$O%3%s%H%m!\<%k$G$-$J$$$H;W$$$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [July 11, 2008, 5:12am UTC](https://www.ruby-forum.com/t/cc-always-picks-ruby-ruby-h-on-os-x/142550/6 "2008-07-11T05:12:07Z")

</div>

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

e$B7nMK$K5\_5^\<V$GC4$.9~$^$l$F:rF|$^$GF~1!$7$F$?$N$Ge(B  
e$BO"Mm$,CY$/$J$C$F$7$^$$!$$9$\_$^$;$s!%e(B

From: “Akinori MUSHA” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: [ruby-dev:35396] cc always picks ruby/ruby.h on OS X  
Date: Wed, 9 Jul 2008 10:14:07 +0900  
Message-ID: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> e$B!!e(Bruby 1.8 e$B$Ne(B tk e$B%i%$%V%i%j$,e(B OS X e$B\>e$G%S%k%I$G$-$J$$7o$G$9!#e(B  
> (snip)  
> e$B!!0J2\<$N=$@5$GD\>$j$^$9!#%3%\_%C%H$7$F$h$$$G$7$g$&$+!#e(B

e$B$O$$!%$\*\<j?t$G$9$,e(B 1.8e$B!$e(B1.9  
e$B6&$K$h$m$7$/$\*4j$$CW$7$^$9!%e(B

---

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://www.ruby-forum.com/u/Akinori_MUSHA)\
**Post date:** [July 11, 2008, 7:48am UTC](https://www.ruby-forum.com/t/cc-always-picks-ruby-ruby-h-on-os-x/142550/7 "2008-07-11T07:48:19Z")

</div>

e$B$J$+$@$G$9!#e(B

At Wed, 9 Jul 2008 22:12:21 +0900,  
Nobuyoshi N. wrote in [ruby-dev:35412]:

> > e$B!!e(BOS X e$B$Ne(B gcc e$B$K$O;E3]$1$,$"$j!"e(B ruby 1.9 e$B$,F~$C$F$$$J$/$F$be(B  
> > #include \<ruby/ruby.h\> e$B$Oe(B
> > 
> > /System/Library/Frameworks/Ruby.framework/Headers/ruby.h
> > 
> > e$B$r=&$C$F$7$^$$$^$9!#e(B(frameworke$BL\>e(B/Headerse$B0J2\<$N%Q%9e(B)
> 
> e$B$=$N\>l9g!"e(Bruby/ruby.he$B$rFI$`$?$a$K$Oe(B #include \<ruby/ruby/ruby.h\>  
> e$B$H$7$J$1$l$P$J$i$J$$$s$G$7$g$&$+!#e(B

e$B\>/$J$/$H$be(B #inlcude “ruby.h”  
e$B$OF0$/$s$G$9$h$M!#0J2\<$N$h$&$K$7$Fe(B  
e$B$\_$h$&$+$H;W$$$^$9$,!"e(BOS Xe$B$GLdBj$O$G$J$$$G$7$g$&$+!#e(B

# Index: regint.h

# — regint.h (revision 18021) +++ regint.h (working copy) @@ -814,5 +814,5 @@ extern int onig\_is\_code\_in\_cc\_len P\_((i typedef void hash\_table\_type; #ifdef RUBY -#include \<ruby/st.h\> +#include “ruby/st.h” typedef st\_data\_t hash\_data\_type; #else Index: include/ruby.h

— include/ruby.h (revision 18021)  
+++ include/ruby.h (working copy)  
@@ -13,7 +13,25 @@  
#define RUBY\_H 1

-#include \<ruby/ruby.h\>  
+#define HAVE\_RUBY\_DEFINES\_H 1  
+#define HAVE\_RUBY\_ENCODING\_H 1  
+#define HAVE\_RUBY\_INTERN\_H 1  
+#define HAVE\_RUBY\_IO\_H 1  
+#define HAVE\_RUBY\_MISSING\_H 1  
+#define HAVE\_RUBY\_MVM\_H 1  
+#define HAVE\_RUBY\_NODE\_H 1  
+#define HAVE\_RUBY\_ONIGURUMA\_H 1  
+#define HAVE\_RUBY\_RE\_H 1  
+#define HAVE\_RUBY\_REGEX\_H 1  
+#define HAVE\_RUBY\_RUBY\_H 1  
+#define HAVE\_RUBY\_SIGNAL\_H 1  
+#define HAVE\_RUBY\_ST\_H 1  
+#define HAVE\_RUBY\_UTIL\_H 1  
+#ifdef \_WIN32  
+#define HAVE\_RUBY\_WIN32\_H 1  
+#endif  
+  
+#include “ruby/ruby.h”  
#if RUBY\_VM  
-#include \<ruby/mvm.h\>  
+#include “ruby/mvm.h”  
#endif

# Index: include/rubyio.h

# — include/rubyio.h (revision 18021) +++ include/rubyio.h (working copy) @@ -1 +1 @@ -#include \<ruby/io.h\> +#include “ruby/io.h” Index: include/rubysig.h

# — include/rubysig.h (revision 18021) +++ include/rubysig.h (working copy) @@ -1 +1 @@ -#include \<ruby/signal.h\> +#include “ruby/signal.h” Index: include/ruby/intern.h

— include/ruby/intern.h (revision 18021)  
+++ include/ruby/intern.h (working copy)  
@@ -27,5 +27,5 @@ extern “C” {

# include \<varargs.h\>

#endif  
-#include \<ruby/st.h\>  
+#include “ruby/st.h”

/\*
