Ticket #775: Makefile

File Makefile, 122.4 KB (added by MoC, 5 years ago)

Makefile

Line 
1# ex: set ro:
2# DO NOT EDIT THIS FILE
3# Generated by Parrot::Configure::Compiler from config/gen/makefiles/root.in
4
5# Copyright (C) 2001-2009, Parrot Foundation.
6# $Id: root.in 39529 2009-06-12 23:23:26Z bacek $
7
8###############################################################################
9#
10# NOTE:
11#
12# This makefile makes use of specific .dummy targets (rather than .PHONY
13# or .VIRTUAL targets) in an effort to work with various flavors of make.
14#
15###############################################################################
16
17###############################################################################
18#
19# INSTALL CONFIGURATIONS:
20#
21###############################################################################
22
23DEVEL           = -devel
24VERSION         = 1.3.0$(DEVEL)
25SOVERSION       = 1.3.0
26
27CONFIG_ARGS     = "--icushared=C:\GnuTC\MinGW\lib\icuuc.lib" "--icuheaders=C:\GnuTC\MinGW\include" "--prefix=C:\Parrot"
28
29# Override at least PREFIX with the install location if you're going
30# to be using this outside of your build area.
31BUILDPREFIX     =
32PREFIX          = C:\Parrot
33EXEC_PREFIX     = C:\Parrot
34DESTDIR         =
35BIN_DIR         = C:\Parrot\bin
36LIB_DIR         = C:\Parrot\lib
37INCLUDE_DIR     = C:\Parrot\include
38DATA_DIR        = C:\Parrot\share
39DOC_DIR         = C:\Parrot\share\doc
40VERSION_DIR     = \parrot\1.3.0-devel
41
42
43###############################################################################
44#
45# SOURCE CONFIGURATIONS:
46#
47# Set up information about directories where the sources can be found.
48#
49###############################################################################
50
51# where we're building parrot from (needed for pbc_to_exe)
52BUILD_DIR = C:\GnuTC\MSYS\home\MoC\parrot-svn
53
54# directory for build tools
55BUILD_TOOLS_DIR = tools\build
56
57# current directory
58CUR_DIR         = .
59
60# directory for the intermediate code compiler
61IMCC_DIR        = compilers\imcc
62
63# directory for the (experimental) PIR code compiler
64PIRC_DIR        = compilers\pirc\src
65
66# directory for header files
67INC_DIR         = include\parrot
68
69# directory for the IO subsystem
70IO_DIR          = src\io
71
72# directory with Parrot modules
73LIBRARY_DIR     = runtime\parrot\library
74
75# directory for *.ops file
76OPS_DIR         = src\ops
77
78# directory for packfile files
79PF_DIR          = src\packfile
80
81# source directory
82SRC_DIR         = src
83
84###############################################################################
85#
86# BUILD TOOL CONFIGURATIONS:
87#
88# DO NOT ADD C COMPILER FLAGS HERE
89# Add them in Configure.pl--look for the
90# comment 'ADD C COMPILER FLAGS HERE'
91#
92###############################################################################
93
94PERL             = C:\Perl\bin\perl.exe
95CP               = $(PERL) -MExtUtils::Command -e cp
96CHMOD            = $(PERL) -MExtUtils::Command -e ExtUtils::Command::chmod
97MKPATH           = $(PERL) -MExtUtils::Command -e mkpath
98RM_F             = $(PERL) -MExtUtils::Command -e rm_f
99RM_RF            = $(PERL) -MExtUtils::Command -e rm_rf
100TOUCH            = $(PERL) -MExtUtils::Command -e touch
101AR_CR            = ar cr
102RANLIB           = rem
103YACC             = echo
104LEX              = echo
105AS               = as
106CC               = gcc
107CC_INC           = -I.\include
108C_LIBS           = -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lmsvcrt -lgmp -lreadline -lintl
109CC_SHARED        = 
110CFLAGS           = $(CC_INC) -DWIN32  -DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT  -falign-functions=16 -funit-at-a-time -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wlogical-op -Wmissing-braces -Wmissing-field-initializers -Wno-missing-format-attribute -Wmissing-include-dirs -Wpacked -Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused -Wvariadic-macros -Wwrite-strings -Wbad-function-cast -Wc++-compat -Wdeclaration-after-statement -Werror=declaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -DHAS_GETTEXT -g   -DHAS_JIT -DI386 -DHAVE_COMPUTED_GOTO  $(CC_SHARED)
111LINK_DYNAMIC     = 
112LINK             = gcc
113LINKFLAGS        =   
114LD               = g++
115LDFLAGS          = 
116RECONFIGURE      = $(PERL) tools\dev\reconfigure.pl
117INNO_SETUP       = iscc
118JIT_BUILD_TOOL   = $(BUILD_TOOLS_DIR)\jit2c.pl
119
120###############################################################################
121#
122# file extensions and util flags
123#
124###############################################################################
125
126O                = .o
127EXE              = .exe
128SHARE_EXT        = .dll
129LOAD_EXT         = .dll
130A                = .a
131LD_SHARE_FLAGS   = -shared
132LD_LOAD_FLAGS    = -shared
133
134# generated by config\init\headers.pm
135NONGEN_HEADERS   = $(INC_DIR)\atomic.h\
136        $(INC_DIR)\atomic\fallback.h\
137        $(INC_DIR)\atomic\gcc_pcc.h\
138        $(INC_DIR)\atomic\gcc_x86.h\
139        $(INC_DIR)\atomic\sparc.h\
140        $(INC_DIR)\caches.h\
141        $(INC_DIR)\call.h\
142        $(INC_DIR)\cclass.h\
143        $(INC_DIR)\charset.h\
144        $(INC_DIR)\compiler.h\
145        $(INC_DIR)\core_types.h\
146        $(INC_DIR)\datatypes.h\
147        $(INC_DIR)\debugger.h\
148        $(INC_DIR)\dynext.h\
149        $(INC_DIR)\embed.h\
150        $(INC_DIR)\encoding.h\
151        $(INC_DIR)\enums.h\
152        $(INC_DIR)\events.h\
153        $(INC_DIR)\exceptions.h\
154        $(INC_DIR)\exec.h\
155        $(INC_DIR)\exit.h\
156        $(INC_DIR)\extend.h\
157        $(INC_DIR)\gc_api.h\
158        $(INC_DIR)\global.h\
159        $(INC_DIR)\global_setup.h\
160        $(INC_DIR)\hash.h\
161        $(INC_DIR)\hll.h\
162        $(INC_DIR)\imcc.h\
163        $(INC_DIR)\interpreter.h\
164        $(INC_DIR)\io.h\
165        $(INC_DIR)\io_portable.h\
166        $(INC_DIR)\io_unix.h\
167        $(INC_DIR)\io_win32.h\
168        $(INC_DIR)\key.h\
169        $(INC_DIR)\library.h\
170        $(INC_DIR)\list.h\
171        $(INC_DIR)\longopt.h\
172        $(INC_DIR)\memory.h\
173        $(INC_DIR)\misc.h\
174        $(INC_DIR)\multidispatch.h\
175        $(INC_DIR)\nci.h\
176        $(INC_DIR)\oo.h\
177        $(INC_DIR)\oo_private.h\
178        $(INC_DIR)\op.h\
179        $(INC_DIR)\oplib.h\
180        $(INC_DIR)\packfile.h\
181        $(INC_DIR)\parrot.h\
182        $(INC_DIR)\pic.h\
183        $(INC_DIR)\pmc.h\
184        $(INC_DIR)\pmc_freeze.h\
185        $(INC_DIR)\pobj.h\
186        $(INC_DIR)\register.h\
187        $(INC_DIR)\runcore_api.h\
188        $(INC_DIR)\runcore_trace.h\
189        $(INC_DIR)\scheduler.h\
190        $(INC_DIR)\scheduler_private.h\
191        $(INC_DIR)\settings.h\
192        $(INC_DIR)\slice.h\
193        $(INC_DIR)\stacks.h\
194        $(INC_DIR)\stat.h\
195        $(INC_DIR)\string.h\
196        $(INC_DIR)\string_funcs.h\
197        $(INC_DIR)\string_primitives.h\
198        $(INC_DIR)\sub.h\
199        $(INC_DIR)\thr_pthread.h\
200        $(INC_DIR)\thr_windows.h\
201        $(INC_DIR)\thread.h\
202        $(INC_DIR)\tsq.h\
203        $(INC_DIR)\vtables.h\
204        $(INC_DIR)\warnings.h
205
206###############################################################################
207#
208# CONFIGURE_GENERATED_FILES:
209#
210# These files are created when Configure.pl runs.
211#
212# We don't delete these on 'clean'; only on 'realclean'.
213# That way, we don't have to re-Configure.pl after making
214# clean.
215#
216###############################################################################
217
218GEN_MAKEFILES = \
219    Makefile \
220    docs\Makefile \
221    compilers\json\Makefile \
222    compilers\ncigen\Makefile \
223    compilers\nqp\Makefile \
224    compilers\pct\Makefile \
225    compilers\pge\Makefile \
226    compilers\tge\Makefile \
227    editor\Makefile \
228    ext\Makefile \
229    src\dynoplibs\Makefile
230
231GEN_CONFIGS = \
232    $(INC_DIR)\config.h \
233    $(INC_DIR)\platform.h \
234    $(INC_DIR)\platform_interface.h \
235    $(INC_DIR)\platform_limits.h \
236    $(INC_DIR)\has_header.h \
237    $(INC_DIR)\feature.h \
238    $(INC_DIR)\core_pmcs.h \
239    $(SRC_DIR)\exec_dep.c \
240    $(SRC_DIR)\exec_dep.h \
241    lib\Parrot\Config\Generated.pm \
242    lib\Parrot\PMC.pm \
243    runtime\parrot\include\config.fpmc \
244    runtime\parrot\library\config.pir \
245    $(SRC_DIR)\platform.c \
246    $(SRC_DIR)\core_pmcs.c \
247    CFLAGS \
248    $(IMCC_DIR)\CFLAGS \
249    config_lib.pasm \
250    $(BUILD_TOOLS_DIR)\dynpmc.pl \
251    $(BUILD_TOOLS_DIR)\dynoplibs.pl \
252    parrot.pc \
253    $(IMCC_DIR)\imcc.y.flag \
254    $(OPS_DIR)\core_ops.c \
255    $(OPS_DIR)\core_ops_switch.c
256
257# most of these are generated by config\gen\parrot_include.pm
258
259GEN_PASM_INCLUDES = \
260    runtime\parrot\include\signal.pasm \
261    runtime\parrot\include\cclass.pasm \
262    runtime\parrot\include\datatypes.pasm \
263    runtime\parrot\include\iterator.pasm \
264    runtime\parrot\include\call_bits.pasm \
265    lib\Parrot\Pmc2c\PCCMETHOD_BITS.pm \
266    runtime\parrot\include\io_thr_msg.pasm \
267    runtime\parrot\include\timer.pasm \
268    runtime\parrot\include\except_types.pasm \
269    runtime\parrot\include\except_severity.pasm \
270    runtime\parrot\include\interpflags.pasm \
271    runtime\parrot\include\interpdebug.pasm \
272    runtime\parrot\include\interptrace.pasm \
273    runtime\parrot\include\interpcores.pasm \
274    runtime\parrot\include\cloneflags.pasm \
275    runtime\parrot\include\iglobals.pasm \
276    runtime\parrot\include\sysinfo.pasm \
277    runtime\parrot\include\stdio.pasm \
278    runtime\parrot\include\socket.pasm \
279    runtime\parrot\include\longopt.pasm \
280    runtime\parrot\include\packfile_segments.pasm \
281    runtime\parrot\include\packfile_constants.pasm \
282    runtime\parrot\include\packfile_annotation_key_type.pasm \
283    runtime\parrot\include\stat.pasm \
284    runtime\parrot\include\stringinfo.pasm \
285    runtime\parrot\include\warnings.pasm \
286    runtime\parrot\include\errors.pasm \
287    runtime\parrot\include\interpinfo.pasm \
288    runtime\parrot\include\tm.pasm \
289    runtime\parrot\include\mmd.pasm \
290    runtime\parrot\include\pmctypes.pasm
291
292CONFIGURE_GENERATED_FILES = \
293    $(GEN_CONFIGS) \
294    $(GEN_MAKEFILES) \
295    ext\Parrot-Embed\Makefile.PL \
296    myconfig  \
297    $(GEN_PASM_INCLUDES) \
298    $(SRC_DIR)\call_list.txt \
299    MANIFEST.configure.generated \
300    .configure_trace.sto \
301    .parrot_current_rev
302
303
304###############################################################################
305#
306# "FLUID" GENERATED FILES:
307#
308# These files are created during the build process.
309#
310# We *do* delete these on 'clean'.
311#
312###############################################################################
313
314GEN_OPSFILES =
315
316GEN_HEADERS = \
317    $(INC_DIR)\vtable.h \
318    $(INC_DIR)\oplib\core_ops.h \
319    $(INC_DIR)\oplib\ops.h \
320    $(INC_DIR)\oplib\core_ops_switch.h \
321    $(INC_DIR)\extend_vtable.h \
322    $(INC_DIR)\pbcversion.h
323
324GEN_SOURCES = \
325    $(SRC_DIR)\core_ops.c \
326    $(SRC_DIR)\nci.c \
327    $(SRC_DIR)\core_ops_switch.c \
328    $(SRC_DIR)\jit_cpu.c \
329    $(SRC_DIR)\parrot_config.c \
330    $(SRC_DIR)\null_config.c \
331    $(SRC_DIR)\install_config.c \
332    $(SRC_DIR)\exec_cpu.c \
333    $(SRC_DIR)\jit_defs.c \
334    $(SRC_DIR)\extend_vtable.c
335
336GEN_MODULES = \
337    lib\Parrot\OpLib\core.pm
338
339GEN_LIBRARY = \
340    $(LIBRARY_DIR)\CGI\QueryHash.pbc \
341    $(LIBRARY_DIR)\Crow.pbc \
342    $(LIBRARY_DIR)\config.pbc \
343    $(LIBRARY_DIR)\Config\JSON.pbc \
344    $(LIBRARY_DIR)\Data\Dumper\Base.pbc \
345    $(LIBRARY_DIR)\Data\Dumper\Default.pbc \
346    $(LIBRARY_DIR)\Data\Dumper.pbc \
347    $(LIBRARY_DIR)\Digest\MD5.pbc \
348    $(LIBRARY_DIR)\dumper.pbc \
349    $(LIBRARY_DIR)\yaml_dumper.pbc \
350    $(LIBRARY_DIR)\Getopt\Obj.pbc \
351    $(LIBRARY_DIR)\Iter.pbc \
352    $(LIBRARY_DIR)\JSON.pbc \
353    $(LIBRARY_DIR)\Math\Random\mt19937ar.pbc \
354    $(LIBRARY_DIR)\Math\Rand.pbc \
355    $(LIBRARY_DIR)\MIME\Base64.pbc \
356    $(LIBRARY_DIR)\NCI\Utils.pbc \
357    $(LIBRARY_DIR)\NCI\call_toolkit_init.pbc \
358    $(LIBRARY_DIR)\ncurses.pbc \
359    $(LIBRARY_DIR)\P6object.pbc \
360    $(LIBRARY_DIR)\parrotlib.pbc \
361    $(LIBRARY_DIR)\pcore.pbc \
362    $(LIBRARY_DIR)\pcre.pbc \
363    $(LIBRARY_DIR)\Parrot\Coroutine.pbc \
364    $(LIBRARY_DIR)\Parrot\Exception.pbc \
365    $(LIBRARY_DIR)\PGE\Dumper.pbc \
366    $(LIBRARY_DIR)\PGE\Glob.pbc \
367    $(LIBRARY_DIR)\PGE\Perl6Grammar.pbc \
368    $(LIBRARY_DIR)\PGE\Text.pbc \
369    $(LIBRARY_DIR)\PGE\Util.pbc \
370    $(LIBRARY_DIR)\Protoobject.pbc \
371    $(LIBRARY_DIR)\Range.pbc \
372    $(LIBRARY_DIR)\Stream\Base.pbc \
373    $(LIBRARY_DIR)\Stream\Combiner.pbc \
374    $(LIBRARY_DIR)\Stream\Coroutine.pbc \
375    $(LIBRARY_DIR)\Stream\Filter.pbc \
376    $(LIBRARY_DIR)\Stream\Lines.pbc \
377    $(LIBRARY_DIR)\Stream\ParrotIO.pbc \
378    $(LIBRARY_DIR)\Stream\Replay.pbc \
379    $(LIBRARY_DIR)\Stream\Sub.pbc \
380    $(LIBRARY_DIR)\Stream\Writer.pbc \
381    $(LIBRARY_DIR)\String\Utils.pbc \
382    $(LIBRARY_DIR)\Test\Builder\Output.pbc \
383    $(LIBRARY_DIR)\Test\Builder\Test.pbc \
384    $(LIBRARY_DIR)\Test\Builder\Tester.pbc \
385    $(LIBRARY_DIR)\Test\Builder\TestPlan.pbc \
386    $(LIBRARY_DIR)\Test\Builder.pbc \
387    $(LIBRARY_DIR)\Test\Class.pbc \
388    $(LIBRARY_DIR)\Test\More.pbc \
389    $(LIBRARY_DIR)\Tcl\Glob.pbc \
390    $(LIBRARY_DIR)\TclLibrary.pbc \
391    $(LIBRARY_DIR)\uuid.pbc \
392    $(LIBRARY_DIR)\YAML\Dumper\Base.pbc \
393    $(LIBRARY_DIR)\YAML\Dumper\Default.pbc \
394    $(LIBRARY_DIR)\YAML\Dumper.pbc \
395    $(LIBRARY_DIR)\YAML\Parser\Syck.pbc \
396    $(LIBRARY_DIR)\STM.pbc \
397    $(LIBRARY_DIR)\libpcre.pbc \
398    $(LIBRARY_DIR)\Data\Replace.pbc \
399    $(LIBRARY_DIR)\postgres.pbc
400
401# the dependencies of $(SRC_DIR)\jit_emit.h are done explicitly
402# including this file in GEN_HEADERS causes unnecessary recompile of all
403FLUID_FILES_1 = \
404    $(GEN_OPSFILES) \
405    $(GEN_HEADERS) \
406    $(GEN_SOURCES) \
407    $(GEN_MODULES) \
408    $(SRC_DIR)\jit_emit.h
409
410FLUID_FILES_2 = \
411    $(GEN_LIBRARY) \
412    runtime\parrot\include\parrotlib.pbc
413
414
415###############################################################################
416#
417# OTHER FILE GROUPS:
418#
419###############################################################################
420
421# these are private to the IMCC subsystem
422IMCC_H_FILES = \
423    $(IMCC_DIR)\imc.h \
424    $(IMCC_DIR)\cfg.h \
425    $(IMCC_DIR)\instructions.h \
426    $(IMCC_DIR)\debug.h \
427    $(IMCC_DIR)\sets.h \
428    $(IMCC_DIR)\unit.h \
429    $(IMCC_DIR)\symreg.h \
430    $(IMCC_DIR)\pbc.h \
431    $(IMCC_DIR)\optimizer.h \
432    $(IMCC_DIR)\parser.h \
433    $(IMCC_DIR)\imcparser.h
434
435IMCC_O_FILES = \
436    $(IMCC_DIR)\imcparser$(O) \
437    $(IMCC_DIR)\imclexer$(O) \
438    $(IMCC_DIR)\imc$(O) \
439    $(IMCC_DIR)\main$(O) \
440    $(IMCC_DIR)\symreg$(O) \
441    $(IMCC_DIR)\instructions$(O) \
442    $(IMCC_DIR)\cfg$(O) \
443    $(IMCC_DIR)\reg_alloc$(O) \
444    $(IMCC_DIR)\sets$(O) \
445    $(IMCC_DIR)\debug$(O) \
446    $(IMCC_DIR)\optimizer$(O) \
447    $(IMCC_DIR)\pbc$(O) \
448    $(IMCC_DIR)\parser_util$(O) \
449    $(IMCC_DIR)\pcc$(O)
450
451# these are private to the PIRC subsystem
452PIRC_O_FILES = \
453    $(PIRC_DIR)\bcgen$(O) \
454    $(PIRC_DIR)\pircapi$(O) \
455    $(PIRC_DIR)\pirerr$(O) \
456    $(PIRC_DIR)\pirop$(O)
457
458# generated list of header files
459GENERAL_H_FILES   = $(NONGEN_HEADERS) $(GEN_HEADERS) $(INC_DIR)\oplib\core_ops_cg.h $(INC_DIR)\oplib\core_ops_cgp.h
460
461ALL_H_FILES       = $(GENERAL_H_FILES)
462
463CHARSET_O_FILES   =  src\string\charset\ascii$(O) src\string\charset\binary$(O) src\string\charset\iso-8859-1$(O) src\string\charset\tables$(O) src\string\charset\unicode$(O)
464CLASS_PMC_FILES   =  src\pmc\default.pmc src\pmc\null.pmc src\pmc\env.pmc src\pmc\key.pmc src\pmc\random.pmc src\pmc\unmanagedstruct.pmc src\pmc\managedstruct.pmc src\pmc\exception.pmc src\pmc\parrotlibrary.pmc src\pmc\parrotinterpreter.pmc src\pmc\parrotthread.pmc src\pmc\lexpad.pmc src\pmc\timer.pmc src\pmc\pointer.pmc src\pmc\sub.pmc src\pmc\continuation.pmc src\pmc\retcontinuation.pmc src\pmc\coroutine.pmc src\pmc\eval.pmc src\pmc\nci.pmc src\pmc\float.pmc src\pmc\integer.pmc src\pmc\bigint.pmc src\pmc\bignum.pmc src\pmc\complex.pmc src\pmc\string.pmc src\pmc\boolean.pmc src\pmc\array.pmc src\pmc\fixedintegerarray.pmc src\pmc\iterator.pmc src\pmc\fixedstringarray.pmc src\pmc\hash.pmc src\pmc\orderedhash.pmc src\pmc\os.pmc src\pmc\file.pmc src\pmc\addrregistry.pmc src\pmc\callsignature.pmc src\pmc\capture.pmc src\pmc\class.pmc src\pmc\codestring.pmc src\pmc\cpointer.pmc src\pmc\eventhandler.pmc src\pmc\exceptionhandler.pmc src\pmc\exporter.pmc src\pmc\filehandle.pmc src\pmc\fixedbooleanarray.pmc src\pmc\fixedfloatarray.pmc src\pmc\fixedpmcarray.pmc src\pmc\handle.pmc src\pmc\lexinfo.pmc src\pmc\multisub.pmc src\pmc\namespace.pmc src\pmc\object.pmc src\pmc\packfile.pmc src\pmc\packfileannotation.pmc src\pmc\packfileannotations.pmc src\pmc\packfileconstanttable.pmc src\pmc\packfiledirectory.pmc src\pmc\packfilefixupentry.pmc src\pmc\packfilefixuptable.pmc src\pmc\packfilerawsegment.pmc src\pmc\packfilesegment.pmc src\pmc\parrotrunningthread.pmc src\pmc\pccmethod_test.pmc src\pmc\pmcproxy.pmc src\pmc\resizablebooleanarray.pmc src\pmc\resizablefloatarray.pmc src\pmc\resizableintegerarray.pmc src\pmc\resizablepmcarray.pmc src\pmc\resizablestringarray.pmc src\pmc\role.pmc src\pmc\scalar.pmc src\pmc\scheduler.pmc src\pmc\schedulermessage.pmc src\pmc\sockaddr.pmc src\pmc\socket.pmc src\pmc\stringhandle.pmc src\pmc\task.pmc src\pmc\undef.pmc
465CLASS_O_FILES     =  src\pmc\default$(O) src\pmc\null$(O) src\pmc\env$(O) src\pmc\key$(O) src\pmc\random$(O) src\pmc\unmanagedstruct$(O) src\pmc\managedstruct$(O) src\pmc\exception$(O) src\pmc\parrotlibrary$(O) src\pmc\parrotinterpreter$(O) src\pmc\parrotthread$(O) src\pmc\lexpad$(O) src\pmc\timer$(O) src\pmc\pointer$(O) src\pmc\sub$(O) src\pmc\continuation$(O) src\pmc\retcontinuation$(O) src\pmc\coroutine$(O) src\pmc\eval$(O) src\pmc\nci$(O) src\pmc\float$(O) src\pmc\integer$(O) src\pmc\bigint$(O) src\pmc\bignum$(O) src\pmc\complex$(O) src\pmc\string$(O) src\pmc\boolean$(O) src\pmc\array$(O) src\pmc\fixedintegerarray$(O) src\pmc\iterator$(O) src\pmc\fixedstringarray$(O) src\pmc\hash$(O) src\pmc\orderedhash$(O) src\pmc\os$(O) src\pmc\file$(O) src\pmc\addrregistry$(O) src\pmc\callsignature$(O) src\pmc\capture$(O) src\pmc\class$(O) src\pmc\codestring$(O) src\pmc\cpointer$(O) src\pmc\eventhandler$(O) src\pmc\exceptionhandler$(O) src\pmc\exporter$(O) src\pmc\filehandle$(O) src\pmc\fixedbooleanarray$(O) src\pmc\fixedfloatarray$(O) src\pmc\fixedpmcarray$(O) src\pmc\handle$(O) src\pmc\lexinfo$(O) src\pmc\multisub$(O) src\pmc\namespace$(O) src\pmc\object$(O) src\pmc\packfile$(O) src\pmc\packfileannotation$(O) src\pmc\packfileannotations$(O) src\pmc\packfileconstanttable$(O) src\pmc\packfiledirectory$(O) src\pmc\packfilefixupentry$(O) src\pmc\packfilefixuptable$(O) src\pmc\packfilerawsegment$(O) src\pmc\packfilesegment$(O) src\pmc\parrotrunningthread$(O) src\pmc\pccmethod_test$(O) src\pmc\pmcproxy$(O) src\pmc\resizablebooleanarray$(O) src\pmc\resizablefloatarray$(O) src\pmc\resizableintegerarray$(O) src\pmc\resizablepmcarray$(O) src\pmc\resizablestringarray$(O) src\pmc\role$(O) src\pmc\scalar$(O) src\pmc\scheduler$(O) src\pmc\schedulermessage$(O) src\pmc\sockaddr$(O) src\pmc\socket$(O) src\pmc\stringhandle$(O) src\pmc\task$(O) src\pmc\undef$(O)
466CLASS_STR_FILES   =  src\pmc\default.str src\pmc\null.str src\pmc\env.str src\pmc\key.str src\pmc\random.str src\pmc\unmanagedstruct.str src\pmc\managedstruct.str src\pmc\exception.str src\pmc\parrotlibrary.str src\pmc\parrotinterpreter.str src\pmc\parrotthread.str src\pmc\lexpad.str src\pmc\timer.str src\pmc\pointer.str src\pmc\sub.str src\pmc\continuation.str src\pmc\retcontinuation.str src\pmc\coroutine.str src\pmc\eval.str src\pmc\nci.str src\pmc\float.str src\pmc\integer.str src\pmc\bigint.str src\pmc\bignum.str src\pmc\complex.str src\pmc\string.str src\pmc\boolean.str src\pmc\array.str src\pmc\fixedintegerarray.str src\pmc\iterator.str src\pmc\fixedstringarray.str src\pmc\hash.str src\pmc\orderedhash.str src\pmc\os.str src\pmc\file.str src\pmc\addrregistry.str src\pmc\callsignature.str src\pmc\capture.str src\pmc\class.str src\pmc\codestring.str src\pmc\cpointer.str src\pmc\eventhandler.str src\pmc\exceptionhandler.str src\pmc\exporter.str src\pmc\filehandle.str src\pmc\fixedbooleanarray.str src\pmc\fixedfloatarray.str src\pmc\fixedpmcarray.str src\pmc\handle.str src\pmc\lexinfo.str src\pmc\multisub.str src\pmc\namespace.str src\pmc\object.str src\pmc\packfile.str src\pmc\packfileannotation.str src\pmc\packfileannotations.str src\pmc\packfileconstanttable.str src\pmc\packfiledirectory.str src\pmc\packfilefixupentry.str src\pmc\packfilefixuptable.str src\pmc\packfilerawsegment.str src\pmc\packfilesegment.str src\pmc\parrotrunningthread.str src\pmc\pccmethod_test.str src\pmc\pmcproxy.str src\pmc\resizablebooleanarray.str src\pmc\resizablefloatarray.str src\pmc\resizableintegerarray.str src\pmc\resizablepmcarray.str src\pmc\resizablestringarray.str src\pmc\role.str src\pmc\scalar.str src\pmc\scheduler.str src\pmc\schedulermessage.str src\pmc\sockaddr.str src\pmc\socket.str src\pmc\stringhandle.str src\pmc\task.str src\pmc\undef.str
467ENCODING_O_FILES  =  src\string\encoding\fixed_8$(O) src\string\encoding\ucs2$(O) src\string\encoding\utf16$(O) src\string\encoding\utf8$(O)
468
469
470IO_O_FILES = \
471    $(IO_DIR)\core$(O) \
472    $(IO_DIR)\api$(O) \
473    $(IO_DIR)\utf8$(O) \
474    $(IO_DIR)\buffer$(O) \
475    $(IO_DIR)\unix$(O) \
476    $(IO_DIR)\win32$(O) \
477    $(IO_DIR)\portable$(O) \
478    $(IO_DIR)\filehandle$(O) \
479    $(IO_DIR)\socket_api$(O) \
480    $(IO_DIR)\socket_unix$(O) \
481    $(IO_DIR)\socket_win32$(O)
482
483INTERP_O_FILES = \
484    $(SRC_DIR)\string\api$(O) \
485    \
486    $(OPS_DIR)\core_ops$(O) \
487    $(OPS_DIR)\core_ops_switch$(O) \
488    \
489    $(SRC_DIR)\byteorder$(O) \
490    $(SRC_DIR)\string\charset$(O) \
491    $(SRC_DIR)\core_pmcs$(O) \
492    $(SRC_DIR)\datatypes$(O) \
493    $(SRC_DIR)\debug$(O) \
494    $(SRC_DIR)\dynext$(O) \
495    $(SRC_DIR)\embed$(O) \
496    $(SRC_DIR)\string\encoding$(O) \
497    $(SRC_DIR)\events$(O) \
498    $(SRC_DIR)\exceptions$(O) \
499    $(SRC_DIR)\exit$(O) \
500    $(SRC_DIR)\extend$(O) \
501    $(SRC_DIR)\extend_vtable$(O) \
502    $(SRC_DIR)\gc\alloc_memory$(O) \
503    $(SRC_DIR)\gc\alloc_register$(O) \
504    $(SRC_DIR)\gc\api$(O) \
505    $(SRC_DIR)\gc\generational_ms$(O) \
506    $(SRC_DIR)\gc\incremental_ms$(O) \
507    $(SRC_DIR)\gc\gc_ms$(O) \
508    $(SRC_DIR)\gc\mark_sweep$(O) \
509    $(SRC_DIR)\gc\system$(O) \
510    $(SRC_DIR)\global$(O) \
511    $(SRC_DIR)\global_setup$(O) \
512    $(SRC_DIR)\hash$(O) \
513    $(SRC_DIR)\hll$(O) \
514    $(SRC_DIR)\call\pcc$(O)  \
515    $(SRC_DIR)\interp\inter_cb$(O)  \
516    $(SRC_DIR)\interp\inter_create$(O)  \
517    $(SRC_DIR)\interp\inter_misc$(O)  \
518    $(SRC_DIR)\call\ops$(O)  \
519    $(SRC_DIR)\key$(O) \
520    $(SRC_DIR)\library$(O) \
521    $(SRC_DIR)\list$(O) \
522    $(SRC_DIR)\longopt$(O) \
523    $(SRC_DIR)\misc$(O) \
524    $(SRC_DIR)\multidispatch$(O) \
525    $(SRC_DIR)\nci$(O) \
526    $(SRC_DIR)\oo$(O) \
527    $(SRC_DIR)\packfile$(O) \
528    $(SRC_DIR)\packout$(O) \
529    $(SRC_DIR)\pic_jit$(O) \
530    $(SRC_DIR)\pic$(O) \
531    $(SRC_DIR)\platform$(O) \
532    $(SRC_DIR)\pmc_freeze$(O) \
533    $(SRC_DIR)\pmc$(O) \
534    $(SRC_DIR)\runcore\main$(O)  \
535    $(SRC_DIR)\runcore\cores$(O) \
536    $(SRC_DIR)\scheduler$(O) \
537    $(SRC_DIR)\spf_render$(O) \
538    $(SRC_DIR)\spf_vtable$(O) \
539    $(SRC_DIR)\stacks$(O) \
540    $(SRC_DIR)\string\primitives$(O) \
541    $(SRC_DIR)\sub$(O) \
542    $(SRC_DIR)\thread$(O) \
543    $(SRC_DIR)\runcore\trace$(O) \
544    $(SRC_DIR)\tsq$(O) \
545    $(SRC_DIR)\utils$(O) \
546    $(SRC_DIR)\vtables$(O) \
547    $(SRC_DIR)\warnings$(O) \
548    \
549    $(PF_DIR)\pf_items$(O) \
550    \
551     \
552    $(OPS_DIR)\core_ops_cg$(O) $(OPS_DIR)\core_ops_cgp$(O) \
553    $(SRC_DIR)\exec$(O) $(SRC_DIR)\exec_cpu$(O) $(SRC_DIR)\exec_dep$(O) $(SRC_DIR)\exec_save$(O) \
554     \
555    $(SRC_DIR)\jit$(O) $(SRC_DIR)\jit_cpu$(O) $(SRC_DIR)\jit_debug$(O) $(SRC_DIR)\jit_debug_xcoff$(O) $(SRC_DIR)\jit_defs$(O) \
556    $(SRC_DIR)\gc\alloc_resources$(O) \
557
558O_FILES = \
559    $(INTERP_O_FILES) \
560    $(CHARSET_O_FILES) \
561    $(IO_O_FILES) \
562    $(CLASS_O_FILES) \
563    $(ENCODING_O_FILES) \
564    $(IMCC_O_FILES)
565
566OPS_FILES = src\ops\core.ops src\ops\bit.ops src\ops\cmp.ops src\ops\debug.ops src\ops\experimental.ops src\ops\io.ops src\ops\math.ops src\ops\object.ops src\ops\pic.ops src\ops\pmc.ops src\ops\set.ops src\ops\string.ops src\ops\sys.ops src\ops\var.ops $(GEN_OPSFILES)
567
568###############################################################################
569#
570# BUILD TARGET CONFIGURATIONS:
571#
572###############################################################################
573
574# Executables
575PARROT              = $(CUR_DIR)\parrot$(EXE)
576MINIPARROT          = $(CUR_DIR)\miniparrot$(EXE)
577DIS                 = $(CUR_DIR)\pbc_disassemble$(EXE)
578PDUMP               = $(CUR_DIR)\pbc_dump$(EXE)
579PINFO               = $(CUR_DIR)\pbc_info$(EXE)
580PBCMERGE            = $(CUR_DIR)\pbc_merge$(EXE)
581PDB                 = $(CUR_DIR)\parrot_debugger$(EXE)
582PBC_TO_EXE          = $(CUR_DIR)\pbc_to_exe$(EXE)
583PARROT_CONFIG       = $(CUR_DIR)\parrot_config$(EXE)
584PIRC                = $(CUR_DIR)\pirc$(EXE)
585
586# Installable executables
587INSTALLABLEPARROT   = $(CUR_DIR)\installable_parrot$(EXE)
588INSTALLABLEDIS      = $(CUR_DIR)\installable_pbc_disassemble$(EXE)
589INSTALLABLEPDUMP    = $(CUR_DIR)\installable_pbc_dump$(EXE)
590INSTALLABLEPINFO    = $(CUR_DIR)\installable_pbc_info$(EXE)
591INSTALLABLEPBCMERGE = $(CUR_DIR)\installable_pbc_merge$(EXE)
592INSTALLABLEPBCTOEXE = $(CUR_DIR)\installable_pbc_to_exe$(EXE)
593INSTALLABLEPDB      = $(CUR_DIR)\installable_parrot_debugger$(EXE)
594INSTALLABLECONFIG   = $(CUR_DIR)\installable_parrot_config$(EXE)
595
596# Libraries
597LIBPARROT_STATIC    = blib\lib\libparrot.a
598LIBPARROT_SHARED  = libparrot.dll
599
600# This line controls whether a static or shared library is built
601LIBPARROT           = $(LIBPARROT_SHARED)
602
603ICU_SHARED  = C:\GnuTC\MinGW\lib\icuuc.lib
604ALL_PARROT_LIBS     = "C:\GnuTC\MSYS\home\MoC\parrot-svn\libparrot.dll" $(ICU_SHARED) $(C_LIBS)
605
606# dynamic extensions
607DYNEXT_DIR          = runtime\parrot\dynext
608LIBNCI_TEST_SO      = $(DYNEXT_DIR)\libnci_test$(LOAD_EXT)
609LIBGLUTCB_SO        = $(DYNEXT_DIR)\libglutcb$(LOAD_EXT)
610
611###############################################################################
612#
613# MAKE CONFIGURATION:
614#
615###############################################################################
616
617# This is set to MAKE=$make if your $make command doesn't
618# do it for you.
619#
620MAKE = $(PERL) -e "chdir shift @ARGV; system 'dmake', @ARGV; exit $$? >> 8;"
621
622# These need to be above lines that define suffix rules to be portable
623# (certainly FreeBSD make doesn't grok the pir.pbc rule otherwise)
624
625.SUFFIXES : .c .S .s .pmc .dump $(O) .str .pir .pbc
626
627# Passing an empty argument in @ARGV to cc_flags.pl to indicate where extra -Is
628# (etc) should go. Otherwise it will insert them after the first space, which
629# makes life go horribly wrong if $(CC) contains spaces but can't have -I
630# arguments (etc) injected in the middle.
631# There is probably a better way to do this, but I can't work it out right now.
632.c$(O) : # suffix rule (limited support)
633        @$(PERL) tools\dev\cc_flags.pl $(CUR_DIR)\CFLAGS $(CC) "" $(CFLAGS) -I$(@D) -o $@ -c $<
634
635# XXX probably should detect assembler, but right now this is only used on Sparc
636
637.s$(O) : # suffix rule (limited support)
638        @$(PERL) tools\dev\cc_flags.pl $(CUR_DIR)\CFLAGS $(CC) "" $(CFLAGS) -I$(@D) -o $@ -c $<
639#UNLESS(win32).S$(O) : # suffix rule (limited support)
640#UNLESS(win32)  @$(PERL) tools\dev\cc_flags.pl $(CUR_DIR)\CFLAGS $(CC) "" $(CFLAGS) -I$(@D) -o $@ -c $<
641
642# XXX These obviously require parrot: had trouble adding parrot as a dependency
643# here, though. Ignored on Mac OS X, at least.
644
645.pir.pbc : # suffix rule (limited support)
646        $(PARROT) -o $@ $<
647
648.pbc$(O) : # suffix rule (limited support)
649        $(PARROT) -o $@ $<
650
651
652###############################################################################
653#
654# USER TARGETS:
655#
656# These targets are supposed to be called by the user.
657#
658###############################################################################
659
660all : \
661    flags_dummy \
662    PARROT_LIBS \
663    $(PARROT) \
664    runtime\parrot\include\parrotlib.pbc \
665    runtime\parrot\include\config.fpmc \
666    docs \
667    $(LIBNCI_TEST_SO) \
668    $(GEN_LIBRARY) \
669    dynpmc \
670    dynoplibs \
671    compilers \
672    $(DIS) \
673    $(PARROT_CONFIG) \
674    $(PBC_TO_EXE) \
675    $(PBCMERGE) \
676    $(PDB) \
677    $(PDUMP) \
678    $(PINFO) \
679
680$(GEN_LIBRARY) : $(PARROT)
681
682# constant string support
683.c.str : # suffix rule (limited support)
684        $(PERL) $(BUILD_TOOLS_DIR)\c2str.pl $< > $@
685
686STR_FILES = \
687    $(SRC_DIR)\debug.str \
688    $(SRC_DIR)\dynext.str \
689    $(SRC_DIR)\events.str \
690    $(SRC_DIR)\exceptions.str \
691    $(SRC_DIR)\global.str \
692    $(SRC_DIR)\global_setup.str \
693    $(SRC_DIR)\hll.str \
694    $(SRC_DIR)\call\pcc.str \
695    $(SRC_DIR)\interp\inter_cb.str \
696    $(SRC_DIR)\interp\inter_create.str \
697    $(SRC_DIR)\interp\inter_misc.str \
698    $(SRC_DIR)\io\api.str \
699    $(SRC_DIR)\key.str \
700    $(SRC_DIR)\library.str \
701    $(SRC_DIR)\multidispatch.str \
702    $(SRC_DIR)\nci.str \
703    $(SRC_DIR)\packfile.str \
704    $(SRC_DIR)\pmc.str \
705    $(SRC_DIR)\pmc_freeze.str \
706    $(SRC_DIR)\oo.str \
707    $(SRC_DIR)\scheduler.str \
708    $(SRC_DIR)\spf_render.str \
709    $(SRC_DIR)\spf_vtable.str \
710    $(SRC_DIR)\string\api.str \
711    $(SRC_DIR)\sub.str \
712    $(SRC_DIR)\stacks.str \
713    \
714    $(CLASS_STR_FILES)
715
716$(SRC_DIR)\string\private_cstring.h : $(STR_FILES) $(BUILD_TOOLS_DIR)\c2str.pl
717        $(PERL) $(BUILD_TOOLS_DIR)\c2str.pl --all
718
719# classes PMC build utils and rules
720PMC2CD = $(PERL) $(BUILD_TOOLS_DIR)\pmc2c.pl --dump
721PMC2CC = $(PERL) $(BUILD_TOOLS_DIR)\pmc2c.pl --c
722PMC2CV = $(PERL) $(BUILD_TOOLS_DIR)\pmc2c.pl --vtable
723
724.pmc.dump : # suffix rule (limited support)
725        $(PMC2CD) $<
726
727.pmc.c : # suffix rule (limited support)
728        $(PMC2CC) $<
729
730# not all makes might understand this, so the rules are generated
731#src\pmc\pmc_%.h : src\pmc\%.c
732#       $(PMC2CC) $<
733
734vtable.dump : src\vtable.tbl
735        $(PMC2CV)
736
737# This is a listing of all targets meant to be called by users
738help :
739        @echo ""
740        @echo "Following targets are available for the user:"
741        @echo ""
742        @echo "Executables:"
743        @echo "  all:               'parrot' and the documentation."
744        @echo "                     This is the default."
745        @echo ""
746        @echo "  world:             'all' and 'parrot_utils'."
747        @echo "  installable:       same as 'world', but targets for installation"
748        @echo ""
749        @echo "  parrot_utils:      $(PDUMP), $(DIS), $(PINFO), $(PDB), $(PBCMERGE) and $(PBC_TO_EXE) $(PARROT_CONFIG)"
750        @echo " $(PDUMP):"
751        @echo "                     Parrot Dumper"
752        @echo " $(DIS):"
753        @echo "                     Parrot Disassembler"
754        @echo " $(PINFO):"
755        @echo "                     Information about Parrot Byte Code"
756        @echo " $(PDB):"
757        @echo "                     Parrot Debugger"
758        @echo " $(PBCMERGE):"
759        @echo "                     Merge bytecode files"
760        @echo " $(PBC_TO_EXE):"
761        @echo "                     Generate C, compile, and link bytecode files"
762        @echo " $(PARROT_CONFIG):"
763        @echo "                     Provide Parrot configuration information"
764        @echo ""
765        @echo "Installation:"
766        @echo "  install:           Install under '$(PREFIX)' on Unix systems"
767        @echo "  install-dev:       Same as 'install' but also install support for development."
768        @echo ""
769        @echo "Documentation:"
770        @echo "  help:              Print this help message."
771        @echo "  docs:              Generate documentation from POD in the sources."
772        @echo "  html:              Generate HTML documentation from POD in the sources."
773        @echo "  html-clean:        Remove the HTML documentation."
774        @echo "  htmlhelp:          Compile HTML documentation (CHM format)."
775        @echo ""
776        @echo "Testing:"
777        @echo "  test:              Run the standard test suite."
778        @echo "  coretest:          Run the minimal 'core functionality' suite."
779        @echo "  codetest:          Run file metadata and coding standards tests."
780        @echo "  fulltest:          Run the full test suite under many runcores."
781        @echo "  test<runcore>:     Run the test suite with a specified runcore."
782        @echo "                     Valid runcores are b, C, f, g, j, r, S."
783        @echo "  src_tests:         Run test in C-file."
784        @echo "  run_tests:         Command line and various environments."
785        @echo "  perl_tests:        Test the Perl modules in the distribution."
786        @echo "  codingstd_tests:   Test pdd07_codingstd."
787        @echo "  testexec:          Testing the exec runcore."
788        @echo "  benchmark_tests:   Run all benchmarks."
789        @echo "  warnings_tests:    Run standard test suite with warnings enabled."
790        @echo "  manitest:          Check for new and missing files."
791        @echo "  buildtools_tests:  Test build tool pmc2c.pl."
792        @echo "  manifest_tests:    Test code underlying mk_manifest_and_skip.pl."
793        @echo "  examples_tests:    Test the example scripts."
794        @echo ""
795        @echo "Smoke Testing:"
796        @echo "  smolder_test:      Run the test suite and send report to the smolder server"
797        @echo "  smolder_coretest:  Run the minimal 'core functionality' suite and send report to the smolder server."
798        @echo "  smoke:             Alias for smolder_test"
799        @echo ""
800        @echo "Benchmarks:"
801        @echo "  mopsbench:         Million operations"
802        @echo ""
803        @echo "Cleaning:"
804        @echo "  clean:             Basic cleaning up."
805        @echo "  archclean:         Remove any platform dependent files."
806        @echo "  realclean:         Removes also files generated by 'Configure.pl'"
807        @echo "  distclean:         Removes also anything built, in theory."
808        @echo "  svnclobber:        *Dangerous*: remove everything not in svn."
809        @echo "  reconfig:          'clean' and redo configuration."
810        @echo ""
811        @echo "Dynamic PMCs:"
812        @echo "  dynpmc:            Proxy for default target of src\dynpmc\Makefile"
813        @echo "  dynpmc-test:       Proxy for target 'test' of src\dynpmc\Makefile"
814        @echo "  dynpmc-clean:      Proxy for target 'clean' of src\dynpmc\Makefile"
815        @echo ""
816        @echo "Dynamic oplibs:"
817        @echo "  dynoplibs:         Proxy for default target of src\dynoplibs\Makefile"
818        @echo "  dynoplibs-test:    Proxy for target 'test' of src\dynoplibs\Makefile"
819        @echo "  dynoplibs-clean:   Proxy for target 'clean' of src\dynoplibs\Makefile"
820        @echo ""
821        @echo "Language implementations:"
822        @echo "  compilers:         Proxy for default target of pge and tge compilers"
823        @echo ""
824        @echo "Fetch from source repository:"
825        @echo "  update:            svn update."
826        @echo "  status:            svn status."
827        @echo "  patch:             Create a patch for sending to bugs-parrot."
828        @echo ""
829        @echo "Development:"
830        @echo "  lint:              An alias for sunlint."
831        @echo "  bsdlint:           Code checking with bsdlint."
832        @echo "  sunlint:           Code checking with Sun Studio's sunlint."
833        @echo "  splint:            Code checking with splint."
834        @echo "  splint-all:        Splint all of Parrot, for the masochist only."
835        @echo "  headerizer:        Recreate header files for C-source files"
836        @echo "  apilist:           Show list of PARROT_EXPORT functions"
837        @echo "  malloclist:        Show list of PARROT_MALLOC functions"
838        @echo "  cover:             Run test suite coverage analysis."
839        @echo "  tags-vi:           Create tags for the vi editor."
840        @echo "  tags-emacs:        Create tags for the EMACS editor."
841        @echo "  perlcritic:        Check Perl code with Perl::Critic."
842        @echo ""
843        @echo "Release:"
844        @echo "  release:           Create a tarball."
845        @echo "  win32-inno-installer:  Create MSWin32 setup."
846        @echo ""
847        @echo "Examples:"
848        @echo "  hello:             'Hello World' as an executable."
849        @echo ""
850
851world : all parrot_utils
852
853parrot_utils : $(PDUMP) $(DIS) $(PINFO) $(PDB) $(PBCMERGE) $(PBC_TO_EXE) $(PARROT_CONFIG)
854
855installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPINFO) $(INSTALLABLEPDB) $(INSTALLABLEPBCMERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG)
856
857
858flags_dummy :
859        @echo "Compiling with:"
860        @$(PERL) tools\dev\cc_flags.pl $(CUR_DIR)\CFLAGS echo $(CC) $(CFLAGS) -I$(@D) -o  xx$(O) -c xx.c
861
862runtime\parrot\include\parrotlib.pbc: runtime\parrot\library\parrotlib.pir $(PARROT)
863        $(PARROT) -o $@ runtime\parrot\library\parrotlib.pir
864
865runtime\parrot\include\config.fpmc : myconfig config_lib.pasm $(MINIPARROT)
866        @echo Invoking Parrot to generate runtime\parrot\include\config.fpmc --cross your fingers
867        $(MINIPARROT) config_lib.pasm > $@
868
869$(PARROT) : $(SRC_DIR)\main$(O) $(GEN_HEADERS) $(LIBPARROT) CFLAGS \
870    lib\Parrot\OpLib\core.pm $(SRC_DIR)\parrot_config$(O) \
871    $(MINIPARROT)
872        $(LINK) -o $@ \
873        $(SRC_DIR)\main$(O) $(SRC_DIR)\parrot_config$(O) \
874         $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC)
875        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
876
877$(PBC_TO_EXE) : tools\dev\pbc_to_exe.pir runtime\parrot\library\config.pir $(PARROT)
878        $(PARROT) -o pbc_to_exe.pbc tools\dev\pbc_to_exe.pir
879        $(PARROT) pbc_to_exe.pbc pbc_to_exe.pbc
880
881$(PARROT_CONFIG) : tools\util\parrot-config.pir $(PARROT) $(PBC_TO_EXE)
882        $(PARROT) -o parrot_config.pbc tools\util\parrot-config.pir
883        $(PARROT) pbc_to_exe.pbc parrot_config.pbc
884
885pirc : $(PIRC)
886
887$(PIRC) : $(PARROT)
888        $(MAKE) compilers\pirc
889        $(CP) compilers\pirc\pirc$(EXE) $(PIRC)
890        $(CHMOD) 0755 $(PIRC)
891
892$(MINIPARROT) : $(SRC_DIR)\main$(O) $(GEN_HEADERS) $(LIBPARROT) \
893    lib\Parrot\OpLib\core.pm $(SRC_DIR)\null_config$(O)
894        $(LINK) -o $@ $(SRC_DIR)\main$(O) $(SRC_DIR)\null_config$(O) \
895         $(ALL_PARROT_LIBS) $(LINKFLAGS)
896        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
897
898$(INSTALLABLEPARROT) : $(SRC_DIR)\main$(O) $(GEN_HEADERS) $(LIBPARROT) \
899    lib\Parrot\OpLib\core.pm $(SRC_DIR)\install_config$(O) \
900    $(PARROT)
901        $(LINK) -o $@ \
902    $(SRC_DIR)\main$(O) $(SRC_DIR)\install_config$(O) \
903     $(ALL_PARROT_LIBS) $(LINKFLAGS)
904        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
905
906$(INC_DIR)\parrot.h : $(INC_DIR)\pbcversion.h $(INC_DIR)\vtable.h
907
908$(INC_DIR)\extend.h : $(INC_DIR)\extend_vtable.h
909
910$(INC_DIR)\pbcversion.h :
911        $(PERL) $(BUILD_TOOLS_DIR)\pbcversion_h.pl > $(INC_DIR)\pbcversion.h
912
913$(SRC_DIR)\parrot_config.c :  runtime\parrot\include\config.fpmc \
914    $(BUILD_TOOLS_DIR)\parrot_config_c.pl
915        $(PERL) $(BUILD_TOOLS_DIR)\parrot_config_c.pl > \
916    $(SRC_DIR)\parrot_config.c
917
918$(SRC_DIR)\install_config.c :  install_config.fpmc \
919    $(BUILD_TOOLS_DIR)\parrot_config_c.pl
920        $(PERL) $(BUILD_TOOLS_DIR)\parrot_config_c.pl --install > \
921    $(SRC_DIR)\install_config.c
922
923$(SRC_DIR)\null_config.c : myconfig $(BUILD_TOOLS_DIR)\parrot_config_c.pl
924        $(PERL) $(BUILD_TOOLS_DIR)\parrot_config_c.pl --mini > \
925    $(SRC_DIR)\null_config.c
926
927install_config.fpmc : myconfig config_lib.pasm $(PARROT)
928        @echo "Invoking Parrot to generate install_config.fpmc"
929        $(PARROT) config_lib.pasm --install > $@
930
931$(SRC_DIR)\parrot_config$(O) : $(SRC_DIR)\parrot_config.c
932
933$(SRC_DIR)\install_config$(O) : $(SRC_DIR)\install_config.c
934
935$(SRC_DIR)\null_config$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\null_config.c
936
937$(SRC_DIR)\oo$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\pmc\class.c $(INC_DIR)\pbcversion.h
938
939$(SRC_DIR)\scheduler$(O) : $(INC_DIR)\parrot.h \
940                           $(SRC_DIR)\scheduler.str   \
941                           $(SRC_DIR)\pmc\scheduler.c \
942                           $(SRC_DIR)\pmc\task.c      \
943                           $(SRC_DIR)\pmc\timer.c     \
944                           $(INC_DIR)\pbcversion.h
945
946$(IO_DIR)\core$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\pmc\socket.c
947$(IO_DIR)\socket_api$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\pmc\socket.c
948$(IO_DIR)\socket_unix$(O) : $(INC_DIR)\parrot.h $(INC_DIR)\pbcversion.h   \
949                            $(SRC_DIR)\pmc\socket.c
950$(IO_DIR)\socket_win32$(O) : $(INC_DIR)\parrot.h $(INC_DIR)\pbcversion.h   \
951                            $(SRC_DIR)\pmc\socket.c
952
953lib_deps_object : $(O_FILES)
954        $(PERL) tools\dev\lib_deps.pl object $(O_FILES)
955
956lib_deps_source : $(GENERAL_H_FILES)
957        $(PERL) tools\dev\lib_deps.pl source all_source
958
959lib_deps : lib_deps_object lib_deps_source
960
961# XXX changes don't always propagate into libparrot
962# e.g. when I change debug:fataly to xfataly, nm still shows the old symbol
963# and parrot builds fine (except for the unproto warning
964# so always delete the lib -leo
965
966PARROT_LIBS: \
967  $(LIBPARROT_STATIC) \
968 $(LIBPARROT_SHARED)
969
970$(LIBPARROT_STATIC) : $(O_FILES)
971        $(MKPATH) blib\lib
972        $(AR_CR) $@  $(O_FILES)
973        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
974        $(RANLIB) $@
975
976$(LIBPARROT_SHARED) : $(O_FILES)
977        $(MKPATH) blib\lib
978        $(LD) $(LD_SHARE_FLAGS) $(LDFLAGS) -o $@  \
979                -Wl,--out-implib=libparrot.lib \
980                $(O_FILES) $(C_LIBS) $(ICU_SHARED)
981        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
982
983
984$(INSTALLABLECONFIG) : $(SRC_DIR)\install_config$(O) $(PARROT_CONFIG) $(PBC_TO_EXE)
985        $(PARROT) -o parrot_config.pbc tools\util\parrot-config.pir
986        $(PBC_TO_EXE) parrot_config.pbc --install
987
988$(INSTALLABLEPBCTOEXE) : $(PBC_TO_EXE)
989        $(PBC_TO_EXE) pbc_to_exe.pbc --install
990
991#
992# Parrot Debugger
993#
994
995$(SRC_DIR)\parrot_debugger$(O) : $(GENERAL_H_FILES)
996
997$(PDB) : $(SRC_DIR)\parrot_debugger$(O) $(SRC_DIR)\parrot_config$(O) $(LIBPARROT)
998        $(LINK) -o $@ \
999    $(SRC_DIR)\parrot_debugger$(O) \
1000    $(SRC_DIR)\parrot_config$(O) \
1001     $(ALL_PARROT_LIBS) $(LINKFLAGS)
1002        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
1003
1004$(INSTALLABLEPDB) : $(SRC_DIR)\parrot_debugger$(O) $(LIBPARROT) $(SRC_DIR)\parrot_config$(O)
1005        $(LINK) -o $@ \
1006    $(SRC_DIR)\parrot_debugger$(O) \
1007    $(SRC_DIR)\parrot_config$(O) \
1008     $(ALL_PARROT_LIBS) $(LINKFLAGS)
1009        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
1010
1011#
1012# Parrot Disassembler
1013#
1014
1015$(SRC_DIR)\pbc_disassemble$(O) : $(GENERAL_H_FILES)
1016
1017$(DIS) : $(SRC_DIR)\pbc_disassemble$(O) $(LIBPARROT)
1018        $(LINK) -o $@ \
1019    $(SRC_DIR)\pbc_disassemble$(O) \
1020     $(ALL_PARROT_LIBS) $(LINKFLAGS)
1021        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
1022
1023$(INSTALLABLEDIS) : $(SRC_DIR)\pbc_disassemble$(O) $(LIBPARROT)
1024        $(LINK) -o $@ \
1025    $(SRC_DIR)\pbc_disassemble$(O) \
1026     $(ALL_PARROT_LIBS) $(LINKFLAGS)
1027        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
1028
1029#
1030# Parrot Dump
1031#
1032$(SRC_DIR)\packdump$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\pmc\pmc_key.h
1033
1034$(PDUMP) : $(SRC_DIR)\pbc_dump$(O) $(SRC_DIR)\packdump$(O) $(LIBPARROT)
1035        $(LINK) -o $@ \
1036    $(SRC_DIR)\pbc_dump$(O) \
1037    $(SRC_DIR)\packdump$(O)  $(ALL_PARROT_LIBS) $(LINKFLAGS)
1038        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
1039
1040$(SRC_DIR)\pbc_dump$(O) : $(INC_DIR)\parrot.h $(GEN_HEADERS)
1041
1042$(INSTALLABLEPDUMP) : $(SRC_DIR)\pbc_dump$(O) $(SRC_DIR)\packdump$(O) $(LIBPARROT)
1043        $(LINK) -o $@ \
1044    $(SRC_DIR)\pbc_dump$(O) \
1045    $(SRC_DIR)\packdump$(O) \
1046     $(ALL_PARROT_LIBS) $(LINKFLAGS)
1047        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
1048
1049
1050# pbc_info
1051$(PINFO) : $(SRC_DIR)\pbc_info$(O) $(LIBPARROT)
1052        $(LINK) -o $@ \
1053    $(SRC_DIR)\pbc_info$(O) \
1054     $(ALL_PARROT_LIBS) $(LINKFLAGS)
1055        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
1056
1057$(SRC_DIR)\pbc_info$(O) : $(INC_DIR)\parrot.h $(GEN_HEADERS)
1058
1059$(INSTALLABLEPINFO) : $(SRC_DIR)\pbc_info$(O) $(LIBPARROT)
1060        $(LINK) -o $@ \
1061    $(SRC_DIR)\pbc_info$(O) \
1062     $(ALL_PARROT_LIBS) $(LINKFLAGS)
1063        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
1064
1065#
1066# Parrot Bytecode File Merger
1067#
1068
1069$(PBCMERGE) : $(SRC_DIR)\pbc_merge$(O) $(LIBPARROT) $(SRC_DIR)\parrot_config$(O)
1070        $(LINK) -o $@ \
1071    $(SRC_DIR)\pbc_merge$(O) \
1072    $(SRC_DIR)\parrot_config$(O) \
1073     $(ALL_PARROT_LIBS) $(LINK_DYNAMIC) $(LINKFLAGS)
1074        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
1075
1076$(INSTALLABLEPBCMERGE) : $(SRC_DIR)\pbc_merge$(O) $(LIBPARROT) $(INSTALLABLECONFIG)
1077        $(LINK) -o $@ \
1078    $(SRC_DIR)\pbc_merge$(O) \
1079    $(SRC_DIR)\install_config$(O) \
1080     $(ALL_PARROT_LIBS) $(LINKFLAGS)
1081        if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
1082
1083
1084###############################################################################
1085#
1086# Other Dependencies and Build Rules:
1087#
1088###############################################################################
1089
1090$(IMCC_DIR)\main$(O) : $(IMCC_DIR)\main.c $(GENERAL_H_FILES) $(IMCC_H_FILES)
1091
1092$(INC_DIR)\oplib\ops.h lib\Parrot\OpLib\core.pm : $(OPS_FILES) $(BUILD_TOOLS_DIR)\ops2pm.pl \
1093    lib\Parrot\OpsFile.pm lib\Parrot\Op.pm $(OPS_DIR)\ops.num $(OPS_DIR)\ops.skip
1094        $(PERL) $(BUILD_TOOLS_DIR)\ops2pm.pl  $(OPS_FILES)
1095
1096###############################################################################
1097#
1098# Examples (Assembly):
1099#
1100###############################################################################
1101
1102examples-clean:
1103        $(RM_F) \
1104    examples\mops\mops$(O) \
1105    examples\mops\mops$(EXE) \
1106    examples\pasm\hello.pbc \
1107    examples\pasm\hello$(O) \
1108    examples\pasm\hello$(EXE)
1109
1110# hello
1111hello: test_prep examples\pasm\hello$(EXE)
1112        $(CUR_DIR)\examples\pasm\hello$(EXE) "from your friendly makefile"
1113
1114examples\pasm\hello.pbc: examples\pasm\hello.pasm
1115        $(PARROT) -o examples\pasm\hello.pbc examples\pasm\hello.pasm
1116
1117examples\pasm\hello$(O): examples\pasm\hello.pbc
1118        $(PARROT) -o examples\pasm\hello$(O) examples\pasm\hello.pbc
1119
1120examples\pasm\hello$(EXE): examples\pasm\hello$(O)
1121        $(MAKE) . EXEC=examples\pasm\hello exec
1122
1123
1124
1125###############################################################################
1126#
1127# Dependencies:
1128#
1129###############################################################################
1130
1131$(SRC_DIR)\byteorder$(O) : $(INC_DIR)\parrot.h
1132
1133$(SRC_DIR)\datatypes$(O) : $(INC_DIR)\parrot.h
1134
1135$(SRC_DIR)\extend_vtable$(O) : $(INC_DIR)\parrot.h
1136
1137$(SRC_DIR)\global_setup$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\global_setup.str
1138
1139$(SRC_DIR)\global$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\global.str \
1140        $(SRC_DIR)\pmc\pmc_sub.h
1141
1142$(SRC_DIR)\pmc$(O) : $(GENERAL_H_FILES)
1143
1144$(SRC_DIR)\pmc_freeze$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc_freeze.str
1145
1146$(SRC_DIR)\hash$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_key.h
1147
1148$(SRC_DIR)\list$(O) : $(GENERAL_H_FILES)
1149
1150$(SRC_DIR)\library$(O) : $(GENERAL_H_FILES)
1151
1152$(SRC_DIR)\jit$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit_emit.h $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\pmc\pmc_managedstruct.h
1153
1154$(SRC_DIR)\jit_debug$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\debug.str
1155
1156$(SRC_DIR)\jit_debug_xcoff$(O) : $(GENERAL_H_FILES)
1157
1158$(SRC_DIR)\jit_cpu$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit_emit.h
1159
1160$(SRC_DIR)\exec$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit.h $(INC_DIR)\exec.h $(SRC_DIR)\exec_dep.h $(SRC_DIR)\exec_save.h $(SRC_DIR)\jit_emit.h
1161
1162$(SRC_DIR)\exec_dep$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit.h $(INC_DIR)\exec.h $(SRC_DIR)\exec_dep.h $(SRC_DIR)\exec_save.h $(SRC_DIR)\jit_emit.h $(SRC_DIR)\pmc\managedstruct.c
1163
1164$(SRC_DIR)\exec_cpu$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit.h $(INC_DIR)\exec.h $(SRC_DIR)\exec_dep.h $(SRC_DIR)\exec_save.h $(SRC_DIR)\jit_emit.h
1165
1166$(SRC_DIR)\jit_defs$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit.h $(INC_DIR)\exec.h $(SRC_DIR)\exec_dep.h $(SRC_DIR)\exec_save.h $(SRC_DIR)\jit_emit.h \
1167        $(SRC_DIR)\pmc\pmc_fixedintegerarray.h $(SRC_DIR)\pmc\pmc_unmanagedstruct.h $(SRC_DIR)\pmc\pmc_pointer.h
1168
1169$(INC_DIR)\extend_vtable.h $(SRC_DIR)\extend_vtable.c $(SRC_DIR)\vtable.h : src\vtable.tbl $(BUILD_TOOLS_DIR)\vtable_extend.pl lib\Parrot\Vtable.pm
1170        $(PERL) $(BUILD_TOOLS_DIR)\vtable_extend.pl
1171
1172$(SRC_DIR)\exec_start$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit.h $(INC_DIR)\exec.h $(SRC_DIR)\exec_dep.h $(SRC_DIR)\exec_save.h
1173
1174$(SRC_DIR)\exec_save$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit.h $(INC_DIR)\exec.h $(SRC_DIR)\exec_dep.h $(SRC_DIR)\exec_save.h
1175
1176$(SRC_DIR)\key$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\key.str $(SRC_DIR)\pmc\pmc_key.h
1177
1178$(SRC_DIR)\gc\mark_sweep$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\gc\gc_private.h
1179
1180$(SRC_DIR)\gc\gc_ms$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\gc\gc_ms.c
1181
1182$(SRC_DIR)\gc\api$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\gc\gc_private.h
1183
1184$(SRC_DIR)\gc\generational_ms$(O) : $(GENERAL_H_FILES)
1185
1186$(SRC_DIR)\gc\incremental_ms$(O) : $(GENERAL_H_FILES)
1187
1188$(SRC_DIR)\gc\alloc_resources$(O) : $(GENERAL_H_FILES)
1189
1190$(SRC_DIR)\gc\res_lea$(O) : $(GENERAL_H_FILES)
1191
1192$(SRC_DIR)\hll$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\hll.str
1193
1194$(SRC_DIR)\platform$(O) : $(GENERAL_H_FILES)
1195
1196$(SRC_DIR)\core_pmcs$(O) : $(GENERAL_H_FILES)
1197
1198$(SRC_DIR)\runcore\trace$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_sub.h
1199
1200$(SRC_DIR)\debug$(O) : $(GENERAL_H_FILES) $(INC_DIR)\debugger.h \
1201    $(SRC_DIR)\debug.str $(SRC_DIR)\pmc\pmc_key.h $(SRC_DIR)\pmc\pmc_continuation.h
1202
1203$(SRC_DIR)\sub$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\sub.str \
1204        $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\pmc\pmc_continuation.h
1205
1206$(SRC_DIR)\string\api$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\string\private_cstring.h
1207
1208$(SRC_DIR)\string\primitives$(O) : $(GENERAL_H_FILES)
1209
1210$(SRC_DIR)\longopt$(O) : $(GENERAL_H_FILES)
1211
1212$(SRC_DIR)\dynext$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\dynext.str \
1213        $(SRC_DIR)\pmc\pmc_parrotlibrary.h
1214
1215$(SRC_DIR)\exceptions$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\exceptions.str \
1216        $(SRC_DIR)\pmc\pmc_continuation.h
1217
1218$(SRC_DIR)\events$(O) : $(GENERAL_H_FILES)
1219
1220$(SRC_DIR)\thread$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_sub.h \
1221        $(SRC_DIR)\pmc\pmc_parrotinterpreter.h
1222
1223$(SRC_DIR)\extend$(O) : $(GENERAL_H_FILES) $(INC_DIR)\extend.h \
1224        $(SRC_DIR)\pmc\pmc_sub.h
1225
1226$(SRC_DIR)\runcore\main$(O) : $(SRC_DIR)\runcore\main.c $(GENERAL_H_FILES) \
1227        $(SRC_DIR)\pmc\pmc_parrotlibrary.h
1228
1229$(SRC_DIR)\call\pcc$(O) : $(SRC_DIR)\call\pcc.c $(GENERAL_H_FILES) \
1230        $(SRC_DIR)\call\pcc.str $(SRC_DIR)\pmc\pmc_fixedintegerarray.h \
1231        $(SRC_DIR)\pmc\pmc_key.h $(SRC_DIR)\pmc\pmc_continuation.h
1232
1233$(SRC_DIR)\interp\inter_cb$(O) : $(SRC_DIR)\interp\inter_cb.c \
1234        $(GENERAL_H_FILES) $(SRC_DIR)\interp\inter_cb.str
1235
1236$(SRC_DIR)\interp\inter_misc$(O) : $(SRC_DIR)\interp\inter_misc.c \
1237        $(GENERAL_H_FILES) $(SRC_DIR)\interp\inter_misc.str
1238
1239$(SRC_DIR)\interp\inter_create$(O) : $(SRC_DIR)\interp\inter_create.c \
1240        $(GENERAL_H_FILES) $(SRC_DIR)\interp\inter_create.str
1241
1242$(SRC_DIR)\call\ops$(O) : $(SRC_DIR)\call\ops.c $(GENERAL_H_FILES) \
1243        $(SRC_DIR)\pmc\pmc_continuation.h
1244
1245$(IO_DIR)\api$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h $(IO_DIR)\api.str
1246
1247$(IO_DIR)\buffer$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h
1248
1249$(IO_DIR)\portable$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h
1250
1251$(IO_DIR)\unix$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h
1252
1253$(IO_DIR)\utf8$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h
1254
1255$(IO_DIR)\win32$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h
1256
1257$(SRC_DIR)\gc\alloc_memory$(O) : $(GENERAL_H_FILES)
1258
1259$(SRC_DIR)\main$(O) : $(SRC_DIR)\main.c $(GENERAL_H_FILES)
1260
1261$(SRC_DIR)\pic$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_fixedintegerarray.h \
1262        $(SRC_DIR)\pmc\pmc_continuation.h
1263
1264$(SRC_DIR)\pic_jit$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_sub.h
1265
1266$(SRC_DIR)\multidispatch$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\multidispatch.str \
1267        $(SRC_DIR)\pmc\pmc_nci.h $(SRC_DIR)\pmc\pmc_sub.h
1268
1269$(SRC_DIR)\packfile$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\packfile.str \
1270        $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\pmc\pmc_key.h
1271
1272$(PF_DIR)\pf_items$(O) : $(GENERAL_H_FILES)
1273
1274$(SRC_DIR)\packout$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_key.h
1275
1276$(SRC_DIR)\parrot$(O) : $(GENERAL_H_FILES)
1277
1278$(SRC_DIR)\gc\alloc_register$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_sub.h
1279
1280$(SRC_DIR)\runcore\cores$(O) : $(GENERAL_H_FILES)
1281
1282$(SRC_DIR)\stacks$(O) : $(GENERAL_H_FILES)
1283
1284$(SRC_DIR)\tsq$(O) : $(GENERAL_H_FILES)
1285
1286$(SRC_DIR)\embed$(O) : $(GENERAL_H_FILES) $(INC_DIR)\debugger.h \
1287        $(SRC_DIR)\pmc\pmc_sub.h
1288
1289$(SRC_DIR)\dataypes$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\dataypes.c
1290
1291$(SRC_DIR)\exit$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\exit.c
1292
1293$(SRC_DIR)\nci$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\nci.c $(SRC_DIR)\nci.str \
1294        $(SRC_DIR)\pmc\pmc_managedstruct.h \
1295        $(SRC_DIR)\pmc\pmc_nci.h \
1296        $(SRC_DIR)\pmc\pmc_pointer.h
1297
1298$(SRC_DIR)\vtables$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\vtables.c
1299
1300$(SRC_DIR)\gc\system$(O) : $(GENERAL_H_FILES)  $(SRC_DIR)\gc\gc_private.h
1301
1302$(SRC_DIR)\nci.c : $(SRC_DIR)\call_list.txt $(BUILD_TOOLS_DIR)\nativecall.pl \
1303        $(SRC_DIR)\pmc\pmc_nci.h
1304        $(PERL) $(BUILD_TOOLS_DIR)\nativecall.pl $(SRC_DIR)\call_list.txt
1305
1306$(SRC_DIR)\warnings$(O) : $(GENERAL_H_FILES)
1307
1308$(SRC_DIR)\misc$(O) : $(GENERAL_H_FILES)
1309
1310$(SRC_DIR)\utils$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_nci.h
1311
1312$(SRC_DIR)\spf_render$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\spf_render.str
1313
1314$(SRC_DIR)\spf_vtable$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\spf_vtable.str
1315
1316$(SRC_DIR)\string\encoding$(O) : $(SRC_DIR)\string\encoding.c \
1317        $(INC_DIR)\config.h $(GENERAL_H_FILES)
1318
1319$(SRC_DIR)\string\charset$(O) : $(SRC_DIR)\string\charset.c $(GENERAL_H_FILES)
1320
1321$(SRC_DIR)\pbc_merge$(O) : $(SRC_DIR)\pbc_merge.c $(GENERAL_H_FILES) \
1322        $(SRC_DIR)\pmc\pmc_sub.h
1323
1324$(IO_DIR)\filehandle$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\pmc\pmc_filehandle.h $(SRC_DIR)\io\io_private.h
1325
1326$(OPS_DIR)\core_ops$(O) : $(GENERAL_H_FILES) $(OPS_DIR)\core_ops.c \
1327        $(SRC_DIR)\pmc\pmc_continuation.h $(SRC_DIR)\pmc\pmc_parrotlibrary.h
1328
1329$(OPS_DIR)\pic.ops : $(SRC_DIR)\pmc\pmc_fixedintegerarray.h
1330
1331# core_ops depends upon config.h so that it gets updated along with
1332# updates to config.h's version numbers
1333
1334# .h files are built along with .c
1335$(INC_DIR)\oplib\core_ops.h: $(OPS_DIR)\core_ops.c
1336
1337$(OPS_DIR)\core_ops.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)\ops2c.pl \
1338        lib\Parrot\OpsFile.pm lib\Parrot\Op.pm $(INC_DIR)\config.h \
1339        lib\Parrot\OpLib\core.pm lib\Parrot\OpTrans\C.pm \
1340        $(SRC_DIR)\pmc\pmc_continuation.h
1341        $(PERL) $(BUILD_TOOLS_DIR)\ops2c.pl C --core
1342
1343$(OPS_DIR)\core_ops_switch$(O) : $(GENERAL_H_FILES) $(OPS_DIR)\core_ops_switch.c \
1344        $(SRC_DIR)\pmc\pmc_parrotlibrary.h
1345
1346$(INC_DIR)\oplib\core_ops_switch.h : $(OPS_DIR)\core_ops_switch.c
1347
1348$(OPS_DIR)\core_ops_switch.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)\ops2c.pl \
1349        lib\Parrot\OpsFile.pm lib\Parrot\Op.pm $(INC_DIR)\config.h \
1350        lib\Parrot\OpLib\core.pm lib\Parrot\OpTrans\CSwitch.pm \
1351        lib\Parrot\OpTrans\CPrederef.pm
1352        $(PERL) $(BUILD_TOOLS_DIR)\ops2c.pl CSwitch --core
1353
1354# generated by config\auto\cgoto.pm
1355
1356$(OPS_DIR)\core_ops_cg$(O): $(GENERAL_H_FILES) $(OPS_DIR)\core_ops_cg.c \
1357        $(SRC_DIR)\pmc\pmc_parrotlibrary.h
1358$(OPS_DIR)\core_ops_cgp$(O): $(GENERAL_H_FILES) $(OPS_DIR)\core_ops_cgp.c \
1359        $(SRC_DIR)\pmc\pmc_parrotlibrary.h
1360$(SRC_DIR)\runcore\cores.c: $(INC_DIR)\oplib\core_ops_cgp.h
1361
1362$(INC_DIR)\oplib\core_ops_cg.h: $(OPS_DIR)\core_ops_cg.c
1363
1364$(OPS_DIR)\core_ops_cg.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)\ops2c.pl lib\Parrot\OpsFile.pm lib\Parrot\Op.pm lib\Parrot\OpTrans\CGoto.pm lib\Parrot\OpLib\core.pm
1365        $(PERL) $(BUILD_TOOLS_DIR)\ops2c.pl CGoto --core
1366
1367$(INC_DIR)\oplib\core_ops_cgp.h: $(OPS_DIR)\core_ops_cgp.c
1368
1369$(OPS_DIR)\core_ops_cgp.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)\ops2c.pl lib\Parrot\OpsFile.pm lib\Parrot\Op.pm lib\Parrot\OpTrans\CGP.pm lib\Parrot\OpLib\core.pm lib\Parrot\OpTrans\CPrederef.pm
1370        $(PERL) $(BUILD_TOOLS_DIR)\ops2c.pl CGP --core
1371
1372
1373$(SRC_DIR)\gc\alloc_resources$(O):      $(GENERAL_H_FILES) $(SRC_DIR)\gc\alloc_resources.c
1374
1375
1376
1377# the following part of the Makefile was built by 'config\auto\pmc.pm'
1378
1379PMC2C_FILES = \
1380    lib\Parrot\Pmc2c\Pmc2cMain.pm \
1381    lib\Parrot\Pmc2c\Parser.pm \
1382    lib\Parrot\Pmc2c\Dumper.pm \
1383    lib\Parrot\Pmc2c\PMC.pm \
1384    lib\Parrot\Pmc2c\Method.pm \
1385    lib\Parrot\Pmc2c\PCCMETHOD.pm \
1386    lib\Parrot\Pmc2c\MULTI.pm \
1387    lib\Parrot\Pmc2c\PMCEmitter.pm \
1388    lib\Parrot\Pmc2c\MethodEmitter.pm \
1389    lib\Parrot\Pmc2c\Library.pm \
1390    lib\Parrot\Pmc2c\UtilFunctions.pm \
1391    lib\Parrot\Pmc2c\PMC\default.pm \
1392    lib\Parrot\Pmc2c\PMC\Null.pm \
1393    lib\Parrot\Pmc2c\PMC\RO.pm
1394src\pmc\default.c : src\pmc\default.dump
1395        $(PMC2CC) src\pmc\default.pmc
1396
1397src\pmc\default.dump : vtable.dump  src\pmc\default.pmc $(PMC2C_FILES) 
1398        $(PMC2CD) src\pmc\default.pmc
1399
1400src\pmc\pmc_default.h: src\pmc\default.c
1401
1402src\pmc\default$(O): src\pmc\default.str $(NONGEN_HEADERS) \
1403      src\pmc\pmc_continuation.h
1404
1405src\pmc\null.c : src\pmc\null.dump
1406        $(PMC2CC) src\pmc\null.pmc
1407
1408src\pmc\null.dump : vtable.dump src\pmc\default.dump  src\pmc\null.pmc $(PMC2C_FILES) 
1409        $(PMC2CD) src\pmc\null.pmc
1410
1411src\pmc\pmc_null.h: src\pmc\null.c
1412
1413src\pmc\null$(O): src\pmc\null.str $(NONGEN_HEADERS) \
1414    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1415
1416src\pmc\env.c : src\pmc\env.dump
1417        $(PMC2CC) src\pmc\env.pmc
1418
1419src\pmc\env.dump : vtable.dump src\pmc\default.dump  src\pmc\env.pmc $(PMC2C_FILES) 
1420        $(PMC2CD) src\pmc\env.pmc
1421
1422src\pmc\pmc_env.h: src\pmc\env.c
1423
1424src\pmc\env$(O): src\pmc\env.str $(NONGEN_HEADERS) \
1425    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1426
1427src\pmc\key.c : src\pmc\key.dump
1428        $(PMC2CC) src\pmc\key.pmc
1429
1430src\pmc\key.dump : vtable.dump src\pmc\default.dump  src\pmc\key.pmc $(PMC2C_FILES) 
1431        $(PMC2CD) src\pmc\key.pmc
1432
1433src\pmc\pmc_key.h: src\pmc\key.c
1434
1435src\pmc\key$(O): src\pmc\key.str $(NONGEN_HEADERS) \
1436    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1437
1438src\pmc\random.c : src\pmc\random.dump
1439        $(PMC2CC) src\pmc\random.pmc
1440
1441src\pmc\random.dump : vtable.dump src\pmc\default.dump  src\pmc\random.pmc $(PMC2C_FILES) 
1442        $(PMC2CD) src\pmc\random.pmc
1443
1444src\pmc\pmc_random.h: src\pmc\random.c
1445
1446src\pmc\random$(O): src\pmc\random.str $(NONGEN_HEADERS) \
1447    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1448
1449src\pmc\unmanagedstruct.c : src\pmc\unmanagedstruct.dump
1450        $(PMC2CC) src\pmc\unmanagedstruct.pmc
1451
1452src\pmc\unmanagedstruct.dump : vtable.dump src\pmc\default.dump  src\pmc\unmanagedstruct.pmc $(PMC2C_FILES) 
1453        $(PMC2CD) src\pmc\unmanagedstruct.pmc
1454
1455src\pmc\pmc_unmanagedstruct.h: src\pmc\unmanagedstruct.c
1456
1457src\pmc\unmanagedstruct$(O): src\pmc\unmanagedstruct.str $(NONGEN_HEADERS) \
1458    src\pmc\pmc_default.h  include\parrot\compiler.h src\pmc\pmc_continuation.h
1459
1460src\pmc\managedstruct.c : src\pmc\managedstruct.dump
1461        $(PMC2CC) src\pmc\managedstruct.pmc
1462
1463src\pmc\managedstruct.dump : vtable.dump src\pmc\default.dump src\pmc\unmanagedstruct.dump  src\pmc\managedstruct.pmc $(PMC2C_FILES) 
1464        $(PMC2CD) src\pmc\managedstruct.pmc
1465
1466src\pmc\pmc_managedstruct.h: src\pmc\managedstruct.c
1467
1468src\pmc\managedstruct$(O): src\pmc\managedstruct.str $(NONGEN_HEADERS) \
1469    src\pmc\pmc_unmanagedstruct.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1470
1471src\pmc\exception.c : src\pmc\exception.dump
1472        $(PMC2CC) src\pmc\exception.pmc
1473
1474src\pmc\exception.dump : vtable.dump src\pmc\default.dump  src\pmc\exception.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1475        $(PMC2CD) src\pmc\exception.pmc
1476
1477src\pmc\pmc_exception.h: src\pmc\exception.c
1478
1479src\pmc\exception$(O): src\pmc\exception.str $(NONGEN_HEADERS) \
1480    src\pmc\pmc_default.h  include\parrot\exceptions.h src\pmc\pmc_sub.h src\pmc\pmc_continuation.h
1481
1482src\pmc\parrotlibrary.c : src\pmc\parrotlibrary.dump
1483        $(PMC2CC) src\pmc\parrotlibrary.pmc
1484
1485src\pmc\parrotlibrary.dump : vtable.dump src\pmc\default.dump  src\pmc\parrotlibrary.pmc $(PMC2C_FILES) 
1486        $(PMC2CD) src\pmc\parrotlibrary.pmc
1487
1488src\pmc\pmc_parrotlibrary.h: src\pmc\parrotlibrary.c
1489
1490src\pmc\parrotlibrary$(O): src\pmc\parrotlibrary.str $(NONGEN_HEADERS) \
1491    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1492
1493src\pmc\parrotinterpreter.c : src\pmc\parrotinterpreter.dump
1494        $(PMC2CC) src\pmc\parrotinterpreter.pmc
1495
1496src\pmc\parrotinterpreter.dump : vtable.dump src\pmc\default.dump  src\pmc\parrotinterpreter.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1497        $(PMC2CD) src\pmc\parrotinterpreter.pmc
1498
1499src\pmc\pmc_parrotinterpreter.h: src\pmc\parrotinterpreter.c
1500
1501src\pmc\parrotinterpreter$(O): src\pmc\parrotinterpreter.str $(NONGEN_HEADERS) \
1502    src\pmc\pmc_default.h  include\parrot\embed.h include\parrot\dynext.h include\parrot\io.h src\pmc\pmc_class.h src\pmc\pmc_sub.h src\pmc\pmc_continuation.h
1503
1504src\pmc\parrotthread.c : src\pmc\parrotthread.dump
1505        $(PMC2CC) src\pmc\parrotthread.pmc
1506
1507src\pmc\parrotthread.dump : vtable.dump src\pmc\default.dump src\pmc\parrotinterpreter.dump  src\pmc\parrotthread.pmc $(PMC2C_FILES) 
1508        $(PMC2CD) src\pmc\parrotthread.pmc
1509
1510src\pmc\pmc_parrotthread.h: src\pmc\parrotthread.c
1511
1512src\pmc\parrotthread$(O): src\pmc\parrotthread.str $(NONGEN_HEADERS) \
1513    src\pmc\pmc_parrotinterpreter.h src\pmc\pmc_default.h  include\parrot\embed.h src\pmc\pmc_continuation.h
1514
1515src\pmc\lexpad.c : src\pmc\lexpad.dump
1516        $(PMC2CC) src\pmc\lexpad.pmc
1517
1518src\pmc\lexpad.dump : vtable.dump src\pmc\default.dump  src\pmc\lexpad.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1519        $(PMC2CD) src\pmc\lexpad.pmc
1520
1521src\pmc\pmc_lexpad.h: src\pmc\lexpad.c
1522
1523src\pmc\lexpad$(O): src\pmc\lexpad.str $(NONGEN_HEADERS) \
1524    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1525
1526src\pmc\timer.c : src\pmc\timer.dump
1527        $(PMC2CC) src\pmc\timer.pmc
1528
1529src\pmc\timer.dump : vtable.dump src\pmc\default.dump src\pmc\task.dump  src\pmc\timer.pmc $(PMC2C_FILES) 
1530        $(PMC2CD) src\pmc\timer.pmc
1531
1532src\pmc\pmc_timer.h: src\pmc\timer.c
1533
1534src\pmc\timer$(O): src\pmc\timer.str $(NONGEN_HEADERS) \
1535    src\pmc\pmc_task.h src\pmc\pmc_default.h  include\parrot\scheduler_private.h src\pmc\pmc_continuation.h
1536
1537src\pmc\pointer.c : src\pmc\pointer.dump
1538        $(PMC2CC) src\pmc\pointer.pmc
1539
1540src\pmc\pointer.dump : vtable.dump src\pmc\default.dump  src\pmc\pointer.pmc $(PMC2C_FILES) 
1541        $(PMC2CD) src\pmc\pointer.pmc
1542
1543src\pmc\pmc_pointer.h: src\pmc\pointer.c
1544
1545src\pmc\pointer$(O): src\pmc\pointer.str $(NONGEN_HEADERS) \
1546    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1547
1548src\pmc\sub.c : src\pmc\sub.dump
1549        $(PMC2CC) src\pmc\sub.pmc
1550
1551src\pmc\sub.dump : vtable.dump src\pmc\default.dump  src\pmc\sub.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1552        $(PMC2CD) src\pmc\sub.pmc
1553
1554src\pmc\pmc_sub.h: src\pmc\sub.c
1555
1556src\pmc\sub$(O): src\pmc\sub.str $(NONGEN_HEADERS) \
1557    src\pmc\pmc_default.h  include\parrot\oplib\ops.h src\pmc\sub.str src\pmc\pmc_continuation.h
1558
1559src\pmc\continuation.c : src\pmc\continuation.dump
1560        $(PMC2CC) src\pmc\continuation.pmc
1561
1562src\pmc\continuation.dump : vtable.dump src\pmc\default.dump  src\pmc\continuation.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1563        $(PMC2CD) src\pmc\continuation.pmc
1564
1565src\pmc\pmc_continuation.h: src\pmc\continuation.c
1566
1567src\pmc\continuation$(O): src\pmc\continuation.str $(NONGEN_HEADERS) \
1568    src\pmc\pmc_default.h  include\parrot\oplib\ops.h src\pmc\pmc_sub.h src\pmc\pmc_continuation.h
1569
1570src\pmc\retcontinuation.c : src\pmc\retcontinuation.dump
1571        $(PMC2CC) src\pmc\retcontinuation.pmc
1572
1573src\pmc\retcontinuation.dump : vtable.dump src\pmc\default.dump src\pmc\continuation.dump  src\pmc\retcontinuation.pmc $(PMC2C_FILES) 
1574        $(PMC2CD) src\pmc\retcontinuation.pmc
1575
1576src\pmc\pmc_retcontinuation.h: src\pmc\retcontinuation.c
1577
1578src\pmc\retcontinuation$(O): src\pmc\retcontinuation.str $(NONGEN_HEADERS) \
1579    src\pmc\pmc_continuation.h src\pmc\pmc_default.h  include\parrot\oplib\ops.h src\pmc\pmc_continuation.h
1580
1581src\pmc\coroutine.c : src\pmc\coroutine.dump
1582        $(PMC2CC) src\pmc\coroutine.pmc
1583
1584src\pmc\coroutine.dump : vtable.dump src\pmc\default.dump src\pmc\sub.dump  src\pmc\coroutine.pmc $(PMC2C_FILES) 
1585        $(PMC2CD) src\pmc\coroutine.pmc
1586
1587src\pmc\pmc_coroutine.h: src\pmc\coroutine.c
1588
1589src\pmc\coroutine$(O): src\pmc\coroutine.str $(NONGEN_HEADERS) \
1590    src\pmc\pmc_sub.h src\pmc\pmc_default.h  include\parrot\oplib\ops.h src\pmc\pmc_continuation.h
1591
1592src\pmc\eval.c : src\pmc\eval.dump
1593        $(PMC2CC) src\pmc\eval.pmc
1594
1595src\pmc\eval.dump : vtable.dump src\pmc\default.dump src\pmc\sub.dump  src\pmc\eval.pmc $(PMC2C_FILES) 
1596        $(PMC2CD) src\pmc\eval.pmc
1597
1598src\pmc\pmc_eval.h: src\pmc\eval.c
1599
1600src\pmc\eval$(O): src\pmc\eval.str $(NONGEN_HEADERS) \
1601    src\pmc\pmc_sub.h src\pmc\pmc_default.h  src\pmc\pmc_sub.h src\pmc\pmc_continuation.h
1602
1603src\pmc\nci.c : src\pmc\nci.dump
1604        $(PMC2CC) src\pmc\nci.pmc
1605
1606src\pmc\nci.dump : vtable.dump src\pmc\default.dump  src\pmc\nci.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1607        $(PMC2CD) src\pmc\nci.pmc
1608
1609src\pmc\pmc_nci.h: src\pmc\nci.c
1610
1611src\pmc\nci$(O): src\pmc\nci.str $(NONGEN_HEADERS) \
1612    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1613
1614src\pmc\float.c : src\pmc\float.dump
1615        $(PMC2CC) src\pmc\float.pmc
1616
1617src\pmc\float.dump : vtable.dump src\pmc\default.dump src\pmc\scalar.dump  src\pmc\float.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1618        $(PMC2CD) src\pmc\float.pmc
1619
1620src\pmc\pmc_float.h: src\pmc\float.c
1621
1622src\pmc\float$(O): src\pmc\float.str $(NONGEN_HEADERS) \
1623    src\pmc\pmc_scalar.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1624
1625src\pmc\integer.c : src\pmc\integer.dump
1626        $(PMC2CC) src\pmc\integer.pmc
1627
1628src\pmc\integer.dump : vtable.dump src\pmc\default.dump src\pmc\scalar.dump  src\pmc\integer.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1629        $(PMC2CD) src\pmc\integer.pmc
1630
1631src\pmc\pmc_integer.h: src\pmc\integer.c
1632
1633src\pmc\integer$(O): src\pmc\integer.str $(NONGEN_HEADERS) \
1634    src\pmc\pmc_scalar.h src\pmc\pmc_default.h  src\pmc\pmc_bigint.h src\pmc\pmc_continuation.h
1635
1636src\pmc\bigint.c : src\pmc\bigint.dump
1637        $(PMC2CC) src\pmc\bigint.pmc
1638
1639src\pmc\bigint.dump : vtable.dump src\pmc\default.dump  src\pmc\bigint.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1640        $(PMC2CD) src\pmc\bigint.pmc
1641
1642src\pmc\pmc_bigint.h: src\pmc\bigint.c
1643
1644src\pmc\bigint$(O): src\pmc\bigint.str $(NONGEN_HEADERS) \
1645    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1646
1647src\pmc\bignum.c : src\pmc\bignum.dump
1648        $(PMC2CC) src\pmc\bignum.pmc
1649
1650src\pmc\bignum.dump : vtable.dump src\pmc\default.dump  src\pmc\bignum.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1651        $(PMC2CD) src\pmc\bignum.pmc
1652
1653src\pmc\pmc_bignum.h: src\pmc\bignum.c
1654
1655src\pmc\bignum$(O): src\pmc\bignum.str $(NONGEN_HEADERS) \
1656    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1657
1658src\pmc\complex.c : src\pmc\complex.dump
1659        $(PMC2CC) src\pmc\complex.pmc
1660
1661src\pmc\complex.dump : vtable.dump src\pmc\default.dump  src\pmc\complex.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1662        $(PMC2CD) src\pmc\complex.pmc
1663
1664src\pmc\pmc_complex.h: src\pmc\complex.c
1665
1666src\pmc\complex$(O): src\pmc\complex.str $(NONGEN_HEADERS) \
1667    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1668
1669src\pmc\string.c : src\pmc\string.dump
1670        $(PMC2CC) src\pmc\string.pmc
1671
1672src\pmc\string.dump : vtable.dump src\pmc\default.dump src\pmc\scalar.dump  src\pmc\string.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1673        $(PMC2CD) src\pmc\string.pmc
1674
1675src\pmc\pmc_string.h: src\pmc\string.c
1676
1677src\pmc\string$(O): src\pmc\string.str $(NONGEN_HEADERS) \
1678    src\pmc\pmc_scalar.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1679
1680src\pmc\boolean.c : src\pmc\boolean.dump
1681        $(PMC2CC) src\pmc\boolean.pmc
1682
1683src\pmc\boolean.dump : vtable.dump src\pmc\default.dump src\pmc\scalar.dump src\pmc\integer.dump  src\pmc\boolean.pmc $(PMC2C_FILES) 
1684        $(PMC2CD) src\pmc\boolean.pmc
1685
1686src\pmc\pmc_boolean.h: src\pmc\boolean.c
1687
1688src\pmc\boolean$(O): src\pmc\boolean.str $(NONGEN_HEADERS) \
1689    src\pmc\pmc_integer.h src\pmc\pmc_scalar.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1690
1691src\pmc\array.c : src\pmc\array.dump
1692        $(PMC2CC) src\pmc\array.pmc
1693
1694src\pmc\array.dump : vtable.dump src\pmc\default.dump  src\pmc\array.pmc $(PMC2C_FILES) 
1695        $(PMC2CD) src\pmc\array.pmc
1696
1697src\pmc\pmc_array.h: src\pmc\array.c
1698
1699src\pmc\array$(O): src\pmc\array.str $(NONGEN_HEADERS) \
1700    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1701
1702src\pmc\fixedintegerarray.c : src\pmc\fixedintegerarray.dump
1703        $(PMC2CC) src\pmc\fixedintegerarray.pmc
1704
1705src\pmc\fixedintegerarray.dump : vtable.dump src\pmc\default.dump  src\pmc\fixedintegerarray.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm
1706        $(PMC2CD) src\pmc\fixedintegerarray.pmc
1707
1708src\pmc\pmc_fixedintegerarray.h: src\pmc\fixedintegerarray.c
1709
1710src\pmc\fixedintegerarray$(O): src\pmc\fixedintegerarray.str $(NONGEN_HEADERS) \
1711    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1712
1713src\pmc\iterator.c : src\pmc\iterator.dump
1714        $(PMC2CC) src\pmc\iterator.pmc
1715
1716src\pmc\iterator.dump : vtable.dump src\pmc\default.dump  src\pmc\iterator.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1717        $(PMC2CD) src\pmc\iterator.pmc
1718
1719src\pmc\pmc_iterator.h: src\pmc\iterator.c
1720
1721src\pmc\iterator$(O): src\pmc\iterator.str $(NONGEN_HEADERS) \
1722    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1723
1724src\pmc\fixedstringarray.c : src\pmc\fixedstringarray.dump
1725        $(PMC2CC) src\pmc\fixedstringarray.pmc
1726
1727src\pmc\fixedstringarray.dump : vtable.dump src\pmc\default.dump  src\pmc\fixedstringarray.pmc $(PMC2C_FILES) 
1728        $(PMC2CD) src\pmc\fixedstringarray.pmc
1729
1730src\pmc\pmc_fixedstringarray.h: src\pmc\fixedstringarray.c
1731
1732src\pmc\fixedstringarray$(O): src\pmc\fixedstringarray.str $(NONGEN_HEADERS) \
1733    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1734
1735src\pmc\hash.c : src\pmc\hash.dump
1736        $(PMC2CC) src\pmc\hash.pmc
1737
1738src\pmc\hash.dump : vtable.dump src\pmc\default.dump  src\pmc\hash.pmc $(PMC2C_FILES) 
1739        $(PMC2CD) src\pmc\hash.pmc
1740
1741src\pmc\pmc_hash.h: src\pmc\hash.c
1742
1743src\pmc\hash$(O): src\pmc\hash.str $(NONGEN_HEADERS) \
1744    src\pmc\pmc_default.h  src\pmc\pmc_iterator.h src\pmc\pmc_key.h src\pmc\pmc_continuation.h
1745
1746src\pmc\orderedhash.c : src\pmc\orderedhash.dump
1747        $(PMC2CC) src\pmc\orderedhash.pmc
1748
1749src\pmc\orderedhash.dump : vtable.dump src\pmc\default.dump src\pmc\hash.dump  src\pmc\orderedhash.pmc $(PMC2C_FILES) 
1750        $(PMC2CD) src\pmc\orderedhash.pmc
1751
1752src\pmc\pmc_orderedhash.h: src\pmc\orderedhash.c
1753
1754src\pmc\orderedhash$(O): src\pmc\orderedhash.str $(NONGEN_HEADERS) \
1755    src\pmc\pmc_hash.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1756
1757src\pmc\os.c : src\pmc\os.dump
1758        $(PMC2CC) src\pmc\os.pmc
1759
1760src\pmc\os.dump : vtable.dump src\pmc\default.dump  src\pmc\os.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1761        $(PMC2CD) src\pmc\os.pmc
1762
1763src\pmc\pmc_os.h: src\pmc\os.c
1764
1765src\pmc\os$(O): src\pmc\os.str $(NONGEN_HEADERS) \
1766    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1767
1768src\pmc\file.c : src\pmc\file.dump
1769        $(PMC2CC) src\pmc\file.pmc
1770
1771src\pmc\file.dump : vtable.dump src\pmc\default.dump  src\pmc\file.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1772        $(PMC2CD) src\pmc\file.pmc
1773
1774src\pmc\pmc_file.h: src\pmc\file.c
1775
1776src\pmc\file$(O): src\pmc\file.str $(NONGEN_HEADERS) \
1777    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1778
1779src\pmc\addrregistry.c : src\pmc\addrregistry.dump
1780        $(PMC2CC) src\pmc\addrregistry.pmc
1781
1782src\pmc\addrregistry.dump : vtable.dump src\pmc\default.dump src\pmc\hash.dump  src\pmc\addrregistry.pmc $(PMC2C_FILES) 
1783        $(PMC2CD) src\pmc\addrregistry.pmc
1784
1785src\pmc\pmc_addrregistry.h: src\pmc\addrregistry.c
1786
1787src\pmc\addrregistry$(O): src\pmc\addrregistry.str $(NONGEN_HEADERS) \
1788    src\pmc\pmc_hash.h src\pmc\pmc_default.h  include\parrot\hash.h src\pmc\pmc_hash.h src\pmc\pmc_continuation.h
1789
1790src\pmc\callsignature.c : src\pmc\callsignature.dump
1791        $(PMC2CC) src\pmc\callsignature.pmc
1792
1793src\pmc\callsignature.dump : vtable.dump src\pmc\default.dump src\pmc\capture.dump  src\pmc\callsignature.pmc $(PMC2C_FILES) 
1794        $(PMC2CD) src\pmc\callsignature.pmc
1795
1796src\pmc\pmc_callsignature.h: src\pmc\callsignature.c
1797
1798src\pmc\callsignature$(O): src\pmc\callsignature.str $(NONGEN_HEADERS) \
1799    src\pmc\pmc_capture.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1800
1801src\pmc\capture.c : src\pmc\capture.dump
1802        $(PMC2CC) src\pmc\capture.pmc
1803
1804src\pmc\capture.dump : vtable.dump src\pmc\default.dump  src\pmc\capture.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1805        $(PMC2CD) src\pmc\capture.pmc
1806
1807src\pmc\pmc_capture.h: src\pmc\capture.c
1808
1809src\pmc\capture$(O): src\pmc\capture.str $(NONGEN_HEADERS) \
1810    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1811
1812src\pmc\class.c : src\pmc\class.dump
1813        $(PMC2CC) src\pmc\class.pmc
1814
1815src\pmc\class.dump : vtable.dump src\pmc\default.dump  src\pmc\class.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1816        $(PMC2CD) src\pmc\class.pmc
1817
1818src\pmc\pmc_class.h: src\pmc\class.c
1819
1820src\pmc\class$(O): src\pmc\class.str $(NONGEN_HEADERS) \
1821    src\pmc\pmc_default.h  include\parrot\oo_private.h src\pmc\pmc_object.h src\pmc\pmc_namespace.h src\pmc\pmc_continuation.h
1822
1823src\pmc\codestring.c : src\pmc\codestring.dump
1824        $(PMC2CC) src\pmc\codestring.pmc
1825
1826src\pmc\codestring.dump : vtable.dump src\pmc\default.dump src\pmc\scalar.dump src\pmc\string.dump  src\pmc\codestring.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1827        $(PMC2CD) src\pmc\codestring.pmc
1828
1829src\pmc\pmc_codestring.h: src\pmc\codestring.c
1830
1831src\pmc\codestring$(O): src\pmc\codestring.str $(NONGEN_HEADERS) \
1832    src\pmc\pmc_string.h src\pmc\pmc_scalar.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1833
1834src\pmc\cpointer.c : src\pmc\cpointer.dump
1835        $(PMC2CC) src\pmc\cpointer.pmc
1836
1837src\pmc\cpointer.dump : vtable.dump src\pmc\default.dump  src\pmc\cpointer.pmc $(PMC2C_FILES) 
1838        $(PMC2CD) src\pmc\cpointer.pmc
1839
1840src\pmc\pmc_cpointer.h: src\pmc\cpointer.c
1841
1842src\pmc\cpointer$(O): src\pmc\cpointer.str $(NONGEN_HEADERS) \
1843    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1844
1845src\pmc\eventhandler.c : src\pmc\eventhandler.dump
1846        $(PMC2CC) src\pmc\eventhandler.pmc
1847
1848src\pmc\eventhandler.dump : vtable.dump src\pmc\default.dump src\pmc\sub.dump  src\pmc\eventhandler.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1849        $(PMC2CD) src\pmc\eventhandler.pmc
1850
1851src\pmc\pmc_eventhandler.h: src\pmc\eventhandler.c
1852
1853src\pmc\eventhandler$(O): src\pmc\eventhandler.str $(NONGEN_HEADERS) \
1854    src\pmc\pmc_sub.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1855
1856src\pmc\exceptionhandler.c : src\pmc\exceptionhandler.dump
1857        $(PMC2CC) src\pmc\exceptionhandler.pmc
1858
1859src\pmc\exceptionhandler.dump : vtable.dump src\pmc\default.dump src\pmc\continuation.dump  src\pmc\exceptionhandler.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1860        $(PMC2CD) src\pmc\exceptionhandler.pmc
1861
1862src\pmc\pmc_exceptionhandler.h: src\pmc\exceptionhandler.c
1863
1864src\pmc\exceptionhandler$(O): src\pmc\exceptionhandler.str $(NONGEN_HEADERS) \
1865    src\pmc\pmc_continuation.h src\pmc\pmc_default.h  include\parrot\oplib\ops.h src\pmc\pmc_continuation.h
1866
1867src\pmc\exporter.c : src\pmc\exporter.dump
1868        $(PMC2CC) src\pmc\exporter.pmc
1869
1870src\pmc\exporter.dump : vtable.dump src\pmc\default.dump  src\pmc\exporter.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1871        $(PMC2CD) src\pmc\exporter.pmc
1872
1873src\pmc\pmc_exporter.h: src\pmc\exporter.c
1874
1875src\pmc\exporter$(O): src\pmc\exporter.str $(NONGEN_HEADERS) \
1876    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1877
1878src\pmc\filehandle.c : src\pmc\filehandle.dump
1879        $(PMC2CC) src\pmc\filehandle.pmc
1880
1881src\pmc\filehandle.dump : vtable.dump src\pmc\default.dump src\pmc\handle.dump  src\pmc\filehandle.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1882        $(PMC2CD) src\pmc\filehandle.pmc
1883
1884src\pmc\pmc_filehandle.h: src\pmc\filehandle.c
1885
1886src\pmc\filehandle$(O): src\pmc\filehandle.str $(NONGEN_HEADERS) \
1887    src\pmc\pmc_handle.h src\pmc\pmc_default.h  include\..\src\io\io_private.h src\pmc\pmc_continuation.h
1888
1889src\pmc\fixedbooleanarray.c : src\pmc\fixedbooleanarray.dump
1890        $(PMC2CC) src\pmc\fixedbooleanarray.pmc
1891
1892src\pmc\fixedbooleanarray.dump : vtable.dump src\pmc\default.dump  src\pmc\fixedbooleanarray.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1893        $(PMC2CD) src\pmc\fixedbooleanarray.pmc
1894
1895src\pmc\pmc_fixedbooleanarray.h: src\pmc\fixedbooleanarray.c
1896
1897src\pmc\fixedbooleanarray$(O): src\pmc\fixedbooleanarray.str $(NONGEN_HEADERS) \
1898    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1899
1900src\pmc\fixedfloatarray.c : src\pmc\fixedfloatarray.dump
1901        $(PMC2CC) src\pmc\fixedfloatarray.pmc
1902
1903src\pmc\fixedfloatarray.dump : vtable.dump src\pmc\default.dump  src\pmc\fixedfloatarray.pmc $(PMC2C_FILES) 
1904        $(PMC2CD) src\pmc\fixedfloatarray.pmc
1905
1906src\pmc\pmc_fixedfloatarray.h: src\pmc\fixedfloatarray.c
1907
1908src\pmc\fixedfloatarray$(O): src\pmc\fixedfloatarray.str $(NONGEN_HEADERS) \
1909    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1910
1911src\pmc\fixedpmcarray.c : src\pmc\fixedpmcarray.dump
1912        $(PMC2CC) src\pmc\fixedpmcarray.pmc
1913
1914src\pmc\fixedpmcarray.dump : vtable.dump src\pmc\default.dump  src\pmc\fixedpmcarray.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1915        $(PMC2CD) src\pmc\fixedpmcarray.pmc
1916
1917src\pmc\pmc_fixedpmcarray.h: src\pmc\fixedpmcarray.c
1918
1919src\pmc\fixedpmcarray$(O): src\pmc\fixedpmcarray.str $(NONGEN_HEADERS) \
1920    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1921
1922src\pmc\handle.c : src\pmc\handle.dump
1923        $(PMC2CC) src\pmc\handle.pmc
1924
1925src\pmc\handle.dump : vtable.dump src\pmc\default.dump  src\pmc\handle.pmc $(PMC2C_FILES) 
1926        $(PMC2CD) src\pmc\handle.pmc
1927
1928src\pmc\pmc_handle.h: src\pmc\handle.c
1929
1930src\pmc\handle$(O): src\pmc\handle.str $(NONGEN_HEADERS) \
1931    src\pmc\pmc_default.h  include\parrot\parrot.h include\..\src\io\io_private.h src\pmc\pmc_continuation.h
1932
1933src\pmc\lexinfo.c : src\pmc\lexinfo.dump
1934        $(PMC2CC) src\pmc\lexinfo.pmc
1935
1936src\pmc\lexinfo.dump : vtable.dump src\pmc\default.dump src\pmc\hash.dump  src\pmc\lexinfo.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1937        $(PMC2CD) src\pmc\lexinfo.pmc
1938
1939src\pmc\pmc_lexinfo.h: src\pmc\lexinfo.c
1940
1941src\pmc\lexinfo$(O): src\pmc\lexinfo.str $(NONGEN_HEADERS) \
1942    src\pmc\pmc_hash.h src\pmc\pmc_default.h  src\pmc\pmc_hash.h src\pmc\pmc_continuation.h
1943
1944src\pmc\multisub.c : src\pmc\multisub.dump
1945        $(PMC2CC) src\pmc\multisub.pmc
1946
1947src\pmc\multisub.dump : vtable.dump src\pmc\default.dump src\pmc\fixedpmcarray.dump src\pmc\resizablepmcarray.dump  src\pmc\multisub.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1948        $(PMC2CD) src\pmc\multisub.pmc
1949
1950src\pmc\pmc_multisub.h: src\pmc\multisub.c
1951
1952src\pmc\multisub$(O): src\pmc\multisub.str $(NONGEN_HEADERS) \
1953    src\pmc\pmc_resizablepmcarray.h src\pmc\pmc_fixedpmcarray.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1954
1955src\pmc\namespace.c : src\pmc\namespace.dump
1956        $(PMC2CC) src\pmc\namespace.pmc
1957
1958src\pmc\namespace.dump : vtable.dump src\pmc\default.dump src\pmc\hash.dump  src\pmc\namespace.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1959        $(PMC2CD) src\pmc\namespace.pmc
1960
1961src\pmc\pmc_namespace.h: src\pmc\namespace.c
1962
1963src\pmc\namespace$(O): src\pmc\namespace.str $(NONGEN_HEADERS) \
1964    src\pmc\pmc_hash.h src\pmc\pmc_default.h  src\pmc\pmc_sub.h src\pmc\pmc_continuation.h
1965
1966src\pmc\object.c : src\pmc\object.dump
1967        $(PMC2CC) src\pmc\object.pmc
1968
1969src\pmc\object.dump : vtable.dump src\pmc\default.dump  src\pmc\object.pmc $(PMC2C_FILES) 
1970        $(PMC2CD) src\pmc\object.pmc
1971
1972src\pmc\pmc_object.h: src\pmc\object.c
1973
1974src\pmc\object$(O): src\pmc\object.str $(NONGEN_HEADERS) \
1975    src\pmc\pmc_default.h  include\parrot\oo_private.h src\pmc\pmc_class.h src\pmc\pmc_continuation.h
1976
1977src\pmc\packfile.c : src\pmc\packfile.dump
1978        $(PMC2CC) src\pmc\packfile.pmc
1979
1980src\pmc\packfile.dump : vtable.dump src\pmc\default.dump  src\pmc\packfile.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1981        $(PMC2CD) src\pmc\packfile.pmc
1982
1983src\pmc\pmc_packfile.h: src\pmc\packfile.c
1984
1985src\pmc\packfile$(O): src\pmc\packfile.str $(NONGEN_HEADERS) \
1986    src\pmc\pmc_default.h  src\pmc\pmc_packfiledirectory.h src\pmc\pmc_continuation.h
1987
1988src\pmc\packfileannotation.c : src\pmc\packfileannotation.dump
1989        $(PMC2CC) src\pmc\packfileannotation.pmc
1990
1991src\pmc\packfileannotation.dump : vtable.dump src\pmc\default.dump  src\pmc\packfileannotation.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
1992        $(PMC2CD) src\pmc\packfileannotation.pmc
1993
1994src\pmc\pmc_packfileannotation.h: src\pmc\packfileannotation.c
1995
1996src\pmc\packfileannotation$(O): src\pmc\packfileannotation.str $(NONGEN_HEADERS) \
1997    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
1998
1999src\pmc\packfileannotations.c : src\pmc\packfileannotations.dump
2000        $(PMC2CC) src\pmc\packfileannotations.pmc
2001
2002src\pmc\packfileannotations.dump : vtable.dump src\pmc\default.dump src\pmc\packfilesegment.dump  src\pmc\packfileannotations.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2003        $(PMC2CD) src\pmc\packfileannotations.pmc
2004
2005src\pmc\pmc_packfileannotations.h: src\pmc\packfileannotations.c
2006
2007src\pmc\packfileannotations$(O): src\pmc\packfileannotations.str $(NONGEN_HEADERS) \
2008    src\pmc\pmc_packfilesegment.h src\pmc\pmc_default.h  src\pmc\pmc_packfileannotation.h src\pmc\pmc_continuation.h
2009
2010src\pmc\packfileconstanttable.c : src\pmc\packfileconstanttable.dump
2011        $(PMC2CC) src\pmc\packfileconstanttable.pmc
2012
2013src\pmc\packfileconstanttable.dump : vtable.dump src\pmc\default.dump src\pmc\packfilesegment.dump  src\pmc\packfileconstanttable.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2014        $(PMC2CD) src\pmc\packfileconstanttable.pmc
2015
2016src\pmc\pmc_packfileconstanttable.h: src\pmc\packfileconstanttable.c
2017
2018src\pmc\packfileconstanttable$(O): src\pmc\packfileconstanttable.str $(NONGEN_HEADERS) \
2019    src\pmc\pmc_packfilesegment.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2020
2021src\pmc\packfiledirectory.c : src\pmc\packfiledirectory.dump
2022        $(PMC2CC) src\pmc\packfiledirectory.pmc
2023
2024src\pmc\packfiledirectory.dump : vtable.dump src\pmc\default.dump src\pmc\packfilesegment.dump  src\pmc\packfiledirectory.pmc $(PMC2C_FILES) 
2025        $(PMC2CD) src\pmc\packfiledirectory.pmc
2026
2027src\pmc\pmc_packfiledirectory.h: src\pmc\packfiledirectory.c
2028
2029src\pmc\packfiledirectory$(O): src\pmc\packfiledirectory.str $(NONGEN_HEADERS) \
2030    src\pmc\pmc_packfilesegment.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2031
2032src\pmc\packfilefixupentry.c : src\pmc\packfilefixupentry.dump
2033        $(PMC2CC) src\pmc\packfilefixupentry.pmc
2034
2035src\pmc\packfilefixupentry.dump : vtable.dump src\pmc\default.dump  src\pmc\packfilefixupentry.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2036        $(PMC2CD) src\pmc\packfilefixupentry.pmc
2037
2038src\pmc\pmc_packfilefixupentry.h: src\pmc\packfilefixupentry.c
2039
2040src\pmc\packfilefixupentry$(O): src\pmc\packfilefixupentry.str $(NONGEN_HEADERS) \
2041    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2042
2043src\pmc\packfilefixuptable.c : src\pmc\packfilefixuptable.dump
2044        $(PMC2CC) src\pmc\packfilefixuptable.pmc
2045
2046src\pmc\packfilefixuptable.dump : vtable.dump src\pmc\default.dump src\pmc\packfilesegment.dump  src\pmc\packfilefixuptable.pmc $(PMC2C_FILES) 
2047        $(PMC2CD) src\pmc\packfilefixuptable.pmc
2048
2049src\pmc\pmc_packfilefixuptable.h: src\pmc\packfilefixuptable.c
2050
2051src\pmc\packfilefixuptable$(O): src\pmc\packfilefixuptable.str $(NONGEN_HEADERS) \
2052    src\pmc\pmc_packfilesegment.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2053
2054src\pmc\packfilerawsegment.c : src\pmc\packfilerawsegment.dump
2055        $(PMC2CC) src\pmc\packfilerawsegment.pmc
2056
2057src\pmc\packfilerawsegment.dump : vtable.dump src\pmc\default.dump src\pmc\packfilesegment.dump  src\pmc\packfilerawsegment.pmc $(PMC2C_FILES) 
2058        $(PMC2CD) src\pmc\packfilerawsegment.pmc
2059
2060src\pmc\pmc_packfilerawsegment.h: src\pmc\packfilerawsegment.c
2061
2062src\pmc\packfilerawsegment$(O): src\pmc\packfilerawsegment.str $(NONGEN_HEADERS) \
2063    src\pmc\pmc_packfilesegment.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2064
2065src\pmc\packfilesegment.c : src\pmc\packfilesegment.dump
2066        $(PMC2CC) src\pmc\packfilesegment.pmc
2067
2068src\pmc\packfilesegment.dump : vtable.dump src\pmc\default.dump  src\pmc\packfilesegment.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2069        $(PMC2CD) src\pmc\packfilesegment.pmc
2070
2071src\pmc\pmc_packfilesegment.h: src\pmc\packfilesegment.c
2072
2073src\pmc\packfilesegment$(O): src\pmc\packfilesegment.str $(NONGEN_HEADERS) \
2074    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2075
2076src\pmc\parrotrunningthread.c : src\pmc\parrotrunningthread.dump
2077        $(PMC2CC) src\pmc\parrotrunningthread.pmc
2078
2079src\pmc\parrotrunningthread.dump : vtable.dump src\pmc\default.dump  src\pmc\parrotrunningthread.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2080        $(PMC2CD) src\pmc\parrotrunningthread.pmc
2081
2082src\pmc\pmc_parrotrunningthread.h: src\pmc\parrotrunningthread.c
2083
2084src\pmc\parrotrunningthread$(O): src\pmc\parrotrunningthread.str $(NONGEN_HEADERS) \
2085    src\pmc\pmc_default.h  include\parrot\embed.h src\pmc\pmc_continuation.h
2086
2087src\pmc\pccmethod_test.c : src\pmc\pccmethod_test.dump
2088        $(PMC2CC) src\pmc\pccmethod_test.pmc
2089
2090src\pmc\pccmethod_test.dump : vtable.dump src\pmc\default.dump  src\pmc\pccmethod_test.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2091        $(PMC2CD) src\pmc\pccmethod_test.pmc
2092
2093src\pmc\pmc_pccmethod_test.h: src\pmc\pccmethod_test.c
2094
2095src\pmc\pccmethod_test$(O): src\pmc\pccmethod_test.str $(NONGEN_HEADERS) \
2096    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2097
2098src\pmc\pmcproxy.c : src\pmc\pmcproxy.dump
2099        $(PMC2CC) src\pmc\pmcproxy.pmc
2100
2101src\pmc\pmcproxy.dump : vtable.dump src\pmc\default.dump src\pmc\class.dump  src\pmc\pmcproxy.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2102        $(PMC2CD) src\pmc\pmcproxy.pmc
2103
2104src\pmc\pmc_pmcproxy.h: src\pmc\pmcproxy.c
2105
2106src\pmc\pmcproxy$(O): src\pmc\pmcproxy.str $(NONGEN_HEADERS) \
2107    src\pmc\pmc_class.h src\pmc\pmc_default.h  include\parrot\oo_private.h src\pmc\pmc_continuation.h
2108
2109src\pmc\resizablebooleanarray.c : src\pmc\resizablebooleanarray.dump
2110        $(PMC2CC) src\pmc\resizablebooleanarray.pmc
2111
2112src\pmc\resizablebooleanarray.dump : vtable.dump src\pmc\default.dump src\pmc\fixedbooleanarray.dump  src\pmc\resizablebooleanarray.pmc $(PMC2C_FILES) 
2113        $(PMC2CD) src\pmc\resizablebooleanarray.pmc
2114
2115src\pmc\pmc_resizablebooleanarray.h: src\pmc\resizablebooleanarray.c
2116
2117src\pmc\resizablebooleanarray$(O): src\pmc\resizablebooleanarray.str $(NONGEN_HEADERS) \
2118    src\pmc\pmc_fixedbooleanarray.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2119
2120src\pmc\resizablefloatarray.c : src\pmc\resizablefloatarray.dump
2121        $(PMC2CC) src\pmc\resizablefloatarray.pmc
2122
2123src\pmc\resizablefloatarray.dump : vtable.dump src\pmc\default.dump src\pmc\fixedfloatarray.dump  src\pmc\resizablefloatarray.pmc $(PMC2C_FILES) 
2124        $(PMC2CD) src\pmc\resizablefloatarray.pmc
2125
2126src\pmc\pmc_resizablefloatarray.h: src\pmc\resizablefloatarray.c
2127
2128src\pmc\resizablefloatarray$(O): src\pmc\resizablefloatarray.str $(NONGEN_HEADERS) \
2129    src\pmc\pmc_fixedfloatarray.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2130
2131src\pmc\resizableintegerarray.c : src\pmc\resizableintegerarray.dump
2132        $(PMC2CC) src\pmc\resizableintegerarray.pmc
2133
2134src\pmc\resizableintegerarray.dump : vtable.dump src\pmc\default.dump src\pmc\fixedintegerarray.dump  src\pmc\resizableintegerarray.pmc $(PMC2C_FILES) 
2135        $(PMC2CD) src\pmc\resizableintegerarray.pmc
2136
2137src\pmc\pmc_resizableintegerarray.h: src\pmc\resizableintegerarray.c
2138
2139src\pmc\resizableintegerarray$(O): src\pmc\resizableintegerarray.str $(NONGEN_HEADERS) \
2140    src\pmc\pmc_fixedintegerarray.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2141
2142src\pmc\resizablepmcarray.c : src\pmc\resizablepmcarray.dump
2143        $(PMC2CC) src\pmc\resizablepmcarray.pmc
2144
2145src\pmc\resizablepmcarray.dump : vtable.dump src\pmc\default.dump src\pmc\fixedpmcarray.dump  src\pmc\resizablepmcarray.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2146        $(PMC2CD) src\pmc\resizablepmcarray.pmc
2147
2148src\pmc\pmc_resizablepmcarray.h: src\pmc\resizablepmcarray.c
2149
2150src\pmc\resizablepmcarray$(O): src\pmc\resizablepmcarray.str $(NONGEN_HEADERS) \
2151    src\pmc\pmc_fixedpmcarray.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2152
2153src\pmc\resizablestringarray.c : src\pmc\resizablestringarray.dump
2154        $(PMC2CC) src\pmc\resizablestringarray.pmc
2155
2156src\pmc\resizablestringarray.dump : vtable.dump src\pmc\default.dump src\pmc\fixedstringarray.dump  src\pmc\resizablestringarray.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2157        $(PMC2CD) src\pmc\resizablestringarray.pmc
2158
2159src\pmc\pmc_resizablestringarray.h: src\pmc\resizablestringarray.c
2160
2161src\pmc\resizablestringarray$(O): src\pmc\resizablestringarray.str $(NONGEN_HEADERS) \
2162    src\pmc\pmc_fixedstringarray.h src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2163
2164src\pmc\role.c : src\pmc\role.dump
2165        $(PMC2CC) src\pmc\role.pmc
2166
2167src\pmc\role.dump : vtable.dump src\pmc\default.dump  src\pmc\role.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2168        $(PMC2CD) src\pmc\role.pmc
2169
2170src\pmc\pmc_role.h: src\pmc\role.c
2171
2172src\pmc\role$(O): src\pmc\role.str $(NONGEN_HEADERS) \
2173    src\pmc\pmc_default.h  src\pmc\pmc_namespace.h src\pmc\pmc_continuation.h
2174
2175src\pmc\scalar.c : src\pmc\scalar.dump
2176        $(PMC2CC) src\pmc\scalar.pmc
2177
2178src\pmc\scalar.dump : vtable.dump src\pmc\default.dump  src\pmc\scalar.pmc $(PMC2C_FILES) 
2179        $(PMC2CD) src\pmc\scalar.pmc
2180
2181src\pmc\pmc_scalar.h: src\pmc\scalar.c
2182
2183src\pmc\scalar$(O): src\pmc\scalar.str $(NONGEN_HEADERS) \
2184    src\pmc\pmc_default.h  src\pmc\pmc_bigint.h src\pmc\pmc_continuation.h
2185
2186src\pmc\scheduler.c : src\pmc\scheduler.dump
2187        $(PMC2CC) src\pmc\scheduler.pmc
2188
2189src\pmc\scheduler.dump : vtable.dump src\pmc\default.dump  src\pmc\scheduler.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2190        $(PMC2CD) src\pmc\scheduler.pmc
2191
2192src\pmc\pmc_scheduler.h: src\pmc\scheduler.c
2193
2194src\pmc\scheduler$(O): src\pmc\scheduler.str $(NONGEN_HEADERS) \
2195    src\pmc\pmc_default.h  include\parrot\scheduler_private.h src\pmc\pmc_continuation.h
2196
2197src\pmc\schedulermessage.c : src\pmc\schedulermessage.dump
2198        $(PMC2CC) src\pmc\schedulermessage.pmc
2199
2200src\pmc\schedulermessage.dump : vtable.dump src\pmc\default.dump  src\pmc\schedulermessage.pmc $(PMC2C_FILES) 
2201        $(PMC2CD) src\pmc\schedulermessage.pmc
2202
2203src\pmc\pmc_schedulermessage.h: src\pmc\schedulermessage.c
2204
2205src\pmc\schedulermessage$(O): src\pmc\schedulermessage.str $(NONGEN_HEADERS) \
2206    src\pmc\pmc_default.h  include\parrot\scheduler_private.h src\pmc\pmc_continuation.h
2207
2208src\pmc\sockaddr.c : src\pmc\sockaddr.dump
2209        $(PMC2CC) src\pmc\sockaddr.pmc
2210
2211src\pmc\sockaddr.dump : vtable.dump src\pmc\default.dump  src\pmc\sockaddr.pmc $(PMC2C_FILES) 
2212        $(PMC2CD) src\pmc\sockaddr.pmc
2213
2214src\pmc\pmc_sockaddr.h: src\pmc\sockaddr.c
2215
2216src\pmc\sockaddr$(O): src\pmc\sockaddr.str $(NONGEN_HEADERS) \
2217    src\pmc\pmc_default.h   src\pmc\pmc_continuation.h
2218
2219src\pmc\socket.c : src\pmc\socket.dump
2220        $(PMC2CC) src\pmc\socket.pmc
2221
2222src\pmc\socket.dump : vtable.dump src\pmc\default.dump src\pmc\handle.dump  src\pmc\socket.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2223        $(PMC2CD) src\pmc\socket.pmc
2224
2225src\pmc\pmc_socket.h: src\pmc\socket.c
2226
2227src\pmc\socket$(O): src\pmc\socket.str $(NONGEN_HEADERS) \
2228    src\pmc\pmc_handle.h src\pmc\pmc_default.h  include\..\src\io\io_private.h src\pmc\pmc_continuation.h
2229
2230src\pmc\stringhandle.c : src\pmc\stringhandle.dump
2231        $(PMC2CC) src\pmc\stringhandle.pmc
2232
2233src\pmc\stringhandle.dump : vtable.dump src\pmc\default.dump src\pmc\handle.dump  src\pmc\stringhandle.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm src\pmc\pmc_fixedintegerarray.h
2234        $(PMC2CD) src\pmc\stringhandle.pmc
2235
2236src\pmc\pmc_stringhandle.h: src\pmc\stringhandle.c
2237
2238src\pmc\stringhandle$(O): src\pmc\stringhandle.str $(NONGEN_HEADERS) \
2239    src\pmc\pmc_handle.h src\pmc\pmc_default.h  include\..\src\io\io_private.h src\pmc\pmc_continuation.h
2240
2241src\pmc\task.c : src\pmc\task.dump
2242        $(PMC2CC) src\pmc\task.pmc
2243
2244src\pmc\task.dump : vtable.dump src\pmc\default.dump  src\pmc\task.pmc $(PMC2C_FILES) 
2245        $(PMC2CD) src\pmc\task.pmc
2246
2247src\pmc\pmc_task.h: src\pmc\task.c
2248
2249src\pmc\task$(O): src\pmc\task.str $(NONGEN_HEADERS) \
2250    src\pmc\pmc_default.h  include\parrot\scheduler_private.h src\pmc\pmc_continuation.h
2251
2252src\pmc\undef.c : src\pmc\undef.dump
2253        $(PMC2CC) src\pmc\undef.pmc
2254
2255src\pmc\undef.dump : vtable.dump src\pmc\default.dump  src\pmc\undef.pmc $(PMC2C_FILES) 
2256        $(PMC2CD) src\pmc\undef.pmc
2257
2258src\pmc\pmc_undef.h: src\pmc\undef.c
2259
2260src\pmc\undef$(O): src\pmc\undef.str $(NONGEN_HEADERS) \
2261    src\pmc\pmc_default.h  src\pmc\pmc_object.h src\pmc\pmc_continuation.h
2262
2263
2264
2265
2266# the following part of the Makefile was built by 'config\inter\charset.pm'
2267
2268src\string\charset\ascii$(O): src\string\charset\ascii.h src\string\charset\ascii.h src\string\charset\ascii.c $(NONGEN_HEADERS)
2269
2270
2271src\string\charset\binary$(O): src\string\charset\binary.h src\string\charset\ascii.h src\string\charset\binary.c $(NONGEN_HEADERS)
2272
2273
2274src\string\charset\iso-8859-1$(O): src\string\charset\iso-8859-1.h src\string\charset\ascii.h src\string\charset\iso-8859-1.c $(NONGEN_HEADERS)
2275
2276
2277src\string\charset\tables$(O): src\string\charset\tables.h src\string\charset\ascii.h src\string\charset\tables.c $(NONGEN_HEADERS)
2278
2279
2280src\string\charset\unicode$(O): src\string\charset\unicode.h src\string\charset\ascii.h src\string\charset\unicode.c $(NONGEN_HEADERS)
2281
2282
2283
2284
2285
2286# the following part of the Makefile was built by 'config\inter\encoding.pm'
2287
2288src\string\encoding\fixed_8$(O): src\string\encoding\fixed_8.h src\string\encoding\fixed_8.c $(NONGEN_HEADERS)
2289
2290
2291src\string\encoding\ucs2$(O): src\string\encoding\ucs2.h src\string\encoding\ucs2.c $(NONGEN_HEADERS)
2292
2293
2294src\string\encoding\utf16$(O): src\string\encoding\utf16.h src\string\encoding\utf16.c $(NONGEN_HEADERS)
2295
2296
2297src\string\encoding\utf8$(O): src\string\encoding\utf8.h src\string\encoding\utf8.c $(NONGEN_HEADERS)
2298
2299
2300
2301
2302# $(CONFIGURE_GENERATED_FILES) : Configure.pl
2303#       $(PERL) Configure.pl
2304
2305$(INC_DIR)\vtable.h : src\vtable.tbl $(BUILD_TOOLS_DIR)\vtable_h.pl lib\Parrot\Vtable.pm
2306        $(PERL) $(BUILD_TOOLS_DIR)\vtable_h.pl
2307
2308$(SRC_DIR)\jit_emit.h : $(SRC_DIR)\jit\i386\jit_emit.h
2309        $(CP) $(SRC_DIR)\jit\i386\jit_emit.h $(SRC_DIR)\jit_emit.h
2310$(SRC_DIR)\exec_dep.h : $(SRC_DIR)\jit\i386\exec_dep.h
2311        $(CP) $(SRC_DIR)\jit\i386\exec_dep.h $(SRC_DIR)\exec_dep.h
2312$(SRC_DIR)\jit_cpu.c : lib\Parrot\OpLib\core.pm $(SRC_DIR)\jit_emit.h \
2313    $(SRC_DIR)\jit\i386\core.jit $(JIT_BUILD_TOOL)
2314        $(PERL) $(JIT_BUILD_TOOL) i386 $(SRC_DIR)\jit_cpu.c
2315$(SRC_DIR)\jit_defs.c : $(SRC_DIR)\jit\i386\jit_emit.h \
2316        $(SRC_DIR)\jit\i386\jit_defs.c
2317        $(CP) $(SRC_DIR)\jit\i386\jit_defs.c $(SRC_DIR)\jit_defs.c
2318$(SRC_DIR)\exec_cpu.c : lib\Parrot\OpLib\core.pm $(SRC_DIR)\jit_emit.h \
2319    $(SRC_DIR)\jit\i386\core.jit $(SRC_DIR)\jit.h $(INC_DIR)\exec.h $(SRC_DIR)\exec_dep.h $(SRC_DIR)\exec_save.h $(SRC_DIR)\exec_dep.h $(JIT_BUILD_TOOL)
2320        $(PERL) $(JIT_BUILD_TOOL) i386 $(SRC_DIR)\exec_cpu.c
2321$(SRC_DIR)\exec_dep.c : $(SRC_DIR)\jit\i386\exec_dep.c
2322        $(CP) $(SRC_DIR)\jit\i386\exec_dep.c $(SRC_DIR)\exec_dep.c
2323
2324# imcc file dependencies
2325#
2326# The .flag files are needed because we keep some derived files in SVN,
2327# which does not keep accurate timestamps on the files, relative to each other.
2328# Note that YACC or LEX may be null commands, so we must `touch` all the
2329# target files, instead of just the .flag files.
2330
2331$(IMCC_DIR)\imcc.y.flag $(IMCC_DIR)\imcparser.c $(IMCC_DIR)\imcparser.h : $(IMCC_DIR)\imcc.y
2332        $(YACC) $(IMCC_DIR)\imcc.y -d -o $(IMCC_DIR)\imcparser.c
2333        $(PERL) $(BUILD_TOOLS_DIR)\fixup_gen_file.pl -noheaderizer $(IMCC_DIR)\imcparser.c $(IMCC_DIR)\imcc.y
2334        $(PERL) $(BUILD_TOOLS_DIR)\fixup_gen_file.pl -noheaderizer $(IMCC_DIR)\imcparser.h $(IMCC_DIR)\imcc.y
2335        $(TOUCH) $(IMCC_DIR)\imcc.y.flag $(IMCC_DIR)\imcparser.c $(IMCC_DIR)\imcparser.h
2336
2337$(IMCC_DIR)\imcc.l.flag $(IMCC_DIR)\imclexer.c : $(IMCC_DIR)\imcc.l
2338        $(LEX) -o$(IMCC_DIR)\imclexer.c $(IMCC_DIR)\imcc.l
2339        $(TOUCH) $(IMCC_DIR)\imcc.l.flag $(IMCC_DIR)\imclexer.c
2340
2341$(IMCC_O_FILES) : $(IMCC_H_FILES) $(ALL_H_FILES)
2342
2343###############################################################################
2344#
2345# Documentation targets:
2346#
2347###############################################################################
2348
2349docs : docs.dummy
2350
2351docs.stub:
2352        @echo "Perldoc is required, but not detected."
2353
2354docs.dummy :
2355        $(MAKE) docs
2356
2357docs-clean :
2358        $(MAKE) docs clean
2359
2360html : html.dummy
2361
2362html.stub:
2363        @echo "Perldoc is required, but not detected."
2364
2365html.dummy :
2366        $(MAKE) docs html
2367
2368html-clean :
2369        $(MAKE) docs html-clean
2370
2371htmlhelp : htmlhelp.dummy
2372
2373htmlhelp.stub:
2374        @echo "Perldoc is required, but not detected."
2375
2376htmlhelp.dummy :
2377        $(MAKE) docs htmlhelp
2378
2379htmlhelp-clean :
2380        $(MAKE) docs htmlhelp-clean
2381
2382###############################################################################
2383#
2384# dynamic PMC targets:
2385#
2386###############################################################################
2387
2388dynpmc : dynpmc.dummy
2389
2390# XXX this dependancy is too broad, and should be narrowed down
2391dynpmc.dummy : $(PARROT) $(INC_DIR)\parrot.h $(INC_DIR)\extend.h $(INC_DIR)\dynext.h $(PMC2C_FILES)
2392        $(MAKE) src\dynpmc
2393
2394dynpmc-test : $(PARROT) $(INC_DIR)\parrot.h $(INC_DIR)\extend.h $(INC_DIR)\dynext.h
2395        $(MAKE) src\dynpmc test
2396
2397dynpmc-clean :
2398        $(MAKE) src\dynpmc clean
2399
2400###############################################################################
2401#
2402# dynamic oplibs targets:
2403#
2404###############################################################################
2405
2406dynoplibs : dynoplibs.dummy
2407
2408# XXX this dependancy is too broad, and should be narrowed down
2409dynoplibs.dummy : $(PARROT) $(INC_DIR)\dynext.h
2410        $(MAKE) src\dynoplibs
2411
2412dynoplibs-test : $(PARROT) $(INC_DIR)\dynext.h
2413        $(MAKE) src\dynoplibs test
2414
2415dynoplibs-clean :
2416        $(MAKE) src\dynoplibs clean
2417
2418###############################################################################
2419#
2420# compiler implementation targets:
2421#
2422###############################################################################
2423
2424compilers : compilers.dummy
2425
2426compilers.dummy : $(PARROT) $(GEN_LIBRARY)
2427        $(MAKE) compilers\pct
2428        $(MAKE) compilers\pge
2429        $(MAKE) compilers\tge
2430        $(MAKE) compilers\nqp
2431        $(MAKE) compilers\json
2432
2433compilers-clean :
2434        $(MAKE) compilers\pct clean
2435        $(MAKE) compilers\pge clean
2436        $(MAKE) compilers\tge clean
2437        $(MAKE) compilers\nqp clean
2438        $(MAKE) compilers\json clean
2439        $(MAKE) compilers\pirc clean
2440
2441###############################################################################
2442#
2443# editors targets:
2444#
2445###############################################################################
2446
2447editor-clean :
2448        $(MAKE) editor clean
2449
2450###############################################################################
2451#
2452# Testing Targets:
2453#
2454###############################################################################
2455
2456# The --running-make-test argument is currently used by long-running tests
2457# to disable GC_DEBUG.
2458EXTRA_TEST_ARGS = --gc-debug --running-make-test
2459DISTRO_TEST_FILES = \
2460    t\distro\\*.t
2461BENCHMARK_TEST_FILES = \
2462    t\benchmark\\*.t
2463PERL_TEST_FILES = \
2464    t\perl\\*.t
2465CODINGSTD_TEST_FILES = \
2466    t\codingstd\\*.t
2467RUN_TEST_FILES = \
2468    t\run\\*.t
2469RUNCORE_TEST_FILES = \
2470    --runcore-tests
2471SRC_TEST_FILES = \
2472    t\src\\*.t
2473TOOLS_TEST_FILES = \
2474    t\tools\\*.t
2475PMC2CUTILS_DIR = t\tools\pmc2cutils
2476OPS2PMUTILS_DIR = t\tools\ops2pm
2477OPS2CUTILS_DIR = t\tools\ops2cutils
2478REVISIONUTILS_DIR = t\tools\revision
2479HARNESS_DIR = t\pharness
2480BUILDTOOLS_TEST_FILES = \
2481    $(PMC2CUTILS_DIR)\\*.t \
2482    $(OPS2PMUTILS_DIR)\\*.t \
2483    $(OPS2CUTILS_DIR)\\*.t \
2484    $(REVISIONUTILS_DIR)\\*.t \
2485    $(HARNESS_DIR)\\*.t
2486MANIFEST_DIR = t\manifest
2487INSTALL_TOOLS_DIR = t\tools\install
2488MANIFEST_TEST_FILES = \
2489    $(MANIFEST_DIR)\\*.t \
2490    $(INSTALL_TOOLS_DIR)\\*.t
2491EXAMPLES_TEST_FILES = \
2492    t\examples\\*.t
2493CONFIGURE_TEST_FILES = \
2494    t\configure\\*.t \
2495    t\steps\\*.t
2496
2497# Common prep for all test targets.
2498# We probably need a complete build before running the tests.
2499test_prep : all
2500
2501# We always want to test annotations are persisted in PBC during make test.
2502test_pbc_annotation_persistence : test_prep
2503        $(PERL) t\harness $(EXTRA_TEST_ARGS) -r t\op\annotate.t
2504
2505# Run test cases with a single call of t\harness. Users have to look at only
2506# one report. The default set of tests to run is contained in t\harness,
2507# make any edits there. Some tests are run in a separate harness only because
2508# integrating them in a single run is difficult.
2509
2510# Normal test package
2511test : test_core nqp_test
2512
2513# Test Parrot core.
2514test_core: test_prep test_pbc_annotation_persistence
2515        $(PERL) t\harness $(EXTRA_TEST_ARGS)
2516
2517# Test the NQP compiler
2518nqp_test : test_prep
2519        $(MAKE) compilers\nqp test
2520
2521# run the test suite, create a TAP archive and send it off to smolder
2522smolder_test : test_prep
2523        $(PERL) t\harness $(EXTRA_TEST_ARGS) --archive --send-to-smolder
2524
2525smolder_coretest : test_prep
2526        $(PERL) t\harness $(EXTRA_TEST_ARGS) --core-tests --archive --send-to-smolder
2527
2528smoke : smolder_test
2529
2530# "core tests" -- test basic functionality but not ancillaries
2531coretest : test_prep
2532        $(PERL) t\harness $(EXTRA_TEST_ARGS) --core-tests
2533
2534# automake compatibility
2535check : test
2536
2537# Test various run cores and other stuff
2538# 'testC', 'testg' and 'testj' are tested only
2539# when the needed runcores are available
2540fulltest :
2541        -dmake testb \
2542        testC \
2543        testf \
2544        testg \
2545        testj \
2546        testr \
2547        testS \
2548        src_tests \
2549        run_tests \
2550        perl_tests \
2551        codetest \
2552        benchmark_tests \
2553        manifest_tests \
2554        examples_tests \
2555        distro_tests
2556
2557fulltest_all :
2558        -dmake testb
2559        -dmake testC
2560        -dmake testf
2561        -dmake testg
2562        -dmake testj
2563        -dmake testr
2564        -dmake testS
2565        -dmake src_tests
2566        -dmake run_tests
2567        -dmake perl_tests
2568        -dmake codetest
2569        -dmake manifest_tests
2570        -dmake examples_tests
2571        -dmake distro_tests
2572        -dmake benchmark_tests
2573
2574# bounds checking, slow core
2575testb : test_prep
2576        $(PERL) t\harness $(EXTRA_TEST_ARGS) -b $(RUNCORE_TEST_FILES)
2577
2578# CGP core
2579testC : test_prep
2580        $(PERL) t\harness $(EXTRA_TEST_ARGS) -C $(RUNCORE_TEST_FILES)
2581
2582# fast core
2583testf : test_prep
2584        $(PERL) t\harness $(EXTRA_TEST_ARGS) -f $(RUNCORE_TEST_FILES)
2585
2586# Computed goto
2587testg : test_prep
2588        $(PERL) t\harness $(EXTRA_TEST_ARGS) -g $(RUNCORE_TEST_FILES)
2589
2590# JIT core
2591testj : test_prep
2592        $(PERL) t\harness $(EXTRA_TEST_ARGS) -j $(RUNCORE_TEST_FILES)
2593
2594# normal core, write and run Parrot Byte Code
2595testr : test_prep
2596        $(PERL) t\harness $(EXTRA_TEST_ARGS) -r $(RUNCORE_TEST_FILES)
2597
2598# switched core
2599testS : test_prep
2600        $(PERL) t\harness $(EXTRA_TEST_ARGS) -S $(RUNCORE_TEST_FILES)
2601
2602# Computed goto jitted core
2603testCj : test_prep
2604        $(PERL) t\harness $(EXTRA_TEST_ARGS) -Cj $(RUNCORE_TEST_FILES)
2605
2606# switched jitted core
2607testSj : test_prep
2608        $(PERL) t\harness $(EXTRA_TEST_ARGS) -Sj $(RUNCORE_TEST_FILES)
2609
2610# test the EXEC stuff
2611testexec: test_prep
2612        $(PERL) t\harness $(EXTRA_TEST_ARGS) --run-exec $(RUNCORE_TEST_FILES)
2613
2614# Test that need to be compiled by the C-compiler
2615src_tests :
2616        $(PERL) t\harness $(SRC_TEST_FILES)
2617
2618# Command line and various environments
2619run_tests :
2620        $(PERL) t\harness $(RUN_TEST_FILES)
2621
2622# Test the Perl5 Modules in the Parrot distribution
2623perl_tests :
2624        $(PERL) t\harness $(PERL_TEST_FILES)
2625
2626codetest :
2627        $(PERL) t\harness $(EXTRA_TEST_ARGS) --code-tests
2628
2629# Test pdd07_codingstd
2630codingstd_tests :
2631        $(PERL) t\harness $(CODINGSTD_TEST_FILES)
2632
2633# Run standard test suite with warnings enabled.
2634warnings_tests:
2635        $(PERL) t\harness $(EXTRA_TEST_ARGS) -w $(RUNCORE_TEST_FILES)
2636
2637buildtools_tests :
2638        $(PERL) t\harness $(BUILDTOOLS_TEST_FILES)
2639
2640manifest_tests :
2641        $(PERL) t\harness $(MANIFEST_TEST_FILES)
2642
2643examples_tests :
2644        $(PERL) t\harness $(EXAMPLES_TEST_FILES)
2645
2646# benchmark tests
2647benchmark_tests : test_prep
2648        $(PERL) t\harness $(BENCHMARK_TEST_FILES)
2649
2650# Running a benchmark
2651mopsbench : test_prep
2652        $(PARROT) examples\benchmarks\mops_intval.pasm
2653
2654# distro tests
2655distro_tests : test_prep
2656        $(PERL) t\harness $(DISTRO_TEST_FILES)
2657
2658# configure tests
2659configure_tests :
2660        $(PERL) t\harness $(CONFIGURE_TEST_FILES)
2661
2662###############################################################################
2663#
2664# Cleaning Targets:
2665#
2666###############################################################################
2667
2668clean : \
2669    test-clean \
2670    prog-clean \
2671    dynext-clean \
2672    docs-clean \
2673    html-clean \
2674    dynpmc-clean \
2675    dynoplibs-clean \
2676    examples-clean \
2677    imcc-clean \
2678    compilers-clean \
2679    editor-clean
2680        $(RM_F) $(INC_DIR)\oplib\core_ops_cg.h $(OPS_DIR)\core_ops_cg.c \
2681                    $(INC_DIR)\oplib\core_ops_cgp.h $(OPS_DIR)\core_ops_cgp.c
2682        $(RM_F) chartypes "*.s" "*~"
2683        $(RM_F) $(FLUID_FILES_1)
2684        $(RM_F) $(FLUID_FILES_2)
2685        $(RM_RF) lib\Parrot\OpLib
2686
2687prog-clean :
2688        $(RM_F) \
2689    $(O_FILES) \
2690    $(PARROT) \
2691    $(MINIPARROT) \
2692    $(LIBPARROT) \
2693    $(INSTALLABLEPARROT) \
2694    $(INSTALLABLEDIS) \
2695    $(INSTALLABLEPDUMP) \
2696    $(INSTALLABLEPINFO) \
2697    $(INSTALLABLEPBCMERGE) \
2698    $(INSTALLABLEPBCTOEXE) \
2699    $(INSTALLABLEPDB) \
2700    $(INSTALLABLECONFIG) \
2701    pbc_to_exe.pbc pbc_to_exe.c pbc_to_exe$(O) pbc_to_exe$(EXE) \
2702    parrot_config$(EXE) parrot_config.c parrot_config$(O) parrot_config.pbc \
2703    $(IMCC_DIR)\main$(O) \
2704    $(PDUMP) $(SRC_DIR)\pbc_dump$(O) $(SRC_DIR)\packdump$(O) \
2705    $(SRC_DIR)\pbc_info$(O) $(PINFO) \
2706    $(PDB) $(SRC_DIR)\parrot_debugger$(O) \
2707    $(PBCMERGE) $(SRC_DIR)\pbc_merge$(O) \
2708    $(DIS) $(SRC_DIR)\pbc_disassemble$(O)
2709        $(RM_F) \
2710    $(SRC_DIR)\main$(O) \
2711    $(SRC_DIR)\null_config$(O) \
2712    $(SRC_DIR)\parrot_config$(O) \
2713    $(SRC_DIR)\install_config$(O) \
2714    $(SRC_DIR)\exec_start$(O) \
2715    $(SRC_DIR)\nci_test$(O) \
2716    $(LIBNCI_TEST_SO) \
2717    $(SRC_DIR)\glut_callbacks$(O) \
2718    $(LIBGLUTCB_SO) \
2719    install_config.fpmc
2720        $(PERL) $(BUILD_TOOLS_DIR)\c2str.pl --init
2721        $(RM_F) \
2722    $(STR_FILES) \
2723    $(SRC_DIR)\string\private_cstring.h "src\pmc\\*.c" "src\pmc\pmc_*.h" \
2724    "src\pmc\\*.dump" vtable.dump "*.def" "*.lib" "*.exp"
2725
2726archclean: dynoplibs-clean dynpmc-clean dynext-clean
2727        $(RM_F) \
2728    $(O_FILES) \
2729    $(GEN_CONFIGS) \
2730    $(GEN_MAKEFILES) \
2731    $(PARROT) \
2732    $(MINIPARROT) \
2733    $(INSTALLABLEPARROT) \
2734    $(INSTALLABLEDIS) \
2735    $(INSTALLABLEPDUMP) \
2736    $(INSTALLABLEPINFO) \
2737    $(INSTALLABLEPBCMERGE) \
2738    $(INSTALLABLEPDB) \
2739    $(INSTALLABLECONFIG) \
2740    $(IMCC_DIR)\main$(O) \
2741    $(PDUMP) $(SRC_DIR)\pbc_dump$(O) $(SRC_DIR)\packdump$(O) \
2742    $(PINFO) $(SRC_DIR)\pbc_info$(O) \
2743    $(PDB) $(SRC_DIR)\parrot_debugger$(O) \
2744    $(PBCMERGE) $(SRC_DIR)\pbc_merge$(O) \
2745    $(DIS) $(SRC_DIR)\pbc_disassemble$(O) \
2746    $(PARROT_CONFIG) parrot_config$(O) parrot_config.c \
2747    $(SRC_DIR)\parrot_config$(O) parrot_config.pbc \
2748    pbc_to_exe$(EXE) pbc_to_exe$(O) pbc_to_exe.pbc \
2749    $(SRC_DIR)\null_config$(O) \
2750    $(SRC_DIR)\parrot_config$(O) \
2751    $(SRC_DIR)\install_config$(O) \
2752    $(SRC_DIR)\asmfun.s \
2753    $(SRC_DIR)\jit_emit.h \
2754    $(SRC_DIR)\jit_cpu.c \
2755    $(SRC_DIR)\exec_cpu.c \
2756    $(SRC_DIR)\jit_defs.c \
2757    $(SRC_DIR)\exec_start$(O) \
2758    install_config.fpmc \
2759    $(SRC_DIR)\nci_test$(O) \
2760    $(LIBNCI_TEST_SO) \
2761    $(SRC_DIR)\glut_callbacks$(O) \
2762    $(LIBGLUTCB_SO) \
2763    $(LIBPARROT_STATIC) \
2764    $(LIBPARROT_SHARED)
2765
2766dynext-clean :
2767# shared libs (LOAD_EXT, SHARE_EXT)
2768# win32 import library (.lib - shared object is deleted by LIBNCI_TEST_SO above)
2769# win32 program data base - contains debugging info (.pdb)
2770# win32 incremental link status files (.ilk)
2771# win32 exported functions and data items (.exp)
2772# win32 export definition files (.def)
2773        $(RM_F) \
2774    "$(DYNEXT_DIR)\\*$(LOAD_EXT)" \
2775    "$(DYNEXT_DIR)\\*$(SHARE_EXT)" \
2776    "$(DYNEXT_DIR)\\*.lib" \
2777    "*.pdb" "$(DYNEXT_DIR)\\*.pdb" \
2778    "*.ilk" "$(DYNEXT_DIR)\\*.ilk" \
2779    "*.exp" "$(DYNEXT_DIR)\\*.exp" \
2780    "*.def" "$(DYNEXT_DIR)\\*.def" \
2781    "*.manifest" "$(DYNEXT_DIR)\\*.manifest"
2782
2783# Remove files generated by the test suite
2784# XXX Is there a danger of too long command lines in the $(RM_F) commands,
2785# or is there an automatic xargs?
2786test-clean :
2787        $(RM_F) \
2788    "t\compilers\\*\\*.out" \
2789    "t\compilers\\*\\*.pasm" \
2790    "t\compilers\\*\\*.pbc" \
2791    "t\compilers\\*\\*_pbcexe*" \
2792    "t\compilers\\*\\*.pir" \
2793    "t\compilers\\*\\*.stabs.s"
2794        $(RM_F) \
2795    "t\compilers\\*\\*\\*.out" \
2796    "t\compilers\\*\\*\\*.pasm" \
2797    "t\compilers\\*\\*\\*.pbc" \
2798    "t\compilers\\*\\*\\*_pbcexe*" \
2799    "t\compilers\\*\\*\\*.pir" \
2800    "t\compilers\\*\\*\\*.stabs.s"
2801        $(RM_F) \
2802    "t\\*\\*$(O)" \
2803    "t\\*\\*.out" \
2804    "t\\*\\*.pasm" \
2805    "t\\*\\*_pbcexe*" \
2806    "t\\*\\*.pir" \
2807    "t\\*\\*.stabs.s"
2808        $(RM_F) \
2809    "t\library\\*.pbc" \
2810    "t\dynoplibs\\*.pbc" \
2811    "t\op\\*.pbc" \
2812    "t\oo\\*.pbc" \
2813    "t\pmc\\*.pbc" \
2814    "t\stress\\*.pbc" \
2815    "t\tools\\*.pbc"
2816        $(RM_F) \
2817        "t\dynpmc\md2.t" \
2818        "t\dynpmc\md4.t" \
2819        "t\dynpmc\md5.t" \
2820        "t\dynpmc\ripemd160.t" \
2821        "t\dynpmc\sha.t" \
2822        "t\dynpmc\sha1.t" \
2823        "t\dynpmc\sha256.t" \
2824        "t\dynpmc\sha512.t"
2825        $(RM_F) \
2826    "t\src\\*.c" \
2827    "t\src\\*.pdb" \
2828    "t\src\\*.manifest"
2829        $(RM_F) \
2830     "t\tools\pmc2c.t_*" \
2831     "t\tools\pmc2c.pmc_t_*" \
2832     "t\tools\parrot_debugger.t.*"
2833        $(RM_F) \
2834     "test$(EXE)" \
2835     "test.*"
2836        $(RM_F) \
2837     "parrot_test_run.tar.gz" \
2838         ".pod_examinable*.sto"
2839
2840imcc-clean:
2841        $(RM_F) \
2842    $(IMCC_DIR)\core \
2843    "$(IMCC_DIR)\\*$(O)" \
2844    $(IMCC_DIR)\imcparser.output
2845
2846# a failing step of cleaning, usually doesn't concern the following steps
2847realclean : clean
2848        -$(MAKE) compilers\pirc  realclean
2849        -$(MAKE) src\dynpmc      realclean
2850        $(RM_RF) \
2851    $(CONFIGURE_GENERATED_FILES) \
2852    blib \
2853    cover_db
2854
2855distclean : realclean
2856
2857# Require .svn to exist first
2858# Otherwise it'll remove every last file
2859svnclobber : .svn
2860        $(PERL) tools\dev\svnclobber.pl
2861
2862reconfig : realclean
2863        $(PERL) Configure.pl $(CONFIG_ARGS)
2864
2865manitest :
2866        $(PERL) tools\dev\manicheck.pl
2867
2868opsrenumber :
2869        $(PERL) tools\dev\opsrenumber.pl $(OPS_FILES)
2870
2871pmcrenumber :
2872        $(PERL) tools\dev\pmcrenumber.pl $(SRC_DIR)\pmc\pmc.num
2873
2874###############################################################################
2875#
2876# SVN Targets:
2877#
2878###############################################################################
2879
2880update :
2881        svn -q update
2882
2883status :
2884        svn -q status
2885
2886patch :
2887        svn diff
2888
2889LINTABLE_CFILES = `echo $(SRC_DIR)\main$(O) $(O_FILES) $(SRC_DIR)\parrot_config$(O) | $(PERL) -pe "s\\.o\\.c\g"`
2890
2891lint : sunlint
2892
2893SUNLINT = lint
2894
2895# This target does sneaky magic to get the $(NOTE) fields to work.  It's
2896# doing replaces in $(NOTE), which is empty, of strings that will never match.
2897NOTE =
2898SUNLINT_HUSH_OPTS = \
2899    $(NOTE:% Errors that will never be silenced, and we must always hush =%)\
2900    -erroff=E_ARGUMENT_CONVERT          $(NOTE:% implicit integer-to-long conversion =%) \
2901    -erroff=E_BAD_PTR_CAST                    $(NOTE:% pointer casts may be troublesome =%) \
2902    -erroff=E_BAD_PTR_CAST_ALIGN          $(NOTE:% alignment problems with cast =%) \
2903    -erroff=E_LABEL_NOT_USED          $(NOTE:% Unused label =%) \
2904    -erroff=E_CONSTANT_CONDITION          $(NOTE:% Constant condition =%) \
2905    -erroff=E_INCL_NUSD                    $(NOTE:% An include file was unused =%) \
2906    -erroff=E_INDISTING_FROM_TRUNC          $(NOTE:% Identifier will be ambiguous if truncated =%) \
2907    -erroff=E_MCR_NODIFF                    $(NOTE:% Macros differ between source files =%) \
2908    -erroff=E_INIT_DOES_NOT_FIT          $(NOTE:% initializer does not fit or is out of range+ 0xf0e69739 =%) \
2909    -erroff=E_NONPORT_SBITWISE_OP   $(NOTE:% bitwise operations on signed values not portable =%) \
2910    \
2911    $(NOTE:% Things to drop some day =%) \
2912    -erroff=E_FUNC_ARG_UNUSED          $(NOTE:% Unused function argument =%) \
2913    -erroff=E_STMT_NOT_REACHED          $(NOTE:% Unreachable statement =%) \
2914    -erroff=E_NOP_IF_STMT                    $(NOTE:% if has a no-op =%) \
2915    -erroff=E_NOP_ELSE_STMT                    $(NOTE:% else has a no-op =%) \
2916    -erroff=E_CASE_FALLTHRU                    $(NOTE:% case fallthru =%) \
2917    -erroff=E_STATIC_UNUSED                    $(NOTE:% Static function not used =%) \
2918
2919SUNLINT_OPTS_FOR_THE_FUTURE = -b -m -Xc
2920
2921# Lint options at: http://docs.sun.com/app/docs/doc/819-5265/6n7c29cli?a=view
2922SUNLINTOPTS = \
2923    -b \
2924    -p \
2925    -fd \
2926    -Ncheck=%all \
2927    -Nlevel=4 \
2928    -errchk=%all \
2929    -errhdr=%user \
2930    -errtags \
2931    -errchk=no%longptr64 \
2932    -errfmt=simple \
2933    $(SUNLINT_HUSH_OPTS) \
2934
2935sunlint :
2936        rm -f *.ln
2937        $(SUNLINT) $(CC_INC)  -DHAS_JIT -DI386 "-Isrc\pmc" $(SUNLINTOPTS) $(LINTABLE_CFILES)
2938
2939BSD_LINT_FLAGS = -a -aa -b -c -e -h -n -p -r -u -x -z -F -H -V
2940
2941# 132: conversion from '...' may lose accuracy
2942# 135: possible pointer alignment problem
2943# 236: static function unused
2944# 241: dubious operation on enum
2945# 247: pointer casts may be troublesome
2946# 249: syntax error (huh? this appears in atomic\gcc_x86.h but doesn't
2947#      cause any compiler to barf)
2948# 259: conversion to '...' due to prototype
2949# 265: ANSI C does not support 'long long'
2950# 277: initialisation of '...' with '...'
2951# 278: combination of '...' and '...', arg #...
2952BSD_LINT_EXCLUSIONS = -X132,135,236,241,247,249,259,265,277,278
2953
2954bsdlint : $(PARROT)
2955        rm -f *.ln
2956        $(LINT) $(CC_INC) "-Isrc\pmc" $(BSD_LINT_FLAGS) $(BSD_LINT_EXCLUSIONS) $(LINTABLE_CFILES)
2957
2958# For checking with splint see also http://www.perlfoundation.org/parrot/index.cgi?splint
2959# Splint: http://splint.org
2960SPLINT = splint
2961
2962# Temp directory for splint.  Add +keep to splintflags if you want work files
2963# kept in there after completion.
2964SPLINT_TMP = $(TMP)\splint
2965
2966# Splint flags: http:/splint.org\manual\html\appB.html
2967# The dashes in the names don't make any difference to Splint, but I've
2968# made them match how they are in the manual.  Otherwise, you might be
2969# looking for "declundef", except that it's "decl-undef" in the docs.
2970SPLINTFLAGS = \
2971    +standard \
2972    -hints \
2973    \
2974    +indentspaces 4 \
2975    +locindentspaces 4 \
2976    +linelen 120 \
2977    -message-stream-stdout \
2978    +showdeephistory \
2979    -showfunc \
2980    -tmpdir $(SPLINT_TMP) \
2981    \
2982    +posix-lib \
2983    -skip-posix-headers \
2984    \
2985    +ansi89-limits \
2986    +num-struct-fields 255 \
2987    \
2988    -show-summary \
2989    +show-scan \
2990    +time-dist \
2991    \
2992    +ansi-reserved \
2993    +ansi-reserved-internal \
2994    -iso-reserved \
2995    -iso-reserved-internal \
2996    -include-nest 10
2997
2998# Memory safety checks
2999SPLINTFLAGS = $(SPLINTFLAGS) \
3000    +bufferoverflow \
3001    +bufferoverflowhigh \
3002    +read-only-strings \
3003    +read-only-trans \
3004    +strict-destroy \
3005    +strict-use-released \
3006    +use-released \
3007
3008# Macro safety checks
3009SPLINTFLAGS = $(SPLINTFLAGS) \
3010    +macro-assign \
3011    +macro-empty \
3012    +macro-parens \
3013    +macro-redef \
3014    +macro-stmt \
3015    +macro-unrecog \
3016
3017# Watch for unsafe comparisons
3018SPLINTFLAGS = $(SPLINTFLAGS) \
3019    +bool-compare \
3020    +ptr-compare \
3021    +real-compare \
3022    +unsigned-compare
3023
3024# But allow us some slop in boolean comparisons
3025SPLINTFLAGS = $(SPLINTFLAGS) \
3026    -pred-bool-int \
3027    -pred-bool-ptr \
3028    -pred-bool-others \
3029    -boolops \
3030
3031# Report qualifier mismatches only if dangerous
3032SPLINTFLAGS = $(SPLINTFLAGS) \
3033    +relax-quals
3034
3035# Memory checking
3036SPLINTFLAGS = $(SPLINTFLAGS) \
3037    -must-free \
3038    -mustfreefresh \
3039    -mustfreeonly \
3040    +null \
3041    +nullptrarith \
3042    +nullret \
3043    -ptr-arith \
3044    +ptr-negate \
3045    -zero-ptr \
3046
3047# Transfer errors are too tough for us right now
3048SPLINTFLAGS = $(SPLINTFLAGS) \
3049    -mem-trans
3050
3051# Symbol definitions
3052SPLINTFLAGS = $(SPLINTFLAGS) \
3053    +decl-undef \
3054    +incon-defs \
3055    +incon-defs-lib \
3056
3057# Check for conflicts with C++ compilers
3058SPLINTFLAGS = $(SPLINTFLAGS) \
3059    +cpp-names \
3060
3061# Format codes
3062SPLINTFLAGS = $(SPLINTFLAGS) \
3063    +format-code \
3064    +format-type \
3065
3066# Problems with evaluation and control structions
3067SPLINTFLAGS = $(SPLINTFLAGS) \
3068    +controlnestdepth 15 \
3069    +duplicate-case \
3070    +eval-order \
3071    +eval-order-uncon \
3072
3073# Types and stuff
3074SPLINTFLAGS = $(SPLINTFLAGS) \
3075    +char-index \
3076    +char-int \
3077    +enum-members \
3078    +ignore-signs \
3079    +long-integral \
3080    +match-any-integral \
3081
3082# Other options we'd like to add back
3083# +initallelements : Right now, the *.ops files don't initialize all
3084#  values of the arrays
3085# +casebreak: Auto-generated ops have way too case fallthrus right now
3086# +fcnuse: We have many functions that are defined but not used, but they
3087#  should get hidden or ifdeffed
3088# +redef, +redecl: Ops currently have tons of redefinitions
3089
3090# added to splint target to simplify experimentation,
3091# ex: make SPLINTFLAGS_TEST='-posixstrictlib +posixlib' splint
3092
3093SPLINT_SOURCE = `echo $(O_FILES) | $(PERL) -pe "s\\.o\\.c\g"`
3094
3095splint-all : $(PARROT)
3096        $(MKPATH) $(SPLINT_TMP)
3097        $(SPLINT) $(CC_INC)  -DHAS_JIT -DI386 "-Isrc\pmc" "-Icompilers\ast" $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) \
3098        $(SPLINT_SOURCE) \
3099        $(SPLINT) $(CC_INC) $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) $(IMCC_DIR)\main.c
3100
3101# "splint" is the less-thorough splint target.  For cage cleaning work,
3102# you'll probably want to specify SPLINT_SOURCE rather than work on the
3103# entire tree, like so:
3104#     make splint SPLINT_SOURCE='src\call\\*.c'
3105
3106splint : all
3107        $(MKPATH) $(SPLINT_TMP)
3108        $(SPLINT) $(CC_INC)  -DHAS_JIT -DI386 "-Isrc\pmc" "-Icompilers\ast" $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) \
3109        +partial -DNDEBUG \
3110        $(SPLINT_SOURCE) \
3111                | grep -v 'Source code error generation point'
3112
3113COVER_FLAGS = -fprofile-arcs -ftest-coverage
3114COVER_DIRS = \
3115    $(SRC_DIR) \
3116    $(SRC_DIR)\dynoplibs \
3117    $(SRC_DIR)\dynpmc \
3118    $(SRC_DIR)\gc \
3119    $(SRC_DIR)\ops \
3120    $(SRC_DIR)\packfile \
3121    $(SRC_DIR)\pmc \
3122    $(SRC_DIR)\string \
3123    $(SRC_DIR)\string\charset \
3124    $(SRC_DIR)\string\encoding \
3125    $(IO_DIR) \
3126    $(IMCC_DIR)
3127
3128cover: \
3129    cover.dummy \
3130    cover-testb \
3131    cover-testC \
3132    cover-testf \
3133    cover-testg \
3134    cover-testj \
3135    cover-testr \
3136    cover-testS \
3137    cover-src \
3138    cover-perl \
3139    cover-codingstd \
3140    cover-benchmark \
3141    cover-distro
3142        build_dir=$$PWD; \
3143    for dir in $(COVER_DIRS); \
3144    do \
3145        cd $$dir; \
3146        gcov *.c; \
3147        cd $$build_dir; \
3148        gcov2perl $$dir\\*.gcov; \
3149    done
3150        cover -ignore_re '^\\usr\\local\\bin'
3151
3152cover.dummy:
3153        $(PERL) Configure.pl --ccflags="$(CC_FLAGS) $(COVER_FLAGS)" \
3154    --linkflags="$(COVER_FLAGS)" --ldflags="$(COVER_FLAGS)"
3155
3156cover-testb: cover.dummy
3157        -dmake testb
3158
3159cover-testC: cover.dummy
3160        -dmake testC
3161
3162cover-testf: cover.dummy
3163        -dmake testf
3164
3165cover-testg: cover.dummy
3166        -dmake testg
3167
3168cover-testj: cover.dummy
3169        -dmake testj
3170
3171cover-testr: cover.dummy
3172        -dmake testr
3173
3174cover-testS: cover.dummy
3175        -dmake testS
3176
3177cover-src: cover.dummy
3178        -dmake src_tests
3179
3180cover-perl: cover.dummy
3181        -dmake perl_tests
3182
3183cover-codingstd: cover.dummy
3184        -dmake codingstd_tests
3185
3186cover-benchmark: cover.dummy
3187        -dmake benchmark_tests
3188
3189cover-distro: cover.dummy
3190        -dmake distro_tests
3191
3192cover-clean:
3193        $(PERL) -MCwd -e 'for my $$dir qw ( $(COVER_DIRS) ) {my $$cwd = cwd(); chdir $$dir; print "Deleting gcov-generated files in $$dir\n"; unlink glob( "*.gcda *.gcno *.gcov" ); chdir $$cwd;}'
3194
3195###############################################################################
3196#
3197# installation
3198#
3199###############################################################################
3200
3201install: installable
3202        $(PERL) tools\dev\install_files.pl \
3203    --buildprefix=$(BUILDPREFIX) \
3204    --prefix=$(PREFIX) \
3205    --exec-prefix=$(EXEC_PREFIX) \
3206    --bindir=$(BIN_DIR) \
3207    --libdir=$(LIB_DIR) \
3208    --includedir=$(INCLUDE_DIR) \
3209    --destdir=$(DESTDIR) \
3210    --docdir=$(DOC_DIR) \
3211    --versiondir=$(VERSION_DIR) \
3212    MANIFEST MANIFEST.generated
3213
3214install-dev: install
3215        $(PERL) tools\dev\install_dev_files.pl \
3216    --buildprefix=$(BUILDPREFIX) \
3217    --prefix=$(PREFIX) \
3218    --exec-prefix=$(EXEC_PREFIX) \
3219    --bindir=$(BIN_DIR) \
3220    --libdir=$(LIB_DIR) \
3221    --includedir=$(INCLUDE_DIR) \
3222    --destdir=$(DESTDIR) \
3223    --docdir=$(DOC_DIR) \
3224    --datadir=$(DATA_DIR) \
3225    --srcdir=C:\Parrot\src \
3226    --versiondir=$(VERSION_DIR) \
3227    MANIFEST MANIFEST.generated
3228
3229###############################################################################
3230#
3231# release targets
3232#
3233###############################################################################
3234
3235release : MANIFEST MANIFEST.generated
3236        [ -d parrot-$(VERSION) ] || ln -s $(CUR_DIR) parrot-$(VERSION)
3237        @$(RM_F) MANIFEST.real
3238        mv MANIFEST MANIFEST.real
3239        grep -v DEVELOPING MANIFEST.real > MANIFEST
3240        $(PERL) -lane 'print"parrot-$(VERSION)\$$F[0]"unless!length||\#\' MANIFEST | \
3241    tar -zcv -T - -f parrot-$(VERSION).tar.gz
3242        mv MANIFEST.real MANIFEST
3243        rm parrot-$(VERSION)
3244
3245win32-inno-installer : world installable
3246        $(PERL) tools\dev\mk_inno.pl
3247        $(INNO_SETUP) parrot.iss
3248
3249###############################################################################
3250#
3251# exec:
3252#
3253###############################################################################
3254
3255exec : $(SRC_DIR)\exec_start$(O) $(SRC_DIR)\parrot_config$(O) $(LIBPARROT)
3256        $(LINK) -o $(EXEC)$(EXE) $(EXEC)$(O) $(SRC_DIR)\exec_start$(O) $(SRC_DIR)\parrot_config$(O)  $(ALL_PARROT_LIBS) $(LINKFLAGS)
3257
3258###### OS depend targets ##########
3259
3260# for use by t\pmc\nci.t
3261$(LIBNCI_TEST_SO): $(SRC_DIR)\nci_test$(O)
3262        $(LD) $(LD_LOAD_FLAGS) src\libnci_test.def $(LDFLAGS) \
3263    -o $@ $(SRC_DIR)\nci_test$(O) $(C_LIBS)
3264
3265# for use by runtime\parrot\library\OpenGL.pir
3266$(LIBGLUTCB_SO): $(LIBPARROT) $(SRC_DIR)\glut_callbacks$(O)
3267        $(LD) $(LD_LOAD_FLAGS) $(LDFLAGS) \
3268    -o $@ $(SRC_DIR)\glut_callbacks$(O) \
3269    $(ALL_PARROT_LIBS)
3270
3271# emacs etags
3272# this needs exuberant-ctags
3273
3274tags-emacs: tags.emacs.dummy
3275        $(RM_F) TAGS
3276        ctags -e \
3277        --links=no --totals \
3278        -R --exclude=blib --exclude=.svn  \
3279        --exclude=res_lea.c \
3280        --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
3281        -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK \
3282        $(CUR_DIR)
3283
3284# this works with an old etags (XEmacs 21.5*)
3285tags-xemacs: tags.emacs.dummy
3286        $(RM_F) TAGS
3287        find $(CUR_DIR) \
3288        -name \\*.c -o -name \\*.h -o -name \\*.pmc -o -name \\*.ops | etags -l c - -o TAGS
3289
3290tags.emacs.dummy:
3291
3292# vim ctags
3293# this needs exuberant-ctags
3294
3295tags-vi: tags.vi.dummy
3296        $(RM_F) tags
3297        ctags \
3298    --links=no --totals \
3299    -R --exclude=blib --exclude=.svn  \
3300    --exclude=res_lea.c \
3301    --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
3302    -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK \
3303    $(CUR_DIR)
3304        $(PERL) $(BUILD_TOOLS_DIR)\addopstags.pl $(OPS_FILES)
3305
3306tags.vi.dummy:
3307
3308CRITIC_FILES = 'lib\Parrot'
3309
3310perlcritic:
3311        perlcritic --profile tools\util\perlcritic.conf $(CRITIC_FILES)
3312
3313# Andy's extra-cranky Perl::Critic checking for cage cleaners
3314cagecritic:
3315        perlcritic -1 --profile tools\util\perlcritic-cage.conf $(CRITIC_FILES)
3316
3317# This target will eventually create all the headers automatically.  If you
3318# are having problems with linkage in Win32 (or elsewhere), because something
3319# is not PARROT_EXPORT but should be, then put PARROT_EXPORT in the C file and
3320# run "make headerizer".  The .h file will get updated.
3321
3322HEADERIZER_O_FILES = \
3323    $(O_FILES) \
3324    src\packdump$(O) \
3325    src\pbc_merge$(O) \
3326    $(PIRC_O_FILES)
3327
3328headerizer : $(SRC_DIR)\core_pmcs.c
3329        $(PERL) $(BUILD_TOOLS_DIR)\headerizer.pl $(HEADERIZER_O_FILES) $(IMCC_DIR)\imcc.y
3330
3331apilist: $(SRC_DIR)\core_pmcs.c
3332        $(PERL) $(BUILD_TOOLS_DIR)\headerizer.pl --macro=PARROT_EXPORT $(HEADERIZER_O_FILES)
3333
3334malloclist: $(SRC_DIR)\core_pmcs.c
3335        $(PERL) $(BUILD_TOOLS_DIR)\headerizer.pl --macro=PARROT_MALLOC $(HEADERIZER_O_FILES)
3336
3337# Local variables:
3338#   mode: makefile
3339# End:
3340# vim: ft=make: