eclubb / ncurses-ruby

A Ruby module for accessing the ncurses library
https://github.com/eclubb/ncurses-ruby
Other
131 stars 29 forks source link

The upgrade to XCODE 5.1 introduced an extra bug where the clang flag #10

Closed marble-sh closed 10 years ago

marble-sh commented 10 years ago

-multiply_definedsuppress was removed and will no longer be supported. Due to not being able to compile on my linux computer at the moment I have included the change to DLDFLAGS in the logic to detect if the user is compiling on a Mac OS. The following is the error generated without the DLDFLAGS:

clang: error: unknown argument: '-multiply_definedsuppress'
[-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a
warning) in the future

The other bugs this fixes is the inability to compile since Mac OS does not have a /usr/pkg/lib directory.

That is all.

marble-sh commented 10 years ago

Also closes #8

eclubb commented 10 years ago

@marblenix @nixpulvis @fjaell @crowell @ShaharHD:

Can you all test the fixes in https://github.com/eclubb/ncurses-ruby/tree/marblenix-Fix-Compile-on-Mac-OS ?

Does it compile on your platform(s) without errors and without warnings? If so, I'll merge and release a new version of the gem.

marble-sh commented 10 years ago

Sure thing, here's what I did:

make clean; rm -f Makefile; ruby ext/ncurses/extconf.rb

compiling ext/ncurses/form_wrap.c
In file included from ext/ncurses/form_wrap.c:31:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
ext/ncurses/form_wrap.c:621:11: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
                int n = RARRAY_LEN(arg3);
                    ~   ^~~~~~~~~~~~~~~~
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:880:6: note: expanded from macro 'RARRAY_LEN'
     (long)((RBASIC(a)->flags >> RARRAY_EMBED_LEN_SHIFT) & \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ext/ncurses/form_wrap.c:621:11: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
                int n = RARRAY_LEN(arg3);
                    ~   ^~~~~~~~~~~~~~~~
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:882:25: note: expanded from macro 'RARRAY_LEN'
     RARRAY(a)->as.heap.len)
     ~~~~~~~~~~~~~~~~~~~^~~
ext/ncurses/form_wrap.c:699:40: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
  return INT2NUM(set_field_fore(field, NUM2ULONG(attr)));
                 ~~~~~~~~~~~~~~        ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/form_wrap.c:713:40: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
  return INT2NUM(set_field_back(field, NUM2ULONG(attr)));
                 ~~~~~~~~~~~~~~        ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
5 warnings generated.
compiling ext/ncurses/menu_wrap.c
In file included from ext/ncurses/menu_wrap.c:27:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
ext/ncurses/menu_wrap.c:805:38: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
  return INT2NUM(set_menu_fore(menu, NUM2ULONG(attr)));
                 ~~~~~~~~~~~~~       ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/menu_wrap.c:821:38: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
  return INT2NUM(set_menu_back(menu, NUM2ULONG(attr)));
                 ~~~~~~~~~~~~~       ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/menu_wrap.c:837:38: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
  return INT2NUM(set_menu_grey(menu, NUM2ULONG(attr)));
                 ~~~~~~~~~~~~~       ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
4 warnings generated.
compiling ext/ncurses/ncurses_wrap.c
ext/ncurses/ncurses_wrap.c:540:24: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
            chstr[i] = NUM2ULONG(rb_ary_entry(array, i));
                     ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^~~~~~~~~~~~~~~~~~~~~~
ext/ncurses/ncurses_wrap.c:605:33: warning: implicit conversion loses integer precision: 'unsigned long' to 'attr_t' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(slk_attr_set(NUM2ULONG(arg1),  NUM2INT(arg2),  ((void)(arg3),NULL)));
                   ~~~~~~~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:610:48: warning: implicit conversion loses integer precision: 'unsigned long' to 'attr_t' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wattr_on(get_window(arg1),  NUM2ULONG(arg2),  ((void)(arg3),NULL)));
                   ~~~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:615:49: warning: implicit conversion loses integer precision: 'unsigned long' to 'attr_t' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wattr_off(get_window(arg1),  NUM2ULONG(arg2),  ((void)(arg3),NULL)));
                   ~~~~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1210:49: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(pechochar(get_window(arg1),  NUM2ULONG(arg2)));
                   ~~~~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1297:32: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(slk_attroff(NUM2ULONG(arg1)));
                   ~~~~~~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1300:31: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(slk_attron(NUM2ULONG(arg1)));
                   ~~~~~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1303:32: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(slk_attrset(NUM2ULONG(arg1)));
                   ~~~~~~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1398:28: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(vidattr(NUM2ULONG(arg1)));
                   ~~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1405:46: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(waddch(get_window(arg1),  NUM2ULONG(arg2)));
                   ~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1436:45: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wbkgd(get_window(arg1),  NUM2ULONG(arg2)));
                   ~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1439:42: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return ((wbkgdset(get_window(arg1),  NUM2ULONG(arg2))),Qnil);
             ~~~~~~~~                    ^~~~~~~~~~~~~~~
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^~~~~~~~~~~~~~~~~~~~~~
ext/ncurses/ncurses_wrap.c:1442:47: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  NUM2ULONG(arg9)));
                   ~~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:65: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  NUM2ULONG(arg9)));
                   ~~~~~~~                                      ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:83: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  NUM2ULONG(arg9)));
                   ~~~~~~~                                                        ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:101: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  NUM2ULONG(arg9)));
                   ~~~~~~~                                                                          ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:119: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  NUM2ULONG(arg9)));
                   ~~~~~~~                                                                                            ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:137: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  NUM2ULONG(arg9)));
                   ~~~~~~~                                                                                                              ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:155: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  NUM2ULONG(arg9)));
                   ~~~~~~~                                                                                                                                ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:173: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  NUM2ULONG(arg9)));
                   ~~~~~~~                                                                                                                                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1446:62: warning: implicit conversion loses integer precision: 'unsigned long' to 'attr_t' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wchgat(get_window(arg1),  NUM2INT(arg2),  NUM2ULONG(arg3),  NUM2INT(arg4),  ((void)(arg5),NULL)));
                   ~~~~~~                                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1473:49: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wechochar(get_window(arg1),  NUM2ULONG(arg2)));
                   ~~~~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1482:46: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(whline(get_window(arg1),  NUM2ULONG(arg2),  NUM2INT(arg3)));
                   ~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1488:46: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(winsch(get_window(arg1),  NUM2ULONG(arg2)));
                   ~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1539:46: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wvline(get_window(arg1),  NUM2ULONG(arg2),  NUM2INT(arg3)));
                   ~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1599:29: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
{ return rb_str_new2(unctrl(NUM2ULONG(ch))); }
                     ~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/intern.h:786:27: note: expanded from macro 'rb_str_new_cstr'
    (__builtin_constant_p(str)) ?               \
                          ^
ext/ncurses/ncurses_wrap.c:1599:29: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
{ return rb_str_new2(unctrl(NUM2ULONG(ch))); }
                     ~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/intern.h:788:18: note: expanded from macro 'rb_str_new_cstr'
        rb_str_new_cstr(str);                   \
                        ^
27 warnings generated.
compiling ext/ncurses/panel_wrap.c
In file included from ext/ncurses/panel_wrap.c:25:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
1 warning generated.
linking shared-object ncurses.bundle
marble-sh commented 10 years ago

End result was a compiled ncurses.bundle

marble-sh commented 10 years ago

Here's the output when compiling with XCODE ruby version 2.0.0

compiling ext/ncurses/form_wrap.c
In file included from ext/ncurses/form_wrap.c:31:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
ext/ncurses/form_wrap.c:675:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
2 warnings generated.
compiling ext/ncurses/menu_wrap.c
In file included from ext/ncurses/menu_wrap.c:27:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
1 warning generated.
compiling ext/ncurses/ncurses_wrap.c
compiling ext/ncurses/panel_wrap.c
In file included from ext/ncurses/panel_wrap.c:25:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
1 warning generated.
linking shared-object ncurses.bundle
crowell commented 10 years ago

Just realized that I compiled on the wrong branch. Same thing, no errors, no warnings when I switched branches.

minishwoods ~/ncurses-ruby ‹origin/marblenix-Fix-Compile-on-Mac-OS_› » make clean; rm -f Makefile; ruby ext/ncurses/extconf.rb checking for unistd.h... yes checking for ncurses.h... yes checking for wmove() in -lncurses... yes checking for newscr()... yes checking for TABSIZE()... yes checking for ESCDELAY()... yes checking for keybound()... yes checking for curses_version()... yes checking for tigetstr()... yes checking for getwin()... yes checking for putwin()... yes checking for ungetmouse()... yes checking for mousemask()... yes checking for wenclose()... yes checking for mouseinterval()... yes checking for wmouse_trafo()... yes checking for mcprint()... yes checking for has_key()... yes checking for delscreen()... yes checking for define_key()... yes checking for keyok()... yes checking for resizeterm()... yes checking for use_default_colors()... yes checking for use_extended_names()... yes checking for wresize()... yes checking for attr_on()... yes checking for attr_off()... yes checking for attr_set()... yes checking for chgat()... yes checking for color_set()... yes checking for filter()... yes checking for intrflush()... yes checking for mvchgat()... yes checking for mvhline()... yes checking for mvvline()... yes checking for mvwchgat()... yes checking for mvwhline()... yes checking for mvwvline()... yes checking for noqiflush()... yes checking for putp()... yes checking for qiflush()... yes checking for scr_dump()... yes checking for scr_init()... yes checking for scr_restore()... yes checking for scr_set()... yes checking for slk_attr_off()... no checking for slk_attr_on()... no checking for slk_attr()... yes checking for slk_attr_set()... yes checking for slk_color()... yes checking for tigetflag()... yes checking for tigetnum()... yes checking for use_env()... yes checking for vidattr()... yes checking for vid_attr()... no checking for wattr_on()... yes checking for wattr_off()... yes checking for wattr_set()... yes checking for wchgat()... yes checking for wcolor_set()... yes checking for getattrs()... yes checking which debugging functions to wrap... checking for _tracef()... no checking for _tracedump()... no checking for _nc_tracebits()... no checking for _traceattr()... no checking for _traceattr2()... no checking for _tracechar()... no checking for _tracechtype()... no checking for _tracechtype2()... no checking for _tracemouse()... no checking for other functions that appeared after ncurses version 5.0... checking for assume_default_colors()... yes checking for attr_get()... yes checking for the panel library... checking for panel.h... yes checking for panel_hidden() in -lpanel... yes checking for the form library... checking for form.h... yes checking for new_form() in -lform... yes checking for the menu library... checking for menu.h... yes checking for newmenu() in -lmenu... yes creating Makefile minishwoods ~/ncurses-ruby ‹origin/marblenix-Fix-Compile-on-Mac-OS› » make compiling ext/ncurses/form_wrap.c compiling ext/ncurses/panel_wrap.c compiling ext/ncurses/menu_wrap.c compiling ext/ncurses/ncurses_wrap.c linking shared-object ncurses.so

marble-sh commented 10 years ago

https://github.com/eclubb/ncurses-ruby/pull/10#issuecomment-40142450

Update:

ruby --version
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]
git clone https://github.com/eclubb/ncurses-ruby/
cd ncurses-ruby
git checkout -t origin/marblenix-Fix-Compile-on-Mac-OS
ruby ext/ncurses/extconf.rb
make

Outputs the following:

checking for unistd.h... yes
checking for ncurses.h... yes
checking for wmove() in -lncurses... yes
checking for newscr()... yes
checking for TABSIZE()... yes
checking for ESCDELAY()... yes
checking for keybound()... yes
checking for curses_version()... yes
checking for tigetstr()... yes
checking for getwin()... yes
checking for putwin()... yes
checking for ungetmouse()... yes
checking for mousemask()... yes
checking for wenclose()... yes
checking for mouseinterval()... yes
checking for wmouse_trafo()... yes
checking for mcprint()... yes
checking for has_key()... yes
checking for delscreen()... yes
checking for define_key()... yes
checking for keyok()... yes
checking for resizeterm()... yes
checking for use_default_colors()... yes
checking for use_extended_names()... yes
checking for wresize()... yes
checking for attr_on()... yes
checking for attr_off()... yes
checking for attr_set()... yes
checking for chgat()... yes
checking for color_set()... yes
checking for filter()... yes
checking for intrflush()... yes
checking for mvchgat()... yes
checking for mvhline()... yes
checking for mvvline()... yes
checking for mvwchgat()... yes
checking for mvwhline()... yes
checking for mvwvline()... yes
checking for noqiflush()... yes
checking for putp()... yes
checking for qiflush()... yes
checking for scr_dump()... yes
checking for scr_init()... yes
checking for scr_restore()... yes
checking for scr_set()... yes
checking for slk_attr_off()... yes
checking for slk_attr_on()... yes
checking for slk_attr()... yes
checking for slk_attr_set()... yes
checking for slk_color()... yes
checking for tigetflag()... yes
checking for tigetnum()... yes
checking for use_env()... yes
checking for vidattr()... yes
checking for vid_attr()... yes
checking for wattr_on()... yes
checking for wattr_off()... yes
checking for wattr_set()... yes
checking for wchgat()... yes
checking for wcolor_set()... yes
checking for getattrs()... yes
checking which debugging functions to wrap...
checking for _tracef()... no
checking for _tracedump()... no
checking for _nc_tracebits()... no
checking for _traceattr()... no
checking for _traceattr2()... no
checking for _tracechar()... no
checking for _tracechtype()... no
checking for _tracechtype2()... no
checking for _tracemouse()... no
checking for other functions that appeared after ncurses version 5.0...
checking for assume_default_colors()... yes
checking for attr_get()... yes
checking for the panel library...
checking for panel.h... yes
checking for panel_hidden() in -lpanel... yes
checking for the form library...
checking for form.h... yes
checking for new_form() in -lform... yes
checking for the menu library...
checking for menu.h... yes
checking for new_menu() in -lmenu... yes
creating Makefile
compiling ext/ncurses/form_wrap.c
In file included from ext/ncurses/form_wrap.c:31:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
ext/ncurses/form_wrap.c:621:11: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
                int n = RARRAY_LEN(arg3);
                    ~   ^~~~~~~~~~~~~~~~
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:880:6: note: expanded from macro 'RARRAY_LEN'
     (long)((RBASIC(a)->flags >> RARRAY_EMBED_LEN_SHIFT) & \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ext/ncurses/form_wrap.c:621:11: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
                int n = RARRAY_LEN(arg3);
                    ~   ^~~~~~~~~~~~~~~~
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:882:25: note: expanded from macro 'RARRAY_LEN'
     RARRAY(a)->as.heap.len)
     ~~~~~~~~~~~~~~~~~~~^~~
ext/ncurses/form_wrap.c:699:40: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
  return INT2NUM(set_field_fore(field, NUM2ULONG(attr)));
                 ~~~~~~~~~~~~~~        ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/form_wrap.c:713:40: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
  return INT2NUM(set_field_back(field, NUM2ULONG(attr)));
                 ~~~~~~~~~~~~~~        ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
5 warnings generated.
compiling ext/ncurses/menu_wrap.c
In file included from ext/ncurses/menu_wrap.c:27:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
ext/ncurses/menu_wrap.c:805:38: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
  return INT2NUM(set_menu_fore(menu, NUM2ULONG(attr)));
                 ~~~~~~~~~~~~~       ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/menu_wrap.c:821:38: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
  return INT2NUM(set_menu_back(menu, NUM2ULONG(attr)));
                 ~~~~~~~~~~~~~       ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/menu_wrap.c:837:38: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
  return INT2NUM(set_menu_grey(menu, NUM2ULONG(attr)));
                 ~~~~~~~~~~~~~       ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
4 warnings generated.
compiling ext/ncurses/ncurses_wrap.c
ext/ncurses/ncurses_wrap.c:540:24: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
            chstr[i] = NUM2ULONG(rb_ary_entry(array, i));
                     ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^~~~~~~~~~~~~~~~~~~~~~
ext/ncurses/ncurses_wrap.c:605:33: warning: implicit conversion loses integer precision: 'unsigned long' to 'attr_t' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(slk_attr_set(NUM2ULONG(arg1),  NUM2INT(arg2),  ((void)(arg3),NULL)));
                   ~~~~~~~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:610:48: warning: implicit conversion loses integer precision: 'unsigned long' to 'attr_t' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wattr_on(get_window(arg1),  NUM2ULONG(arg2),  ((void)(arg3),NULL)));
                   ~~~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:615:49: warning: implicit conversion loses integer precision: 'unsigned long' to 'attr_t' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wattr_off(get_window(arg1),  NUM2ULONG(arg2),  ((void)(arg3),NULL)));
                   ~~~~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1210:49: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(pechochar(get_window(arg1),  NUM2ULONG(arg2)));
                   ~~~~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1297:32: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(slk_attroff(NUM2ULONG(arg1)));
                   ~~~~~~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1300:31: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(slk_attron(NUM2ULONG(arg1)));
                   ~~~~~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1303:32: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(slk_attrset(NUM2ULONG(arg1)));
                   ~~~~~~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1398:28: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(vidattr(NUM2ULONG(arg1)));
                   ~~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1405:46: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(waddch(get_window(arg1),  NUM2ULONG(arg2)));
                   ~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1436:45: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wbkgd(get_window(arg1),  NUM2ULONG(arg2)));
                   ~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1439:42: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return ((wbkgdset(get_window(arg1),  NUM2ULONG(arg2))),Qnil);
             ~~~~~~~~                    ^~~~~~~~~~~~~~~
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^~~~~~~~~~~~~~~~~~~~~~
ext/ncurses/ncurses_wrap.c:1442:47: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  N...
                   ~~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:65: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  N...
                   ~~~~~~~                                      ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:83: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  N...
                   ~~~~~~~                                                        ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:101: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  N...
                   ~~~~~~~                                                                          ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:119: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  N...
                   ~~~~~~~                                                                                            ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:137: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  N...
                   ~~~~~~~                                                                                                              ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:155: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  N...
                   ~~~~~~~                                                                                                                                ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1442:173: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wborder(get_window(arg1),  NUM2ULONG(arg2),  NUM2ULONG(arg3),  NUM2ULONG(arg4),  NUM2ULONG(arg5),  NUM2ULONG(arg6),  NUM2ULONG(arg7),  NUM2ULONG(arg8),  NUM2U...
                   ~~~~~~~                                                                                                                                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1446:62: warning: implicit conversion loses integer precision: 'unsigned long' to 'attr_t' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wchgat(get_window(arg1),  NUM2INT(arg2),  NUM2ULONG(arg3),  NUM2INT(arg4),  ((void)(arg5),NULL)));
                   ~~~~~~                                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1473:49: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wechochar(get_window(arg1),  NUM2ULONG(arg2)));
                   ~~~~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1482:46: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(whline(get_window(arg1),  NUM2ULONG(arg2),  NUM2INT(arg3)));
                   ~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1488:46: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(winsch(get_window(arg1),  NUM2ULONG(arg2)));
                   ~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1539:46: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
    return INT2NUM(wvline(get_window(arg1),  NUM2ULONG(arg2),  NUM2INT(arg3)));
                   ~~~~~~                    ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:1277:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:231:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
ext/ncurses/ncurses_wrap.c:1599:29: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
{ return rb_str_new2(unctrl(NUM2ULONG(ch))); }
                     ~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/intern.h:786:27: note: expanded from macro 'rb_str_new_cstr'
    (__builtin_constant_p(str)) ?               \
                          ^
ext/ncurses/ncurses_wrap.c:1599:29: warning: implicit conversion loses integer precision: 'unsigned long' to 'chtype' (aka 'unsigned int') [-Wshorten-64-to-32]
{ return rb_str_new2(unctrl(NUM2ULONG(ch))); }
                     ~~~~~~ ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/ruby.h:609:22: note: expanded from macro 'NUM2ULONG'
#define NUM2ULONG(x) rb_num2ulong_inline(x)
                     ^
/Users/cm/.rvm/rubies/ruby-2.1.1/include/ruby-2.1.0/ruby/intern.h:788:18: note: expanded from macro 'rb_str_new_cstr'
        rb_str_new_cstr(str);                   \
                        ^
27 warnings generated.
compiling ext/ncurses/panel_wrap.c
In file included from ext/ncurses/panel_wrap.c:25:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
1 warning generated.
linking shared-object ncurses.bundle

And when I use the Default Xcode version of ruby

ruby --version
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
checking for unistd.h... yes
checking for ncurses.h... yes
checking for wmove() in -lncurses... yes
checking for newscr()... yes
checking for TABSIZE()... yes
checking for ESCDELAY()... yes
checking for keybound()... yes
checking for curses_version()... yes
checking for tigetstr()... yes
checking for getwin()... yes
checking for putwin()... yes
checking for ungetmouse()... yes
checking for mousemask()... yes
checking for wenclose()... yes
checking for mouseinterval()... yes
checking for wmouse_trafo()... yes
checking for mcprint()... yes
checking for has_key()... yes
checking for delscreen()... yes
checking for define_key()... yes
checking for keyok()... yes
checking for resizeterm()... yes
checking for use_default_colors()... yes
checking for use_extended_names()... yes
checking for wresize()... yes
checking for attr_on()... yes
checking for attr_off()... yes
checking for attr_set()... yes
checking for chgat()... yes
checking for color_set()... yes
checking for filter()... yes
checking for intrflush()... yes
checking for mvchgat()... yes
checking for mvhline()... yes
checking for mvvline()... yes
checking for mvwchgat()... yes
checking for mvwhline()... yes
checking for mvwvline()... yes
checking for noqiflush()... yes
checking for putp()... yes
checking for qiflush()... yes
checking for scr_dump()... yes
checking for scr_init()... yes
checking for scr_restore()... yes
checking for scr_set()... yes
checking for slk_attr_off()... yes
checking for slk_attr_on()... yes
checking for slk_attr()... yes
checking for slk_attr_set()... yes
checking for slk_color()... yes
checking for tigetflag()... yes
checking for tigetnum()... yes
checking for use_env()... yes
checking for vidattr()... yes
checking for vid_attr()... yes
checking for wattr_on()... yes
checking for wattr_off()... yes
checking for wattr_set()... yes
checking for wchgat()... yes
checking for wcolor_set()... yes
checking for getattrs()... yes
checking which debugging functions to wrap...
checking for _tracef()... no
checking for _tracedump()... no
checking for _nc_tracebits()... no
checking for _traceattr()... no
checking for _traceattr2()... no
checking for _tracechar()... no
checking for _tracechtype()... no
checking for _tracechtype2()... no
checking for _tracemouse()... no
checking for other functions that appeared after ncurses version 5.0...
checking for assume_default_colors()... yes
checking for attr_get()... yes
checking for the panel library...
checking for panel.h... yes
checking for panel_hidden() in -lpanel... yes
checking for the form library...
checking for form.h... yes
checking for new_form() in -lform... yes
checking for the menu library...
checking for menu.h... yes
checking for new_menu() in -lmenu... yes
creating Makefile
compiling ext/ncurses/form_wrap.c
In file included from ext/ncurses/form_wrap.c:31:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
ext/ncurses/form_wrap.c:675:1: warning: control may reach end of non-void function
      [-Wreturn-type]
}
^
2 warnings generated.
compiling ext/ncurses/menu_wrap.c
In file included from ext/ncurses/menu_wrap.c:27:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
1 warning generated.
compiling ext/ncurses/ncurses_wrap.c
compiling ext/ncurses/panel_wrap.c
In file included from ext/ncurses/panel_wrap.c:25:
ext/ncurses/ncurses_wrap.h:76:9: warning: 'NCURSES_OPAQUE' macro redefined
#define NCURSES_OPAQUE 0
        ^
/usr/include/curses.h:109:9: note: previous definition is here
#define NCURSES_OPAQUE 1
        ^
1 warning generated.
linking shared-object ncurses.bundle
marble-sh commented 10 years ago

Update No. 2: Just built on my main build machine

OS: Arch Linux x86_64 Kernel Release: 3.14.0-4-ARCH

ruby --version
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]
git clone https://github.com/eclubb/ncurses-ruby/
cd ncurses-ruby
git checkout -t origin/marblenix-Fix-Compile-on-Mac-OS
ruby ext/ncurses/extconf.rb
make
checking for unistd.h... yes
checking for ncurses.h... yes
checking for wmove() in -lncurses... yes
checking for newscr()... yes
checking for TABSIZE()... yes
checking for ESCDELAY()... yes
checking for keybound()... yes
checking for curses_version()... yes
checking for tigetstr()... yes
checking for getwin()... yes
checking for putwin()... yes
checking for ungetmouse()... yes
checking for mousemask()... yes
checking for wenclose()... yes
checking for mouseinterval()... yes
checking for wmouse_trafo()... yes
checking for mcprint()... yes
checking for has_key()... yes
checking for delscreen()... yes
checking for define_key()... yes
checking for keyok()... yes
checking for resizeterm()... yes
checking for use_default_colors()... yes
checking for use_extended_names()... yes
checking for wresize()... yes
checking for attr_on()... yes
checking for attr_off()... yes
checking for attr_set()... yes
checking for chgat()... yes
checking for color_set()... yes
checking for filter()... yes
checking for intrflush()... yes
checking for mvchgat()... yes
checking for mvhline()... yes
checking for mvvline()... yes
checking for mvwchgat()... yes
checking for mvwhline()... yes
checking for mvwvline()... yes
checking for noqiflush()... yes
checking for putp()... yes
checking for qiflush()... yes
checking for scr_dump()... yes
checking for scr_init()... yes
checking for scr_restore()... yes
checking for scr_set()... yes
checking for slk_attr_off()... yes
checking for slk_attr_on()... yes
checking for slk_attr()... yes
checking for slk_attr_set()... yes
checking for slk_color()... yes
checking for tigetflag()... yes
checking for tigetnum()... yes
checking for use_env()... yes
checking for vidattr()... yes
checking for vid_attr()... yes
checking for wattr_on()... yes
checking for wattr_off()... yes
checking for wattr_set()... yes
checking for wchgat()... yes
checking for wcolor_set()... yes
checking for getattrs()... yes
checking which debugging functions to wrap...
checking for _tracef()... no
checking for _tracedump()... no
checking for _nc_tracebits()... no
checking for _traceattr()... no
checking for _traceattr2()... no
checking for _tracechar()... no
checking for _tracechtype()... no
checking for _tracechtype2()... no
checking for _tracemouse()... no
checking for other functions that appeared after ncurses version 5.0...
checking for assume_default_colors()... yes
checking for attr_get()... yes
checking for the panel library...
checking for panel.h... yes
checking for panel_hidden() in -lpanel... yes
checking for the form library...
checking for form.h... yes
checking for new_form() in -lform... yes
checking for the menu library...
checking for menu.h... yes
checking for new_menu() in -lmenu... yes
creating Makefile
compiling ext/ncurses/panel_wrap.c
compiling ext/ncurses/ncurses_wrap.c
compiling ext/ncurses/menu_wrap.c
compiling ext/ncurses/form_wrap.c
linking shared-object ncurses.so
marble-sh commented 10 years ago

Please let me know if you'd like me to test anything else.

eclubb commented 10 years ago

Closed by a174b433bc826cef65fbd5fdea500d4b9fe558bd