~ubuntu-branches/ubuntu/quantal/ruby1.9.1/quantal

« back to all changes in this revision

Viewing changes to .pc/090803_exclude_rdoc.diff/common.mk

  • Committer: Bazaar Package Importer
  • Author(s): Lucas Nussbaum
  • Date: 2011-09-24 19:16:17 UTC
  • mfrom: (1.1.8 upstream) (13.1.7 experimental)
  • Revision ID: james.westby@ubuntu.com-20110924191617-o1qz4rcmqjot8zuy
Tags: 1.9.3~rc1-1
* New upstream release: 1.9.3 RC1.
  + Includes load.c fixes. Closes: #639959.
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
bin: $(PROGRAM) $(WPROGRAM)
 
2
lib: $(LIBRUBY)
 
3
dll: $(LIBRUBY_SO)
 
4
 
 
5
.SUFFIXES: .inc .h .c .y .i
 
6
 
 
7
# V=0 quiet, V=1 verbose.  other values don't work.
 
8
V = 0
 
9
Q1 = $(V:1=)
 
10
Q = $(Q1:0=@)
 
11
n=$(NULLCMD)
 
12
ECHO1 = $(V:1=@$n)
 
13
ECHO = $(ECHO1:0=@echo)
 
14
 
 
15
RUBYLIB       = -
 
16
RUBYOPT       = -
 
17
RUN_OPTS      = --disable-gems
 
18
 
 
19
SPEC_GIT_BASE = git://github.com/rubyspec
 
20
MSPEC_GIT_URL = $(SPEC_GIT_BASE)/mspec.git
 
21
RUBYSPEC_GIT_URL = $(SPEC_GIT_BASE)/rubyspec.git
 
22
 
 
23
STATIC_RUBY   = static-ruby
 
24
 
 
25
EXTCONF       = extconf.rb
 
26
RBCONFIG      = ./.rbconfig.time
 
27
LIBRUBY_EXTS  = ./.libruby-with-ext.time
 
28
REVISION_H    = ./.revision.time
 
29
RDOCOUT       = $(EXTOUT)/rdoc
 
30
CAPIOUT       = doc/capi
 
31
ID_H_TARGET   = -id.h-
 
32
 
 
33
DMYEXT        = dmyext.$(OBJEXT)
 
34
NORMALMAINOBJ = main.$(OBJEXT)
 
35
MAINOBJ       = $(NORMALMAINOBJ)
 
36
EXTOBJS       = 
 
37
DLDOBJS       = $(DMYEXT)
 
38
MINIOBJS      = $(ARCHMINIOBJS) dmyencoding.$(OBJEXT) dmyversion.$(OBJEXT) miniprelude.$(OBJEXT)
 
39
ENC_MK        = enc.mk
 
40
 
 
41
COMMONOBJS    = array.$(OBJEXT) \
 
42
                bignum.$(OBJEXT) \
 
43
                class.$(OBJEXT) \
 
44
                compar.$(OBJEXT) \
 
45
                complex.$(OBJEXT) \
 
46
                dir.$(OBJEXT) \
 
47
                dln_find.$(OBJEXT) \
 
48
                enum.$(OBJEXT) \
 
49
                enumerator.$(OBJEXT) \
 
50
                error.$(OBJEXT) \
 
51
                eval.$(OBJEXT) \
 
52
                load.$(OBJEXT) \
 
53
                proc.$(OBJEXT) \
 
54
                file.$(OBJEXT) \
 
55
                gc.$(OBJEXT) \
 
56
                hash.$(OBJEXT) \
 
57
                inits.$(OBJEXT) \
 
58
                io.$(OBJEXT) \
 
59
                marshal.$(OBJEXT) \
 
60
                math.$(OBJEXT) \
 
61
                node.$(OBJEXT) \
 
62
                numeric.$(OBJEXT) \
 
63
                object.$(OBJEXT) \
 
64
                pack.$(OBJEXT) \
 
65
                parse.$(OBJEXT) \
 
66
                process.$(OBJEXT) \
 
67
                random.$(OBJEXT) \
 
68
                range.$(OBJEXT) \
 
69
                rational.$(OBJEXT) \
 
70
                re.$(OBJEXT) \
 
71
                regcomp.$(OBJEXT) \
 
72
                regenc.$(OBJEXT) \
 
73
                regerror.$(OBJEXT) \
 
74
                regexec.$(OBJEXT) \
 
75
                regparse.$(OBJEXT) \
 
76
                regsyntax.$(OBJEXT) \
 
77
                ruby.$(OBJEXT) \
 
78
                safe.$(OBJEXT) \
 
79
                signal.$(OBJEXT) \
 
80
                sprintf.$(OBJEXT) \
 
81
                st.$(OBJEXT) \
 
82
                strftime.$(OBJEXT) \
 
83
                string.$(OBJEXT) \
 
84
                struct.$(OBJEXT) \
 
85
                time.$(OBJEXT) \
 
86
                transcode.$(OBJEXT) \
 
87
                util.$(OBJEXT) \
 
88
                variable.$(OBJEXT) \
 
89
                compile.$(OBJEXT) \
 
90
                debug.$(OBJEXT) \
 
91
                iseq.$(OBJEXT) \
 
92
                vm.$(OBJEXT) \
 
93
                vm_dump.$(OBJEXT) \
 
94
                thread.$(OBJEXT) \
 
95
                cont.$(OBJEXT) \
 
96
                $(BUILTIN_ENCOBJS) \
 
97
                $(BUILTIN_TRANSOBJS) \
 
98
                $(MISSING)
 
99
 
 
100
EXPORTOBJS    = dln.$(OBJEXT) \
 
101
                encoding.$(OBJEXT) \
 
102
                version.$(OBJEXT) \
 
103
                $(COMMONOBJS)
 
104
 
 
105
OBJS          = $(EXPORTOBJS) prelude.$(OBJEXT)
 
106
 
 
107
GOLFOBJS      = goruby.$(OBJEXT) golf_prelude.$(OBJEXT)
 
108
 
 
109
PRELUDE_SCRIPTS = $(srcdir)/prelude.rb $(srcdir)/enc/prelude.rb $(DEFAULT_PRELUDES)
 
110
GEM_PRELUDE = $(srcdir)/gem_prelude.rb
 
111
YES_GEM_PRELUDE = $(GEM_PRELUDE)
 
112
NO_GEM_PRELUDE =
 
113
PRELUDES      = prelude.c miniprelude.c
 
114
GOLFPRELUDES = golf_prelude.c
 
115
 
 
116
SCRIPT_ARGS   = --dest-dir="$(DESTDIR)" \
 
117
                --extout="$(EXTOUT)" \
 
118
                --mflags="$(MFLAGS)" \
 
119
                --make-flags="$(MAKEFLAGS)"
 
120
EXTMK_ARGS    = $(SCRIPT_ARGS) --extension $(EXTS) --extstatic $(EXTSTATIC) \
 
121
                --make-flags="V=$(V) MINIRUBY='$(MINIRUBY)'" --
 
122
INSTRUBY      = $(SUDO) $(MINIRUBY) $(srcdir)/tool/rbinstall.rb
 
123
INSTRUBY_ARGS = $(SCRIPT_ARGS) \
 
124
                --data-mode=$(INSTALL_DATA_MODE) \
 
125
                --prog-mode=$(INSTALL_PROG_MODE) \
 
126
                --installed-list $(INSTALLED_LIST)
 
127
INSTALL_PROG_MODE = 0755
 
128
INSTALL_DATA_MODE = 0644
 
129
 
 
130
PRE_LIBRUBY_UPDATE = $(MINIRUBY) -e 'ARGV[1] or File.unlink(ARGV[0]) rescue nil' -- \
 
131
                        $(LIBRUBY_EXTS) $(LIBRUBY_SO_UPDATE)
 
132
 
 
133
TESTSDIR      = $(srcdir)/test
 
134
TESTWORKDIR   = testwork
 
135
 
 
136
TESTRUN_SCRIPT = $(srcdir)/test.rb
 
137
 
 
138
BOOTSTRAPRUBY = $(BASERUBY)
 
139
 
 
140
COMPILE_PRELUDE = $(MINIRUBY) -I$(srcdir) $(srcdir)/tool/compile_prelude.rb
 
141
 
 
142
all: showflags main docs
 
143
 
 
144
main: showflags encs exts
 
145
        @$(NULLCMD)
 
146
 
 
147
.PHONY: showflags
 
148
exts enc trans: showflags
 
149
showflags:
 
150
        $(MESSAGE_BEGIN) \
 
151
        "       CC = $(CC)" \
 
152
        "       LD = $(LD)" \
 
153
        "       LDSHARED = $(LDSHARED)" \
 
154
        "       CFLAGS = $(CFLAGS)" \
 
155
        "       XCFLAGS = $(XCFLAGS)" \
 
156
        "       CPPFLAGS = $(CPPFLAGS)" \
 
157
        "       DLDFLAGS = $(DLDFLAGS)" \
 
158
        "       SOLIBS = $(SOLIBS)" \
 
159
        $(MESSAGE_END)
 
160
 
 
161
.PHONY: showconfig
 
162
showconfig:
 
163
        @$(MESSAGE_BEGIN) \
 
164
        "$(configure_args)" \
 
165
        $(MESSAGE_END)
 
166
 
 
167
exts: build-ext
 
168
 
 
169
EXTS_MK = exts.mk
 
170
$(EXTS_MK): $(MKFILES) incs $(PREP) $(RBCONFIG) $(LIBRUBY)
 
171
        @$(MINIRUBY) $(srcdir)/ext/extmk.rb --make="$(MAKE)" --command-output=$(EXTS_MK) $(EXTMK_ARGS) configure
 
172
 
 
173
configure-ext: $(EXTS_MK)
 
174
 
 
175
build-ext: $(EXTS_MK)
 
176
        $(Q)$(MAKE) -f $(EXTS_MK) $(MFLAGS)
 
177
 
 
178
$(MKMAIN_CMD): $(MKFILES) incs $(PREP) $(RBCONFIG) $(LIBRUBY)
 
179
        @$(MINIRUBY) $(srcdir)/ext/extmk.rb --make="$(MAKE)" --command-output=$@ $(EXTMK_ARGS)
 
180
 
 
181
prog: program wprogram
 
182
 
 
183
loadpath: $(PREP) PHONY
 
184
        $(MINIRUBY) -e 'p $$:'
 
185
 
 
186
$(PREP): $(MKFILES)
 
187
 
 
188
miniruby$(EXEEXT): config.status $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(DMYEXT) $(ARCHFILE)
 
189
 
 
190
GORUBY = go$(RUBY_INSTALL_NAME)
 
191
golf: $(LIBRUBY) $(GOLFOBJS) PHONY
 
192
        $(Q) $(MAKE) $(MFLAGS) MAINOBJ="$(GOLFOBJS)" PROGRAM=$(GORUBY)$(EXEEXT) program
 
193
capi: $(CAPIOUT)/.timestamp PHONY
 
194
 
 
195
doc/capi/.timestamp: Doxyfile $(PREP)
 
196
        $(Q) $(MAKEDIRS) doc/capi
 
197
        $(ECHO) generating capi
 
198
        $(Q) $(DOXYGEN) -b
 
199
        $(Q) $(MINIRUBY) -e 'File.open("$(CAPIOUT)/.timestamp", "w"){|f| f.puts(Time.now)}'
 
200
 
 
201
Doxyfile: $(srcdir)/template/Doxyfile.tmpl $(PREP) $(srcdir)/tool/generic_erb.rb $(RBCONFIG)
 
202
        $(ECHO) generating $@
 
203
        $(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ $(srcdir)/template/Doxyfile.tmpl \
 
204
        --srcdir="$(srcdir)" --miniruby="$(MINIRUBY)"
 
205
 
 
206
program: showflags $(PROGRAM)
 
207
wprogram: showflags $(WPROGRAM)
 
208
 
 
209
$(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)
 
210
 
 
211
$(LIBRUBY_A):   $(OBJS) $(DMYEXT) $(ARCHFILE)
 
212
 
 
213
$(LIBRUBY_SO):  $(OBJS) $(DLDOBJS) $(LIBRUBY_A) $(PREP) $(LIBRUBY_SO_UPDATE) $(BUILTIN_ENCOBJS)
 
214
 
 
215
$(LIBRUBY_EXTS):
 
216
        @exit > $@
 
217
 
 
218
$(STATIC_RUBY)$(EXEEXT): $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A)
 
219
        @$(RM) $@
 
220
        $(PURIFY) $(CC) $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A) $(MAINLIBS) $(EXTLIBS) $(LIBS) $(OUTFLAG)$@ $(LDFLAGS) $(XLDFLAGS)
 
221
 
 
222
ruby.imp: $(EXPORTOBJS)
 
223
        @$(NM) -Pgp $(EXPORTOBJS) | \
 
224
        awk 'BEGIN{print "#!"}; $$2~/^[BDT]$$/&&$$1!~/^(Init_|.*_threadptr_|\.)/{print $$1}' | \
 
225
        sort -u -o $@
 
226
 
 
227
install: install-$(INSTALLDOC)
 
228
docs: $(DOCTARGETS)
 
229
pkgconfig-data: $(ruby_pc)
 
230
$(ruby_pc): $(srcdir)/template/ruby.pc.in config.status
 
231
 
 
232
install-all: docs pre-install-all do-install-all post-install-all
 
233
pre-install-all:: pre-install-local pre-install-ext pre-install-doc
 
234
do-install-all: $(PROGRAM)
 
235
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=all --rdoc-output="$(RDOCOUT)"
 
236
post-install-all:: post-install-local post-install-ext post-install-doc
 
237
        @$(NULLCMD)
 
238
 
 
239
install-nodoc: pre-install-nodoc do-install-nodoc post-install-nodoc
 
240
pre-install-nodoc:: pre-install-local pre-install-ext
 
241
do-install-nodoc: $(PREP) $(PROGRAM)
 
242
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --mantype="$(MANTYPE)"
 
243
post-install-nodoc:: post-install-local post-install-ext
 
244
 
 
245
install-local: pre-install-local do-install-local post-install-local
 
246
pre-install-local:: pre-install-bin pre-install-lib pre-install-man
 
247
do-install-local: $(PREP)
 
248
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=local --mantype="$(MANTYPE)"
 
249
post-install-local:: post-install-bin post-install-lib post-install-man
 
250
 
 
251
install-ext: pre-install-ext do-install-ext post-install-ext
 
252
pre-install-ext:: pre-install-ext-arch pre-install-ext-comm
 
253
do-install-ext: $(PREP)
 
254
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext
 
255
post-install-ext:: post-install-ext-arch post-install-ext-comm
 
256
 
 
257
install-arch: pre-install-arch do-install-arch post-install-arch
 
258
pre-install-arch:: pre-install-bin pre-install-ext-arch
 
259
do-install-arch: $(PREP)
 
260
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=bin --install=ext-arch
 
261
post-install-arch:: post-install-bin post-install-ext-arch
 
262
 
 
263
install-comm: pre-install-comm do-install-comm post-install-comm
 
264
pre-install-comm:: pre-install-lib pre-install-ext-comm pre-install-man
 
265
do-install-comm: $(PREP)
 
266
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=lib --install=ext-comm --install=man
 
267
post-install-comm:: post-install-lib post-install-ext-comm post-install-man
 
268
 
 
269
install-bin: pre-install-bin do-install-bin post-install-bin
 
270
pre-install-bin:: install-prereq
 
271
do-install-bin: $(PREP)
 
272
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=bin
 
273
post-install-bin::
 
274
        @$(NULLCMD)
 
275
 
 
276
install-lib: pre-install-lib do-install-lib post-install-lib
 
277
pre-install-lib:: install-prereq
 
278
do-install-lib: $(PREP)
 
279
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=lib
 
280
post-install-lib::
 
281
        @$(NULLCMD)
 
282
 
 
283
install-ext-comm: pre-install-ext-comm do-install-ext-comm post-install-ext-comm
 
284
pre-install-ext-comm:: install-prereq
 
285
do-install-ext-comm: $(PREP)
 
286
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext-comm
 
287
post-install-ext-comm::
 
288
        @$(NULLCMD)
 
289
 
 
290
install-ext-arch: pre-install-ext-arch do-install-ext-arch post-install-ext-arch
 
291
pre-install-ext-arch:: install-prereq
 
292
do-install-ext-arch: $(PREP)
 
293
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext-arch
 
294
post-install-ext-arch::
 
295
        @$(NULLCMD)
 
296
 
 
297
install-man: pre-install-man do-install-man post-install-man
 
298
pre-install-man:: install-prereq
 
299
do-install-man: $(PREP)
 
300
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=man --mantype="$(MANTYPE)"
 
301
post-install-man::
 
302
        @$(NULLCMD)
 
303
 
 
304
install-capi: capi pre-install-capi do-install-capi post-install-capi
 
305
pre-install-capi:: install-prereq
 
306
do-install-capi: $(PREP)
 
307
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=capi
 
308
post-install-capi::
 
309
        @$(NULLCMD)
 
310
 
 
311
what-where: no-install
 
312
no-install: no-install-$(INSTALLDOC)
 
313
what-where-all: no-install-all
 
314
no-install-all: pre-no-install-all dont-install-all post-no-install-all
 
315
pre-no-install-all:: pre-no-install-local pre-no-install-ext pre-no-install-doc
 
316
dont-install-all: $(PROGRAM)
 
317
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=all --rdoc-output="$(RDOCOUT)"
 
318
post-no-install-all:: post-no-install-local post-no-install-ext post-no-install-doc
 
319
        @$(NULLCMD)
 
320
 
 
321
what-where-nodoc: no-install-nodoc
 
322
no-install-nodoc: pre-no-install-nodoc dont-install-nodoc post-no-install-nodoc
 
323
pre-no-install-nodoc:: pre-no-install-local pre-no-install-ext
 
324
dont-install-nodoc:  $(PREP)
 
325
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --mantype="$(MANTYPE)"
 
326
post-no-install-nodoc:: post-no-install-local post-no-install-ext
 
327
 
 
328
what-where-local: no-install-local
 
329
no-install-local: pre-no-install-local dont-install-local post-no-install-local
 
330
pre-no-install-local:: pre-no-install-bin pre-no-install-lib pre-no-install-man
 
331
dont-install-local: $(PREP)
 
332
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=local --mantype="$(MANTYPE)"
 
333
post-no-install-local:: post-no-install-bin post-no-install-lib post-no-install-man
 
334
 
 
335
what-where-ext: no-install-ext
 
336
no-install-ext: pre-no-install-ext dont-install-ext post-no-install-ext
 
337
pre-no-install-ext:: pre-no-install-ext-arch pre-no-install-ext-comm
 
338
dont-install-ext: $(PREP)
 
339
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext
 
340
post-no-install-ext:: post-no-install-ext-arch post-no-install-ext-comm
 
341
 
 
342
what-where-arch: no-install-arch
 
343
no-install-arch: pre-no-install-arch dont-install-arch post-no-install-arch
 
344
pre-no-install-arch:: pre-no-install-bin pre-no-install-ext-arch
 
345
dont-install-arch: $(PREP)
 
346
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=bin --install=ext-arch
 
347
post-no-install-arch:: post-no-install-lib post-no-install-man post-no-install-ext-arch
 
348
 
 
349
what-where-comm: no-install-comm
 
350
no-install-comm: pre-no-install-comm dont-install-comm post-no-install-comm
 
351
pre-no-install-comm:: pre-no-install-lib pre-no-install-ext-comm pre-no-install-man
 
352
dont-install-comm: $(PREP)
 
353
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=lib --install=ext-comm --install=man
 
354
post-no-install-comm:: post-no-install-lib post-no-install-ext-comm post-no-install-man
 
355
 
 
356
what-where-bin: no-install-bin
 
357
no-install-bin: pre-no-install-bin dont-install-bin post-no-install-bin
 
358
pre-no-install-bin:: install-prereq
 
359
dont-install-bin: $(PREP)
 
360
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=bin
 
361
post-no-install-bin::
 
362
        @$(NULLCMD)
 
363
 
 
364
what-where-lib: no-install-lib
 
365
no-install-lib: pre-no-install-lib dont-install-lib post-no-install-lib
 
366
pre-no-install-lib:: install-prereq
 
367
dont-install-lib: $(PREP)
 
368
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=lib
 
369
post-no-install-lib::
 
370
        @$(NULLCMD)
 
371
 
 
372
what-where-ext-comm: no-install-ext-comm
 
373
no-install-ext-comm: pre-no-install-ext-comm dont-install-ext-comm post-no-install-ext-comm
 
374
pre-no-install-ext-comm:: install-prereq
 
375
dont-install-ext-comm: $(PREP)
 
376
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext-comm
 
377
post-no-install-ext-comm::
 
378
        @$(NULLCMD)
 
379
 
 
380
what-where-ext-arch: no-install-ext-arch
 
381
no-install-ext-arch: pre-no-install-ext-arch dont-install-ext-arch post-no-install-ext-arch
 
382
pre-no-install-ext-arch:: install-prereq
 
383
dont-install-ext-arch: $(PREP)
 
384
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext-arch
 
385
post-no-install-ext-arch::
 
386
        @$(NULLCMD)
 
387
 
 
388
what-where-man: no-install-man
 
389
no-install-man: pre-no-install-man dont-install-man post-no-install-man
 
390
pre-no-install-man:: install-prereq
 
391
dont-install-man: $(PREP)
 
392
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=man --mantype="$(MANTYPE)"
 
393
post-no-install-man::
 
394
        @$(NULLCMD)
 
395
 
 
396
install-doc: rdoc pre-install-doc do-install-doc post-install-doc
 
397
pre-install-doc:: install-prereq
 
398
do-install-doc: $(PROGRAM)
 
399
        $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=rdoc --rdoc-output="$(RDOCOUT)"
 
400
post-install-doc::
 
401
        @$(NULLCMD)
 
402
 
 
403
rdoc: PHONY main
 
404
        @echo Generating RDoc documentation
 
405
        $(Q) $(XRUBY) "$(srcdir)/bin/rdoc" --encoding=UTF-8 --no-force-update --all --ri --op "$(RDOCOUT)" $(RDOCFLAGS) "$(srcdir)"
 
406
 
 
407
rdoc-coverage: PHONY main
 
408
        @echo Generating RDoc coverage report
 
409
        $(Q) $(XRUBY) "$(srcdir)/bin/rdoc" --encoding=UTF-8 --all --quiet -C $(RDOCFLAGS) "$(srcdir)"
 
410
 
 
411
nodoc: PHONY
 
412
 
 
413
what-where-doc: no-install-doc
 
414
no-install-doc: pre-no-install-doc dont-install-doc post-no-install-doc
 
415
pre-no-install-doc:: install-prereq
 
416
dont-install-doc:: $(PREP)
 
417
        $(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=rdoc --rdoc-output="$(RDOCOUT)"
 
418
post-no-install-doc::
 
419
        @$(NULLCMD)
 
420
 
 
421
CLEAR_INSTALLED_LIST = clear-installed-list
 
422
 
 
423
install-prereq: $(CLEAR_INSTALLED_LIST) PHONY
 
424
 
 
425
clear-installed-list: PHONY
 
426
        @> $(INSTALLED_LIST) set MAKE="$(MAKE)"
 
427
 
 
428
clean: clean-ext clean-local clean-enc clean-golf clean-rdoc clean-capi clean-extout
 
429
clean-local:: PHONY
 
430
        @$(RM) $(OBJS) $(MINIOBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)
 
431
        @$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT) dmyext.$(OBJEXT) $(ARCHFILE) .*.time
 
432
        @$(RM) y.tab.c y.output encdb.h transdb.h prelude.c config.log rbconfig.rb $(ruby_pc)
 
433
clean-ext:: PHONY
 
434
clean-golf: PHONY
 
435
        @$(RM) $(GORUBY)$(EXEEXT) $(GOLFOBJS)
 
436
clean-rdoc: PHONY
 
437
clean-capi: PHONY
 
438
clean-extout: PHONY
 
439
clean-docs: clean-rdoc clean-capi
 
440
 
 
441
distclean: distclean-ext distclean-local distclean-enc distclean-golf distclean-extout
 
442
distclean-local:: clean-local
 
443
        @$(RM) $(MKFILES) yasmdata.rb *.inc
 
444
        @$(RM) config.cache config.status config.status.lineno $(PRELUDES)
 
445
        @$(RM) *~ *.bak *.stackdump core *.core gmon.out $(PREP)
 
446
distclean-ext:: PHONY
 
447
distclean-golf: clean-golf
 
448
        @$(RM) $(GOLFPRELUDES)
 
449
distclean-rdoc: PHONY
 
450
distclean-capi: PHONY
 
451
distclean-extout: clean-extout
 
452
 
 
453
realclean:: realclean-ext realclean-local realclean-enc realclean-golf realclean-extout
 
454
realclean-local:: distclean-local
 
455
        @$(RM) parse.c parse.h lex.c newline.c revision.h
 
456
realclean-ext::
 
457
realclean-golf: distclean-golf
 
458
realclean-capi: PHONY
 
459
realclean-extout: distclean-extout
 
460
 
 
461
clean-enc distclean-enc realclean-enc: PHONY
 
462
 
 
463
check: test test-all
 
464
check-ruby: test test-ruby
 
465
 
 
466
btest: miniruby$(EXEEXT) $(TEST_RUNNABLE)-btest
 
467
no-btest: PHONY
 
468
yes-btest: PHONY
 
469
        $(BOOTSTRAPRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(MINIRUBY)" $(OPTS)
 
470
 
 
471
btest-ruby: miniruby$(EXEEXT) $(RBCONFIG) $(PROGRAM) $(TEST_RUNNABLE)-btest-ruby
 
472
no-btest-ruby: PHONY
 
473
yes-btest-ruby: PHONY
 
474
        @$(RUNRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(PROGRAM) -I$(srcdir)/lib" -q $(OPTS)
 
475
 
 
476
test-sample: miniruby$(EXEEXT) $(RBCONFIG) $(PROGRAM) $(TEST_RUNNABLE)-test-sample
 
477
no-test-sample: PHONY
 
478
yes-test-sample: PHONY
 
479
        @$(RUNRUBY) $(srcdir)/tool/rubytest.rb
 
480
 
 
481
test-knownbugs: test-knownbug
 
482
test-knownbug: miniruby$(EXEEXT) $(PROGRAM) $(RBCONFIG) $(TEST_RUNNABLE)-test-knownbug
 
483
no-test-knownbug: PHONY
 
484
yes-test-knownbug: PHONY
 
485
        -$(RUNRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(PROGRAM)" $(OPTS) $(srcdir)/KNOWNBUGS.rb
 
486
 
 
487
test: test-sample btest-ruby test-knownbug
 
488
 
 
489
test-all: $(TEST_RUNNABLE)-test-all
 
490
yes-test-all: PHONY
 
491
        $(RUNRUBY) "$(srcdir)/test/runner.rb" --ruby="$(RUNRUBY)" $(TESTS)
 
492
TESTS_BUILD = mkmf
 
493
no-test-all: PHONY
 
494
        $(MINIRUBY) -I"$(srcdir)/lib" "$(srcdir)/test/runner.rb" $(TESTS_BUILD)
 
495
 
 
496
test-ruby: $(TEST_RUNNABLE)-test-ruby
 
497
no-test-ruby: PHONY
 
498
yes-test-ruby: PHONY
 
499
        $(RUNRUBY) "$(srcdir)/test/runner.rb" ruby
 
500
 
 
501
extconf: $(PREP)
 
502
        $(Q) $(MAKEDIRS) "$(EXTCONFDIR)"
 
503
        $(RUNRUBY) -C "$(EXTCONFDIR)" $(EXTCONF) $(EXTCONFARGS)
 
504
 
 
505
$(RBCONFIG): $(srcdir)/tool/mkconfig.rb config.status $(srcdir)/version.h $(PREP)
 
506
        @$(MINIRUBY) $(srcdir)/tool/mkconfig.rb -timestamp=$@ \
 
507
                -install_name=$(RUBY_INSTALL_NAME) \
 
508
                -so_name=$(RUBY_SO_NAME) rbconfig.rb
 
509
 
 
510
test-rubyspec-precheck:
 
511
 
 
512
test-rubyspec: test-rubyspec-precheck
 
513
        $(RUNRUBY) $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec $(MSPECOPT)
 
514
 
 
515
encs: enc trans
 
516
encs enc trans: showflags $(ENC_MK) $(LIBRUBY) $(PREP)
 
517
        $(ECHO) making $@
 
518
        $(Q) $(MAKE) -f $(ENC_MK) RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(MFLAGS) $@
 
519
 
 
520
enc: {$(VPATH)}encdb.h
 
521
trans: {$(VPATH)}transdb.h
 
522
 
 
523
$(ENC_MK): $(srcdir)/enc/make_encmake.rb $(srcdir)/enc/Makefile.in $(srcdir)/enc/depend \
 
524
        $(srcdir)/lib/mkmf.rb $(RBCONFIG)
 
525
        $(ECHO) generating $@
 
526
        $(Q) $(MINIRUBY) $(srcdir)/enc/make_encmake.rb --builtin-encs="$(BUILTIN_ENCOBJS)" --builtin-transes="$(BUILTIN_TRANSOBJS)" $@ $(ENCS)
 
527
 
 
528
.PRECIOUS: $(MKFILES)
 
529
 
 
530
.PHONY: PHONY all fake prereq incs srcs preludes help
 
531
.PHONY: test install install-nodoc install-doc dist
 
532
.PHONY: loadpath golf capi rdoc install-prereq clear-installed-list
 
533
.PHONY: clean clean-ext clean-local clean-enc clean-golf clean-rdoc clean-extout
 
534
.PHONY: distclean distclean-ext distclean-local distclean-enc distclean-golf distclean-extout
 
535
.PHONY: realclean realclean-ext realclean-local realclean-enc realclean-golf realclean-extout
 
536
.PHONY: check test test-all btest btest-ruby test-sample test-knownbug
 
537
.PHONY: run runruby parse benchmark benchmark-each tbench gdb gdb-ruby
 
538
.PHONY: update-mspec update-rubyspec test-rubyspec
 
539
 
 
540
PHONY:
 
541
 
 
542
{$(VPATH)}parse.c: {$(VPATH)}parse.y $(srcdir)/tool/ytab.sed
 
543
parse.h {$(VPATH)}parse.h: {$(VPATH)}parse.c
 
544
 
 
545
{$(srcdir)}.y.c:
 
546
        $(YACC) -d $(YFLAGS) -o y.tab.c $(SRC_FILE)
 
547
        sed -f $(srcdir)/tool/ytab.sed -e "/^#/s!y\.tab\.c!$@!" y.tab.c > $@.new
 
548
        @$(MV) $@.new $@
 
549
        sed -e "/^#line.*y\.tab\.h/d;/^#line.*parse\.y/d" y.tab.h > $(@:.c=.h).new
 
550
        @$(IFCHANGE) $(@:.c=.h) $(@:.c=.h).new
 
551
        @$(RM) y.tab.c y.tab.h
 
552
 
 
553
acosh.$(OBJEXT): {$(VPATH)}acosh.c
 
554
alloca.$(OBJEXT): {$(VPATH)}alloca.c {$(VPATH)}config.h
 
555
crypt.$(OBJEXT): {$(VPATH)}crypt.c
 
556
dup2.$(OBJEXT): {$(VPATH)}dup2.c
 
557
erf.$(OBJEXT): {$(VPATH)}erf.c
 
558
finite.$(OBJEXT): {$(VPATH)}finite.c
 
559
flock.$(OBJEXT): {$(VPATH)}flock.c
 
560
memcmp.$(OBJEXT): {$(VPATH)}memcmp.c
 
561
memmove.$(OBJEXT): {$(VPATH)}memmove.c
 
562
mkdir.$(OBJEXT): {$(VPATH)}mkdir.c
 
563
strchr.$(OBJEXT): {$(VPATH)}strchr.c
 
564
strdup.$(OBJEXT): {$(VPATH)}strdup.c
 
565
strerror.$(OBJEXT): {$(VPATH)}strerror.c
 
566
strstr.$(OBJEXT): {$(VPATH)}strstr.c
 
567
strtod.$(OBJEXT): {$(VPATH)}strtod.c
 
568
strtol.$(OBJEXT): {$(VPATH)}strtol.c
 
569
nt.$(OBJEXT): {$(VPATH)}nt.c
 
570
os2.$(OBJEXT): {$(VPATH)}os2.c
 
571
dl_os2.$(OBJEXT): {$(VPATH)}dl_os2.c
 
572
ia64.$(OBJEXT): {$(VPATH)}ia64.s
 
573
        $(CC) $(CFLAGS) -c $<
 
574
 
 
575
win32.$(OBJEXT): {$(VPATH)}win32.c $(RUBY_H_INCLUDES)
 
576
 
 
577
###
 
578
 
 
579
RUBY_H_INCLUDES    = {$(VPATH)}ruby.h {$(VPATH)}config.h {$(VPATH)}defines.h \
 
580
                     {$(VPATH)}intern.h {$(VPATH)}missing.h {$(VPATH)}st.h \
 
581
                     {$(VPATH)}subst.h
 
582
ENCODING_H_INCLUDES= {$(VPATH)}encoding.h {$(VPATH)}oniguruma.h
 
583
ID_H_INCLUDES      = {$(VPATH)}id.h {$(VPATH)}vm_opts.h
 
584
VM_CORE_H_INCLUDES = {$(VPATH)}vm_core.h {$(VPATH)}thread_$(THREAD_MODEL).h \
 
585
                     {$(VPATH)}node.h {$(VPATH)}method.h {$(VPATH)}atomic.h \
 
586
                     $(ID_H_INCLUDES)
 
587
 
 
588
array.$(OBJEXT): {$(VPATH)}array.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \
 
589
  $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h
 
590
bignum.$(OBJEXT): {$(VPATH)}bignum.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \
 
591
  {$(VPATH)}internal.h
 
592
class.$(OBJEXT): {$(VPATH)}class.c $(RUBY_H_INCLUDES) \
 
593
  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h \
 
594
  {$(VPATH)}constant.h
 
595
compar.$(OBJEXT): {$(VPATH)}compar.c $(RUBY_H_INCLUDES)
 
596
complex.$(OBJEXT): {$(VPATH)}complex.c $(RUBY_H_INCLUDES) \
 
597
  {$(VPATH)}internal.h
 
598
dir.$(OBJEXT): {$(VPATH)}dir.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \
 
599
  $(ENCODING_H_INCLUDES) \
 
600
  {$(VPATH)}internal.h
 
601
dln.$(OBJEXT): {$(VPATH)}dln.c {$(VPATH)}dln.h $(RUBY_H_INCLUDES)
 
602
dln_find.$(OBJEXT): {$(VPATH)}dln_find.c {$(VPATH)}dln.h $(RUBY_H_INCLUDES)
 
603
dmydln.$(OBJEXT): {$(VPATH)}dmydln.c $(RUBY_H_INCLUDES)
 
604
dmyext.$(OBJEXT): {$(VPATH)}dmyext.c
 
605
dmyencoding.$(OBJEXT): {$(VPATH)}dmyencoding.c $(RUBY_H_INCLUDES) \
 
606
  {$(VPATH)}regenc.h {$(VPATH)}util.h $(ENCODING_H_INCLUDES) \
 
607
  {$(VPATH)}encoding.c {$(VPATH)}internal.h
 
608
encoding.$(OBJEXT): {$(VPATH)}encoding.c $(RUBY_H_INCLUDES) \
 
609
  $(ENCODING_H_INCLUDES) {$(VPATH)}regenc.h {$(VPATH)}util.h \
 
610
  {$(VPATH)}internal.h
 
611
enum.$(OBJEXT): {$(VPATH)}enum.c $(RUBY_H_INCLUDES) {$(VPATH)}node.h \
 
612
  {$(VPATH)}util.h $(ID_H_INCLUDES)
 
613
enumerator.$(OBJEXT): {$(VPATH)}enumerator.c $(RUBY_H_INCLUDES)
 
614
error.$(OBJEXT): {$(VPATH)}error.c {$(VPATH)}known_errors.inc \
 
615
  $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) $(ENCODING_H_INCLUDES) \
 
616
  {$(VPATH)}debug.h \
 
617
  {$(VPATH)}internal.h
 
618
eval.$(OBJEXT): {$(VPATH)}eval.c {$(VPATH)}eval_intern.h {$(VPATH)}vm.h \
 
619
  $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}eval_error.c \
 
620
  {$(VPATH)}eval_jump.c {$(VPATH)}debug.h {$(VPATH)}gc.h {$(VPATH)}iseq.h \
 
621
  $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h
 
622
load.$(OBJEXT): {$(VPATH)}load.c {$(VPATH)}eval_intern.h \
 
623
  {$(VPATH)}util.h $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) \
 
624
  {$(VPATH)}dln.h {$(VPATH)}debug.h \
 
625
  {$(VPATH)}internal.h
 
626
file.$(OBJEXT): {$(VPATH)}file.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \
 
627
  $(ENCODING_H_INCLUDES) {$(VPATH)}util.h {$(VPATH)}dln.h \
 
628
  {$(VPATH)}internal.h
 
629
gc.$(OBJEXT): {$(VPATH)}gc.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \
 
630
  {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) $(VM_CORE_H_INCLUDES) \
 
631
  {$(VPATH)}gc.h {$(VPATH)}io.h {$(VPATH)}eval_intern.h {$(VPATH)}util.h \
 
632
  {$(VPATH)}debug.h {$(VPATH)}internal.h {$(VPATH)}constant.h
 
633
hash.$(OBJEXT): {$(VPATH)}hash.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \
 
634
  $(ENCODING_H_INCLUDES)
 
635
inits.$(OBJEXT): {$(VPATH)}inits.c $(RUBY_H_INCLUDES) \
 
636
  {$(VPATH)}internal.h
 
637
io.$(OBJEXT): {$(VPATH)}io.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \
 
638
  {$(VPATH)}util.h $(ENCODING_H_INCLUDES) {$(VPATH)}dln.h {$(VPATH)}internal.h
 
639
main.$(OBJEXT): {$(VPATH)}main.c $(RUBY_H_INCLUDES) {$(VPATH)}debug.h \
 
640
  {$(VPATH)}node.h
 
641
marshal.$(OBJEXT): {$(VPATH)}marshal.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \
 
642
  $(ENCODING_H_INCLUDES) {$(VPATH)}util.h {$(VPATH)}internal.h
 
643
math.$(OBJEXT): {$(VPATH)}math.c $(RUBY_H_INCLUDES) \
 
644
  {$(VPATH)}internal.h
 
645
node.$(OBJEXT): {$(VPATH)}node.c $(RUBY_H_INCLUDES) \
 
646
  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h
 
647
numeric.$(OBJEXT): {$(VPATH)}numeric.c $(RUBY_H_INCLUDES) \
 
648
  {$(VPATH)}util.h $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h
 
649
object.$(OBJEXT): {$(VPATH)}object.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \
 
650
  {$(VPATH)}internal.h {$(VPATH)}constant.h
 
651
pack.$(OBJEXT): {$(VPATH)}pack.c $(RUBY_H_INCLUDES) {$(VPATH)}encoding.h \
 
652
  {$(VPATH)}oniguruma.h
 
653
parse.$(OBJEXT): {$(VPATH)}parse.c $(RUBY_H_INCLUDES) {$(VPATH)}node.h \
 
654
  $(ENCODING_H_INCLUDES) $(ID_H_INCLUDES) {$(VPATH)}regenc.h \
 
655
  {$(VPATH)}regex.h {$(VPATH)}util.h {$(VPATH)}lex.c \
 
656
  {$(VPATH)}defs/keywords {$(VPATH)}id.c {$(VPATH)}parse.y \
 
657
  {$(VPATH)}parse.h \
 
658
  {$(VPATH)}internal.h
 
659
proc.$(OBJEXT): {$(VPATH)}proc.c {$(VPATH)}eval_intern.h \
 
660
  $(RUBY_H_INCLUDES) {$(VPATH)}gc.h $(VM_CORE_H_INCLUDES) \
 
661
  {$(VPATH)}debug.h {$(VPATH)}internal.h {$(VPATH)}iseq.h
 
662
process.$(OBJEXT): {$(VPATH)}process.c $(RUBY_H_INCLUDES) \
 
663
  {$(VPATH)}util.h {$(VPATH)}io.h $(ENCODING_H_INCLUDES) {$(VPATH)}dln.h \
 
664
  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h
 
665
random.$(OBJEXT): {$(VPATH)}random.c $(RUBY_H_INCLUDES)
 
666
range.$(OBJEXT): {$(VPATH)}range.c $(RUBY_H_INCLUDES) \
 
667
  $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h
 
668
rational.$(OBJEXT): {$(VPATH)}rational.c $(RUBY_H_INCLUDES) {$(VPATH)}internal.h
 
669
re.$(OBJEXT): {$(VPATH)}re.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \
 
670
  {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) {$(VPATH)}util.h \
 
671
  {$(VPATH)}regint.h {$(VPATH)}regenc.h {$(VPATH)}internal.h
 
672
regcomp.$(OBJEXT): {$(VPATH)}regcomp.c {$(VPATH)}regparse.h \
 
673
  {$(VPATH)}regint.h {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h \
 
674
  $(RUBY_H_INCLUDES)
 
675
regenc.$(OBJEXT): {$(VPATH)}regenc.c {$(VPATH)}regint.h \
 
676
  {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h $(RUBY_H_INCLUDES)
 
677
regerror.$(OBJEXT): {$(VPATH)}regerror.c {$(VPATH)}regint.h \
 
678
  {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h $(RUBY_H_INCLUDES)
 
679
regexec.$(OBJEXT): {$(VPATH)}regexec.c {$(VPATH)}regint.h \
 
680
  {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h $(RUBY_H_INCLUDES)
 
681
regparse.$(OBJEXT): {$(VPATH)}regparse.c {$(VPATH)}regparse.h \
 
682
  {$(VPATH)}regint.h {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h \
 
683
  $(RUBY_H_INCLUDES)
 
684
regsyntax.$(OBJEXT): {$(VPATH)}regsyntax.c {$(VPATH)}regint.h \
 
685
  {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h $(RUBY_H_INCLUDES)
 
686
ruby.$(OBJEXT): {$(VPATH)}ruby.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \
 
687
  $(ENCODING_H_INCLUDES) {$(VPATH)}eval_intern.h $(VM_CORE_H_INCLUDES) \
 
688
  {$(VPATH)}dln.h {$(VPATH)}debug.h {$(VPATH)}internal.h
 
689
safe.$(OBJEXT): {$(VPATH)}safe.c $(RUBY_H_INCLUDES) \
 
690
  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h
 
691
signal.$(OBJEXT): {$(VPATH)}signal.c $(RUBY_H_INCLUDES) \
 
692
  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h
 
693
sprintf.$(OBJEXT): {$(VPATH)}sprintf.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \
 
694
  {$(VPATH)}regex.h {$(VPATH)}vsnprintf.c $(ENCODING_H_INCLUDES)
 
695
st.$(OBJEXT): {$(VPATH)}st.c $(RUBY_H_INCLUDES)
 
696
strftime.$(OBJEXT): {$(VPATH)}strftime.c $(RUBY_H_INCLUDES) \
 
697
  {$(VPATH)}timev.h
 
698
string.$(OBJEXT): {$(VPATH)}string.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \
 
699
  {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h
 
700
struct.$(OBJEXT): {$(VPATH)}struct.c $(RUBY_H_INCLUDES) {$(VPATH)}internal.h
 
701
thread.$(OBJEXT): {$(VPATH)}thread.c {$(VPATH)}eval_intern.h \
 
702
  $(RUBY_H_INCLUDES) {$(VPATH)}gc.h $(VM_CORE_H_INCLUDES) \
 
703
  {$(VPATH)}debug.h {$(VPATH)}thread_$(THREAD_MODEL).c $(ENCODING_H_INCLUDES) \
 
704
  {$(VPATH)}internal.h {$(VPATH)}io.h
 
705
transcode.$(OBJEXT): {$(VPATH)}transcode.c $(RUBY_H_INCLUDES) \
 
706
  $(ENCODING_H_INCLUDES) {$(VPATH)}transcode_data.h {$(VPATH)}internal.h
 
707
cont.$(OBJEXT): {$(VPATH)}cont.c $(RUBY_H_INCLUDES) \
 
708
  $(VM_CORE_H_INCLUDES) {$(VPATH)}gc.h {$(VPATH)}eval_intern.h \
 
709
  {$(VPATH)}debug.h {$(VPATH)}internal.h
 
710
time.$(OBJEXT): {$(VPATH)}time.c $(RUBY_H_INCLUDES) \
 
711
  $(ENCODING_H_INCLUDES) {$(VPATH)}timev.h {$(VPATH)}internal.h
 
712
util.$(OBJEXT): {$(VPATH)}util.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \
 
713
  {$(VPATH)}internal.h
 
714
variable.$(OBJEXT): {$(VPATH)}variable.c $(RUBY_H_INCLUDES) \
 
715
  {$(VPATH)}node.h {$(VPATH)}util.h {$(VPATH)}encoding.h \
 
716
  {$(VPATH)}oniguruma.h {$(VPATH)}internal.h {$(VPATH)}constant.h
 
717
version.$(OBJEXT): {$(VPATH)}version.c $(RUBY_H_INCLUDES) \
 
718
  {$(VPATH)}version.h $(srcdir)/version.h $(srcdir)/revision.h {$(VPATH)}config.h
 
719
dmyversion.$(OBJEXT): {$(VPATH)}dmyversion.c version.$(OBJEXT)
 
720
 
 
721
compile.$(OBJEXT): {$(VPATH)}compile.c {$(VPATH)}iseq.h \
 
722
  $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}insns.inc \
 
723
  {$(VPATH)}insns_info.inc {$(VPATH)}optinsn.inc {$(VPATH)}debug.h \
 
724
  {$(VPATH)}optunifs.inc {$(VPATH)}opt_sc.inc {$(VPATH)}insns.inc \
 
725
  {$(VPATH)}internal.h
 
726
iseq.$(OBJEXT): {$(VPATH)}iseq.c {$(VPATH)}gc.h {$(VPATH)}iseq.h \
 
727
  $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}insns.inc \
 
728
  {$(VPATH)}insns_info.inc {$(VPATH)}node_name.inc {$(VPATH)}debug.h {$(VPATH)}internal.h
 
729
vm.$(OBJEXT): {$(VPATH)}vm.c {$(VPATH)}gc.h {$(VPATH)}iseq.h \
 
730
  {$(VPATH)}eval_intern.h $(RUBY_H_INCLUDES) $(ENCODING_H_INCLUDES) \
 
731
  $(VM_CORE_H_INCLUDES) {$(VPATH)}vm_method.c {$(VPATH)}vm_eval.c \
 
732
  {$(VPATH)}vm_insnhelper.c {$(VPATH)}vm_insnhelper.h {$(VPATH)}vm_exec.c \
 
733
  {$(VPATH)}vm_exec.h {$(VPATH)}insns.def {$(VPATH)}vmtc.inc \
 
734
  {$(VPATH)}vm.inc {$(VPATH)}insns.inc {$(VPATH)}debug.h \
 
735
  {$(VPATH)}internal.h {$(VPATH)}vm.h {$(VPATH)}constant.h
 
736
vm_dump.$(OBJEXT): {$(VPATH)}vm_dump.c $(RUBY_H_INCLUDES) \
 
737
  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}addr2line.h
 
738
debug.$(OBJEXT): {$(VPATH)}debug.c $(RUBY_H_INCLUDES) \
 
739
  $(ENCODING_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}eval_intern.h \
 
740
  {$(VPATH)}util.h {$(VPATH)}debug.h
 
741
id.$(OBJEXT): {$(VPATH)}id.c $(RUBY_H_INCLUDES) $(ID_H_INCLUDES)
 
742
miniprelude.$(OBJEXT): {$(VPATH)}miniprelude.c $(RUBY_H_INCLUDES) \
 
743
  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h
 
744
prelude.$(OBJEXT): {$(VPATH)}prelude.c $(RUBY_H_INCLUDES) \
 
745
  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h
 
746
golf_prelude.$(OBJEXT): {$(VPATH)}golf_prelude.c $(RUBY_H_INCLUDES) \
 
747
  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h
 
748
goruby.$(OBJEXT): {$(VPATH)}goruby.c {$(VPATH)}main.c $(RUBY_H_INCLUDES) \
 
749
  {$(VPATH)}debug.h {$(VPATH)}node.h
 
750
 
 
751
ascii.$(OBJEXT): {$(VPATH)}ascii.c {$(VPATH)}regenc.h {$(VPATH)}config.h \
 
752
  {$(VPATH)}oniguruma.h {$(VPATH)}missing.h
 
753
us_ascii.$(OBJEXT): {$(VPATH)}us_ascii.c {$(VPATH)}regenc.h \
 
754
  {$(VPATH)}config.h {$(VPATH)}oniguruma.h {$(VPATH)}missing.h
 
755
unicode.$(OBJEXT): {$(VPATH)}unicode.c {$(VPATH)}regint.h \
 
756
  {$(VPATH)}config.h {$(VPATH)}defines.h {$(VPATH)}regenc.h \
 
757
  {$(VPATH)}oniguruma.h {$(VPATH)}st.h {$(VPATH)}ruby.h \
 
758
  {$(VPATH)}missing.h {$(VPATH)}intern.h {$(VPATH)}enc/unicode/name2ctype.h \
 
759
  {$(VPATH)}subst.h
 
760
 
 
761
utf_8.$(OBJEXT): {$(VPATH)}utf_8.c {$(VPATH)}regenc.h {$(VPATH)}config.h \
 
762
  {$(VPATH)}oniguruma.h {$(VPATH)}missing.h
 
763
 
 
764
newline.c: $(srcdir)/enc/trans/newline.trans $(srcdir)/tool/transcode-tblgen.rb
 
765
        $(Q) $(BASERUBY) "$(srcdir)/tool/transcode-tblgen.rb" -vo newline.c $(srcdir)/enc/trans/newline.trans
 
766
newline.$(OBJEXT): {$(VPATH)}newline.c {$(VPATH)}defines.h \
 
767
  {$(VPATH)}intern.h {$(VPATH)}missing.h {$(VPATH)}st.h \
 
768
  {$(VPATH)}transcode_data.h {$(VPATH)}ruby.h {$(VPATH)}config.h {$(VPATH)}subst.h
 
769
 
 
770
$(OBJS):  {$(VPATH)}config.h {$(VPATH)}missing.h
 
771
 
 
772
INSNS2VMOPT = --srcdir="$(srcdir)"
 
773
 
 
774
{$(VPATH)}minsns.inc: $(srcdir)/template/minsns.inc.tmpl
 
775
 
 
776
{$(VPATH)}opt_sc.inc: $(srcdir)/template/opt_sc.inc.tmpl
 
777
 
 
778
{$(VPATH)}optinsn.inc: $(srcdir)/template/optinsn.inc.tmpl
 
779
 
 
780
{$(VPATH)}optunifs.inc: $(srcdir)/template/optunifs.inc.tmpl
 
781
 
 
782
{$(VPATH)}insns.inc: $(srcdir)/template/insns.inc.tmpl
 
783
 
 
784
{$(VPATH)}insns_info.inc: $(srcdir)/template/insns_info.inc.tmpl
 
785
 
 
786
{$(VPATH)}vmtc.inc: $(srcdir)/template/vmtc.inc.tmpl
 
787
 
 
788
{$(VPATH)}vm.inc: $(srcdir)/template/vm.inc.tmpl
 
789
 
 
790
srcs: {$(VPATH)}parse.c {$(VPATH)}lex.c {$(VPATH)}newline.c srcs-ext srcs-enc
 
791
 
 
792
EXT_SRCS = $(srcdir)/ext/ripper/ripper.c $(srcdir)/ext/json/parser/parser.c
 
793
 
 
794
srcs-ext: $(EXT_SRCS)
 
795
 
 
796
srcs-enc: $(ENC_MK)
 
797
        $(ECHO) making srcs under enc
 
798
        $(Q) $(MAKE) -f $(ENC_MK) RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(MFLAGS) srcs
 
799
 
 
800
incs: $(INSNS) {$(VPATH)}node_name.inc {$(VPATH)}encdb.h {$(VPATH)}transdb.h {$(VPATH)}known_errors.inc \
 
801
      $(srcdir)/revision.h $(REVISION_H) enc/unicode/name2ctype.h
 
802
 
 
803
insns: $(INSNS)
 
804
 
 
805
id.h: parse.h $(srcdir)/tool/generic_erb.rb $(srcdir)/template/id.h.tmpl
 
806
        $(ECHO) generating $@
 
807
        $(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb --output=$@ \
 
808
                $(srcdir)/template/id.h.tmpl --vpath=$(VPATH) parse.h
 
809
 
 
810
node_name.inc: {$(VPATH)}node.h
 
811
        $(ECHO) generating $@
 
812
        $(Q) $(BASERUBY) -n $(srcdir)/tool/node_name.rb < $? > $@
 
813
 
 
814
encdb.h: $(PREP) $(srcdir)/tool/generic_erb.rb $(srcdir)/template/encdb.h.tmpl
 
815
        $(ECHO) generating $@
 
816
        $(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/encdb.h.tmpl $(srcdir)/enc enc
 
817
 
 
818
transdb.h: $(PREP) srcs-enc $(srcdir)/tool/generic_erb.rb $(srcdir)/template/transdb.h.tmpl
 
819
        $(ECHO) generating $@
 
820
        $(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/transdb.h.tmpl $(srcdir)/enc/trans enc/trans
 
821
 
 
822
known_errors.inc: $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def
 
823
        $(ECHO) generating $@
 
824
        $(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def
 
825
 
 
826
miniprelude.c: $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb
 
827
        $(ECHO) generating $@
 
828
        $(Q) $(BASERUBY) -I$(srcdir) $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $@
 
829
 
 
830
prelude.c: $(srcdir)/tool/compile_prelude.rb $(RBCONFIG) \
 
831
           $(srcdir)/lib/rubygems/defaults.rb $(srcdir)/lib/rubygems/custom_require.rb \
 
832
           $(PRELUDE_SCRIPTS) $(PREP)
 
833
        $(ECHO) generating $@
 
834
        $(Q) $(COMPILE_PRELUDE) $(PRELUDE_SCRIPTS) $@
 
835
 
 
836
golf_prelude.c: $(srcdir)/tool/compile_prelude.rb $(RBCONFIG) $(srcdir)/prelude.rb $(srcdir)/golf_prelude.rb $(PREP)
 
837
        $(ECHO) generating $@
 
838
        $(Q) $(COMPILE_PRELUDE) $(srcdir)/golf_prelude.rb $@
 
839
 
 
840
prereq: incs srcs preludes PHONY
 
841
 
 
842
preludes: {$(VPATH)}miniprelude.c
 
843
preludes: {$(srcdir)}golf_prelude.c
 
844
 
 
845
$(srcdir)/revision.h:
 
846
        @exit > $@
 
847
 
 
848
$(REVISION_H): $(srcdir)/version.h $(srcdir)/ChangeLog $(srcdir)/tool/file2lastrev.rb $(REVISION_FORCE)
 
849
        @-$(BASERUBY) $(srcdir)/tool/file2lastrev.rb --revision.h "$(srcdir)" > "$(srcdir)/revision.tmp"
 
850
        @$(IFCHANGE) "--timestamp=$@" "$(srcdir)/revision.h" "$(srcdir)/revision.tmp"
 
851
 
 
852
$(srcdir)/ext/ripper/ripper.c: parse.y
 
853
        $(ECHO) generating $@
 
854
        $(Q) $(CHDIR) $(@D) && $(exec) $(MAKE) -f depend $(MFLAGS) \
 
855
                Q=$(Q) ECHO=$(ECHO) top_srcdir=../.. srcdir=. RUBY=$(BASERUBY)
 
856
 
 
857
$(srcdir)/ext/json/parser/parser.c: $(srcdir)/ext/json/parser/parser.rl
 
858
        $(ECHO) generating $@
 
859
        $(Q) $(CHDIR) $(@D) && $(exec) $(MAKE) -f prereq.mk $(MFLAGS) \
 
860
                Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=.
 
861
 
 
862
##
 
863
 
 
864
run: miniruby$(EXEEXT) PHONY
 
865
        $(MINIRUBY) $(TESTRUN_SCRIPT) $(RUNOPT)
 
866
 
 
867
runruby: $(PROGRAM) PHONY
 
868
        $(RUNRUBY) $(TESTRUN_SCRIPT)
 
869
 
 
870
parse: miniruby$(EXEEXT) PHONY
 
871
        $(MINIRUBY) $(srcdir)/tool/parse.rb $(TESTRUN_SCRIPT)
 
872
 
 
873
COMPARE_RUBY = $(BASERUBY)
 
874
ITEM = 
 
875
OPTS = 
 
876
 
 
877
benchmark: $(PROGRAM) PHONY
 
878
        $(BASERUBY) $(srcdir)/benchmark/driver.rb -v \
 
879
                    --executables="$(COMPARE_RUBY); $(RUNRUBY)" \
 
880
                    --pattern='bm_' --directory=$(srcdir)/benchmark $(OPTS)
 
881
 
 
882
benchmark-each: $(PROGRAM) PHONY
 
883
        $(BASERUBY) $(srcdir)/benchmark/driver.rb -v \
 
884
                    --executables="$(COMPARE_RUBY); $(RUNRUBY)" \
 
885
                    --pattern=$(ITEM) --directory=$(srcdir)/benchmark $(OPTS)
 
886
 
 
887
tbench: $(PROGRAM) PHONY
 
888
        $(BASERUBY) $(srcdir)/benchmark/driver.rb -v \
 
889
                    --executables="$(COMPARE_RUBY); $(RUNRUBY)" \
 
890
                    --pattern='bmx_' --directory=$(srcdir)/benchmark $(OPTS)
 
891
 
 
892
run.gdb:
 
893
        echo b ruby_debug_breakpoint           > run.gdb
 
894
        echo '# handle SIGINT nostop'         >> run.gdb
 
895
        echo '# handle SIGPIPE nostop'        >> run.gdb
 
896
        echo '# b rb_longjmp'                 >> run.gdb
 
897
        echo source $(srcdir)/breakpoints.gdb >> run.gdb
 
898
        echo source $(srcdir)/.gdbinit        >> run.gdb
 
899
        echo 'set $$_exitcode = -999'         >> run.gdb
 
900
        echo run                              >> run.gdb
 
901
        echo 'if $$_exitcode != -999'         >> run.gdb
 
902
        echo '  quit'                         >> run.gdb
 
903
        echo end                              >> run.gdb
 
904
 
 
905
 
 
906
gdb: miniruby$(EXEEXT) run.gdb PHONY
 
907
        gdb -x run.gdb --quiet --args $(MINIRUBY) $(TESTRUN_SCRIPT)
 
908
 
 
909
gdb-ruby: $(PROGRAM) run.gdb PHONY
 
910
        gdb -x run.gdb --quiet --args $(PROGRAM) $(TESTRUN_SCRIPT)
 
911
 
 
912
dist:
 
913
        $(BASERUBY) $(srcdir)/tool/make-snapshot tmp $(RELNAME)
 
914
 
 
915
up::
 
916
        -@$(MAKE) $(MFLAGS) REVISION_FORCE=PHONY "$(REVISION_H)"
 
917
 
 
918
info: info-program info-libruby_a info-libruby_so info-arch
 
919
info-program:
 
920
        @echo PROGRAM=$(PROGRAM)
 
921
info-libruby_a:
 
922
        @echo LIBRUBY_A=$(LIBRUBY_A)
 
923
info-libruby_so:
 
924
        @echo LIBRUBY_SO=$(LIBRUBY_SO)
 
925
info-arch:
 
926
        @echo arch=$(arch)
 
927
 
 
928
change: PHONY
 
929
        $(BASERUBY) -C "$(srcdir)" ./tool/change_maker.rb $(CHANGES) > change.log
 
930
 
 
931
love: sudo-precheck up all test install test-all
 
932
        @echo love is all you need
 
933
 
 
934
sudo-precheck:
 
935
        @$(SUDO) echo > $(NULL)
 
936
 
 
937
help: PHONY
 
938
        $(MESSAGE_BEGIN) \
 
939
        "                Makefile of Ruby" \
 
940
        "" \
 
941
        "targets:" \
 
942
        "  all (default):   builds all of below" \
 
943
        "  miniruby:        builds only miniruby" \
 
944
        "  encs:            builds encodings" \
 
945
        "  exts:            builds extensions" \
 
946
        "  main:            builds encodings, extensions and ruby" \
 
947
        "  docs:            builds documents" \
 
948
        "  run:             runs test.rb by miniruby" \
 
949
        "  runruby:         runs test.rb by ruby you just built" \
 
950
        "  gdb:             runs test.rb by miniruby under gdb" \
 
951
        "  gdb-ruby:        runs test.rb by ruby under gdb" \
 
952
        "  check:           equals make test test-all" \
 
953
        "  test:            ruby core tests" \
 
954
        "  test-all:        all ruby tests" \
 
955
        "  test-rubyspec:   run RubySpec test suite" \
 
956
        "  update-rubyspec: update local copy of RubySpec" \
 
957
        "  benchmark:       benchmark this ruby and COMPARE_RUBY" \
 
958
        "  install:         install all ruby distributions" \
 
959
        "  install-nodoc:   install without rdoc" \
 
960
        "  install-cross:   install cross compiling staff" \
 
961
        "  clean:           clean for tarball" \
 
962
        "  distclean:       clean for repository" \
 
963
        "  change:          make change log template" \
 
964
        "  golf:            for golfers" \
 
965
        "" \
 
966
        "see DeveloperHowto for more detail: " \
 
967
        "  http://redmine.ruby-lang.org/wiki/ruby/DeveloperHowto" \
 
968
        $(MESSAGE_END)