rbnewt 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0c26cde6bba16893211200d19f988832981f1d90
4
- data.tar.gz: f90478c6a6038072b168f909c53bd5f337aadffa
3
+ metadata.gz: 2504ec989a4cbeeccab2d56fc9f054bc09c95402
4
+ data.tar.gz: aeda78b1d10c0d65857ea246f2fa8f75c0f5ad3d
5
5
  SHA512:
6
- metadata.gz: 297dc08ec4d1d167659f0fd8f1f144898d100ddefa8a51a54f2d323177419bcbfca58776b8b85cd213478fd262141acc9be04c218319ba9c320cb94dbddf073b
7
- data.tar.gz: 86258abb18f69c7fc2d55c28a6897a9e3b663716d2631ec7c999fbc1a47162c188c48d4e3e223e7189c3c53a97cc8ecc9d5a6045114783d22c03e85227308885
6
+ metadata.gz: 91c6d8ff65a927e4d5fe89ddfe5d7c93065e85d64699c8e3165abda3c390059ac09105578bbfa2a26e2df00b01a2651595d2ca32ad86ac63cdb51d66ecdc2449
7
+ data.tar.gz: f7203fd60960bbf0d5e054285c5dbd2c37f3515c7477176800c2abb14e04258f8970a06a743c5e7624f39b18e7a0c48d9483a84fcb4cb4b979e1520b7419f8e8
@@ -6,7 +6,7 @@
6
6
 
7
7
  /* internal data structure to share in the session */
8
8
  typedef struct rbnewt_context_t {
9
- VALUE self;
9
+ VALUE callback_obj;
10
10
  } rbnewt_context_t;
11
11
 
12
12
  void newt_stomp_callback_connected(stomp_session_t *, void *, void *);
data/include/newt/stomp.h CHANGED
@@ -14,6 +14,10 @@
14
14
  #define NEWT_STOMP_DEFAULT_PASSWD "guest"
15
15
  #define NEWT_STOMP_DEFAULT_PORT "61613"
16
16
 
17
+ #define NEWT_STOMP_CB_CONNECTED "cb_connected"
18
+ #define NEWT_STOMP_CB_MESSAGE "cb_message"
19
+ #define NEWT_STOMP_CB_ERROR "cb_error"
20
+
17
21
  int cnewt_stomp_initialize(stomp_session_t *, char *, char *, char *, char *);
18
22
 
19
23
  #endif
data/src/rbnewt.c CHANGED
@@ -9,49 +9,92 @@
9
9
  #include <newt/rbnewt.h>
10
10
 
11
11
  static VALUE get_headers(struct stomp_ctx_message *ctx) {
12
- VALUE ret;
12
+ VALUE ret = rb_hash_new();
13
+ const struct stomp_hdr *hdrs;
14
+ int i;
13
15
 
14
16
  assert(ctx != NULL);
15
17
 
16
- // XXX no implementation
17
- ret = Qnil;
18
+ hdrs = ctx->hdrs;
19
+ for(i=0; i<ctx->hdrc; i++) {
20
+ rb_hash_aset(ret, rb_str_new2(hdrs[i].key), rb_str_new2(hdrs[i].val));
21
+ }
18
22
 
19
23
  return ret;
20
24
  }
21
25
 
22
26
  static VALUE get_body(struct stomp_ctx_message *ctx) {
23
- VALUE ret;
27
+ VALUE ret = Qnil;
24
28
 
25
29
  assert(ctx != NULL);
26
30
 
27
- // XXX no implementation
28
- ret = Qnil;
31
+ if(ctx->body != NULL && ctx->body_len > 0) {
32
+ ret = rb_str_new2((char *)ctx->body);
33
+ }
29
34
 
30
35
  return ret;
31
36
  }
32
37
 
33
- void newt_stomp_callback_connected(stomp_session_t *s, void *callback_ctx, void *session_ctx) {
38
+ static struct stomp_hdr *make_stomp_hdr(VALUE rb_opts, int offset, int *header_len) {
39
+ struct stomp_hdr *headers = NULL;
40
+ int i;
41
+ VALUE rb_headers = Qnil;
42
+
43
+ assert(header_len != NULL);
44
+
45
+ *header_len = offset;
46
+
47
+ if(! NIL_P(rb_opts)) {
48
+ assert(TYPE(rb_opts) == T_HASH);
49
+
50
+ rb_headers = rb_funcall(rb_opts, rb_intern("to_a"), 0);
51
+
52
+ assert(TYPE(rb_headers) == T_ARRAY);
53
+
54
+ *header_len += RARRAY_LEN(rb_headers);
55
+ }
56
+
57
+ headers = (struct stomp_hdr*)malloc(sizeof(struct stomp_hdr) * (*header_len));
58
+
59
+ for(i=offset; i<*header_len; i++) {
60
+ assert(TYPE(rb_headers) == T_ARRAY);
61
+
62
+ VALUE entry = rb_ary_entry(rb_headers, i);
63
+
64
+ VALUE key = rb_ary_entry(entry, 0);
65
+ VALUE val = rb_ary_entry(entry, 1);
66
+
67
+ headers[i].key = StringValueCStr(key);
68
+ headers[i].val = StringValueCStr(val);
69
+ }
70
+
71
+ return headers;
72
+ }
73
+
74
+ static void do_newt_stomp_callback(stomp_session_t *s, void *callback_ctx, char *cb_method_name) {
34
75
  rbnewt_context_t *rbnewt_ctx = (rbnewt_context_t *)s->ctx;
35
76
 
36
77
  assert(rbnewt_ctx != NULL);
78
+ assert(cb_method_name != NULL);
37
79
 
38
- //VALUE kls = rb_obj_class(rbnewt_ctx->self);
39
- if(rb_respond_to(rbnewt_ctx->self, rb_intern("callback_connected"))) {
80
+ if(rb_respond_to(rbnewt_ctx->callback_obj, rb_intern(cb_method_name))) {
40
81
  VALUE header = get_headers((struct stomp_ctx_message *)callback_ctx);
41
82
  VALUE body = get_body((struct stomp_ctx_message *)callback_ctx);
42
83
 
43
- rb_funcall(rbnewt_ctx->self, rb_intern("callback_connected"), 2, header, body);
44
- }
45
-
46
- if(rb_block_given_p()) {
47
- rb_yield(Qnil);
84
+ VALUE ret = rb_funcall(rbnewt_ctx->callback_obj, rb_intern(cb_method_name), 2, header, body);
85
+ if(TYPE(ret) == T_FALSE) {
86
+ s->run = 0;
87
+ }
48
88
  }
49
89
  }
90
+ void newt_stomp_callback_connected(stomp_session_t *s, void *callback_ctx, void *session_ctx) {
91
+ do_newt_stomp_callback(s, callback_ctx, NEWT_STOMP_CB_CONNECTED);
92
+ }
50
93
  void newt_stomp_callback_message(stomp_session_t *s, void *callback_ctx, void *session_ctx) {
51
- // nope
94
+ do_newt_stomp_callback(s, callback_ctx, NEWT_STOMP_CB_MESSAGE);
52
95
  }
53
96
  void newt_stomp_callback_error(stomp_session_t *s, void *callback_ctx, void *session_ctx) {
54
- // nope
97
+ do_newt_stomp_callback(s, callback_ctx, NEWT_STOMP_CB_ERROR);
55
98
  }
56
99
 
57
100
  static char *get_str_from_hash(VALUE hash, char *key) {
@@ -78,11 +121,11 @@ static int get_int_from_hash(VALUE hash, char *key) {
78
121
 
79
122
  static VALUE newt_stomp_initialize(int argc, VALUE *argv, VALUE self) {
80
123
  stomp_session_t *session;
81
- VALUE opts;
124
+ VALUE cbobj, opts;
82
125
  char *server, *userid, *passwd, *port;
83
126
  rbnewt_context_t *context;
84
127
 
85
- rb_scan_args(argc, argv, "01", &opts);
128
+ rb_scan_args(argc, argv, "02", &cbobj, &opts);
86
129
 
87
130
  Data_Get_Struct(self, stomp_session_t, session);
88
131
 
@@ -104,7 +147,7 @@ static VALUE newt_stomp_initialize(int argc, VALUE *argv, VALUE self) {
104
147
 
105
148
  // set self object to context
106
149
  context = (rbnewt_context_t *)session->ctx;
107
- context->self = self;
150
+ context->callback_obj = cbobj;
108
151
 
109
152
  if(cnewt_stomp_initialize(session, server, port, userid, passwd) != RET_SUCCESS) {
110
153
  printf("[warning] failed to connect server\n");
@@ -113,59 +156,62 @@ static VALUE newt_stomp_initialize(int argc, VALUE *argv, VALUE self) {
113
156
  return self;
114
157
  }
115
158
 
116
- static VALUE newt_stomp_send(int argc, VALUE *argv, VALUE self) {
159
+ static VALUE newt_stomp_publish(int argc, VALUE *argv, VALUE self) {
160
+ struct stomp_hdr *headers;
117
161
  stomp_session_t *session;
118
- VALUE rb_dest, rb_data, rb_opts, rb_headers;
119
- int header_len = 1;
162
+ VALUE rb_dest, rb_data, rb_opts;
163
+ int header_len;
120
164
 
121
165
  // initialize each rb values
122
- rb_headers = Qnil;
123
166
  rb_scan_args(argc, argv, "21", &rb_dest, &rb_data, &rb_opts);
124
167
 
125
168
  Data_Get_Struct(self, stomp_session_t, session);
126
169
 
127
170
  char *body = StringValuePtr(rb_data);
171
+ // making headers
172
+ headers = make_stomp_hdr(rb_opts, 1, &header_len);
173
+ headers[0].key = "destination";
174
+ headers[0].val = StringValuePtr(rb_dest);
128
175
 
129
- if(! NIL_P(rb_opts)) {
130
- assert(TYPE(rb_opts) == T_HASH);
176
+ stomp_send(session, header_len, headers, body, strlen(body));
131
177
 
132
- VALUE rb_headers = rb_funcall(rb_opts, rb_intern("to_a"), 0);
178
+ free(headers);
133
179
 
134
- assert(TYPE(rb_headers) == T_ARRAY);
180
+ return self;
181
+ }
135
182
 
136
- header_len += RARRAY_LEN(rb_headers);
137
- }
183
+ static VALUE newt_stomp_subscribe(int argc, VALUE *argv, VALUE self) {
184
+ struct stomp_hdr *headers;
185
+ stomp_session_t *session;
186
+ VALUE rb_dest, rb_opts;
187
+ int header_len;
188
+
189
+ // initialize each rb values
190
+ rb_scan_args(argc, argv, "11", &rb_dest, &rb_opts);
191
+
192
+ Data_Get_Struct(self, stomp_session_t, session);
138
193
 
139
194
  // making headers
140
- struct stomp_hdr *headers = (struct stomp_hdr*)malloc(sizeof(struct stomp_hdr) * header_len);
195
+ headers = make_stomp_hdr(rb_opts, 1, &header_len);
141
196
  headers[0].key = "destination";
142
197
  headers[0].val = StringValuePtr(rb_dest);
143
- int i;
144
- for(i=1; i<header_len; i++) {
145
- VALUE entry = rb_ary_entry(rb_opts, i);
146
198
 
147
- VALUE key = rb_ary_entry(entry, 0);
148
- VALUE val = rb_ary_entry(entry, 1);
149
-
150
- headers[i].key = StringValueCStr(key);
151
- headers[i].val = StringValueCStr(val);
152
- }
153
-
154
- stomp_send(session, header_len, headers, body, strlen(body));
199
+ stomp_subscribe(session, header_len, headers);
155
200
 
156
201
  free(headers);
157
202
 
158
203
  return self;
159
204
  }
160
205
 
161
- static VALUE newt_stomp_receiving(VALUE self) {
206
+ static VALUE newt_stomp_run(VALUE self) {
162
207
  stomp_session_t *session;
208
+ rbnewt_context_t *context;
163
209
 
164
210
  Data_Get_Struct(self, stomp_session_t, session);
165
211
 
166
212
  cnewt_stomp_start(session);
167
213
 
168
- return Qnil;
214
+ return self;
169
215
  }
170
216
 
171
217
  static void context_free(void *ptr) {
@@ -198,6 +244,7 @@ void Init_rbnewt(void) {
198
244
 
199
245
  rb_define_alloc_func(stomp_kls, newt_stomp_alloc);
200
246
  rb_define_method(stomp_kls, "initialize", newt_stomp_initialize, -1);
201
- rb_define_method(stomp_kls, "send", newt_stomp_send, -1);
202
- rb_define_method(stomp_kls, "receiving", newt_stomp_receiving, 0);
247
+ rb_define_method(stomp_kls, "publish", newt_stomp_publish, -1);
248
+ rb_define_method(stomp_kls, "subscribe", newt_stomp_subscribe, -1);
249
+ rb_define_method(stomp_kls, "run", newt_stomp_run, 0);
203
250
  }
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbnewt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroyasu OHYAMA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-04 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2016-06-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 3.4.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 3.4.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
13
41
  description: This aims to to be the fastest Ruby client for NewtMQ which is an implementation
14
42
  of STOMP server.
15
43
  email:
@@ -19,7 +47,6 @@ extensions:
19
47
  - extconf.rb
20
48
  extra_rdoc_files: []
21
49
  files:
22
- - Makefile
23
50
  - extconf.rb
24
51
  - include/newt/common.h
25
52
  - include/newt/rbnewt.h
data/Makefile DELETED
@@ -1,259 +0,0 @@
1
-
2
- SHELL = /bin/sh
3
-
4
- # V=0 quiet, V=1 verbose. other values don't work.
5
- V = 0
6
- Q1 = $(V:1=)
7
- Q = $(Q1:0=@)
8
- ECHO1 = $(V:1=@:)
9
- ECHO = $(ECHO1:0=@echo)
10
- NULLCMD = :
11
-
12
- #### Start of system configuration section. ####
13
-
14
- srcdir = src
15
- topdir = /home/vagrant/.rbenv/versions/2.2.2/include/ruby-2.2.0
16
- hdrdir = $(topdir)
17
- arch_hdrdir = /home/vagrant/.rbenv/versions/2.2.2/include/ruby-2.2.0/x86_64-linux
18
- PATH_SEPARATOR = :
19
- VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
20
- prefix = $(DESTDIR)/home/vagrant/.rbenv/versions/2.2.2
21
- rubysitearchprefix = $(rubylibprefix)/$(sitearch)
22
- rubyarchprefix = $(rubylibprefix)/$(arch)
23
- rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
24
- exec_prefix = $(prefix)
25
- vendorarchhdrdir = $(vendorhdrdir)/$(sitearch)
26
- sitearchhdrdir = $(sitehdrdir)/$(sitearch)
27
- rubyarchhdrdir = $(rubyhdrdir)/$(arch)
28
- vendorhdrdir = $(rubyhdrdir)/vendor_ruby
29
- sitehdrdir = $(rubyhdrdir)/site_ruby
30
- rubyhdrdir = $(includedir)/$(RUBY_VERSION_NAME)
31
- vendorarchdir = $(vendorlibdir)/$(sitearch)
32
- vendorlibdir = $(vendordir)/$(ruby_version)
33
- vendordir = $(rubylibprefix)/vendor_ruby
34
- sitearchdir = $(sitelibdir)/$(sitearch)
35
- sitelibdir = $(sitedir)/$(ruby_version)
36
- sitedir = $(rubylibprefix)/site_ruby
37
- rubyarchdir = $(rubylibdir)/$(arch)
38
- rubylibdir = $(rubylibprefix)/$(ruby_version)
39
- sitearchincludedir = $(includedir)/$(sitearch)
40
- archincludedir = $(includedir)/$(arch)
41
- sitearchlibdir = $(libdir)/$(sitearch)
42
- archlibdir = $(libdir)/$(arch)
43
- ridir = $(datarootdir)/$(RI_BASE_NAME)
44
- mandir = $(datarootdir)/man
45
- localedir = $(datarootdir)/locale
46
- libdir = $(exec_prefix)/lib
47
- psdir = $(docdir)
48
- pdfdir = $(docdir)
49
- dvidir = $(docdir)
50
- htmldir = $(docdir)
51
- infodir = $(datarootdir)/info
52
- docdir = $(datarootdir)/doc/$(PACKAGE)
53
- oldincludedir = $(DESTDIR)/usr/include
54
- includedir = $(prefix)/include
55
- localstatedir = $(prefix)/var
56
- sharedstatedir = $(prefix)/com
57
- sysconfdir = $(prefix)/etc
58
- datadir = $(datarootdir)
59
- datarootdir = $(prefix)/share
60
- libexecdir = $(exec_prefix)/libexec
61
- sbindir = $(exec_prefix)/sbin
62
- bindir = $(exec_prefix)/bin
63
- archdir = $(rubyarchdir)
64
-
65
-
66
- CC = gcc
67
- CXX = g++
68
- LIBRUBY = $(LIBRUBY_A)
69
- LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
70
- LIBRUBYARG_SHARED = -Wl,-R$(libdir) -L$(libdir)
71
- LIBRUBYARG_STATIC = -Wl,-R$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)-static
72
- empty =
73
- OUTFLAG = -o $(empty)
74
- COUTFLAG = -o $(empty)
75
-
76
- RUBY_EXTCONF_H =
77
- cflags = $(optflags) $(debugflags) $(warnflags)
78
- optflags = -O3 -fno-fast-math
79
- debugflags = -ggdb3
80
- warnflags = -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat
81
- CCDLFLAGS = -fPIC
82
- CFLAGS = $(CCDLFLAGS) -I./include $(ARCH_FLAG)
83
- INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
84
- DEFS =
85
- CPPFLAGS = -DHAVE_STOMP_STOMP_H -DHAVE_PTHREAD_H -I/home/vagrant/.rbenv/versions/2.2.2/include $(DEFS) $(cppflags)
86
- CXXFLAGS = $(CCDLFLAGS) $(cxxflags) $(ARCH_FLAG)
87
- ldflags = -L. -L/home/vagrant/.rbenv/versions/2.2.2/lib -fstack-protector -rdynamic -Wl,-export-dynamic
88
- dldflags =
89
- ARCH_FLAG =
90
- DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG)
91
- LDSHARED = $(CC) -shared
92
- LDSHAREDXX = $(CXX) -shared
93
- AR = ar
94
- EXEEXT =
95
-
96
- RUBY_INSTALL_NAME = $(RUBY_BASE_NAME)
97
- RUBY_SO_NAME = ruby
98
- RUBYW_INSTALL_NAME =
99
- RUBY_VERSION_NAME = $(RUBY_BASE_NAME)-$(ruby_version)
100
- RUBYW_BASE_NAME = rubyw
101
- RUBY_BASE_NAME = ruby
102
-
103
- arch = x86_64-linux
104
- sitearch = $(arch)
105
- ruby_version = 2.2.0
106
- ruby = $(bindir)/$(RUBY_BASE_NAME)
107
- RUBY = $(ruby)
108
- ruby_headers = $(hdrdir)/ruby.h $(hdrdir)/ruby/ruby.h $(hdrdir)/ruby/defines.h $(hdrdir)/ruby/missing.h $(hdrdir)/ruby/intern.h $(hdrdir)/ruby/st.h $(hdrdir)/ruby/subst.h $(arch_hdrdir)/ruby/config.h
109
-
110
- RM = rm -f
111
- RM_RF = $(RUBY) -run -e rm -- -rf
112
- RMDIRS = rmdir --ignore-fail-on-non-empty -p
113
- MAKEDIRS = /bin/mkdir -p
114
- INSTALL = /usr/bin/install -c
115
- INSTALL_PROG = $(INSTALL) -m 0755
116
- INSTALL_DATA = $(INSTALL) -m 644
117
- COPY = cp
118
- TOUCH = exit >
119
-
120
- #### End of system configuration section. ####
121
-
122
- preload =
123
-
124
- libpath = . $(libdir)
125
- LIBPATH = -L. -L$(libdir) -Wl,-R$(libdir)
126
- DEFFILE =
127
-
128
- CLEANFILES = mkmf.log
129
- DISTCLEANFILES =
130
- DISTCLEANDIRS =
131
-
132
- extout =
133
- extout_prefix =
134
- target_prefix =
135
- LOCAL_LIBS =
136
- LIBS = -lpthread -lstomp -lpthread -lstomp -lpthread -ldl -lcrypt -lm -lc
137
- ORIG_SRCS = stomp.c rbframe.c rbnewt.c
138
- SRCS = $(ORIG_SRCS)
139
- OBJS = stomp.o rbframe.o rbnewt.o
140
- HDRS =
141
- TARGET = rbnewt
142
- TARGET_NAME = rbnewt
143
- TARGET_ENTRY = Init_$(TARGET_NAME)
144
- DLLIB = $(TARGET).so
145
- EXTSTATIC =
146
- STATIC_LIB =
147
-
148
- TIMESTAMP_DIR = .
149
- BINDIR = $(bindir)
150
- RUBYCOMMONDIR = $(sitedir)$(target_prefix)
151
- RUBYLIBDIR = $(sitelibdir)$(target_prefix)
152
- RUBYARCHDIR = $(sitearchdir)$(target_prefix)
153
- HDRDIR = $(rubyhdrdir)/ruby$(target_prefix)
154
- ARCHHDRDIR = $(rubyhdrdir)/$(arch)/ruby$(target_prefix)
155
-
156
- TARGET_SO = $(DLLIB)
157
- CLEANLIBS = $(TARGET).so
158
- CLEANOBJS = *.o *.bak
159
-
160
- all: $(DLLIB)
161
- static: $(STATIC_LIB)
162
- .PHONY: all install static install-so install-rb
163
- .PHONY: clean clean-so clean-static clean-rb
164
-
165
- clean-static::
166
- clean-rb-default::
167
- clean-rb::
168
- clean-so::
169
- clean: clean-so clean-static clean-rb-default clean-rb
170
- -$(Q)$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) .*.time
171
-
172
- distclean-rb-default::
173
- distclean-rb::
174
- distclean-so::
175
- distclean-static::
176
- distclean: clean distclean-so distclean-static distclean-rb-default distclean-rb
177
- -$(Q)$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
178
- -$(Q)$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
179
- -$(Q)$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true
180
-
181
- realclean: distclean
182
- install: install-so install-rb
183
-
184
- install-so: $(DLLIB) $(TIMESTAMP_DIR)/.RUBYARCHDIR.time
185
- $(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
186
- clean-static::
187
- -$(Q)$(RM) $(STATIC_LIB)
188
- install-rb: pre-install-rb install-rb-default
189
- install-rb-default: pre-install-rb-default
190
- pre-install-rb: Makefile
191
- pre-install-rb-default: Makefile
192
- pre-install-rb-default:
193
- @$(NULLCMD)
194
- $(TIMESTAMP_DIR)/.RUBYARCHDIR.time:
195
- $(Q) $(MAKEDIRS) $(@D) $(RUBYARCHDIR)
196
- $(Q) $(TOUCH) $@
197
-
198
- site-install: site-install-so site-install-rb
199
- site-install-so: install-so
200
- site-install-rb: install-rb
201
-
202
- .SUFFIXES: .c .m .cc .mm .cxx .cpp .o .S
203
-
204
- .cc.o:
205
- $(ECHO) compiling $(<)
206
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
207
-
208
- .cc.S:
209
- $(ECHO) translating $(<)
210
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<
211
-
212
- .mm.o:
213
- $(ECHO) compiling $(<)
214
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
215
-
216
- .mm.S:
217
- $(ECHO) translating $(<)
218
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<
219
-
220
- .cxx.o:
221
- $(ECHO) compiling $(<)
222
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
223
-
224
- .cxx.S:
225
- $(ECHO) translating $(<)
226
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<
227
-
228
- .cpp.o:
229
- $(ECHO) compiling $(<)
230
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
231
-
232
- .cpp.S:
233
- $(ECHO) translating $(<)
234
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<
235
-
236
- .c.o:
237
- $(ECHO) compiling $(<)
238
- $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
239
-
240
- .c.S:
241
- $(ECHO) translating $(<)
242
- $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $<
243
-
244
- .m.o:
245
- $(ECHO) compiling $(<)
246
- $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
247
-
248
- .m.S:
249
- $(ECHO) translating $(<)
250
- $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $<
251
-
252
- $(DLLIB): $(OBJS) Makefile
253
- $(ECHO) linking shared-object $(DLLIB)
254
- -$(Q)$(RM) $(@)
255
- $(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
256
-
257
-
258
-
259
- $(OBJS): $(HDRS) $(ruby_headers)