Index: MANIFEST.generated
===================================================================
--- MANIFEST.generated	(revision 11398)
+++ MANIFEST.generated	(working copy)
@@ -2,7 +2,9 @@
 # See tools/dev/install_files.pl for documentation on the
 # format of this file.
 # Please re-sort this file after *EVERY* modification
+blib/lib/libparrot.0.4.1.dylib                    [main]lib
 blib/lib/libparrot.a                              [main]lib
+blib/lib/libparrot.dylib                          [main]lib
 blib/lib/libparrot.so                             [main]lib
 blib/lib/libparrot.so.0.4.1                       [main]lib
 disassemble                                       [main]bin
Index: config/init/hints/darwin.pm
===================================================================
--- config/init/hints/darwin.pm	(revision 11398)
+++ config/init/hints/darwin.pm	(working copy)
@@ -26,6 +26,7 @@
     $ldflags .= " -flat_namespace ";
 
     $conf->data->set(
+        darwin              => 1,
         ccflags             => $ccflags,
         ldflags             => $ldflags,
         ccwarn              => "-Wno-shadow",
@@ -41,16 +42,14 @@
         # XXX when built against a dynamic libparrot installable_parrot records
         # the path to the blib version of the library
         parrot_is_shared     => 0,
-        libparrot_shared        => 'libparrot$(SHARE_EXT).$(SOVERSION)',
+        libparrot_shared        => 'libparrot.$(SOVERSION)$(SHARE_EXT)',
         libparrot_shared_alias  => 'libparrot$(SHARE_EXT)',
         # This variable needs renaming to be more general
         # XXX ugly hack for rpath_lib in config/inter/libparrot.pm
         rpath                   => "-L",
         libparrot_soname    => "-install_name " .
-                               $conf->data->get('build_dir') .
+                               $conf->data->get('lib_dir') .
                                $conf->data->get('slash') .
-                               $conf->data->get('blib_dir') .
-                               $conf->data->get('slash') .
                                "libparrot" .
                                $conf->data->get('share_ext')
     );
Index: config/gen/makefiles/root.in
===================================================================
--- config/gen/makefiles/root.in	(revision 11399)
+++ config/gen/makefiles/root.in	(working copy)
@@ -41,8 +41,10 @@
 # directory for abstract syntax tree sources
 AST_DIR         = compilers/ast
 
-# directory for build tools
+# directories for build tools
 BUILD_TOOLS_DIR = tools/build
+DEV_TOOLS_DIR   = tools/dev
+UTIL_TOOLS_DIR  = tools/util
 
 # current directory
 CUR_DIR         = .
@@ -59,6 +61,12 @@
 # directory with Parrot modules
 LIBRARY_DIR     = runtime/parrot/library
 
+# directory with Parrot includes
+RUNTIME_INCLUDE_DIR = runtime/parrot/include
+
+# dynamic extensions directory
+DYNEXT_DIR      = runtime/parrot/dynext
+
 # directory for *.ops file
 OPS_DIR         = src/ops
 
@@ -186,38 +194,32 @@
 	src/dynoplibs/Makefile
 
 GEN_CONFIGS = \
-	$(INC_DIR)/config.h \
-	$(INC_DIR)/platform.h \
-	$(INC_DIR)/platform_interface.h \
-	$(INC_DIR)/has_header.h \
-	$(INC_DIR)/feature.h \
 	$(INC_DIR)/core_pmcs.h \
-	$(INC_DIR)/exec_dep.h \
-	lib/Parrot/Config.pm \
 	lib/Parrot/PMC.pm \
-	runtime/parrot/include/config.fpmc \
-	$(SRC_DIR)/platform.c \
-	$(SRC_DIR)/revision.c \
-#CONDITIONED_LINE(platform_asm):	$(SRC_DIR)/platform_asm.s \
 	$(SRC_DIR)/core_pmcs.c \
+	compilers/ast/ast.y.flag \
+	$(IMCC_DIR)/imcc.y.flag
+
+GEN_CONFIGS_ARCH = \
 	CFLAGS \
 	$(IMCC_DIR)/CFLAGS \
-	config_lib.pasm \
-	compilers/ast/ast.y.flag \
 	$(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
+	config_lib.pasm \
+	lib/Parrot/Config.pm \
+	$(RUNTIME_INCLUDE_DIR)/config.fpmc \
+	myconfig
 
+
 # most of these are generated by config/gen/parrot_include.pl
 
 GEN_PASM_INCLUDES = \
-	runtime/parrot/include/signal.pasm \
+	$(RUNTIME_INCLUDE_DIR)/signal.pasm \
 	@TEMP_gen_pasm_includes@
 
-STICKY_FILES = $(GEN_CONFIGS) $(GEN_MAKEFILES) myconfig $(GEN_PASM_INCLUDES)
+STICKY_FILES = $(GEN_CONFIGS) $(GEN_CONFIGS_ARCH) \
+			   $(GEN_MAKEFILES) $(GEN_PASM_INCLUDES)
 
 
 ###############################################################################
@@ -232,24 +234,42 @@
 
 GEN_OPSFILES =
 
+# Apparently ignore jit_emit.h here...
 GEN_HEADERS = \
-	$(INC_DIR)/vtable.h \
+	$(INC_DIR)/config.h \
+	$(INC_DIR)/core_pmcs.h \
+	$(INC_DIR)/exec_dep.h \
+	$(INC_DIR)/extend_vtable.h \
+	$(INC_DIR)/has_header.h \
 	$(INC_DIR)/oplib/core_ops.h \
+	@TEMP_cg_h@ \
+	$(INC_DIR)/oplib/core_ops_switch.h \
 	$(INC_DIR)/oplib/ops.h \
-	$(INC_DIR)/oplib/core_ops_switch.h \
-	$(INC_DIR)/extend_vtable.h
+	$(INC_DIR)/string_private_cstring.h \
+	$(INC_DIR)/vtable.h
 
+GEN_HEADERS_ARCH = \
+	$(INC_DIR)/config.h \
+	$(INC_DIR)/exec_dep.h \
+	$(INC_DIR)/feature.h \
+	$(INC_DIR)/has_header.h \
+	$(INC_DIR)/platform.h \
+	$(INC_DIR)/platform_interface.h \
+
 GEN_SOURCES = \
-	$(SRC_DIR)/core_ops.c \
+	$(SRC_DIR)/core_pmcs.c \
+	$(SRC_DIR)/extend_vtable.c \
 	$(SRC_DIR)/fingerprint.c \
 	$(SRC_DIR)/nci.c \
-	$(SRC_DIR)/core_ops_switch.c \
+	$(SRC_DIR)/null_config.c \
+	$(SRC_DIR)/revision.c
+
+GEN_SOURCES_ARCH = \
+	$(SRC_DIR)/asmfun.s \
 	$(SRC_DIR)/jit_cpu.c \
+	$(SRC_DIR)/exec_cpu.c \
 	$(SRC_DIR)/parrot_config.c \
-	$(SRC_DIR)/null_config.c \
-	$(SRC_DIR)/install_config.c \
-	$(SRC_DIR)/exec_cpu.c \
-	$(SRC_DIR)/extend_vtable.c
+#CONDITIONED_LINE(platform_asm):	$(SRC_DIR)/platform_asm.s \
 
 GEN_MODULES = \
 	lib/Parrot/OpLib/core.pm
@@ -282,9 +302,9 @@
 	$(LIBRARY_DIR)/Stream/Writer.pbc \
 	$(LIBRARY_DIR)/YAML/Parser/Syck.pbc
 # XXX Why don't these build?
-#	runtime/parrot/library/libpcre.pbc \
-#	runtime/parrot/library/Data/Replace.pbc \
-#	runtime/parrot/library/postgres.pbc \
+#	$(LIBRARY_DIR)/libpcre.pbc \
+#	$(LIBRARY_DIR)/Data/Replace.pbc \
+#	$(LIBRARY_DIR)/postgres.pbc \
 
 # the dependencies of jit_emit.h are done explicitely
 # including this file in GEN_HEADERS causes unnecessary recompile of all
@@ -292,10 +312,12 @@
 	$(GEN_OPSFILES) \
 	$(GEN_HEADERS) \
 	$(GEN_SOURCES) \
+	$(GEN_HEADERS_ARCH) \
+	$(GEN_SOURCES_ARCH) \
 	$(GEN_MODULES) \
 	$(GEN_LIBRARY) \
 	$(INC_DIR)/jit_emit.h \
-	runtime/parrot/include/parrotlib.pbc
+	$(RUNTIME_INCLUDE_DIR)/parrotlib.pbc
 
 
 ###############################################################################
@@ -345,10 +367,11 @@
 	$(AST_DIR)/node$(O)
 
 # generated list of header files
-GENERAL_H_FILES   = $(NONGEN_HEADERS) $(GEN_HEADERS) @TEMP_cg_h@
+GENERAL_H_FILES   = $(NONGEN_HEADERS) $(GEN_HEADERS) $(GEN_HEADERS_ARCH)
 
 ALL_H_FILES       = $(GENERAL_H_FILES)
 
+# These don't seem to use $(SRC_DIR)
 CHARSET_O_FILES   = @TEMP_charset_o@
 CLASS_PMC_FILES   = @TEMP_pmc_classes_pmc@
 CLASS_O_FILES     = @TEMP_pmc_classes_o@
@@ -473,6 +496,15 @@
 INSTALLABLEPBCMERGE = $(CUR_DIR)/installable_pbc_merge$(EXE)
 INSTALLABLEPDB      = $(CUR_DIR)/installable_pdb$(EXE)
 
+EXECUTABLES = \
+	$(MINIPARROT) \
+	$(PARROT)    $(INSTALLABLEPARROT) \
+	$(DIS)       $(INSTALLABLEDIS) \
+	$(PDUMP)     $(INSTALLABLEPDUMP) \
+	$(PINFO)     $(INSTALLABLEPINFO) \
+	$(PBCMERGE)  $(INSTALLABLEPBCMERGE) \
+	$(PDB)       $(INSTALLABLEPDB)
+
 # Libraries
 LIBPARROT_STATIC  = @blib_dir@@slash@@libparrot_static@
 #CONDITIONED_LINE(win32):LIBPARROT_SHARED  = @libparrot_shared@
@@ -481,11 +513,11 @@
 # This line controls whether a static or shared library is built
 LIBPARROT         = @libparrot@
 
+#CONDITIONED_LINE(darwin):export DYLD_LIBRARY_PATH := @blib_dir@:$(DYLD_LIBRARY_PATH)
 #CONDITIONED_LINE(has_icu):ICU_SHARED  = @icu_shared@
 ALL_PARROT_LIBS   = @libparrot_ldflags@ $(ICU_SHARED) $(C_LIBS)
 
 # dynamic extensions
-DYNEXT_DIR        = runtime/parrot/dynext
 LIBNCI_TEST_SO    = $(DYNEXT_DIR)/libnci_test$(LOAD_EXT)
 
 ###############################################################################
@@ -495,7 +527,7 @@
 ###############################################################################
 
 # This is set to  MAKE=$make if your $make command doesn't
-# do it for you.
+# do it for you. Which make?
 @make_set_make@
 MAKE = @make_c@
 
@@ -510,7 +542,7 @@
 # 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) :
-	@$(PERL) tools/dev/cc_flags.pl $(CUR_DIR)/CFLAGS $(CC) "" $(CFLAGS) -I$(@D) @cc_o_out@$@ -c $<
+	@$(PERL) $(DEV_TOOLS_DIR)/cc_flags.pl $(CUR_DIR)/CFLAGS $(CC) "" $(CFLAGS) -I$(@D) @cc_o_out@$@ -c $<
 
 # XXX These obviously require parrot: had trouble adding parrot as a dependency
 # here, though. Ignored on OS X, at least.
@@ -537,8 +569,8 @@
 	flags_dummy \
 	PARROT_LIBS \
 	$(PARROT) \
-	runtime/parrot/include/parrotlib.pbc \
-	runtime/parrot/include/config.fpmc \
+	$(RUNTIME_INCLUDE_DIR)/parrotlib.pbc \
+	$(RUNTIME_INCLUDE_DIR)/config.fpmc \
 	docs \
 	$(LIBNCI_TEST_SO) \
 	$(GEN_LIBRARY) \
@@ -551,7 +583,7 @@
 
 # constant string support
 .c.str :
-	$(PERL) tools/build/c2str.pl $< > $@
+	$(PERL) $(BUILD_TOOLS_DIR)/c2str.pl $< > $@
 
 STR_FILES = \
 	$(SRC_DIR)/builtin.str \
@@ -568,13 +600,13 @@
 	$(SRC_DIR)/spf_vtable.str \
 	$(CLASS_STR_FILES)
 
-$(INC_DIR)/string_private_cstring.h : $(STR_FILES) tools/build/c2str.pl
-	$(PERL) tools/build/c2str.pl --all
+$(INC_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) tools/build/pmc2c.pl --dump
-PMC2CC = $(PERL) tools/build/pmc2c.pl --c
-PMC2CV = $(PERL) tools/build/pmc2c.pl --vt
+PMC2CD = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --dump
+PMC2CC = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --c
+PMC2CV = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --vt
 
 .pmc.dump :
 	$(PMC2CD) $<
@@ -690,13 +722,13 @@
 
 flags_dummy :
 	@echo Compiling with:
-	@$(PERL) tools/dev/cc_flags.pl $(CUR_DIR)/CFLAGS echo $(CC) $(CFLAGS) -I$(@D) @cc_o_out@ xx$(O) -c xx.c
+	@$(PERL) $(DEV_TOOLS_DIR)/cc_flags.pl $(CUR_DIR)/CFLAGS echo $(CC) $(CFLAGS) -I$(@D) @cc_o_out@ xx$(O) -c xx.c
 
-runtime/parrot/include/parrotlib.pbc: runtime/parrot/library/parrotlib.pir $(PARROT)
-	$(PARROT) -o $@ runtime/parrot/library/parrotlib.pir
+$(RUNTIME_INCLUDE_DIR)/parrotlib.pbc: $(LIBRARY_DIR)/parrotlib.pir $(PARROT)
+	$(PARROT) -o $@ $(LIBRARY_DIR)/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
+$(RUNTIME_INCLUDE_DIR)/config.fpmc : myconfig config_lib.pasm $(MINIPARROT)
+	@echo Invoking Parrot to generate $(RUNTIME_INCLUDE_DIR)/config.fpmc --cross your fingers
 	$(MINIPARROT) config_lib.pasm > $@
 
 $(PARROT) : $(IMCC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
@@ -720,7 +752,7 @@
 	$(IMCC_DIR)/main$(O) \
 	$(ALL_PARROT_LIBS) $(SRC_DIR)/install_config$(O)
 
-$(SRC_DIR)/parrot_config.c :  runtime/parrot/include/config.fpmc \
+$(SRC_DIR)/parrot_config.c :  $(RUNTIME_INCLUDE_DIR)/config.fpmc \
 	$(BUILD_TOOLS_DIR)/parrot_config_c.pl
 	$(PERL) $(BUILD_TOOLS_DIR)/parrot_config_c.pl > \
 	$(SRC_DIR)/parrot_config.c
@@ -745,15 +777,15 @@
 $(SRC_DIR)/null_config.$(O) : $(SRC_DIR)/null_config.c
 
 lib_deps_object : $(O_FILES)
-	$(PERL) tools/dev/lib_deps.pl object $(O_FILES)
+	$(PERL) $(DEV_TOOLS_DIR)/lib_deps.pl object $(O_FILES)
 
 lib_deps_source : $(GENERAL_H_FILES)
-	$(PERL) tools/dev/lib_deps.pl source all_source
+	$(PERL) $(DEV_TOOLS_DIR)/lib_deps.pl source all_source
 
 lib_deps : lib_deps_object lib_deps_source
 
 check_source : $(GENERAL_H_FILES)
-	$(PERL) tools/dev/check_source_standards.pl all_source
+	$(PERL) $(DEV_TOOLS_DIR)/check_source_standards.pl all_source
 
 # XXX changes don't always propagate into libparrot
 # e.g. when I change debug:fataly to xfataly, nm still shows the old symbol
@@ -1195,6 +1227,9 @@
 dynpmc-clean :
 	$(MAKE) src/dynpmc clean
 
+dynpmc-archclean :
+	$(MAKE) src/dynpmc archclean
+
 ###############################################################################
 #
 # dynamic oplibs targets:
@@ -1213,6 +1248,9 @@
 dynoplibs-clean :
 	$(MAKE) src/dynoplibs clean
 
+dynoplibs-archclean :
+	$(MAKE) src/dynoplibs archclean
+
 ###############################################################################
 #
 # language implementation targets:
@@ -1417,66 +1455,55 @@
 	@TEMP_cg_r@
 	$(RM_F) chartypes "*.s" "*~" $(FLUID_FILES)
 
-prog-clean :
+prog-clean : object-clean
 	$(RM_F) \
-		$(O_FILES) \
-		$(PARROT) \
-		$(MINIPARROT) \
-		$(INSTALLABLEPARROT) \
-		$(INSTALLABLEDIS) \
-		$(INSTALLABLEPDUMP) \
-		$(INSTALLABLEPINFO) \
-		$(INSTALLABLEPBCMERGE) \
-		$(INSTALLABLEPDB) \
-		$(IMCC_DIR)/main$(O) \
-		$(PDUMP) $(SRC_DIR)/pdump$(O) $(SRC_DIR)/packdump$(O) \
-		$(SRC_DIR)/pbc_info$(O) $(PINFO) \
-		$(PDB) $(SRC_DIR)/pdb$(O) \
-		$(PBCMERGE) $(SRC_DIR)/pbc_merge$(O) \
-		$(DIS) $(SRC_DIR)/disassemble$(O) \
-		$(SRC_DIR)/null_config$(O) \
-		$(SRC_DIR)/parrot_config$(O) \
-		$(SRC_DIR)/install_config$(O) \
 		install_config.fpmc
-	$(PERL) tools/build/c2str.pl --init
+	$(PERL) $(BUILD_TOOLS_DIR)/c2str.pl --init
 	$(RM_F) \
-		$(INC_DIR)/string_private_cstring.h \
-		"$(SRC_DIR)/*.str" "src/pmc/*.str" \
+		$(STR_FILES) \
 		"src/pmc/*.c" "src/pmc/*.h" "src/pmc/*.dump" \
 		vtable.dump "*.def" "*.lib" "*.exp"
 
-archclean: dynoplibs-clean dynpmc-clean dynext-clean
+archclean: object-clean dynoplibs-archclean dynpmc-archclean dynext-clean
 	$(RM_F) \
+		install_config.fpmc \
+		$(GEN_CONFIGS_ARCH) \
+		$(GEN_HEADERS_ARCH) \
+		$(INC_DIR)/jit_emit.h \
+		$(GEN_SOURCES_ARCH) \
+		$(LIBNCI_TEST_SO) \
+		$(LIBPARROT_STATIC) \
+		$(LIBPARROT_SHARED) \
+		$(GEN_MAKEFILES)
+#CONDITIONED_LINE(libparrot_shared_alias):	( cd @blib_dir@ ; $(RM_F) @libparrot_shared_alias@ )
+
+object-clean :
+	$(RM_F) \
 		$(O_FILES) \
-		$(GEN_CONFIGS) \
-		$(GEN_MAKEFILES) \
-		$(PARROT) \
-		$(MINIPARROT) \
-		$(INSTALLABLEPARROT) \
-		$(INSTALLABLEDIS) \
-		$(INSTALLABLEPDUMP) \
-		$(INSTALLABLEPINFO) \
-		$(INSTALLABLEPBCMERGE) \
-		$(INSTALLABLEPDB) \
+		$(EXECUTABLES) \
 		$(IMCC_DIR)/main$(O) \
-		$(PDUMP) $(SRC_DIR)/pdump$(O) $(SRC_DIR)/packdump$(O) \
-		$(SRC_DIR)/pbc_info$(O) $(PINFO) \
-		$(PDB) $(SRC_DIR)/pdb$(O) \
-		$(PBCMERGE) $(SRC_DIR)/pbc_merge$(O) \
-		$(DIS) $(SRC_DIR)/disassemble$(O) \
+		$(SRC_DIR)/pbc_info$(O) \
+		$(SRC_DIR)/pdb$(O) \
+		$(SRC_DIR)/pbc_merge$(O) \
+		$(SRC_DIR)/disassemble$(O) \
+		$(SRC_DIR)/pdump$(O) $(SRC_DIR)/packdump$(O) \
 		$(SRC_DIR)/null_config$(O) \
 		$(SRC_DIR)/parrot_config$(O) \
 		$(SRC_DIR)/install_config$(O) \
-		$(SRC_DIR)/asmfun.s \
 		$(SRC_DIR)/nci_test$(O) \
-		$(INC_DIR)/jit_emit.h \
-		$(SRC_DIR)/jit_cpu.c \
-		$(SRC_DIR)/exec_cpu.c \
-		install_config.fpmc \
-		$(LIBNCI_TEST_SO) \
-		$(LIBPARROT_STATIC) \
-		$(LIBPARROT_SHARED)
 
+
+#		$(IMCC_DIR)/main$(O) \
+#		$(SRC_DIR)/pdump$(O) $(SRC_DIR)/packdump$(O) \
+#		$(SRC_DIR)/pbc_info$(O) $(PINFO) \
+#		$(SRC_DIR)/pdb$(O) \
+#		$(SRC_DIR)/pbc_merge$(O) \
+#		$(SRC_DIR)/disassemble$(O) \
+#		$(SRC_DIR)/null_config$(O) \
+#		$(SRC_DIR)/parrot_config$(O) \
+#		$(SRC_DIR)/install_config$(O) \
+#		$(SRC_DIR)/nci_test$(O) \
+
 dynext-clean :
 # shared libs (LOAD_EXT, SHARE_EXT)
 # win32 import library (.lib - shared object is deleted by LIBNCI_TEST_SO above)
@@ -1532,6 +1559,10 @@
 
 realclean : clean
 	$(RM_RF) \
+		$(SRC_DIR)/install_config.c \
+		$(SRC_DIR)/platform.c \
+		$(OPS_DIR)/core_ops_switch.c \
+		$(OPS_DIR)/core_ops.c \
 		$(STICKY_FILES) \
 		blib
 
@@ -1546,7 +1577,7 @@
 	$(PERL) Configure.pl --reconfig
 
 manitest :
-	$(PERL) tools/dev/manicheck.pl
+	$(PERL) $(DEV_TOOLS_DIR)/manicheck.pl
 
 ###############################################################################
 #
@@ -1583,7 +1614,7 @@
 ###############################################################################
 
 install : installable
-	$(PERL) tools/dev/install_files.pl \
+	$(PERL) $(DEV_TOOLS_DIR)/install_files.pl \
 	--buildprefix=$(BUILDPREFIX) \
 	--prefix=$(PREFIX) \
 	--exec-prefix=$(EXEC_PREFIX) \
@@ -1614,7 +1645,7 @@
 	cd /usr/src/*/SPECS @make_and@ sudo rpm -ba parrot.spec
 
 win32-inno-installer : world install
-	$(PERL) tools/dev/mk_inno.pl --version=$(VERSION) --prefix=$(PREFIX) --icudir=@icu_dir@ 
+	$(PERL) $(DEV_TOOLS_DIR)/mk_inno.pl --version=$(VERSION) --prefix=$(PREFIX) --icudir=@icu_dir@ 
 	$(INNO_SETUP) parrot.iss
 
 ###############################################################################
@@ -1624,15 +1655,15 @@
 ###############################################################################
 
 #miniparrot-prebuild : $(GEN_CONFIGS) $(FLUID_FILES)
-#	@tools/dev/rebuild_miniparrot.pl --action=clean
-#	@tools/dev/rebuild_miniparrot.pl --action=prebuild_classes $(CLASS_O_FILES)
-#	@tools/dev/rebuild_miniparrot.pl --action=copy_src $(GEN_CONFIGS) $(FLUID_FILES) $(ALL_H_FILES)
-#	@tools/dev/rebuild_miniparrot.pl --action=copy_src pmc/*.h $(IMCC_DIR)/main.c $(INC_DIR)/debug.h
-#	@tools/dev/rebuild_miniparrot.pl --action=copy_src_from_obj $(O_FILES)
-#	@tools/dev/rebuild_miniparrot.pl --action=write_buildscripts --executable=parrot $(O_FILES) $(IMCC_DIR)/main$(O)
+#	@$(DEV_TOOLS_DIR)/rebuild_miniparrot.pl --action=clean
+#	@$(DEV_TOOLS_DIR)/rebuild_miniparrot.pl --action=prebuild_classes $(CLASS_O_FILES)
+#	@$(DEV_TOOLS_DIR)/rebuild_miniparrot.pl --action=copy_src $(GEN_CONFIGS) $(FLUID_FILES) $(ALL_H_FILES)
+#	@$(DEV_TOOLS_DIR)/rebuild_miniparrot.pl --action=copy_src pmc/*.h $(IMCC_DIR)/main.c $(INC_DIR)/debug.h
+#	@$(DEV_TOOLS_DIR)/rebuild_miniparrot.pl --action=copy_src_from_obj $(O_FILES)
+#	@$(DEV_TOOLS_DIR)/rebuild_miniparrot.pl --action=write_buildscripts --executable=parrot $(O_FILES) $(IMCC_DIR)/main$(O)
 #
 #miniparrot-update :
-#	tools/dev/rebuild_miniparrot.pl
+#	$(DEV_TOOLS_DIR)/rebuild_miniparrot.pl
 
 ###############################################################################
 #
@@ -1669,11 +1700,11 @@
 
 smoke : all
 	$(PERL) t/harness --html $(EXTRA_TEST_ARGS) $(PARROT_ARGS)
-	$(PERL) tools/util/smokeserv-client.pl smoke.html
+	$(PERL) $(UTIL_TOOLS_DIR)/smokeserv-client.pl smoke.html
 
 smokej : all
 	$(PERL) t/harness --html $(EXTRA_TEST_ARGS) -j $(PARROT_ARGS)
-	$(PERL) tools/util/smokeserv-client.pl smoke.html
+	$(PERL) $(UTIL_TOOLS_DIR)/smokeserv-client.pl smoke.html
 
 smoke-clean :
 	$(RM_F) smoke.html
Index: config/gen/makefiles/dynpmc.in
===================================================================
--- config/gen/makefiles/dynpmc.in	(revision 11398)
+++ config/gen/makefiles/dynpmc.in	(working copy)
@@ -71,6 +71,9 @@
 clean : testclean dynext-clean
 	$(RM_F) "*.c" "pmc_*.h" "*_group.h" "*$(LOAD_EXT)" "*.dump" "lib-*" "*$(O)"
 
+archclean :
+	$(RM_F) "*$(LOAD_EXT)" "*$(O)" Makefile build.pl
+
 realclean: clean
 	$(RM_F) Makefile build.pl
 
Index: config/gen/makefiles/dynoplibs.in
===================================================================
--- config/gen/makefiles/dynoplibs.in	(revision 11398)
+++ config/gen/makefiles/dynoplibs.in	(working copy)
@@ -35,6 +35,9 @@
 clean : testclean dynext-clean
 	$(RM_F) "*.h" "*.c" "*$(LOAD_EXT)" "*$(O)"
 
+archclean :
+	$(RM_F) "*$(LOAD_EXT)" "*$(O)" Makefile
+
 realclean: clean
 	$(RM_F) Makefile
 
