# ex: set ro: # DO NOT EDIT THIS FILE # Generated by Parrot::Configure::Compiler from config/gen/makefiles/root.in # Copyright (C) 2001-2009, Parrot Foundation. # $Id: root.in 39529 2009-06-12 23:23:26Z bacek $ ############################################################################### # # NOTE: # # This makefile makes use of specific .dummy targets (rather than .PHONY # or .VIRTUAL targets) in an effort to work with various flavors of make. # ############################################################################### ############################################################################### # # INSTALL CONFIGURATIONS: # ############################################################################### DEVEL = -devel VERSION = 1.3.0$(DEVEL) SOVERSION = 1.3.0 CONFIG_ARGS = "--icushared=C:\GnuTC\MinGW\lib\icuuc.lib" "--icuheaders=C:\GnuTC\MinGW\include" "--prefix=C:\Parrot" # Override at least PREFIX with the install location if you're going # to be using this outside of your build area. BUILDPREFIX = PREFIX = C:\Parrot EXEC_PREFIX = C:\Parrot DESTDIR = BIN_DIR = C:\Parrot\bin LIB_DIR = C:\Parrot\lib INCLUDE_DIR = C:\Parrot\include DATA_DIR = C:\Parrot\share DOC_DIR = C:\Parrot\share\doc VERSION_DIR = \parrot\1.3.0-devel ############################################################################### # # SOURCE CONFIGURATIONS: # # Set up information about directories where the sources can be found. # ############################################################################### # where we're building parrot from (needed for pbc_to_exe) BUILD_DIR = C:\GnuTC\MSYS\home\MoC\parrot-svn # directory for build tools BUILD_TOOLS_DIR = tools\build # current directory CUR_DIR = . # directory for the intermediate code compiler IMCC_DIR = compilers\imcc # directory for the (experimental) PIR code compiler PIRC_DIR = compilers\pirc\src # directory for header files INC_DIR = include\parrot # directory for the IO subsystem IO_DIR = src\io # directory with Parrot modules LIBRARY_DIR = runtime\parrot\library # directory for *.ops file OPS_DIR = src\ops # directory for packfile files PF_DIR = src\packfile # source directory SRC_DIR = src ############################################################################### # # BUILD TOOL CONFIGURATIONS: # # DO NOT ADD C COMPILER FLAGS HERE # Add them in Configure.pl--look for the # comment 'ADD C COMPILER FLAGS HERE' # ############################################################################### PERL = C:\Perl\bin\perl.exe CP = $(PERL) -MExtUtils::Command -e cp CHMOD = $(PERL) -MExtUtils::Command -e ExtUtils::Command::chmod MKPATH = $(PERL) -MExtUtils::Command -e mkpath RM_F = $(PERL) -MExtUtils::Command -e rm_f RM_RF = $(PERL) -MExtUtils::Command -e rm_rf TOUCH = $(PERL) -MExtUtils::Command -e touch AR_CR = ar cr RANLIB = rem YACC = echo LEX = echo AS = as CC = gcc CC_INC = -I.\include C_LIBS = -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lmsvcrt -lgmp -lreadline -lintl CC_SHARED = CFLAGS = $(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) LINK_DYNAMIC = LINK = gcc LINKFLAGS = LD = g++ LDFLAGS = RECONFIGURE = $(PERL) tools\dev\reconfigure.pl INNO_SETUP = iscc JIT_BUILD_TOOL = $(BUILD_TOOLS_DIR)\jit2c.pl ############################################################################### # # file extensions and util flags # ############################################################################### O = .o EXE = .exe SHARE_EXT = .dll LOAD_EXT = .dll A = .a LD_SHARE_FLAGS = -shared LD_LOAD_FLAGS = -shared # generated by config\init\headers.pm NONGEN_HEADERS = $(INC_DIR)\atomic.h\ $(INC_DIR)\atomic\fallback.h\ $(INC_DIR)\atomic\gcc_pcc.h\ $(INC_DIR)\atomic\gcc_x86.h\ $(INC_DIR)\atomic\sparc.h\ $(INC_DIR)\caches.h\ $(INC_DIR)\call.h\ $(INC_DIR)\cclass.h\ $(INC_DIR)\charset.h\ $(INC_DIR)\compiler.h\ $(INC_DIR)\core_types.h\ $(INC_DIR)\datatypes.h\ $(INC_DIR)\debugger.h\ $(INC_DIR)\dynext.h\ $(INC_DIR)\embed.h\ $(INC_DIR)\encoding.h\ $(INC_DIR)\enums.h\ $(INC_DIR)\events.h\ $(INC_DIR)\exceptions.h\ $(INC_DIR)\exec.h\ $(INC_DIR)\exit.h\ $(INC_DIR)\extend.h\ $(INC_DIR)\gc_api.h\ $(INC_DIR)\global.h\ $(INC_DIR)\global_setup.h\ $(INC_DIR)\hash.h\ $(INC_DIR)\hll.h\ $(INC_DIR)\imcc.h\ $(INC_DIR)\interpreter.h\ $(INC_DIR)\io.h\ $(INC_DIR)\io_portable.h\ $(INC_DIR)\io_unix.h\ $(INC_DIR)\io_win32.h\ $(INC_DIR)\key.h\ $(INC_DIR)\library.h\ $(INC_DIR)\list.h\ $(INC_DIR)\longopt.h\ $(INC_DIR)\memory.h\ $(INC_DIR)\misc.h\ $(INC_DIR)\multidispatch.h\ $(INC_DIR)\nci.h\ $(INC_DIR)\oo.h\ $(INC_DIR)\oo_private.h\ $(INC_DIR)\op.h\ $(INC_DIR)\oplib.h\ $(INC_DIR)\packfile.h\ $(INC_DIR)\parrot.h\ $(INC_DIR)\pic.h\ $(INC_DIR)\pmc.h\ $(INC_DIR)\pmc_freeze.h\ $(INC_DIR)\pobj.h\ $(INC_DIR)\register.h\ $(INC_DIR)\runcore_api.h\ $(INC_DIR)\runcore_trace.h\ $(INC_DIR)\scheduler.h\ $(INC_DIR)\scheduler_private.h\ $(INC_DIR)\settings.h\ $(INC_DIR)\slice.h\ $(INC_DIR)\stacks.h\ $(INC_DIR)\stat.h\ $(INC_DIR)\string.h\ $(INC_DIR)\string_funcs.h\ $(INC_DIR)\string_primitives.h\ $(INC_DIR)\sub.h\ $(INC_DIR)\thr_pthread.h\ $(INC_DIR)\thr_windows.h\ $(INC_DIR)\thread.h\ $(INC_DIR)\tsq.h\ $(INC_DIR)\vtables.h\ $(INC_DIR)\warnings.h ############################################################################### # # CONFIGURE_GENERATED_FILES: # # These files are created when Configure.pl runs. # # We don't delete these on 'clean'; only on 'realclean'. # That way, we don't have to re-Configure.pl after making # clean. # ############################################################################### GEN_MAKEFILES = \ Makefile \ docs\Makefile \ compilers\json\Makefile \ compilers\ncigen\Makefile \ compilers\nqp\Makefile \ compilers\pct\Makefile \ compilers\pge\Makefile \ compilers\tge\Makefile \ editor\Makefile \ ext\Makefile \ src\dynoplibs\Makefile GEN_CONFIGS = \ $(INC_DIR)\config.h \ $(INC_DIR)\platform.h \ $(INC_DIR)\platform_interface.h \ $(INC_DIR)\platform_limits.h \ $(INC_DIR)\has_header.h \ $(INC_DIR)\feature.h \ $(INC_DIR)\core_pmcs.h \ $(SRC_DIR)\exec_dep.c \ $(SRC_DIR)\exec_dep.h \ lib\Parrot\Config\Generated.pm \ lib\Parrot\PMC.pm \ runtime\parrot\include\config.fpmc \ runtime\parrot\library\config.pir \ $(SRC_DIR)\platform.c \ $(SRC_DIR)\core_pmcs.c \ CFLAGS \ $(IMCC_DIR)\CFLAGS \ config_lib.pasm \ $(BUILD_TOOLS_DIR)\dynpmc.pl \ $(BUILD_TOOLS_DIR)\dynoplibs.pl \ parrot.pc \ $(IMCC_DIR)\imcc.y.flag \ $(OPS_DIR)\core_ops.c \ $(OPS_DIR)\core_ops_switch.c # most of these are generated by config\gen\parrot_include.pm GEN_PASM_INCLUDES = \ runtime\parrot\include\signal.pasm \ runtime\parrot\include\cclass.pasm \ runtime\parrot\include\datatypes.pasm \ runtime\parrot\include\iterator.pasm \ runtime\parrot\include\call_bits.pasm \ lib\Parrot\Pmc2c\PCCMETHOD_BITS.pm \ runtime\parrot\include\io_thr_msg.pasm \ runtime\parrot\include\timer.pasm \ runtime\parrot\include\except_types.pasm \ runtime\parrot\include\except_severity.pasm \ runtime\parrot\include\interpflags.pasm \ runtime\parrot\include\interpdebug.pasm \ runtime\parrot\include\interptrace.pasm \ runtime\parrot\include\interpcores.pasm \ runtime\parrot\include\cloneflags.pasm \ runtime\parrot\include\iglobals.pasm \ runtime\parrot\include\sysinfo.pasm \ runtime\parrot\include\stdio.pasm \ runtime\parrot\include\socket.pasm \ runtime\parrot\include\longopt.pasm \ runtime\parrot\include\packfile_segments.pasm \ runtime\parrot\include\packfile_constants.pasm \ runtime\parrot\include\packfile_annotation_key_type.pasm \ runtime\parrot\include\stat.pasm \ runtime\parrot\include\stringinfo.pasm \ runtime\parrot\include\warnings.pasm \ runtime\parrot\include\errors.pasm \ runtime\parrot\include\interpinfo.pasm \ runtime\parrot\include\tm.pasm \ runtime\parrot\include\mmd.pasm \ runtime\parrot\include\pmctypes.pasm CONFIGURE_GENERATED_FILES = \ $(GEN_CONFIGS) \ $(GEN_MAKEFILES) \ ext\Parrot-Embed\Makefile.PL \ myconfig \ $(GEN_PASM_INCLUDES) \ $(SRC_DIR)\call_list.txt \ MANIFEST.configure.generated \ .configure_trace.sto \ .parrot_current_rev ############################################################################### # # "FLUID" GENERATED FILES: # # These files are created during the build process. # # We *do* delete these on 'clean'. # ############################################################################### GEN_OPSFILES = GEN_HEADERS = \ $(INC_DIR)\vtable.h \ $(INC_DIR)\oplib\core_ops.h \ $(INC_DIR)\oplib\ops.h \ $(INC_DIR)\oplib\core_ops_switch.h \ $(INC_DIR)\extend_vtable.h \ $(INC_DIR)\pbcversion.h GEN_SOURCES = \ $(SRC_DIR)\core_ops.c \ $(SRC_DIR)\nci.c \ $(SRC_DIR)\core_ops_switch.c \ $(SRC_DIR)\jit_cpu.c \ $(SRC_DIR)\parrot_config.c \ $(SRC_DIR)\null_config.c \ $(SRC_DIR)\install_config.c \ $(SRC_DIR)\exec_cpu.c \ $(SRC_DIR)\jit_defs.c \ $(SRC_DIR)\extend_vtable.c GEN_MODULES = \ lib\Parrot\OpLib\core.pm GEN_LIBRARY = \ $(LIBRARY_DIR)\CGI\QueryHash.pbc \ $(LIBRARY_DIR)\Crow.pbc \ $(LIBRARY_DIR)\config.pbc \ $(LIBRARY_DIR)\Config\JSON.pbc \ $(LIBRARY_DIR)\Data\Dumper\Base.pbc \ $(LIBRARY_DIR)\Data\Dumper\Default.pbc \ $(LIBRARY_DIR)\Data\Dumper.pbc \ $(LIBRARY_DIR)\Digest\MD5.pbc \ $(LIBRARY_DIR)\dumper.pbc \ $(LIBRARY_DIR)\yaml_dumper.pbc \ $(LIBRARY_DIR)\Getopt\Obj.pbc \ $(LIBRARY_DIR)\Iter.pbc \ $(LIBRARY_DIR)\JSON.pbc \ $(LIBRARY_DIR)\Math\Random\mt19937ar.pbc \ $(LIBRARY_DIR)\Math\Rand.pbc \ $(LIBRARY_DIR)\MIME\Base64.pbc \ $(LIBRARY_DIR)\NCI\Utils.pbc \ $(LIBRARY_DIR)\NCI\call_toolkit_init.pbc \ $(LIBRARY_DIR)\ncurses.pbc \ $(LIBRARY_DIR)\P6object.pbc \ $(LIBRARY_DIR)\parrotlib.pbc \ $(LIBRARY_DIR)\pcore.pbc \ $(LIBRARY_DIR)\pcre.pbc \ $(LIBRARY_DIR)\Parrot\Coroutine.pbc \ $(LIBRARY_DIR)\Parrot\Exception.pbc \ $(LIBRARY_DIR)\PGE\Dumper.pbc \ $(LIBRARY_DIR)\PGE\Glob.pbc \ $(LIBRARY_DIR)\PGE\Perl6Grammar.pbc \ $(LIBRARY_DIR)\PGE\Text.pbc \ $(LIBRARY_DIR)\PGE\Util.pbc \ $(LIBRARY_DIR)\Protoobject.pbc \ $(LIBRARY_DIR)\Range.pbc \ $(LIBRARY_DIR)\Stream\Base.pbc \ $(LIBRARY_DIR)\Stream\Combiner.pbc \ $(LIBRARY_DIR)\Stream\Coroutine.pbc \ $(LIBRARY_DIR)\Stream\Filter.pbc \ $(LIBRARY_DIR)\Stream\Lines.pbc \ $(LIBRARY_DIR)\Stream\ParrotIO.pbc \ $(LIBRARY_DIR)\Stream\Replay.pbc \ $(LIBRARY_DIR)\Stream\Sub.pbc \ $(LIBRARY_DIR)\Stream\Writer.pbc \ $(LIBRARY_DIR)\String\Utils.pbc \ $(LIBRARY_DIR)\Test\Builder\Output.pbc \ $(LIBRARY_DIR)\Test\Builder\Test.pbc \ $(LIBRARY_DIR)\Test\Builder\Tester.pbc \ $(LIBRARY_DIR)\Test\Builder\TestPlan.pbc \ $(LIBRARY_DIR)\Test\Builder.pbc \ $(LIBRARY_DIR)\Test\Class.pbc \ $(LIBRARY_DIR)\Test\More.pbc \ $(LIBRARY_DIR)\Tcl\Glob.pbc \ $(LIBRARY_DIR)\TclLibrary.pbc \ $(LIBRARY_DIR)\uuid.pbc \ $(LIBRARY_DIR)\YAML\Dumper\Base.pbc \ $(LIBRARY_DIR)\YAML\Dumper\Default.pbc \ $(LIBRARY_DIR)\YAML\Dumper.pbc \ $(LIBRARY_DIR)\YAML\Parser\Syck.pbc \ $(LIBRARY_DIR)\STM.pbc \ $(LIBRARY_DIR)\libpcre.pbc \ $(LIBRARY_DIR)\Data\Replace.pbc \ $(LIBRARY_DIR)\postgres.pbc # the dependencies of $(SRC_DIR)\jit_emit.h are done explicitly # including this file in GEN_HEADERS causes unnecessary recompile of all FLUID_FILES_1 = \ $(GEN_OPSFILES) \ $(GEN_HEADERS) \ $(GEN_SOURCES) \ $(GEN_MODULES) \ $(SRC_DIR)\jit_emit.h FLUID_FILES_2 = \ $(GEN_LIBRARY) \ runtime\parrot\include\parrotlib.pbc ############################################################################### # # OTHER FILE GROUPS: # ############################################################################### # these are private to the IMCC subsystem IMCC_H_FILES = \ $(IMCC_DIR)\imc.h \ $(IMCC_DIR)\cfg.h \ $(IMCC_DIR)\instructions.h \ $(IMCC_DIR)\debug.h \ $(IMCC_DIR)\sets.h \ $(IMCC_DIR)\unit.h \ $(IMCC_DIR)\symreg.h \ $(IMCC_DIR)\pbc.h \ $(IMCC_DIR)\optimizer.h \ $(IMCC_DIR)\parser.h \ $(IMCC_DIR)\imcparser.h IMCC_O_FILES = \ $(IMCC_DIR)\imcparser$(O) \ $(IMCC_DIR)\imclexer$(O) \ $(IMCC_DIR)\imc$(O) \ $(IMCC_DIR)\main$(O) \ $(IMCC_DIR)\symreg$(O) \ $(IMCC_DIR)\instructions$(O) \ $(IMCC_DIR)\cfg$(O) \ $(IMCC_DIR)\reg_alloc$(O) \ $(IMCC_DIR)\sets$(O) \ $(IMCC_DIR)\debug$(O) \ $(IMCC_DIR)\optimizer$(O) \ $(IMCC_DIR)\pbc$(O) \ $(IMCC_DIR)\parser_util$(O) \ $(IMCC_DIR)\pcc$(O) # these are private to the PIRC subsystem PIRC_O_FILES = \ $(PIRC_DIR)\bcgen$(O) \ $(PIRC_DIR)\pircapi$(O) \ $(PIRC_DIR)\pirerr$(O) \ $(PIRC_DIR)\pirop$(O) # generated list of header files GENERAL_H_FILES = $(NONGEN_HEADERS) $(GEN_HEADERS) $(INC_DIR)\oplib\core_ops_cg.h $(INC_DIR)\oplib\core_ops_cgp.h ALL_H_FILES = $(GENERAL_H_FILES) CHARSET_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) CLASS_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 CLASS_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) CLASS_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 ENCODING_O_FILES = src\string\encoding\fixed_8$(O) src\string\encoding\ucs2$(O) src\string\encoding\utf16$(O) src\string\encoding\utf8$(O) IO_O_FILES = \ $(IO_DIR)\core$(O) \ $(IO_DIR)\api$(O) \ $(IO_DIR)\utf8$(O) \ $(IO_DIR)\buffer$(O) \ $(IO_DIR)\unix$(O) \ $(IO_DIR)\win32$(O) \ $(IO_DIR)\portable$(O) \ $(IO_DIR)\filehandle$(O) \ $(IO_DIR)\socket_api$(O) \ $(IO_DIR)\socket_unix$(O) \ $(IO_DIR)\socket_win32$(O) INTERP_O_FILES = \ $(SRC_DIR)\string\api$(O) \ \ $(OPS_DIR)\core_ops$(O) \ $(OPS_DIR)\core_ops_switch$(O) \ \ $(SRC_DIR)\byteorder$(O) \ $(SRC_DIR)\string\charset$(O) \ $(SRC_DIR)\core_pmcs$(O) \ $(SRC_DIR)\datatypes$(O) \ $(SRC_DIR)\debug$(O) \ $(SRC_DIR)\dynext$(O) \ $(SRC_DIR)\embed$(O) \ $(SRC_DIR)\string\encoding$(O) \ $(SRC_DIR)\events$(O) \ $(SRC_DIR)\exceptions$(O) \ $(SRC_DIR)\exit$(O) \ $(SRC_DIR)\extend$(O) \ $(SRC_DIR)\extend_vtable$(O) \ $(SRC_DIR)\gc\alloc_memory$(O) \ $(SRC_DIR)\gc\alloc_register$(O) \ $(SRC_DIR)\gc\api$(O) \ $(SRC_DIR)\gc\generational_ms$(O) \ $(SRC_DIR)\gc\incremental_ms$(O) \ $(SRC_DIR)\gc\gc_ms$(O) \ $(SRC_DIR)\gc\mark_sweep$(O) \ $(SRC_DIR)\gc\system$(O) \ $(SRC_DIR)\global$(O) \ $(SRC_DIR)\global_setup$(O) \ $(SRC_DIR)\hash$(O) \ $(SRC_DIR)\hll$(O) \ $(SRC_DIR)\call\pcc$(O) \ $(SRC_DIR)\interp\inter_cb$(O) \ $(SRC_DIR)\interp\inter_create$(O) \ $(SRC_DIR)\interp\inter_misc$(O) \ $(SRC_DIR)\call\ops$(O) \ $(SRC_DIR)\key$(O) \ $(SRC_DIR)\library$(O) \ $(SRC_DIR)\list$(O) \ $(SRC_DIR)\longopt$(O) \ $(SRC_DIR)\misc$(O) \ $(SRC_DIR)\multidispatch$(O) \ $(SRC_DIR)\nci$(O) \ $(SRC_DIR)\oo$(O) \ $(SRC_DIR)\packfile$(O) \ $(SRC_DIR)\packout$(O) \ $(SRC_DIR)\pic_jit$(O) \ $(SRC_DIR)\pic$(O) \ $(SRC_DIR)\platform$(O) \ $(SRC_DIR)\pmc_freeze$(O) \ $(SRC_DIR)\pmc$(O) \ $(SRC_DIR)\runcore\main$(O) \ $(SRC_DIR)\runcore\cores$(O) \ $(SRC_DIR)\scheduler$(O) \ $(SRC_DIR)\spf_render$(O) \ $(SRC_DIR)\spf_vtable$(O) \ $(SRC_DIR)\stacks$(O) \ $(SRC_DIR)\string\primitives$(O) \ $(SRC_DIR)\sub$(O) \ $(SRC_DIR)\thread$(O) \ $(SRC_DIR)\runcore\trace$(O) \ $(SRC_DIR)\tsq$(O) \ $(SRC_DIR)\utils$(O) \ $(SRC_DIR)\vtables$(O) \ $(SRC_DIR)\warnings$(O) \ \ $(PF_DIR)\pf_items$(O) \ \ \ $(OPS_DIR)\core_ops_cg$(O) $(OPS_DIR)\core_ops_cgp$(O) \ $(SRC_DIR)\exec$(O) $(SRC_DIR)\exec_cpu$(O) $(SRC_DIR)\exec_dep$(O) $(SRC_DIR)\exec_save$(O) \ \ $(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) \ $(SRC_DIR)\gc\alloc_resources$(O) \ O_FILES = \ $(INTERP_O_FILES) \ $(CHARSET_O_FILES) \ $(IO_O_FILES) \ $(CLASS_O_FILES) \ $(ENCODING_O_FILES) \ $(IMCC_O_FILES) OPS_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) ############################################################################### # # BUILD TARGET CONFIGURATIONS: # ############################################################################### # Executables PARROT = $(CUR_DIR)\parrot$(EXE) MINIPARROT = $(CUR_DIR)\miniparrot$(EXE) DIS = $(CUR_DIR)\pbc_disassemble$(EXE) PDUMP = $(CUR_DIR)\pbc_dump$(EXE) PINFO = $(CUR_DIR)\pbc_info$(EXE) PBCMERGE = $(CUR_DIR)\pbc_merge$(EXE) PDB = $(CUR_DIR)\parrot_debugger$(EXE) PBC_TO_EXE = $(CUR_DIR)\pbc_to_exe$(EXE) PARROT_CONFIG = $(CUR_DIR)\parrot_config$(EXE) PIRC = $(CUR_DIR)\pirc$(EXE) # Installable executables INSTALLABLEPARROT = $(CUR_DIR)\installable_parrot$(EXE) INSTALLABLEDIS = $(CUR_DIR)\installable_pbc_disassemble$(EXE) INSTALLABLEPDUMP = $(CUR_DIR)\installable_pbc_dump$(EXE) INSTALLABLEPINFO = $(CUR_DIR)\installable_pbc_info$(EXE) INSTALLABLEPBCMERGE = $(CUR_DIR)\installable_pbc_merge$(EXE) INSTALLABLEPBCTOEXE = $(CUR_DIR)\installable_pbc_to_exe$(EXE) INSTALLABLEPDB = $(CUR_DIR)\installable_parrot_debugger$(EXE) INSTALLABLECONFIG = $(CUR_DIR)\installable_parrot_config$(EXE) # Libraries LIBPARROT_STATIC = blib\lib\libparrot.a LIBPARROT_SHARED = libparrot.dll # This line controls whether a static or shared library is built LIBPARROT = $(LIBPARROT_SHARED) ICU_SHARED = C:\GnuTC\MinGW\lib\icuuc.lib ALL_PARROT_LIBS = "C:\GnuTC\MSYS\home\MoC\parrot-svn\libparrot.dll" $(ICU_SHARED) $(C_LIBS) # dynamic extensions DYNEXT_DIR = runtime\parrot\dynext LIBNCI_TEST_SO = $(DYNEXT_DIR)\libnci_test$(LOAD_EXT) LIBGLUTCB_SO = $(DYNEXT_DIR)\libglutcb$(LOAD_EXT) ############################################################################### # # MAKE CONFIGURATION: # ############################################################################### # This is set to MAKE=$make if your $make command doesn't # do it for you. # MAKE = $(PERL) -e "chdir shift @ARGV; system 'dmake', @ARGV; exit $$? >> 8;" # These need to be above lines that define suffix rules to be portable # (certainly FreeBSD make doesn't grok the pir.pbc rule otherwise) .SUFFIXES : .c .S .s .pmc .dump $(O) .str .pir .pbc # Passing an empty argument in @ARGV to cc_flags.pl to indicate where extra -Is # (etc) should go. Otherwise it will insert them after the first space, which # makes life go horribly wrong if $(CC) contains spaces but can't have -I # arguments (etc) injected in the middle. # There is probably a better way to do this, but I can't work it out right now. .c$(O) : # suffix rule (limited support) @$(PERL) tools\dev\cc_flags.pl $(CUR_DIR)\CFLAGS $(CC) "" $(CFLAGS) -I$(@D) -o $@ -c $< # XXX probably should detect assembler, but right now this is only used on Sparc .s$(O) : # suffix rule (limited support) @$(PERL) tools\dev\cc_flags.pl $(CUR_DIR)\CFLAGS $(CC) "" $(CFLAGS) -I$(@D) -o $@ -c $< #UNLESS(win32).S$(O) : # suffix rule (limited support) #UNLESS(win32) @$(PERL) tools\dev\cc_flags.pl $(CUR_DIR)\CFLAGS $(CC) "" $(CFLAGS) -I$(@D) -o $@ -c $< # XXX These obviously require parrot: had trouble adding parrot as a dependency # here, though. Ignored on Mac OS X, at least. .pir.pbc : # suffix rule (limited support) $(PARROT) -o $@ $< .pbc$(O) : # suffix rule (limited support) $(PARROT) -o $@ $< ############################################################################### # # USER TARGETS: # # These targets are supposed to be called by the user. # ############################################################################### all : \ flags_dummy \ PARROT_LIBS \ $(PARROT) \ runtime\parrot\include\parrotlib.pbc \ runtime\parrot\include\config.fpmc \ docs \ $(LIBNCI_TEST_SO) \ $(GEN_LIBRARY) \ dynpmc \ dynoplibs \ compilers \ $(DIS) \ $(PARROT_CONFIG) \ $(PBC_TO_EXE) \ $(PBCMERGE) \ $(PDB) \ $(PDUMP) \ $(PINFO) \ $(GEN_LIBRARY) : $(PARROT) # constant string support .c.str : # suffix rule (limited support) $(PERL) $(BUILD_TOOLS_DIR)\c2str.pl $< > $@ STR_FILES = \ $(SRC_DIR)\debug.str \ $(SRC_DIR)\dynext.str \ $(SRC_DIR)\events.str \ $(SRC_DIR)\exceptions.str \ $(SRC_DIR)\global.str \ $(SRC_DIR)\global_setup.str \ $(SRC_DIR)\hll.str \ $(SRC_DIR)\call\pcc.str \ $(SRC_DIR)\interp\inter_cb.str \ $(SRC_DIR)\interp\inter_create.str \ $(SRC_DIR)\interp\inter_misc.str \ $(SRC_DIR)\io\api.str \ $(SRC_DIR)\key.str \ $(SRC_DIR)\library.str \ $(SRC_DIR)\multidispatch.str \ $(SRC_DIR)\nci.str \ $(SRC_DIR)\packfile.str \ $(SRC_DIR)\pmc.str \ $(SRC_DIR)\pmc_freeze.str \ $(SRC_DIR)\oo.str \ $(SRC_DIR)\scheduler.str \ $(SRC_DIR)\spf_render.str \ $(SRC_DIR)\spf_vtable.str \ $(SRC_DIR)\string\api.str \ $(SRC_DIR)\sub.str \ $(SRC_DIR)\stacks.str \ \ $(CLASS_STR_FILES) $(SRC_DIR)\string\private_cstring.h : $(STR_FILES) $(BUILD_TOOLS_DIR)\c2str.pl $(PERL) $(BUILD_TOOLS_DIR)\c2str.pl --all # classes PMC build utils and rules PMC2CD = $(PERL) $(BUILD_TOOLS_DIR)\pmc2c.pl --dump PMC2CC = $(PERL) $(BUILD_TOOLS_DIR)\pmc2c.pl --c PMC2CV = $(PERL) $(BUILD_TOOLS_DIR)\pmc2c.pl --vtable .pmc.dump : # suffix rule (limited support) $(PMC2CD) $< .pmc.c : # suffix rule (limited support) $(PMC2CC) $< # not all makes might understand this, so the rules are generated #src\pmc\pmc_%.h : src\pmc\%.c # $(PMC2CC) $< vtable.dump : src\vtable.tbl $(PMC2CV) # This is a listing of all targets meant to be called by users help : @echo "" @echo "Following targets are available for the user:" @echo "" @echo "Executables:" @echo " all: 'parrot' and the documentation." @echo " This is the default." @echo "" @echo " world: 'all' and 'parrot_utils'." @echo " installable: same as 'world', but targets for installation" @echo "" @echo " parrot_utils: $(PDUMP), $(DIS), $(PINFO), $(PDB), $(PBCMERGE) and $(PBC_TO_EXE) $(PARROT_CONFIG)" @echo " $(PDUMP):" @echo " Parrot Dumper" @echo " $(DIS):" @echo " Parrot Disassembler" @echo " $(PINFO):" @echo " Information about Parrot Byte Code" @echo " $(PDB):" @echo " Parrot Debugger" @echo " $(PBCMERGE):" @echo " Merge bytecode files" @echo " $(PBC_TO_EXE):" @echo " Generate C, compile, and link bytecode files" @echo " $(PARROT_CONFIG):" @echo " Provide Parrot configuration information" @echo "" @echo "Installation:" @echo " install: Install under '$(PREFIX)' on Unix systems" @echo " install-dev: Same as 'install' but also install support for development." @echo "" @echo "Documentation:" @echo " help: Print this help message." @echo " docs: Generate documentation from POD in the sources." @echo " html: Generate HTML documentation from POD in the sources." @echo " html-clean: Remove the HTML documentation." @echo " htmlhelp: Compile HTML documentation (CHM format)." @echo "" @echo "Testing:" @echo " test: Run the standard test suite." @echo " coretest: Run the minimal 'core functionality' suite." @echo " codetest: Run file metadata and coding standards tests." @echo " fulltest: Run the full test suite under many runcores." @echo " test: Run the test suite with a specified runcore." @echo " Valid runcores are b, C, f, g, j, r, S." @echo " src_tests: Run test in C-file." @echo " run_tests: Command line and various environments." @echo " perl_tests: Test the Perl modules in the distribution." @echo " codingstd_tests: Test pdd07_codingstd." @echo " testexec: Testing the exec runcore." @echo " benchmark_tests: Run all benchmarks." @echo " warnings_tests: Run standard test suite with warnings enabled." @echo " manitest: Check for new and missing files." @echo " buildtools_tests: Test build tool pmc2c.pl." @echo " manifest_tests: Test code underlying mk_manifest_and_skip.pl." @echo " examples_tests: Test the example scripts." @echo "" @echo "Smoke Testing:" @echo " smolder_test: Run the test suite and send report to the smolder server" @echo " smolder_coretest: Run the minimal 'core functionality' suite and send report to the smolder server." @echo " smoke: Alias for smolder_test" @echo "" @echo "Benchmarks:" @echo " mopsbench: Million operations" @echo "" @echo "Cleaning:" @echo " clean: Basic cleaning up." @echo " archclean: Remove any platform dependent files." @echo " realclean: Removes also files generated by 'Configure.pl'" @echo " distclean: Removes also anything built, in theory." @echo " svnclobber: *Dangerous*: remove everything not in svn." @echo " reconfig: 'clean' and redo configuration." @echo "" @echo "Dynamic PMCs:" @echo " dynpmc: Proxy for default target of src\dynpmc\Makefile" @echo " dynpmc-test: Proxy for target 'test' of src\dynpmc\Makefile" @echo " dynpmc-clean: Proxy for target 'clean' of src\dynpmc\Makefile" @echo "" @echo "Dynamic oplibs:" @echo " dynoplibs: Proxy for default target of src\dynoplibs\Makefile" @echo " dynoplibs-test: Proxy for target 'test' of src\dynoplibs\Makefile" @echo " dynoplibs-clean: Proxy for target 'clean' of src\dynoplibs\Makefile" @echo "" @echo "Language implementations:" @echo " compilers: Proxy for default target of pge and tge compilers" @echo "" @echo "Fetch from source repository:" @echo " update: svn update." @echo " status: svn status." @echo " patch: Create a patch for sending to bugs-parrot." @echo "" @echo "Development:" @echo " lint: An alias for sunlint." @echo " bsdlint: Code checking with bsdlint." @echo " sunlint: Code checking with Sun Studio's sunlint." @echo " splint: Code checking with splint." @echo " splint-all: Splint all of Parrot, for the masochist only." @echo " headerizer: Recreate header files for C-source files" @echo " apilist: Show list of PARROT_EXPORT functions" @echo " malloclist: Show list of PARROT_MALLOC functions" @echo " cover: Run test suite coverage analysis." @echo " tags-vi: Create tags for the vi editor." @echo " tags-emacs: Create tags for the EMACS editor." @echo " perlcritic: Check Perl code with Perl::Critic." @echo "" @echo "Release:" @echo " release: Create a tarball." @echo " win32-inno-installer: Create MSWin32 setup." @echo "" @echo "Examples:" @echo " hello: 'Hello World' as an executable." @echo "" world : all parrot_utils parrot_utils : $(PDUMP) $(DIS) $(PINFO) $(PDB) $(PBCMERGE) $(PBC_TO_EXE) $(PARROT_CONFIG) installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPINFO) $(INSTALLABLEPDB) $(INSTALLABLEPBCMERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG) flags_dummy : @echo "Compiling with:" @$(PERL) tools\dev\cc_flags.pl $(CUR_DIR)\CFLAGS echo $(CC) $(CFLAGS) -I$(@D) -o xx$(O) -c xx.c runtime\parrot\include\parrotlib.pbc: runtime\parrot\library\parrotlib.pir $(PARROT) $(PARROT) -o $@ runtime\parrot\library\parrotlib.pir runtime\parrot\include\config.fpmc : myconfig config_lib.pasm $(MINIPARROT) @echo Invoking Parrot to generate runtime\parrot\include\config.fpmc --cross your fingers $(MINIPARROT) config_lib.pasm > $@ $(PARROT) : $(SRC_DIR)\main$(O) $(GEN_HEADERS) $(LIBPARROT) CFLAGS \ lib\Parrot\OpLib\core.pm $(SRC_DIR)\parrot_config$(O) \ $(MINIPARROT) $(LINK) -o $@ \ $(SRC_DIR)\main$(O) $(SRC_DIR)\parrot_config$(O) \ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 $(PBC_TO_EXE) : tools\dev\pbc_to_exe.pir runtime\parrot\library\config.pir $(PARROT) $(PARROT) -o pbc_to_exe.pbc tools\dev\pbc_to_exe.pir $(PARROT) pbc_to_exe.pbc pbc_to_exe.pbc $(PARROT_CONFIG) : tools\util\parrot-config.pir $(PARROT) $(PBC_TO_EXE) $(PARROT) -o parrot_config.pbc tools\util\parrot-config.pir $(PARROT) pbc_to_exe.pbc parrot_config.pbc pirc : $(PIRC) $(PIRC) : $(PARROT) $(MAKE) compilers\pirc $(CP) compilers\pirc\pirc$(EXE) $(PIRC) $(CHMOD) 0755 $(PIRC) $(MINIPARROT) : $(SRC_DIR)\main$(O) $(GEN_HEADERS) $(LIBPARROT) \ lib\Parrot\OpLib\core.pm $(SRC_DIR)\null_config$(O) $(LINK) -o $@ $(SRC_DIR)\main$(O) $(SRC_DIR)\null_config$(O) \ $(ALL_PARROT_LIBS) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 $(INSTALLABLEPARROT) : $(SRC_DIR)\main$(O) $(GEN_HEADERS) $(LIBPARROT) \ lib\Parrot\OpLib\core.pm $(SRC_DIR)\install_config$(O) \ $(PARROT) $(LINK) -o $@ \ $(SRC_DIR)\main$(O) $(SRC_DIR)\install_config$(O) \ $(ALL_PARROT_LIBS) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 $(INC_DIR)\parrot.h : $(INC_DIR)\pbcversion.h $(INC_DIR)\vtable.h $(INC_DIR)\extend.h : $(INC_DIR)\extend_vtable.h $(INC_DIR)\pbcversion.h : $(PERL) $(BUILD_TOOLS_DIR)\pbcversion_h.pl > $(INC_DIR)\pbcversion.h $(SRC_DIR)\parrot_config.c : runtime\parrot\include\config.fpmc \ $(BUILD_TOOLS_DIR)\parrot_config_c.pl $(PERL) $(BUILD_TOOLS_DIR)\parrot_config_c.pl > \ $(SRC_DIR)\parrot_config.c $(SRC_DIR)\install_config.c : install_config.fpmc \ $(BUILD_TOOLS_DIR)\parrot_config_c.pl $(PERL) $(BUILD_TOOLS_DIR)\parrot_config_c.pl --install > \ $(SRC_DIR)\install_config.c $(SRC_DIR)\null_config.c : myconfig $(BUILD_TOOLS_DIR)\parrot_config_c.pl $(PERL) $(BUILD_TOOLS_DIR)\parrot_config_c.pl --mini > \ $(SRC_DIR)\null_config.c install_config.fpmc : myconfig config_lib.pasm $(PARROT) @echo "Invoking Parrot to generate install_config.fpmc" $(PARROT) config_lib.pasm --install > $@ $(SRC_DIR)\parrot_config$(O) : $(SRC_DIR)\parrot_config.c $(SRC_DIR)\install_config$(O) : $(SRC_DIR)\install_config.c $(SRC_DIR)\null_config$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\null_config.c $(SRC_DIR)\oo$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\pmc\class.c $(INC_DIR)\pbcversion.h $(SRC_DIR)\scheduler$(O) : $(INC_DIR)\parrot.h \ $(SRC_DIR)\scheduler.str \ $(SRC_DIR)\pmc\scheduler.c \ $(SRC_DIR)\pmc\task.c \ $(SRC_DIR)\pmc\timer.c \ $(INC_DIR)\pbcversion.h $(IO_DIR)\core$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\pmc\socket.c $(IO_DIR)\socket_api$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\pmc\socket.c $(IO_DIR)\socket_unix$(O) : $(INC_DIR)\parrot.h $(INC_DIR)\pbcversion.h \ $(SRC_DIR)\pmc\socket.c $(IO_DIR)\socket_win32$(O) : $(INC_DIR)\parrot.h $(INC_DIR)\pbcversion.h \ $(SRC_DIR)\pmc\socket.c lib_deps_object : $(O_FILES) $(PERL) tools\dev\lib_deps.pl object $(O_FILES) lib_deps_source : $(GENERAL_H_FILES) $(PERL) tools\dev\lib_deps.pl source all_source lib_deps : lib_deps_object lib_deps_source # XXX changes don't always propagate into libparrot # e.g. when I change debug:fataly to xfataly, nm still shows the old symbol # and parrot builds fine (except for the unproto warning # so always delete the lib -leo PARROT_LIBS: \ $(LIBPARROT_STATIC) \ $(LIBPARROT_SHARED) $(LIBPARROT_STATIC) : $(O_FILES) $(MKPATH) blib\lib $(AR_CR) $@ $(O_FILES) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2 $(RANLIB) $@ $(LIBPARROT_SHARED) : $(O_FILES) $(MKPATH) blib\lib $(LD) $(LD_SHARE_FLAGS) $(LDFLAGS) -o $@ \ -Wl,--out-implib=libparrot.lib \ $(O_FILES) $(C_LIBS) $(ICU_SHARED) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2 $(INSTALLABLECONFIG) : $(SRC_DIR)\install_config$(O) $(PARROT_CONFIG) $(PBC_TO_EXE) $(PARROT) -o parrot_config.pbc tools\util\parrot-config.pir $(PBC_TO_EXE) parrot_config.pbc --install $(INSTALLABLEPBCTOEXE) : $(PBC_TO_EXE) $(PBC_TO_EXE) pbc_to_exe.pbc --install # # Parrot Debugger # $(SRC_DIR)\parrot_debugger$(O) : $(GENERAL_H_FILES) $(PDB) : $(SRC_DIR)\parrot_debugger$(O) $(SRC_DIR)\parrot_config$(O) $(LIBPARROT) $(LINK) -o $@ \ $(SRC_DIR)\parrot_debugger$(O) \ $(SRC_DIR)\parrot_config$(O) \ $(ALL_PARROT_LIBS) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 $(INSTALLABLEPDB) : $(SRC_DIR)\parrot_debugger$(O) $(LIBPARROT) $(SRC_DIR)\parrot_config$(O) $(LINK) -o $@ \ $(SRC_DIR)\parrot_debugger$(O) \ $(SRC_DIR)\parrot_config$(O) \ $(ALL_PARROT_LIBS) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 # # Parrot Disassembler # $(SRC_DIR)\pbc_disassemble$(O) : $(GENERAL_H_FILES) $(DIS) : $(SRC_DIR)\pbc_disassemble$(O) $(LIBPARROT) $(LINK) -o $@ \ $(SRC_DIR)\pbc_disassemble$(O) \ $(ALL_PARROT_LIBS) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 $(INSTALLABLEDIS) : $(SRC_DIR)\pbc_disassemble$(O) $(LIBPARROT) $(LINK) -o $@ \ $(SRC_DIR)\pbc_disassemble$(O) \ $(ALL_PARROT_LIBS) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 # # Parrot Dump # $(SRC_DIR)\packdump$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\pmc\pmc_key.h $(PDUMP) : $(SRC_DIR)\pbc_dump$(O) $(SRC_DIR)\packdump$(O) $(LIBPARROT) $(LINK) -o $@ \ $(SRC_DIR)\pbc_dump$(O) \ $(SRC_DIR)\packdump$(O) $(ALL_PARROT_LIBS) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 $(SRC_DIR)\pbc_dump$(O) : $(INC_DIR)\parrot.h $(GEN_HEADERS) $(INSTALLABLEPDUMP) : $(SRC_DIR)\pbc_dump$(O) $(SRC_DIR)\packdump$(O) $(LIBPARROT) $(LINK) -o $@ \ $(SRC_DIR)\pbc_dump$(O) \ $(SRC_DIR)\packdump$(O) \ $(ALL_PARROT_LIBS) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 # pbc_info $(PINFO) : $(SRC_DIR)\pbc_info$(O) $(LIBPARROT) $(LINK) -o $@ \ $(SRC_DIR)\pbc_info$(O) \ $(ALL_PARROT_LIBS) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 $(SRC_DIR)\pbc_info$(O) : $(INC_DIR)\parrot.h $(GEN_HEADERS) $(INSTALLABLEPINFO) : $(SRC_DIR)\pbc_info$(O) $(LIBPARROT) $(LINK) -o $@ \ $(SRC_DIR)\pbc_info$(O) \ $(ALL_PARROT_LIBS) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 # # Parrot Bytecode File Merger # $(PBCMERGE) : $(SRC_DIR)\pbc_merge$(O) $(LIBPARROT) $(SRC_DIR)\parrot_config$(O) $(LINK) -o $@ \ $(SRC_DIR)\pbc_merge$(O) \ $(SRC_DIR)\parrot_config$(O) \ $(ALL_PARROT_LIBS) $(LINK_DYNAMIC) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 $(INSTALLABLEPBCMERGE) : $(SRC_DIR)\pbc_merge$(O) $(LIBPARROT) $(INSTALLABLECONFIG) $(LINK) -o $@ \ $(SRC_DIR)\pbc_merge$(O) \ $(SRC_DIR)\install_config$(O) \ $(ALL_PARROT_LIBS) $(LINKFLAGS) if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 ############################################################################### # # Other Dependencies and Build Rules: # ############################################################################### $(IMCC_DIR)\main$(O) : $(IMCC_DIR)\main.c $(GENERAL_H_FILES) $(IMCC_H_FILES) $(INC_DIR)\oplib\ops.h lib\Parrot\OpLib\core.pm : $(OPS_FILES) $(BUILD_TOOLS_DIR)\ops2pm.pl \ lib\Parrot\OpsFile.pm lib\Parrot\Op.pm $(OPS_DIR)\ops.num $(OPS_DIR)\ops.skip $(PERL) $(BUILD_TOOLS_DIR)\ops2pm.pl $(OPS_FILES) ############################################################################### # # Examples (Assembly): # ############################################################################### examples-clean: $(RM_F) \ examples\mops\mops$(O) \ examples\mops\mops$(EXE) \ examples\pasm\hello.pbc \ examples\pasm\hello$(O) \ examples\pasm\hello$(EXE) # hello hello: test_prep examples\pasm\hello$(EXE) $(CUR_DIR)\examples\pasm\hello$(EXE) "from your friendly makefile" examples\pasm\hello.pbc: examples\pasm\hello.pasm $(PARROT) -o examples\pasm\hello.pbc examples\pasm\hello.pasm examples\pasm\hello$(O): examples\pasm\hello.pbc $(PARROT) -o examples\pasm\hello$(O) examples\pasm\hello.pbc examples\pasm\hello$(EXE): examples\pasm\hello$(O) $(MAKE) . EXEC=examples\pasm\hello exec ############################################################################### # # Dependencies: # ############################################################################### $(SRC_DIR)\byteorder$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\datatypes$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\extend_vtable$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\global_setup$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\global_setup.str $(SRC_DIR)\global$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\global.str \ $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\pmc$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc_freeze$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc_freeze.str $(SRC_DIR)\hash$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_key.h $(SRC_DIR)\list$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\library$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit_emit.h $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\pmc\pmc_managedstruct.h $(SRC_DIR)\jit_debug$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\debug.str $(SRC_DIR)\jit_debug_xcoff$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit_cpu$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\jit_emit.h $(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 $(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 $(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 $(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 \ $(SRC_DIR)\pmc\pmc_fixedintegerarray.h $(SRC_DIR)\pmc\pmc_unmanagedstruct.h $(SRC_DIR)\pmc\pmc_pointer.h $(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 $(PERL) $(BUILD_TOOLS_DIR)\vtable_extend.pl $(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 $(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 $(SRC_DIR)\key$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\key.str $(SRC_DIR)\pmc\pmc_key.h $(SRC_DIR)\gc\mark_sweep$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\gc\gc_private.h $(SRC_DIR)\gc\gc_ms$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\gc\gc_ms.c $(SRC_DIR)\gc\api$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\gc\gc_private.h $(SRC_DIR)\gc\generational_ms$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\gc\incremental_ms$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\gc\alloc_resources$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\gc\res_lea$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\hll$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\hll.str $(SRC_DIR)\platform$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\core_pmcs$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\runcore\trace$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\debug$(O) : $(GENERAL_H_FILES) $(INC_DIR)\debugger.h \ $(SRC_DIR)\debug.str $(SRC_DIR)\pmc\pmc_key.h $(SRC_DIR)\pmc\pmc_continuation.h $(SRC_DIR)\sub$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\sub.str \ $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\pmc\pmc_continuation.h $(SRC_DIR)\string\api$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\string\private_cstring.h $(SRC_DIR)\string\primitives$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\longopt$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\dynext$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\dynext.str \ $(SRC_DIR)\pmc\pmc_parrotlibrary.h $(SRC_DIR)\exceptions$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\exceptions.str \ $(SRC_DIR)\pmc\pmc_continuation.h $(SRC_DIR)\events$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\thread$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_sub.h \ $(SRC_DIR)\pmc\pmc_parrotinterpreter.h $(SRC_DIR)\extend$(O) : $(GENERAL_H_FILES) $(INC_DIR)\extend.h \ $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\runcore\main$(O) : $(SRC_DIR)\runcore\main.c $(GENERAL_H_FILES) \ $(SRC_DIR)\pmc\pmc_parrotlibrary.h $(SRC_DIR)\call\pcc$(O) : $(SRC_DIR)\call\pcc.c $(GENERAL_H_FILES) \ $(SRC_DIR)\call\pcc.str $(SRC_DIR)\pmc\pmc_fixedintegerarray.h \ $(SRC_DIR)\pmc\pmc_key.h $(SRC_DIR)\pmc\pmc_continuation.h $(SRC_DIR)\interp\inter_cb$(O) : $(SRC_DIR)\interp\inter_cb.c \ $(GENERAL_H_FILES) $(SRC_DIR)\interp\inter_cb.str $(SRC_DIR)\interp\inter_misc$(O) : $(SRC_DIR)\interp\inter_misc.c \ $(GENERAL_H_FILES) $(SRC_DIR)\interp\inter_misc.str $(SRC_DIR)\interp\inter_create$(O) : $(SRC_DIR)\interp\inter_create.c \ $(GENERAL_H_FILES) $(SRC_DIR)\interp\inter_create.str $(SRC_DIR)\call\ops$(O) : $(SRC_DIR)\call\ops.c $(GENERAL_H_FILES) \ $(SRC_DIR)\pmc\pmc_continuation.h $(IO_DIR)\api$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h $(IO_DIR)\api.str $(IO_DIR)\buffer$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h $(IO_DIR)\portable$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h $(IO_DIR)\unix$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h $(IO_DIR)\utf8$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h $(IO_DIR)\win32$(O) : $(GENERAL_H_FILES) $(IO_DIR)\io_private.h $(SRC_DIR)\gc\alloc_memory$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\main$(O) : $(SRC_DIR)\main.c $(GENERAL_H_FILES) $(SRC_DIR)\pic$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_fixedintegerarray.h \ $(SRC_DIR)\pmc\pmc_continuation.h $(SRC_DIR)\pic_jit$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\multidispatch$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\multidispatch.str \ $(SRC_DIR)\pmc\pmc_nci.h $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\packfile$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\packfile.str \ $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\pmc\pmc_key.h $(PF_DIR)\pf_items$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\packout$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_key.h $(SRC_DIR)\parrot$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\gc\alloc_register$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\runcore\cores$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\stacks$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\tsq$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\embed$(O) : $(GENERAL_H_FILES) $(INC_DIR)\debugger.h \ $(SRC_DIR)\pmc\pmc_sub.h $(SRC_DIR)\dataypes$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\dataypes.c $(SRC_DIR)\exit$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\exit.c $(SRC_DIR)\nci$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\nci.c $(SRC_DIR)\nci.str \ $(SRC_DIR)\pmc\pmc_managedstruct.h \ $(SRC_DIR)\pmc\pmc_nci.h \ $(SRC_DIR)\pmc\pmc_pointer.h $(SRC_DIR)\vtables$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\vtables.c $(SRC_DIR)\gc\system$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\gc\gc_private.h $(SRC_DIR)\nci.c : $(SRC_DIR)\call_list.txt $(BUILD_TOOLS_DIR)\nativecall.pl \ $(SRC_DIR)\pmc\pmc_nci.h $(PERL) $(BUILD_TOOLS_DIR)\nativecall.pl $(SRC_DIR)\call_list.txt $(SRC_DIR)\warnings$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\misc$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\utils$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\pmc\pmc_nci.h $(SRC_DIR)\spf_render$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\spf_render.str $(SRC_DIR)\spf_vtable$(O) : $(GENERAL_H_FILES) $(SRC_DIR)\spf_vtable.str $(SRC_DIR)\string\encoding$(O) : $(SRC_DIR)\string\encoding.c \ $(INC_DIR)\config.h $(GENERAL_H_FILES) $(SRC_DIR)\string\charset$(O) : $(SRC_DIR)\string\charset.c $(GENERAL_H_FILES) $(SRC_DIR)\pbc_merge$(O) : $(SRC_DIR)\pbc_merge.c $(GENERAL_H_FILES) \ $(SRC_DIR)\pmc\pmc_sub.h $(IO_DIR)\filehandle$(O) : $(INC_DIR)\parrot.h $(SRC_DIR)\pmc\pmc_filehandle.h $(SRC_DIR)\io\io_private.h $(OPS_DIR)\core_ops$(O) : $(GENERAL_H_FILES) $(OPS_DIR)\core_ops.c \ $(SRC_DIR)\pmc\pmc_continuation.h $(SRC_DIR)\pmc\pmc_parrotlibrary.h $(OPS_DIR)\pic.ops : $(SRC_DIR)\pmc\pmc_fixedintegerarray.h # core_ops depends upon config.h so that it gets updated along with # updates to config.h's version numbers # .h files are built along with .c $(INC_DIR)\oplib\core_ops.h: $(OPS_DIR)\core_ops.c $(OPS_DIR)\core_ops.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)\ops2c.pl \ lib\Parrot\OpsFile.pm lib\Parrot\Op.pm $(INC_DIR)\config.h \ lib\Parrot\OpLib\core.pm lib\Parrot\OpTrans\C.pm \ $(SRC_DIR)\pmc\pmc_continuation.h $(PERL) $(BUILD_TOOLS_DIR)\ops2c.pl C --core $(OPS_DIR)\core_ops_switch$(O) : $(GENERAL_H_FILES) $(OPS_DIR)\core_ops_switch.c \ $(SRC_DIR)\pmc\pmc_parrotlibrary.h $(INC_DIR)\oplib\core_ops_switch.h : $(OPS_DIR)\core_ops_switch.c $(OPS_DIR)\core_ops_switch.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)\ops2c.pl \ lib\Parrot\OpsFile.pm lib\Parrot\Op.pm $(INC_DIR)\config.h \ lib\Parrot\OpLib\core.pm lib\Parrot\OpTrans\CSwitch.pm \ lib\Parrot\OpTrans\CPrederef.pm $(PERL) $(BUILD_TOOLS_DIR)\ops2c.pl CSwitch --core # generated by config\auto\cgoto.pm $(OPS_DIR)\core_ops_cg$(O): $(GENERAL_H_FILES) $(OPS_DIR)\core_ops_cg.c \ $(SRC_DIR)\pmc\pmc_parrotlibrary.h $(OPS_DIR)\core_ops_cgp$(O): $(GENERAL_H_FILES) $(OPS_DIR)\core_ops_cgp.c \ $(SRC_DIR)\pmc\pmc_parrotlibrary.h $(SRC_DIR)\runcore\cores.c: $(INC_DIR)\oplib\core_ops_cgp.h $(INC_DIR)\oplib\core_ops_cg.h: $(OPS_DIR)\core_ops_cg.c $(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 $(PERL) $(BUILD_TOOLS_DIR)\ops2c.pl CGoto --core $(INC_DIR)\oplib\core_ops_cgp.h: $(OPS_DIR)\core_ops_cgp.c $(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 $(PERL) $(BUILD_TOOLS_DIR)\ops2c.pl CGP --core $(SRC_DIR)\gc\alloc_resources$(O): $(GENERAL_H_FILES) $(SRC_DIR)\gc\alloc_resources.c # the following part of the Makefile was built by 'config\auto\pmc.pm' PMC2C_FILES = \ lib\Parrot\Pmc2c\Pmc2cMain.pm \ lib\Parrot\Pmc2c\Parser.pm \ lib\Parrot\Pmc2c\Dumper.pm \ lib\Parrot\Pmc2c\PMC.pm \ lib\Parrot\Pmc2c\Method.pm \ lib\Parrot\Pmc2c\PCCMETHOD.pm \ lib\Parrot\Pmc2c\MULTI.pm \ lib\Parrot\Pmc2c\PMCEmitter.pm \ lib\Parrot\Pmc2c\MethodEmitter.pm \ lib\Parrot\Pmc2c\Library.pm \ lib\Parrot\Pmc2c\UtilFunctions.pm \ lib\Parrot\Pmc2c\PMC\default.pm \ lib\Parrot\Pmc2c\PMC\Null.pm \ lib\Parrot\Pmc2c\PMC\RO.pm src\pmc\default.c : src\pmc\default.dump $(PMC2CC) src\pmc\default.pmc src\pmc\default.dump : vtable.dump src\pmc\default.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\default.pmc src\pmc\pmc_default.h: src\pmc\default.c src\pmc\default$(O): src\pmc\default.str $(NONGEN_HEADERS) \ src\pmc\pmc_continuation.h src\pmc\null.c : src\pmc\null.dump $(PMC2CC) src\pmc\null.pmc src\pmc\null.dump : vtable.dump src\pmc\default.dump src\pmc\null.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\null.pmc src\pmc\pmc_null.h: src\pmc\null.c src\pmc\null$(O): src\pmc\null.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\env.c : src\pmc\env.dump $(PMC2CC) src\pmc\env.pmc src\pmc\env.dump : vtable.dump src\pmc\default.dump src\pmc\env.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\env.pmc src\pmc\pmc_env.h: src\pmc\env.c src\pmc\env$(O): src\pmc\env.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\key.c : src\pmc\key.dump $(PMC2CC) src\pmc\key.pmc src\pmc\key.dump : vtable.dump src\pmc\default.dump src\pmc\key.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\key.pmc src\pmc\pmc_key.h: src\pmc\key.c src\pmc\key$(O): src\pmc\key.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\random.c : src\pmc\random.dump $(PMC2CC) src\pmc\random.pmc src\pmc\random.dump : vtable.dump src\pmc\default.dump src\pmc\random.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\random.pmc src\pmc\pmc_random.h: src\pmc\random.c src\pmc\random$(O): src\pmc\random.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\unmanagedstruct.c : src\pmc\unmanagedstruct.dump $(PMC2CC) src\pmc\unmanagedstruct.pmc src\pmc\unmanagedstruct.dump : vtable.dump src\pmc\default.dump src\pmc\unmanagedstruct.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\unmanagedstruct.pmc src\pmc\pmc_unmanagedstruct.h: src\pmc\unmanagedstruct.c src\pmc\unmanagedstruct$(O): src\pmc\unmanagedstruct.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h include\parrot\compiler.h src\pmc\pmc_continuation.h src\pmc\managedstruct.c : src\pmc\managedstruct.dump $(PMC2CC) src\pmc\managedstruct.pmc src\pmc\managedstruct.dump : vtable.dump src\pmc\default.dump src\pmc\unmanagedstruct.dump src\pmc\managedstruct.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\managedstruct.pmc src\pmc\pmc_managedstruct.h: src\pmc\managedstruct.c src\pmc\managedstruct$(O): src\pmc\managedstruct.str $(NONGEN_HEADERS) \ src\pmc\pmc_unmanagedstruct.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\exception.c : src\pmc\exception.dump $(PMC2CC) src\pmc\exception.pmc src\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 $(PMC2CD) src\pmc\exception.pmc src\pmc\pmc_exception.h: src\pmc\exception.c src\pmc\exception$(O): src\pmc\exception.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h include\parrot\exceptions.h src\pmc\pmc_sub.h src\pmc\pmc_continuation.h src\pmc\parrotlibrary.c : src\pmc\parrotlibrary.dump $(PMC2CC) src\pmc\parrotlibrary.pmc src\pmc\parrotlibrary.dump : vtable.dump src\pmc\default.dump src\pmc\parrotlibrary.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\parrotlibrary.pmc src\pmc\pmc_parrotlibrary.h: src\pmc\parrotlibrary.c src\pmc\parrotlibrary$(O): src\pmc\parrotlibrary.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\parrotinterpreter.c : src\pmc\parrotinterpreter.dump $(PMC2CC) src\pmc\parrotinterpreter.pmc src\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 $(PMC2CD) src\pmc\parrotinterpreter.pmc src\pmc\pmc_parrotinterpreter.h: src\pmc\parrotinterpreter.c src\pmc\parrotinterpreter$(O): src\pmc\parrotinterpreter.str $(NONGEN_HEADERS) \ 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 src\pmc\parrotthread.c : src\pmc\parrotthread.dump $(PMC2CC) src\pmc\parrotthread.pmc src\pmc\parrotthread.dump : vtable.dump src\pmc\default.dump src\pmc\parrotinterpreter.dump src\pmc\parrotthread.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\parrotthread.pmc src\pmc\pmc_parrotthread.h: src\pmc\parrotthread.c src\pmc\parrotthread$(O): src\pmc\parrotthread.str $(NONGEN_HEADERS) \ src\pmc\pmc_parrotinterpreter.h src\pmc\pmc_default.h include\parrot\embed.h src\pmc\pmc_continuation.h src\pmc\lexpad.c : src\pmc\lexpad.dump $(PMC2CC) src\pmc\lexpad.pmc src\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 $(PMC2CD) src\pmc\lexpad.pmc src\pmc\pmc_lexpad.h: src\pmc\lexpad.c src\pmc\lexpad$(O): src\pmc\lexpad.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\timer.c : src\pmc\timer.dump $(PMC2CC) src\pmc\timer.pmc src\pmc\timer.dump : vtable.dump src\pmc\default.dump src\pmc\task.dump src\pmc\timer.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\timer.pmc src\pmc\pmc_timer.h: src\pmc\timer.c src\pmc\timer$(O): src\pmc\timer.str $(NONGEN_HEADERS) \ src\pmc\pmc_task.h src\pmc\pmc_default.h include\parrot\scheduler_private.h src\pmc\pmc_continuation.h src\pmc\pointer.c : src\pmc\pointer.dump $(PMC2CC) src\pmc\pointer.pmc src\pmc\pointer.dump : vtable.dump src\pmc\default.dump src\pmc\pointer.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\pointer.pmc src\pmc\pmc_pointer.h: src\pmc\pointer.c src\pmc\pointer$(O): src\pmc\pointer.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\sub.c : src\pmc\sub.dump $(PMC2CC) src\pmc\sub.pmc src\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 $(PMC2CD) src\pmc\sub.pmc src\pmc\pmc_sub.h: src\pmc\sub.c src\pmc\sub$(O): src\pmc\sub.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h include\parrot\oplib\ops.h src\pmc\sub.str src\pmc\pmc_continuation.h src\pmc\continuation.c : src\pmc\continuation.dump $(PMC2CC) src\pmc\continuation.pmc src\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 $(PMC2CD) src\pmc\continuation.pmc src\pmc\pmc_continuation.h: src\pmc\continuation.c src\pmc\continuation$(O): src\pmc\continuation.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h include\parrot\oplib\ops.h src\pmc\pmc_sub.h src\pmc\pmc_continuation.h src\pmc\retcontinuation.c : src\pmc\retcontinuation.dump $(PMC2CC) src\pmc\retcontinuation.pmc src\pmc\retcontinuation.dump : vtable.dump src\pmc\default.dump src\pmc\continuation.dump src\pmc\retcontinuation.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\retcontinuation.pmc src\pmc\pmc_retcontinuation.h: src\pmc\retcontinuation.c src\pmc\retcontinuation$(O): src\pmc\retcontinuation.str $(NONGEN_HEADERS) \ src\pmc\pmc_continuation.h src\pmc\pmc_default.h include\parrot\oplib\ops.h src\pmc\pmc_continuation.h src\pmc\coroutine.c : src\pmc\coroutine.dump $(PMC2CC) src\pmc\coroutine.pmc src\pmc\coroutine.dump : vtable.dump src\pmc\default.dump src\pmc\sub.dump src\pmc\coroutine.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\coroutine.pmc src\pmc\pmc_coroutine.h: src\pmc\coroutine.c src\pmc\coroutine$(O): src\pmc\coroutine.str $(NONGEN_HEADERS) \ src\pmc\pmc_sub.h src\pmc\pmc_default.h include\parrot\oplib\ops.h src\pmc\pmc_continuation.h src\pmc\eval.c : src\pmc\eval.dump $(PMC2CC) src\pmc\eval.pmc src\pmc\eval.dump : vtable.dump src\pmc\default.dump src\pmc\sub.dump src\pmc\eval.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\eval.pmc src\pmc\pmc_eval.h: src\pmc\eval.c src\pmc\eval$(O): src\pmc\eval.str $(NONGEN_HEADERS) \ src\pmc\pmc_sub.h src\pmc\pmc_default.h src\pmc\pmc_sub.h src\pmc\pmc_continuation.h src\pmc\nci.c : src\pmc\nci.dump $(PMC2CC) src\pmc\nci.pmc src\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 $(PMC2CD) src\pmc\nci.pmc src\pmc\pmc_nci.h: src\pmc\nci.c src\pmc\nci$(O): src\pmc\nci.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\float.c : src\pmc\float.dump $(PMC2CC) src\pmc\float.pmc src\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 $(PMC2CD) src\pmc\float.pmc src\pmc\pmc_float.h: src\pmc\float.c src\pmc\float$(O): src\pmc\float.str $(NONGEN_HEADERS) \ src\pmc\pmc_scalar.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\integer.c : src\pmc\integer.dump $(PMC2CC) src\pmc\integer.pmc src\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 $(PMC2CD) src\pmc\integer.pmc src\pmc\pmc_integer.h: src\pmc\integer.c src\pmc\integer$(O): src\pmc\integer.str $(NONGEN_HEADERS) \ src\pmc\pmc_scalar.h src\pmc\pmc_default.h src\pmc\pmc_bigint.h src\pmc\pmc_continuation.h src\pmc\bigint.c : src\pmc\bigint.dump $(PMC2CC) src\pmc\bigint.pmc src\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 $(PMC2CD) src\pmc\bigint.pmc src\pmc\pmc_bigint.h: src\pmc\bigint.c src\pmc\bigint$(O): src\pmc\bigint.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\bignum.c : src\pmc\bignum.dump $(PMC2CC) src\pmc\bignum.pmc src\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 $(PMC2CD) src\pmc\bignum.pmc src\pmc\pmc_bignum.h: src\pmc\bignum.c src\pmc\bignum$(O): src\pmc\bignum.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\complex.c : src\pmc\complex.dump $(PMC2CC) src\pmc\complex.pmc src\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 $(PMC2CD) src\pmc\complex.pmc src\pmc\pmc_complex.h: src\pmc\complex.c src\pmc\complex$(O): src\pmc\complex.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\string.c : src\pmc\string.dump $(PMC2CC) src\pmc\string.pmc src\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 $(PMC2CD) src\pmc\string.pmc src\pmc\pmc_string.h: src\pmc\string.c src\pmc\string$(O): src\pmc\string.str $(NONGEN_HEADERS) \ src\pmc\pmc_scalar.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\boolean.c : src\pmc\boolean.dump $(PMC2CC) src\pmc\boolean.pmc src\pmc\boolean.dump : vtable.dump src\pmc\default.dump src\pmc\scalar.dump src\pmc\integer.dump src\pmc\boolean.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\boolean.pmc src\pmc\pmc_boolean.h: src\pmc\boolean.c src\pmc\boolean$(O): src\pmc\boolean.str $(NONGEN_HEADERS) \ src\pmc\pmc_integer.h src\pmc\pmc_scalar.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\array.c : src\pmc\array.dump $(PMC2CC) src\pmc\array.pmc src\pmc\array.dump : vtable.dump src\pmc\default.dump src\pmc\array.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\array.pmc src\pmc\pmc_array.h: src\pmc\array.c src\pmc\array$(O): src\pmc\array.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\fixedintegerarray.c : src\pmc\fixedintegerarray.dump $(PMC2CC) src\pmc\fixedintegerarray.pmc src\pmc\fixedintegerarray.dump : vtable.dump src\pmc\default.dump src\pmc\fixedintegerarray.pmc $(PMC2C_FILES) lib\Parrot\Pmc2c\PCCMETHOD.pm $(PMC2CD) src\pmc\fixedintegerarray.pmc src\pmc\pmc_fixedintegerarray.h: src\pmc\fixedintegerarray.c src\pmc\fixedintegerarray$(O): src\pmc\fixedintegerarray.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\iterator.c : src\pmc\iterator.dump $(PMC2CC) src\pmc\iterator.pmc src\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 $(PMC2CD) src\pmc\iterator.pmc src\pmc\pmc_iterator.h: src\pmc\iterator.c src\pmc\iterator$(O): src\pmc\iterator.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\fixedstringarray.c : src\pmc\fixedstringarray.dump $(PMC2CC) src\pmc\fixedstringarray.pmc src\pmc\fixedstringarray.dump : vtable.dump src\pmc\default.dump src\pmc\fixedstringarray.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\fixedstringarray.pmc src\pmc\pmc_fixedstringarray.h: src\pmc\fixedstringarray.c src\pmc\fixedstringarray$(O): src\pmc\fixedstringarray.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\hash.c : src\pmc\hash.dump $(PMC2CC) src\pmc\hash.pmc src\pmc\hash.dump : vtable.dump src\pmc\default.dump src\pmc\hash.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\hash.pmc src\pmc\pmc_hash.h: src\pmc\hash.c src\pmc\hash$(O): src\pmc\hash.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_iterator.h src\pmc\pmc_key.h src\pmc\pmc_continuation.h src\pmc\orderedhash.c : src\pmc\orderedhash.dump $(PMC2CC) src\pmc\orderedhash.pmc src\pmc\orderedhash.dump : vtable.dump src\pmc\default.dump src\pmc\hash.dump src\pmc\orderedhash.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\orderedhash.pmc src\pmc\pmc_orderedhash.h: src\pmc\orderedhash.c src\pmc\orderedhash$(O): src\pmc\orderedhash.str $(NONGEN_HEADERS) \ src\pmc\pmc_hash.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\os.c : src\pmc\os.dump $(PMC2CC) src\pmc\os.pmc src\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 $(PMC2CD) src\pmc\os.pmc src\pmc\pmc_os.h: src\pmc\os.c src\pmc\os$(O): src\pmc\os.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\file.c : src\pmc\file.dump $(PMC2CC) src\pmc\file.pmc src\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 $(PMC2CD) src\pmc\file.pmc src\pmc\pmc_file.h: src\pmc\file.c src\pmc\file$(O): src\pmc\file.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\addrregistry.c : src\pmc\addrregistry.dump $(PMC2CC) src\pmc\addrregistry.pmc src\pmc\addrregistry.dump : vtable.dump src\pmc\default.dump src\pmc\hash.dump src\pmc\addrregistry.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\addrregistry.pmc src\pmc\pmc_addrregistry.h: src\pmc\addrregistry.c src\pmc\addrregistry$(O): src\pmc\addrregistry.str $(NONGEN_HEADERS) \ src\pmc\pmc_hash.h src\pmc\pmc_default.h include\parrot\hash.h src\pmc\pmc_hash.h src\pmc\pmc_continuation.h src\pmc\callsignature.c : src\pmc\callsignature.dump $(PMC2CC) src\pmc\callsignature.pmc src\pmc\callsignature.dump : vtable.dump src\pmc\default.dump src\pmc\capture.dump src\pmc\callsignature.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\callsignature.pmc src\pmc\pmc_callsignature.h: src\pmc\callsignature.c src\pmc\callsignature$(O): src\pmc\callsignature.str $(NONGEN_HEADERS) \ src\pmc\pmc_capture.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\capture.c : src\pmc\capture.dump $(PMC2CC) src\pmc\capture.pmc src\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 $(PMC2CD) src\pmc\capture.pmc src\pmc\pmc_capture.h: src\pmc\capture.c src\pmc\capture$(O): src\pmc\capture.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\class.c : src\pmc\class.dump $(PMC2CC) src\pmc\class.pmc src\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 $(PMC2CD) src\pmc\class.pmc src\pmc\pmc_class.h: src\pmc\class.c src\pmc\class$(O): src\pmc\class.str $(NONGEN_HEADERS) \ 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 src\pmc\codestring.c : src\pmc\codestring.dump $(PMC2CC) src\pmc\codestring.pmc src\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 $(PMC2CD) src\pmc\codestring.pmc src\pmc\pmc_codestring.h: src\pmc\codestring.c src\pmc\codestring$(O): src\pmc\codestring.str $(NONGEN_HEADERS) \ src\pmc\pmc_string.h src\pmc\pmc_scalar.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\cpointer.c : src\pmc\cpointer.dump $(PMC2CC) src\pmc\cpointer.pmc src\pmc\cpointer.dump : vtable.dump src\pmc\default.dump src\pmc\cpointer.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\cpointer.pmc src\pmc\pmc_cpointer.h: src\pmc\cpointer.c src\pmc\cpointer$(O): src\pmc\cpointer.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\eventhandler.c : src\pmc\eventhandler.dump $(PMC2CC) src\pmc\eventhandler.pmc src\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 $(PMC2CD) src\pmc\eventhandler.pmc src\pmc\pmc_eventhandler.h: src\pmc\eventhandler.c src\pmc\eventhandler$(O): src\pmc\eventhandler.str $(NONGEN_HEADERS) \ src\pmc\pmc_sub.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\exceptionhandler.c : src\pmc\exceptionhandler.dump $(PMC2CC) src\pmc\exceptionhandler.pmc src\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 $(PMC2CD) src\pmc\exceptionhandler.pmc src\pmc\pmc_exceptionhandler.h: src\pmc\exceptionhandler.c src\pmc\exceptionhandler$(O): src\pmc\exceptionhandler.str $(NONGEN_HEADERS) \ src\pmc\pmc_continuation.h src\pmc\pmc_default.h include\parrot\oplib\ops.h src\pmc\pmc_continuation.h src\pmc\exporter.c : src\pmc\exporter.dump $(PMC2CC) src\pmc\exporter.pmc src\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 $(PMC2CD) src\pmc\exporter.pmc src\pmc\pmc_exporter.h: src\pmc\exporter.c src\pmc\exporter$(O): src\pmc\exporter.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\filehandle.c : src\pmc\filehandle.dump $(PMC2CC) src\pmc\filehandle.pmc src\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 $(PMC2CD) src\pmc\filehandle.pmc src\pmc\pmc_filehandle.h: src\pmc\filehandle.c src\pmc\filehandle$(O): src\pmc\filehandle.str $(NONGEN_HEADERS) \ src\pmc\pmc_handle.h src\pmc\pmc_default.h include\..\src\io\io_private.h src\pmc\pmc_continuation.h src\pmc\fixedbooleanarray.c : src\pmc\fixedbooleanarray.dump $(PMC2CC) src\pmc\fixedbooleanarray.pmc src\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 $(PMC2CD) src\pmc\fixedbooleanarray.pmc src\pmc\pmc_fixedbooleanarray.h: src\pmc\fixedbooleanarray.c src\pmc\fixedbooleanarray$(O): src\pmc\fixedbooleanarray.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\fixedfloatarray.c : src\pmc\fixedfloatarray.dump $(PMC2CC) src\pmc\fixedfloatarray.pmc src\pmc\fixedfloatarray.dump : vtable.dump src\pmc\default.dump src\pmc\fixedfloatarray.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\fixedfloatarray.pmc src\pmc\pmc_fixedfloatarray.h: src\pmc\fixedfloatarray.c src\pmc\fixedfloatarray$(O): src\pmc\fixedfloatarray.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\fixedpmcarray.c : src\pmc\fixedpmcarray.dump $(PMC2CC) src\pmc\fixedpmcarray.pmc src\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 $(PMC2CD) src\pmc\fixedpmcarray.pmc src\pmc\pmc_fixedpmcarray.h: src\pmc\fixedpmcarray.c src\pmc\fixedpmcarray$(O): src\pmc\fixedpmcarray.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\handle.c : src\pmc\handle.dump $(PMC2CC) src\pmc\handle.pmc src\pmc\handle.dump : vtable.dump src\pmc\default.dump src\pmc\handle.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\handle.pmc src\pmc\pmc_handle.h: src\pmc\handle.c src\pmc\handle$(O): src\pmc\handle.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h include\parrot\parrot.h include\..\src\io\io_private.h src\pmc\pmc_continuation.h src\pmc\lexinfo.c : src\pmc\lexinfo.dump $(PMC2CC) src\pmc\lexinfo.pmc src\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 $(PMC2CD) src\pmc\lexinfo.pmc src\pmc\pmc_lexinfo.h: src\pmc\lexinfo.c src\pmc\lexinfo$(O): src\pmc\lexinfo.str $(NONGEN_HEADERS) \ src\pmc\pmc_hash.h src\pmc\pmc_default.h src\pmc\pmc_hash.h src\pmc\pmc_continuation.h src\pmc\multisub.c : src\pmc\multisub.dump $(PMC2CC) src\pmc\multisub.pmc src\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 $(PMC2CD) src\pmc\multisub.pmc src\pmc\pmc_multisub.h: src\pmc\multisub.c src\pmc\multisub$(O): src\pmc\multisub.str $(NONGEN_HEADERS) \ src\pmc\pmc_resizablepmcarray.h src\pmc\pmc_fixedpmcarray.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\namespace.c : src\pmc\namespace.dump $(PMC2CC) src\pmc\namespace.pmc src\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 $(PMC2CD) src\pmc\namespace.pmc src\pmc\pmc_namespace.h: src\pmc\namespace.c src\pmc\namespace$(O): src\pmc\namespace.str $(NONGEN_HEADERS) \ src\pmc\pmc_hash.h src\pmc\pmc_default.h src\pmc\pmc_sub.h src\pmc\pmc_continuation.h src\pmc\object.c : src\pmc\object.dump $(PMC2CC) src\pmc\object.pmc src\pmc\object.dump : vtable.dump src\pmc\default.dump src\pmc\object.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\object.pmc src\pmc\pmc_object.h: src\pmc\object.c src\pmc\object$(O): src\pmc\object.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h include\parrot\oo_private.h src\pmc\pmc_class.h src\pmc\pmc_continuation.h src\pmc\packfile.c : src\pmc\packfile.dump $(PMC2CC) src\pmc\packfile.pmc src\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 $(PMC2CD) src\pmc\packfile.pmc src\pmc\pmc_packfile.h: src\pmc\packfile.c src\pmc\packfile$(O): src\pmc\packfile.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_packfiledirectory.h src\pmc\pmc_continuation.h src\pmc\packfileannotation.c : src\pmc\packfileannotation.dump $(PMC2CC) src\pmc\packfileannotation.pmc src\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 $(PMC2CD) src\pmc\packfileannotation.pmc src\pmc\pmc_packfileannotation.h: src\pmc\packfileannotation.c src\pmc\packfileannotation$(O): src\pmc\packfileannotation.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\packfileannotations.c : src\pmc\packfileannotations.dump $(PMC2CC) src\pmc\packfileannotations.pmc src\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 $(PMC2CD) src\pmc\packfileannotations.pmc src\pmc\pmc_packfileannotations.h: src\pmc\packfileannotations.c src\pmc\packfileannotations$(O): src\pmc\packfileannotations.str $(NONGEN_HEADERS) \ src\pmc\pmc_packfilesegment.h src\pmc\pmc_default.h src\pmc\pmc_packfileannotation.h src\pmc\pmc_continuation.h src\pmc\packfileconstanttable.c : src\pmc\packfileconstanttable.dump $(PMC2CC) src\pmc\packfileconstanttable.pmc src\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 $(PMC2CD) src\pmc\packfileconstanttable.pmc src\pmc\pmc_packfileconstanttable.h: src\pmc\packfileconstanttable.c src\pmc\packfileconstanttable$(O): src\pmc\packfileconstanttable.str $(NONGEN_HEADERS) \ src\pmc\pmc_packfilesegment.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\packfiledirectory.c : src\pmc\packfiledirectory.dump $(PMC2CC) src\pmc\packfiledirectory.pmc src\pmc\packfiledirectory.dump : vtable.dump src\pmc\default.dump src\pmc\packfilesegment.dump src\pmc\packfiledirectory.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\packfiledirectory.pmc src\pmc\pmc_packfiledirectory.h: src\pmc\packfiledirectory.c src\pmc\packfiledirectory$(O): src\pmc\packfiledirectory.str $(NONGEN_HEADERS) \ src\pmc\pmc_packfilesegment.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\packfilefixupentry.c : src\pmc\packfilefixupentry.dump $(PMC2CC) src\pmc\packfilefixupentry.pmc src\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 $(PMC2CD) src\pmc\packfilefixupentry.pmc src\pmc\pmc_packfilefixupentry.h: src\pmc\packfilefixupentry.c src\pmc\packfilefixupentry$(O): src\pmc\packfilefixupentry.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\packfilefixuptable.c : src\pmc\packfilefixuptable.dump $(PMC2CC) src\pmc\packfilefixuptable.pmc src\pmc\packfilefixuptable.dump : vtable.dump src\pmc\default.dump src\pmc\packfilesegment.dump src\pmc\packfilefixuptable.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\packfilefixuptable.pmc src\pmc\pmc_packfilefixuptable.h: src\pmc\packfilefixuptable.c src\pmc\packfilefixuptable$(O): src\pmc\packfilefixuptable.str $(NONGEN_HEADERS) \ src\pmc\pmc_packfilesegment.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\packfilerawsegment.c : src\pmc\packfilerawsegment.dump $(PMC2CC) src\pmc\packfilerawsegment.pmc src\pmc\packfilerawsegment.dump : vtable.dump src\pmc\default.dump src\pmc\packfilesegment.dump src\pmc\packfilerawsegment.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\packfilerawsegment.pmc src\pmc\pmc_packfilerawsegment.h: src\pmc\packfilerawsegment.c src\pmc\packfilerawsegment$(O): src\pmc\packfilerawsegment.str $(NONGEN_HEADERS) \ src\pmc\pmc_packfilesegment.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\packfilesegment.c : src\pmc\packfilesegment.dump $(PMC2CC) src\pmc\packfilesegment.pmc src\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 $(PMC2CD) src\pmc\packfilesegment.pmc src\pmc\pmc_packfilesegment.h: src\pmc\packfilesegment.c src\pmc\packfilesegment$(O): src\pmc\packfilesegment.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\parrotrunningthread.c : src\pmc\parrotrunningthread.dump $(PMC2CC) src\pmc\parrotrunningthread.pmc src\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 $(PMC2CD) src\pmc\parrotrunningthread.pmc src\pmc\pmc_parrotrunningthread.h: src\pmc\parrotrunningthread.c src\pmc\parrotrunningthread$(O): src\pmc\parrotrunningthread.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h include\parrot\embed.h src\pmc\pmc_continuation.h src\pmc\pccmethod_test.c : src\pmc\pccmethod_test.dump $(PMC2CC) src\pmc\pccmethod_test.pmc src\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 $(PMC2CD) src\pmc\pccmethod_test.pmc src\pmc\pmc_pccmethod_test.h: src\pmc\pccmethod_test.c src\pmc\pccmethod_test$(O): src\pmc\pccmethod_test.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\pmcproxy.c : src\pmc\pmcproxy.dump $(PMC2CC) src\pmc\pmcproxy.pmc src\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 $(PMC2CD) src\pmc\pmcproxy.pmc src\pmc\pmc_pmcproxy.h: src\pmc\pmcproxy.c src\pmc\pmcproxy$(O): src\pmc\pmcproxy.str $(NONGEN_HEADERS) \ src\pmc\pmc_class.h src\pmc\pmc_default.h include\parrot\oo_private.h src\pmc\pmc_continuation.h src\pmc\resizablebooleanarray.c : src\pmc\resizablebooleanarray.dump $(PMC2CC) src\pmc\resizablebooleanarray.pmc src\pmc\resizablebooleanarray.dump : vtable.dump src\pmc\default.dump src\pmc\fixedbooleanarray.dump src\pmc\resizablebooleanarray.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\resizablebooleanarray.pmc src\pmc\pmc_resizablebooleanarray.h: src\pmc\resizablebooleanarray.c src\pmc\resizablebooleanarray$(O): src\pmc\resizablebooleanarray.str $(NONGEN_HEADERS) \ src\pmc\pmc_fixedbooleanarray.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\resizablefloatarray.c : src\pmc\resizablefloatarray.dump $(PMC2CC) src\pmc\resizablefloatarray.pmc src\pmc\resizablefloatarray.dump : vtable.dump src\pmc\default.dump src\pmc\fixedfloatarray.dump src\pmc\resizablefloatarray.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\resizablefloatarray.pmc src\pmc\pmc_resizablefloatarray.h: src\pmc\resizablefloatarray.c src\pmc\resizablefloatarray$(O): src\pmc\resizablefloatarray.str $(NONGEN_HEADERS) \ src\pmc\pmc_fixedfloatarray.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\resizableintegerarray.c : src\pmc\resizableintegerarray.dump $(PMC2CC) src\pmc\resizableintegerarray.pmc src\pmc\resizableintegerarray.dump : vtable.dump src\pmc\default.dump src\pmc\fixedintegerarray.dump src\pmc\resizableintegerarray.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\resizableintegerarray.pmc src\pmc\pmc_resizableintegerarray.h: src\pmc\resizableintegerarray.c src\pmc\resizableintegerarray$(O): src\pmc\resizableintegerarray.str $(NONGEN_HEADERS) \ src\pmc\pmc_fixedintegerarray.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\resizablepmcarray.c : src\pmc\resizablepmcarray.dump $(PMC2CC) src\pmc\resizablepmcarray.pmc src\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 $(PMC2CD) src\pmc\resizablepmcarray.pmc src\pmc\pmc_resizablepmcarray.h: src\pmc\resizablepmcarray.c src\pmc\resizablepmcarray$(O): src\pmc\resizablepmcarray.str $(NONGEN_HEADERS) \ src\pmc\pmc_fixedpmcarray.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\resizablestringarray.c : src\pmc\resizablestringarray.dump $(PMC2CC) src\pmc\resizablestringarray.pmc src\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 $(PMC2CD) src\pmc\resizablestringarray.pmc src\pmc\pmc_resizablestringarray.h: src\pmc\resizablestringarray.c src\pmc\resizablestringarray$(O): src\pmc\resizablestringarray.str $(NONGEN_HEADERS) \ src\pmc\pmc_fixedstringarray.h src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\role.c : src\pmc\role.dump $(PMC2CC) src\pmc\role.pmc src\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 $(PMC2CD) src\pmc\role.pmc src\pmc\pmc_role.h: src\pmc\role.c src\pmc\role$(O): src\pmc\role.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_namespace.h src\pmc\pmc_continuation.h src\pmc\scalar.c : src\pmc\scalar.dump $(PMC2CC) src\pmc\scalar.pmc src\pmc\scalar.dump : vtable.dump src\pmc\default.dump src\pmc\scalar.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\scalar.pmc src\pmc\pmc_scalar.h: src\pmc\scalar.c src\pmc\scalar$(O): src\pmc\scalar.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_bigint.h src\pmc\pmc_continuation.h src\pmc\scheduler.c : src\pmc\scheduler.dump $(PMC2CC) src\pmc\scheduler.pmc src\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 $(PMC2CD) src\pmc\scheduler.pmc src\pmc\pmc_scheduler.h: src\pmc\scheduler.c src\pmc\scheduler$(O): src\pmc\scheduler.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h include\parrot\scheduler_private.h src\pmc\pmc_continuation.h src\pmc\schedulermessage.c : src\pmc\schedulermessage.dump $(PMC2CC) src\pmc\schedulermessage.pmc src\pmc\schedulermessage.dump : vtable.dump src\pmc\default.dump src\pmc\schedulermessage.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\schedulermessage.pmc src\pmc\pmc_schedulermessage.h: src\pmc\schedulermessage.c src\pmc\schedulermessage$(O): src\pmc\schedulermessage.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h include\parrot\scheduler_private.h src\pmc\pmc_continuation.h src\pmc\sockaddr.c : src\pmc\sockaddr.dump $(PMC2CC) src\pmc\sockaddr.pmc src\pmc\sockaddr.dump : vtable.dump src\pmc\default.dump src\pmc\sockaddr.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\sockaddr.pmc src\pmc\pmc_sockaddr.h: src\pmc\sockaddr.c src\pmc\sockaddr$(O): src\pmc\sockaddr.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_continuation.h src\pmc\socket.c : src\pmc\socket.dump $(PMC2CC) src\pmc\socket.pmc src\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 $(PMC2CD) src\pmc\socket.pmc src\pmc\pmc_socket.h: src\pmc\socket.c src\pmc\socket$(O): src\pmc\socket.str $(NONGEN_HEADERS) \ src\pmc\pmc_handle.h src\pmc\pmc_default.h include\..\src\io\io_private.h src\pmc\pmc_continuation.h src\pmc\stringhandle.c : src\pmc\stringhandle.dump $(PMC2CC) src\pmc\stringhandle.pmc src\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 $(PMC2CD) src\pmc\stringhandle.pmc src\pmc\pmc_stringhandle.h: src\pmc\stringhandle.c src\pmc\stringhandle$(O): src\pmc\stringhandle.str $(NONGEN_HEADERS) \ src\pmc\pmc_handle.h src\pmc\pmc_default.h include\..\src\io\io_private.h src\pmc\pmc_continuation.h src\pmc\task.c : src\pmc\task.dump $(PMC2CC) src\pmc\task.pmc src\pmc\task.dump : vtable.dump src\pmc\default.dump src\pmc\task.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\task.pmc src\pmc\pmc_task.h: src\pmc\task.c src\pmc\task$(O): src\pmc\task.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h include\parrot\scheduler_private.h src\pmc\pmc_continuation.h src\pmc\undef.c : src\pmc\undef.dump $(PMC2CC) src\pmc\undef.pmc src\pmc\undef.dump : vtable.dump src\pmc\default.dump src\pmc\undef.pmc $(PMC2C_FILES) $(PMC2CD) src\pmc\undef.pmc src\pmc\pmc_undef.h: src\pmc\undef.c src\pmc\undef$(O): src\pmc\undef.str $(NONGEN_HEADERS) \ src\pmc\pmc_default.h src\pmc\pmc_object.h src\pmc\pmc_continuation.h # the following part of the Makefile was built by 'config\inter\charset.pm' src\string\charset\ascii$(O): src\string\charset\ascii.h src\string\charset\ascii.h src\string\charset\ascii.c $(NONGEN_HEADERS) src\string\charset\binary$(O): src\string\charset\binary.h src\string\charset\ascii.h src\string\charset\binary.c $(NONGEN_HEADERS) src\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) src\string\charset\tables$(O): src\string\charset\tables.h src\string\charset\ascii.h src\string\charset\tables.c $(NONGEN_HEADERS) src\string\charset\unicode$(O): src\string\charset\unicode.h src\string\charset\ascii.h src\string\charset\unicode.c $(NONGEN_HEADERS) # the following part of the Makefile was built by 'config\inter\encoding.pm' src\string\encoding\fixed_8$(O): src\string\encoding\fixed_8.h src\string\encoding\fixed_8.c $(NONGEN_HEADERS) src\string\encoding\ucs2$(O): src\string\encoding\ucs2.h src\string\encoding\ucs2.c $(NONGEN_HEADERS) src\string\encoding\utf16$(O): src\string\encoding\utf16.h src\string\encoding\utf16.c $(NONGEN_HEADERS) src\string\encoding\utf8$(O): src\string\encoding\utf8.h src\string\encoding\utf8.c $(NONGEN_HEADERS) # $(CONFIGURE_GENERATED_FILES) : Configure.pl # $(PERL) Configure.pl $(INC_DIR)\vtable.h : src\vtable.tbl $(BUILD_TOOLS_DIR)\vtable_h.pl lib\Parrot\Vtable.pm $(PERL) $(BUILD_TOOLS_DIR)\vtable_h.pl $(SRC_DIR)\jit_emit.h : $(SRC_DIR)\jit\i386\jit_emit.h $(CP) $(SRC_DIR)\jit\i386\jit_emit.h $(SRC_DIR)\jit_emit.h $(SRC_DIR)\exec_dep.h : $(SRC_DIR)\jit\i386\exec_dep.h $(CP) $(SRC_DIR)\jit\i386\exec_dep.h $(SRC_DIR)\exec_dep.h $(SRC_DIR)\jit_cpu.c : lib\Parrot\OpLib\core.pm $(SRC_DIR)\jit_emit.h \ $(SRC_DIR)\jit\i386\core.jit $(JIT_BUILD_TOOL) $(PERL) $(JIT_BUILD_TOOL) i386 $(SRC_DIR)\jit_cpu.c $(SRC_DIR)\jit_defs.c : $(SRC_DIR)\jit\i386\jit_emit.h \ $(SRC_DIR)\jit\i386\jit_defs.c $(CP) $(SRC_DIR)\jit\i386\jit_defs.c $(SRC_DIR)\jit_defs.c $(SRC_DIR)\exec_cpu.c : lib\Parrot\OpLib\core.pm $(SRC_DIR)\jit_emit.h \ $(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) $(PERL) $(JIT_BUILD_TOOL) i386 $(SRC_DIR)\exec_cpu.c $(SRC_DIR)\exec_dep.c : $(SRC_DIR)\jit\i386\exec_dep.c $(CP) $(SRC_DIR)\jit\i386\exec_dep.c $(SRC_DIR)\exec_dep.c # imcc file dependencies # # The .flag files are needed because we keep some derived files in SVN, # which does not keep accurate timestamps on the files, relative to each other. # Note that YACC or LEX may be null commands, so we must `touch` all the # target files, instead of just the .flag files. $(IMCC_DIR)\imcc.y.flag $(IMCC_DIR)\imcparser.c $(IMCC_DIR)\imcparser.h : $(IMCC_DIR)\imcc.y $(YACC) $(IMCC_DIR)\imcc.y -d -o $(IMCC_DIR)\imcparser.c $(PERL) $(BUILD_TOOLS_DIR)\fixup_gen_file.pl -noheaderizer $(IMCC_DIR)\imcparser.c $(IMCC_DIR)\imcc.y $(PERL) $(BUILD_TOOLS_DIR)\fixup_gen_file.pl -noheaderizer $(IMCC_DIR)\imcparser.h $(IMCC_DIR)\imcc.y $(TOUCH) $(IMCC_DIR)\imcc.y.flag $(IMCC_DIR)\imcparser.c $(IMCC_DIR)\imcparser.h $(IMCC_DIR)\imcc.l.flag $(IMCC_DIR)\imclexer.c : $(IMCC_DIR)\imcc.l $(LEX) -o$(IMCC_DIR)\imclexer.c $(IMCC_DIR)\imcc.l $(TOUCH) $(IMCC_DIR)\imcc.l.flag $(IMCC_DIR)\imclexer.c $(IMCC_O_FILES) : $(IMCC_H_FILES) $(ALL_H_FILES) ############################################################################### # # Documentation targets: # ############################################################################### docs : docs.dummy docs.stub: @echo "Perldoc is required, but not detected." docs.dummy : $(MAKE) docs docs-clean : $(MAKE) docs clean html : html.dummy html.stub: @echo "Perldoc is required, but not detected." html.dummy : $(MAKE) docs html html-clean : $(MAKE) docs html-clean htmlhelp : htmlhelp.dummy htmlhelp.stub: @echo "Perldoc is required, but not detected." htmlhelp.dummy : $(MAKE) docs htmlhelp htmlhelp-clean : $(MAKE) docs htmlhelp-clean ############################################################################### # # dynamic PMC targets: # ############################################################################### dynpmc : dynpmc.dummy # XXX this dependancy is too broad, and should be narrowed down dynpmc.dummy : $(PARROT) $(INC_DIR)\parrot.h $(INC_DIR)\extend.h $(INC_DIR)\dynext.h $(PMC2C_FILES) $(MAKE) src\dynpmc dynpmc-test : $(PARROT) $(INC_DIR)\parrot.h $(INC_DIR)\extend.h $(INC_DIR)\dynext.h $(MAKE) src\dynpmc test dynpmc-clean : $(MAKE) src\dynpmc clean ############################################################################### # # dynamic oplibs targets: # ############################################################################### dynoplibs : dynoplibs.dummy # XXX this dependancy is too broad, and should be narrowed down dynoplibs.dummy : $(PARROT) $(INC_DIR)\dynext.h $(MAKE) src\dynoplibs dynoplibs-test : $(PARROT) $(INC_DIR)\dynext.h $(MAKE) src\dynoplibs test dynoplibs-clean : $(MAKE) src\dynoplibs clean ############################################################################### # # compiler implementation targets: # ############################################################################### compilers : compilers.dummy compilers.dummy : $(PARROT) $(GEN_LIBRARY) $(MAKE) compilers\pct $(MAKE) compilers\pge $(MAKE) compilers\tge $(MAKE) compilers\nqp $(MAKE) compilers\json compilers-clean : $(MAKE) compilers\pct clean $(MAKE) compilers\pge clean $(MAKE) compilers\tge clean $(MAKE) compilers\nqp clean $(MAKE) compilers\json clean $(MAKE) compilers\pirc clean ############################################################################### # # editors targets: # ############################################################################### editor-clean : $(MAKE) editor clean ############################################################################### # # Testing Targets: # ############################################################################### # The --running-make-test argument is currently used by long-running tests # to disable GC_DEBUG. EXTRA_TEST_ARGS = --gc-debug --running-make-test DISTRO_TEST_FILES = \ t\distro\\*.t BENCHMARK_TEST_FILES = \ t\benchmark\\*.t PERL_TEST_FILES = \ t\perl\\*.t CODINGSTD_TEST_FILES = \ t\codingstd\\*.t RUN_TEST_FILES = \ t\run\\*.t RUNCORE_TEST_FILES = \ --runcore-tests SRC_TEST_FILES = \ t\src\\*.t TOOLS_TEST_FILES = \ t\tools\\*.t PMC2CUTILS_DIR = t\tools\pmc2cutils OPS2PMUTILS_DIR = t\tools\ops2pm OPS2CUTILS_DIR = t\tools\ops2cutils REVISIONUTILS_DIR = t\tools\revision HARNESS_DIR = t\pharness BUILDTOOLS_TEST_FILES = \ $(PMC2CUTILS_DIR)\\*.t \ $(OPS2PMUTILS_DIR)\\*.t \ $(OPS2CUTILS_DIR)\\*.t \ $(REVISIONUTILS_DIR)\\*.t \ $(HARNESS_DIR)\\*.t MANIFEST_DIR = t\manifest INSTALL_TOOLS_DIR = t\tools\install MANIFEST_TEST_FILES = \ $(MANIFEST_DIR)\\*.t \ $(INSTALL_TOOLS_DIR)\\*.t EXAMPLES_TEST_FILES = \ t\examples\\*.t CONFIGURE_TEST_FILES = \ t\configure\\*.t \ t\steps\\*.t # Common prep for all test targets. # We probably need a complete build before running the tests. test_prep : all # We always want to test annotations are persisted in PBC during make test. test_pbc_annotation_persistence : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) -r t\op\annotate.t # Run test cases with a single call of t\harness. Users have to look at only # one report. The default set of tests to run is contained in t\harness, # make any edits there. Some tests are run in a separate harness only because # integrating them in a single run is difficult. # Normal test package test : test_core nqp_test # Test Parrot core. test_core: test_prep test_pbc_annotation_persistence $(PERL) t\harness $(EXTRA_TEST_ARGS) # Test the NQP compiler nqp_test : test_prep $(MAKE) compilers\nqp test # run the test suite, create a TAP archive and send it off to smolder smolder_test : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) --archive --send-to-smolder smolder_coretest : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) --core-tests --archive --send-to-smolder smoke : smolder_test # "core tests" -- test basic functionality but not ancillaries coretest : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) --core-tests # automake compatibility check : test # Test various run cores and other stuff # 'testC', 'testg' and 'testj' are tested only # when the needed runcores are available fulltest : -dmake testb \ testC \ testf \ testg \ testj \ testr \ testS \ src_tests \ run_tests \ perl_tests \ codetest \ benchmark_tests \ manifest_tests \ examples_tests \ distro_tests fulltest_all : -dmake testb -dmake testC -dmake testf -dmake testg -dmake testj -dmake testr -dmake testS -dmake src_tests -dmake run_tests -dmake perl_tests -dmake codetest -dmake manifest_tests -dmake examples_tests -dmake distro_tests -dmake benchmark_tests # bounds checking, slow core testb : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) -b $(RUNCORE_TEST_FILES) # CGP core testC : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) -C $(RUNCORE_TEST_FILES) # fast core testf : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) -f $(RUNCORE_TEST_FILES) # Computed goto testg : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) -g $(RUNCORE_TEST_FILES) # JIT core testj : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) -j $(RUNCORE_TEST_FILES) # normal core, write and run Parrot Byte Code testr : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) -r $(RUNCORE_TEST_FILES) # switched core testS : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) -S $(RUNCORE_TEST_FILES) # Computed goto jitted core testCj : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) -Cj $(RUNCORE_TEST_FILES) # switched jitted core testSj : test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) -Sj $(RUNCORE_TEST_FILES) # test the EXEC stuff testexec: test_prep $(PERL) t\harness $(EXTRA_TEST_ARGS) --run-exec $(RUNCORE_TEST_FILES) # Test that need to be compiled by the C-compiler src_tests : $(PERL) t\harness $(SRC_TEST_FILES) # Command line and various environments run_tests : $(PERL) t\harness $(RUN_TEST_FILES) # Test the Perl5 Modules in the Parrot distribution perl_tests : $(PERL) t\harness $(PERL_TEST_FILES) codetest : $(PERL) t\harness $(EXTRA_TEST_ARGS) --code-tests # Test pdd07_codingstd codingstd_tests : $(PERL) t\harness $(CODINGSTD_TEST_FILES) # Run standard test suite with warnings enabled. warnings_tests: $(PERL) t\harness $(EXTRA_TEST_ARGS) -w $(RUNCORE_TEST_FILES) buildtools_tests : $(PERL) t\harness $(BUILDTOOLS_TEST_FILES) manifest_tests : $(PERL) t\harness $(MANIFEST_TEST_FILES) examples_tests : $(PERL) t\harness $(EXAMPLES_TEST_FILES) # benchmark tests benchmark_tests : test_prep $(PERL) t\harness $(BENCHMARK_TEST_FILES) # Running a benchmark mopsbench : test_prep $(PARROT) examples\benchmarks\mops_intval.pasm # distro tests distro_tests : test_prep $(PERL) t\harness $(DISTRO_TEST_FILES) # configure tests configure_tests : $(PERL) t\harness $(CONFIGURE_TEST_FILES) ############################################################################### # # Cleaning Targets: # ############################################################################### clean : \ test-clean \ prog-clean \ dynext-clean \ docs-clean \ html-clean \ dynpmc-clean \ dynoplibs-clean \ examples-clean \ imcc-clean \ compilers-clean \ editor-clean $(RM_F) $(INC_DIR)\oplib\core_ops_cg.h $(OPS_DIR)\core_ops_cg.c \ $(INC_DIR)\oplib\core_ops_cgp.h $(OPS_DIR)\core_ops_cgp.c $(RM_F) chartypes "*.s" "*~" $(RM_F) $(FLUID_FILES_1) $(RM_F) $(FLUID_FILES_2) $(RM_RF) lib\Parrot\OpLib prog-clean : $(RM_F) \ $(O_FILES) \ $(PARROT) \ $(MINIPARROT) \ $(LIBPARROT) \ $(INSTALLABLEPARROT) \ $(INSTALLABLEDIS) \ $(INSTALLABLEPDUMP) \ $(INSTALLABLEPINFO) \ $(INSTALLABLEPBCMERGE) \ $(INSTALLABLEPBCTOEXE) \ $(INSTALLABLEPDB) \ $(INSTALLABLECONFIG) \ pbc_to_exe.pbc pbc_to_exe.c pbc_to_exe$(O) pbc_to_exe$(EXE) \ parrot_config$(EXE) parrot_config.c parrot_config$(O) parrot_config.pbc \ $(IMCC_DIR)\main$(O) \ $(PDUMP) $(SRC_DIR)\pbc_dump$(O) $(SRC_DIR)\packdump$(O) \ $(SRC_DIR)\pbc_info$(O) $(PINFO) \ $(PDB) $(SRC_DIR)\parrot_debugger$(O) \ $(PBCMERGE) $(SRC_DIR)\pbc_merge$(O) \ $(DIS) $(SRC_DIR)\pbc_disassemble$(O) $(RM_F) \ $(SRC_DIR)\main$(O) \ $(SRC_DIR)\null_config$(O) \ $(SRC_DIR)\parrot_config$(O) \ $(SRC_DIR)\install_config$(O) \ $(SRC_DIR)\exec_start$(O) \ $(SRC_DIR)\nci_test$(O) \ $(LIBNCI_TEST_SO) \ $(SRC_DIR)\glut_callbacks$(O) \ $(LIBGLUTCB_SO) \ install_config.fpmc $(PERL) $(BUILD_TOOLS_DIR)\c2str.pl --init $(RM_F) \ $(STR_FILES) \ $(SRC_DIR)\string\private_cstring.h "src\pmc\\*.c" "src\pmc\pmc_*.h" \ "src\pmc\\*.dump" vtable.dump "*.def" "*.lib" "*.exp" archclean: dynoplibs-clean dynpmc-clean dynext-clean $(RM_F) \ $(O_FILES) \ $(GEN_CONFIGS) \ $(GEN_MAKEFILES) \ $(PARROT) \ $(MINIPARROT) \ $(INSTALLABLEPARROT) \ $(INSTALLABLEDIS) \ $(INSTALLABLEPDUMP) \ $(INSTALLABLEPINFO) \ $(INSTALLABLEPBCMERGE) \ $(INSTALLABLEPDB) \ $(INSTALLABLECONFIG) \ $(IMCC_DIR)\main$(O) \ $(PDUMP) $(SRC_DIR)\pbc_dump$(O) $(SRC_DIR)\packdump$(O) \ $(PINFO) $(SRC_DIR)\pbc_info$(O) \ $(PDB) $(SRC_DIR)\parrot_debugger$(O) \ $(PBCMERGE) $(SRC_DIR)\pbc_merge$(O) \ $(DIS) $(SRC_DIR)\pbc_disassemble$(O) \ $(PARROT_CONFIG) parrot_config$(O) parrot_config.c \ $(SRC_DIR)\parrot_config$(O) parrot_config.pbc \ pbc_to_exe$(EXE) pbc_to_exe$(O) pbc_to_exe.pbc \ $(SRC_DIR)\null_config$(O) \ $(SRC_DIR)\parrot_config$(O) \ $(SRC_DIR)\install_config$(O) \ $(SRC_DIR)\asmfun.s \ $(SRC_DIR)\jit_emit.h \ $(SRC_DIR)\jit_cpu.c \ $(SRC_DIR)\exec_cpu.c \ $(SRC_DIR)\jit_defs.c \ $(SRC_DIR)\exec_start$(O) \ install_config.fpmc \ $(SRC_DIR)\nci_test$(O) \ $(LIBNCI_TEST_SO) \ $(SRC_DIR)\glut_callbacks$(O) \ $(LIBGLUTCB_SO) \ $(LIBPARROT_STATIC) \ $(LIBPARROT_SHARED) dynext-clean : # shared libs (LOAD_EXT, SHARE_EXT) # win32 import library (.lib - shared object is deleted by LIBNCI_TEST_SO above) # win32 program data base - contains debugging info (.pdb) # win32 incremental link status files (.ilk) # win32 exported functions and data items (.exp) # win32 export definition files (.def) $(RM_F) \ "$(DYNEXT_DIR)\\*$(LOAD_EXT)" \ "$(DYNEXT_DIR)\\*$(SHARE_EXT)" \ "$(DYNEXT_DIR)\\*.lib" \ "*.pdb" "$(DYNEXT_DIR)\\*.pdb" \ "*.ilk" "$(DYNEXT_DIR)\\*.ilk" \ "*.exp" "$(DYNEXT_DIR)\\*.exp" \ "*.def" "$(DYNEXT_DIR)\\*.def" \ "*.manifest" "$(DYNEXT_DIR)\\*.manifest" # Remove files generated by the test suite # XXX Is there a danger of too long command lines in the $(RM_F) commands, # or is there an automatic xargs? test-clean : $(RM_F) \ "t\compilers\\*\\*.out" \ "t\compilers\\*\\*.pasm" \ "t\compilers\\*\\*.pbc" \ "t\compilers\\*\\*_pbcexe*" \ "t\compilers\\*\\*.pir" \ "t\compilers\\*\\*.stabs.s" $(RM_F) \ "t\compilers\\*\\*\\*.out" \ "t\compilers\\*\\*\\*.pasm" \ "t\compilers\\*\\*\\*.pbc" \ "t\compilers\\*\\*\\*_pbcexe*" \ "t\compilers\\*\\*\\*.pir" \ "t\compilers\\*\\*\\*.stabs.s" $(RM_F) \ "t\\*\\*$(O)" \ "t\\*\\*.out" \ "t\\*\\*.pasm" \ "t\\*\\*_pbcexe*" \ "t\\*\\*.pir" \ "t\\*\\*.stabs.s" $(RM_F) \ "t\library\\*.pbc" \ "t\dynoplibs\\*.pbc" \ "t\op\\*.pbc" \ "t\oo\\*.pbc" \ "t\pmc\\*.pbc" \ "t\stress\\*.pbc" \ "t\tools\\*.pbc" $(RM_F) \ "t\dynpmc\md2.t" \ "t\dynpmc\md4.t" \ "t\dynpmc\md5.t" \ "t\dynpmc\ripemd160.t" \ "t\dynpmc\sha.t" \ "t\dynpmc\sha1.t" \ "t\dynpmc\sha256.t" \ "t\dynpmc\sha512.t" $(RM_F) \ "t\src\\*.c" \ "t\src\\*.pdb" \ "t\src\\*.manifest" $(RM_F) \ "t\tools\pmc2c.t_*" \ "t\tools\pmc2c.pmc_t_*" \ "t\tools\parrot_debugger.t.*" $(RM_F) \ "test$(EXE)" \ "test.*" $(RM_F) \ "parrot_test_run.tar.gz" \ ".pod_examinable*.sto" imcc-clean: $(RM_F) \ $(IMCC_DIR)\core \ "$(IMCC_DIR)\\*$(O)" \ $(IMCC_DIR)\imcparser.output # a failing step of cleaning, usually doesn't concern the following steps realclean : clean -$(MAKE) compilers\pirc realclean -$(MAKE) src\dynpmc realclean $(RM_RF) \ $(CONFIGURE_GENERATED_FILES) \ blib \ cover_db distclean : realclean # Require .svn to exist first # Otherwise it'll remove every last file svnclobber : .svn $(PERL) tools\dev\svnclobber.pl reconfig : realclean $(PERL) Configure.pl $(CONFIG_ARGS) manitest : $(PERL) tools\dev\manicheck.pl opsrenumber : $(PERL) tools\dev\opsrenumber.pl $(OPS_FILES) pmcrenumber : $(PERL) tools\dev\pmcrenumber.pl $(SRC_DIR)\pmc\pmc.num ############################################################################### # # SVN Targets: # ############################################################################### update : svn -q update status : svn -q status patch : svn diff LINTABLE_CFILES = `echo $(SRC_DIR)\main$(O) $(O_FILES) $(SRC_DIR)\parrot_config$(O) | $(PERL) -pe "s\\.o\\.c\g"` lint : sunlint SUNLINT = lint # This target does sneaky magic to get the $(NOTE) fields to work. It's # doing replaces in $(NOTE), which is empty, of strings that will never match. NOTE = SUNLINT_HUSH_OPTS = \ $(NOTE:% Errors that will never be silenced, and we must always hush =%)\ -erroff=E_ARGUMENT_CONVERT $(NOTE:% implicit integer-to-long conversion =%) \ -erroff=E_BAD_PTR_CAST $(NOTE:% pointer casts may be troublesome =%) \ -erroff=E_BAD_PTR_CAST_ALIGN $(NOTE:% alignment problems with cast =%) \ -erroff=E_LABEL_NOT_USED $(NOTE:% Unused label =%) \ -erroff=E_CONSTANT_CONDITION $(NOTE:% Constant condition =%) \ -erroff=E_INCL_NUSD $(NOTE:% An include file was unused =%) \ -erroff=E_INDISTING_FROM_TRUNC $(NOTE:% Identifier will be ambiguous if truncated =%) \ -erroff=E_MCR_NODIFF $(NOTE:% Macros differ between source files =%) \ -erroff=E_INIT_DOES_NOT_FIT $(NOTE:% initializer does not fit or is out of range+ 0xf0e69739 =%) \ -erroff=E_NONPORT_SBITWISE_OP $(NOTE:% bitwise operations on signed values not portable =%) \ \ $(NOTE:% Things to drop some day =%) \ -erroff=E_FUNC_ARG_UNUSED $(NOTE:% Unused function argument =%) \ -erroff=E_STMT_NOT_REACHED $(NOTE:% Unreachable statement =%) \ -erroff=E_NOP_IF_STMT $(NOTE:% if has a no-op =%) \ -erroff=E_NOP_ELSE_STMT $(NOTE:% else has a no-op =%) \ -erroff=E_CASE_FALLTHRU $(NOTE:% case fallthru =%) \ -erroff=E_STATIC_UNUSED $(NOTE:% Static function not used =%) \ SUNLINT_OPTS_FOR_THE_FUTURE = -b -m -Xc # Lint options at: http://docs.sun.com/app/docs/doc/819-5265/6n7c29cli?a=view SUNLINTOPTS = \ -b \ -p \ -fd \ -Ncheck=%all \ -Nlevel=4 \ -errchk=%all \ -errhdr=%user \ -errtags \ -errchk=no%longptr64 \ -errfmt=simple \ $(SUNLINT_HUSH_OPTS) \ sunlint : rm -f *.ln $(SUNLINT) $(CC_INC) -DHAS_JIT -DI386 "-Isrc\pmc" $(SUNLINTOPTS) $(LINTABLE_CFILES) BSD_LINT_FLAGS = -a -aa -b -c -e -h -n -p -r -u -x -z -F -H -V # 132: conversion from '...' may lose accuracy # 135: possible pointer alignment problem # 236: static function unused # 241: dubious operation on enum # 247: pointer casts may be troublesome # 249: syntax error (huh? this appears in atomic\gcc_x86.h but doesn't # cause any compiler to barf) # 259: conversion to '...' due to prototype # 265: ANSI C does not support 'long long' # 277: initialisation of '...' with '...' # 278: combination of '...' and '...', arg #... BSD_LINT_EXCLUSIONS = -X132,135,236,241,247,249,259,265,277,278 bsdlint : $(PARROT) rm -f *.ln $(LINT) $(CC_INC) "-Isrc\pmc" $(BSD_LINT_FLAGS) $(BSD_LINT_EXCLUSIONS) $(LINTABLE_CFILES) # For checking with splint see also http://www.perlfoundation.org/parrot/index.cgi?splint # Splint: http://splint.org SPLINT = splint # Temp directory for splint. Add +keep to splintflags if you want work files # kept in there after completion. SPLINT_TMP = $(TMP)\splint # Splint flags: http:/splint.org\manual\html\appB.html # The dashes in the names don't make any difference to Splint, but I've # made them match how they are in the manual. Otherwise, you might be # looking for "declundef", except that it's "decl-undef" in the docs. SPLINTFLAGS = \ +standard \ -hints \ \ +indentspaces 4 \ +locindentspaces 4 \ +linelen 120 \ -message-stream-stdout \ +showdeephistory \ -showfunc \ -tmpdir $(SPLINT_TMP) \ \ +posix-lib \ -skip-posix-headers \ \ +ansi89-limits \ +num-struct-fields 255 \ \ -show-summary \ +show-scan \ +time-dist \ \ +ansi-reserved \ +ansi-reserved-internal \ -iso-reserved \ -iso-reserved-internal \ -include-nest 10 # Memory safety checks SPLINTFLAGS = $(SPLINTFLAGS) \ +bufferoverflow \ +bufferoverflowhigh \ +read-only-strings \ +read-only-trans \ +strict-destroy \ +strict-use-released \ +use-released \ # Macro safety checks SPLINTFLAGS = $(SPLINTFLAGS) \ +macro-assign \ +macro-empty \ +macro-parens \ +macro-redef \ +macro-stmt \ +macro-unrecog \ # Watch for unsafe comparisons SPLINTFLAGS = $(SPLINTFLAGS) \ +bool-compare \ +ptr-compare \ +real-compare \ +unsigned-compare # But allow us some slop in boolean comparisons SPLINTFLAGS = $(SPLINTFLAGS) \ -pred-bool-int \ -pred-bool-ptr \ -pred-bool-others \ -boolops \ # Report qualifier mismatches only if dangerous SPLINTFLAGS = $(SPLINTFLAGS) \ +relax-quals # Memory checking SPLINTFLAGS = $(SPLINTFLAGS) \ -must-free \ -mustfreefresh \ -mustfreeonly \ +null \ +nullptrarith \ +nullret \ -ptr-arith \ +ptr-negate \ -zero-ptr \ # Transfer errors are too tough for us right now SPLINTFLAGS = $(SPLINTFLAGS) \ -mem-trans # Symbol definitions SPLINTFLAGS = $(SPLINTFLAGS) \ +decl-undef \ +incon-defs \ +incon-defs-lib \ # Check for conflicts with C++ compilers SPLINTFLAGS = $(SPLINTFLAGS) \ +cpp-names \ # Format codes SPLINTFLAGS = $(SPLINTFLAGS) \ +format-code \ +format-type \ # Problems with evaluation and control structions SPLINTFLAGS = $(SPLINTFLAGS) \ +controlnestdepth 15 \ +duplicate-case \ +eval-order \ +eval-order-uncon \ # Types and stuff SPLINTFLAGS = $(SPLINTFLAGS) \ +char-index \ +char-int \ +enum-members \ +ignore-signs \ +long-integral \ +match-any-integral \ # Other options we'd like to add back # +initallelements : Right now, the *.ops files don't initialize all # values of the arrays # +casebreak: Auto-generated ops have way too case fallthrus right now # +fcnuse: We have many functions that are defined but not used, but they # should get hidden or ifdeffed # +redef, +redecl: Ops currently have tons of redefinitions # added to splint target to simplify experimentation, # ex: make SPLINTFLAGS_TEST='-posixstrictlib +posixlib' splint SPLINT_SOURCE = `echo $(O_FILES) | $(PERL) -pe "s\\.o\\.c\g"` splint-all : $(PARROT) $(MKPATH) $(SPLINT_TMP) $(SPLINT) $(CC_INC) -DHAS_JIT -DI386 "-Isrc\pmc" "-Icompilers\ast" $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) \ $(SPLINT_SOURCE) \ $(SPLINT) $(CC_INC) $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) $(IMCC_DIR)\main.c # "splint" is the less-thorough splint target. For cage cleaning work, # you'll probably want to specify SPLINT_SOURCE rather than work on the # entire tree, like so: # make splint SPLINT_SOURCE='src\call\\*.c' splint : all $(MKPATH) $(SPLINT_TMP) $(SPLINT) $(CC_INC) -DHAS_JIT -DI386 "-Isrc\pmc" "-Icompilers\ast" $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) \ +partial -DNDEBUG \ $(SPLINT_SOURCE) \ | grep -v 'Source code error generation point' COVER_FLAGS = -fprofile-arcs -ftest-coverage COVER_DIRS = \ $(SRC_DIR) \ $(SRC_DIR)\dynoplibs \ $(SRC_DIR)\dynpmc \ $(SRC_DIR)\gc \ $(SRC_DIR)\ops \ $(SRC_DIR)\packfile \ $(SRC_DIR)\pmc \ $(SRC_DIR)\string \ $(SRC_DIR)\string\charset \ $(SRC_DIR)\string\encoding \ $(IO_DIR) \ $(IMCC_DIR) cover: \ cover.dummy \ cover-testb \ cover-testC \ cover-testf \ cover-testg \ cover-testj \ cover-testr \ cover-testS \ cover-src \ cover-perl \ cover-codingstd \ cover-benchmark \ cover-distro build_dir=$$PWD; \ for dir in $(COVER_DIRS); \ do \ cd $$dir; \ gcov *.c; \ cd $$build_dir; \ gcov2perl $$dir\\*.gcov; \ done cover -ignore_re '^\\usr\\local\\bin' cover.dummy: $(PERL) Configure.pl --ccflags="$(CC_FLAGS) $(COVER_FLAGS)" \ --linkflags="$(COVER_FLAGS)" --ldflags="$(COVER_FLAGS)" cover-testb: cover.dummy -dmake testb cover-testC: cover.dummy -dmake testC cover-testf: cover.dummy -dmake testf cover-testg: cover.dummy -dmake testg cover-testj: cover.dummy -dmake testj cover-testr: cover.dummy -dmake testr cover-testS: cover.dummy -dmake testS cover-src: cover.dummy -dmake src_tests cover-perl: cover.dummy -dmake perl_tests cover-codingstd: cover.dummy -dmake codingstd_tests cover-benchmark: cover.dummy -dmake benchmark_tests cover-distro: cover.dummy -dmake distro_tests cover-clean: $(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;}' ############################################################################### # # installation # ############################################################################### install: installable $(PERL) tools\dev\install_files.pl \ --buildprefix=$(BUILDPREFIX) \ --prefix=$(PREFIX) \ --exec-prefix=$(EXEC_PREFIX) \ --bindir=$(BIN_DIR) \ --libdir=$(LIB_DIR) \ --includedir=$(INCLUDE_DIR) \ --destdir=$(DESTDIR) \ --docdir=$(DOC_DIR) \ --versiondir=$(VERSION_DIR) \ MANIFEST MANIFEST.generated install-dev: install $(PERL) tools\dev\install_dev_files.pl \ --buildprefix=$(BUILDPREFIX) \ --prefix=$(PREFIX) \ --exec-prefix=$(EXEC_PREFIX) \ --bindir=$(BIN_DIR) \ --libdir=$(LIB_DIR) \ --includedir=$(INCLUDE_DIR) \ --destdir=$(DESTDIR) \ --docdir=$(DOC_DIR) \ --datadir=$(DATA_DIR) \ --srcdir=C:\Parrot\src \ --versiondir=$(VERSION_DIR) \ MANIFEST MANIFEST.generated ############################################################################### # # release targets # ############################################################################### release : MANIFEST MANIFEST.generated [ -d parrot-$(VERSION) ] || ln -s $(CUR_DIR) parrot-$(VERSION) @$(RM_F) MANIFEST.real mv MANIFEST MANIFEST.real grep -v DEVELOPING MANIFEST.real > MANIFEST $(PERL) -lane 'print"parrot-$(VERSION)\$$F[0]"unless!length||\#\' MANIFEST | \ tar -zcv -T - -f parrot-$(VERSION).tar.gz mv MANIFEST.real MANIFEST rm parrot-$(VERSION) win32-inno-installer : world installable $(PERL) tools\dev\mk_inno.pl $(INNO_SETUP) parrot.iss ############################################################################### # # exec: # ############################################################################### exec : $(SRC_DIR)\exec_start$(O) $(SRC_DIR)\parrot_config$(O) $(LIBPARROT) $(LINK) -o $(EXEC)$(EXE) $(EXEC)$(O) $(SRC_DIR)\exec_start$(O) $(SRC_DIR)\parrot_config$(O) $(ALL_PARROT_LIBS) $(LINKFLAGS) ###### OS depend targets ########## # for use by t\pmc\nci.t $(LIBNCI_TEST_SO): $(SRC_DIR)\nci_test$(O) $(LD) $(LD_LOAD_FLAGS) src\libnci_test.def $(LDFLAGS) \ -o $@ $(SRC_DIR)\nci_test$(O) $(C_LIBS) # for use by runtime\parrot\library\OpenGL.pir $(LIBGLUTCB_SO): $(LIBPARROT) $(SRC_DIR)\glut_callbacks$(O) $(LD) $(LD_LOAD_FLAGS) $(LDFLAGS) \ -o $@ $(SRC_DIR)\glut_callbacks$(O) \ $(ALL_PARROT_LIBS) # emacs etags # this needs exuberant-ctags tags-emacs: tags.emacs.dummy $(RM_F) TAGS ctags -e \ --links=no --totals \ -R --exclude=blib --exclude=.svn \ --exclude=res_lea.c \ --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \ -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK \ $(CUR_DIR) # this works with an old etags (XEmacs 21.5*) tags-xemacs: tags.emacs.dummy $(RM_F) TAGS find $(CUR_DIR) \ -name \\*.c -o -name \\*.h -o -name \\*.pmc -o -name \\*.ops | etags -l c - -o TAGS tags.emacs.dummy: # vim ctags # this needs exuberant-ctags tags-vi: tags.vi.dummy $(RM_F) tags ctags \ --links=no --totals \ -R --exclude=blib --exclude=.svn \ --exclude=res_lea.c \ --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \ -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK \ $(CUR_DIR) $(PERL) $(BUILD_TOOLS_DIR)\addopstags.pl $(OPS_FILES) tags.vi.dummy: CRITIC_FILES = 'lib\Parrot' perlcritic: perlcritic --profile tools\util\perlcritic.conf $(CRITIC_FILES) # Andy's extra-cranky Perl::Critic checking for cage cleaners cagecritic: perlcritic -1 --profile tools\util\perlcritic-cage.conf $(CRITIC_FILES) # This target will eventually create all the headers automatically. If you # are having problems with linkage in Win32 (or elsewhere), because something # is not PARROT_EXPORT but should be, then put PARROT_EXPORT in the C file and # run "make headerizer". The .h file will get updated. HEADERIZER_O_FILES = \ $(O_FILES) \ src\packdump$(O) \ src\pbc_merge$(O) \ $(PIRC_O_FILES) headerizer : $(SRC_DIR)\core_pmcs.c $(PERL) $(BUILD_TOOLS_DIR)\headerizer.pl $(HEADERIZER_O_FILES) $(IMCC_DIR)\imcc.y apilist: $(SRC_DIR)\core_pmcs.c $(PERL) $(BUILD_TOOLS_DIR)\headerizer.pl --macro=PARROT_EXPORT $(HEADERIZER_O_FILES) malloclist: $(SRC_DIR)\core_pmcs.c $(PERL) $(BUILD_TOOLS_DIR)\headerizer.pl --macro=PARROT_MALLOC $(HEADERIZER_O_FILES) # Local variables: # mode: makefile # End: # vim: ft=make: