# New Ticket Created by JÃrgen BÃmmels
# Please include the string: [perl #24701]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=24701 >
Hi,
the *.ops files are lying in the ops/ directory, but the generated
c-files go to the src/ directory. This is completly different from
classes/, imcc/ etc. where the generated c-files go to the same
directory. Is this difference intentional?
Otherwise does the attached patch creates the core_ops.[co] etc. in
the ops/directory.
bye
bÃ
Index: config/gen/makefiles/root.in
===================================================================
RCS file: /cvs/public/parrot/config/gen/makefiles/root.in,v
retrieving revision 1.175
diff -u -r1.175 root.in
--- config/gen/makefiles/root.in 18 Dec 2003 12:20:30 -0000 1.175
+++ config/gen/makefiles/root.in 19 Dec 2003 16:31:50 -0000
@@ -233,9 +233,6 @@
$(SRC)/global_setup$(O) \
$(SRC)/interpreter$(O) \
$(SRC)/register$(O) \
- $(SRC)/core_ops$(O) \
- $(SRC)/core_ops_prederef$(O) \
- $(SRC)/core_ops_switch$(O) \
$(SRC)/memory$(O) \
$(SRC)/objects$(O) \
$(SRC)/packfile$(O) \
@@ -283,6 +280,9 @@
$(SRC)/mmd$(O) \
$(SRC)/extend$(O) \
pf/pf_items$(O) \
+ $(OPS)/core_ops$(O) \
+ $(OPS)/core_ops_prederef$(O) \
+ $(OPS)/core_ops_switch$(O) \
${asmfun_o} \
${cg_o} \
${exec_o} \
@@ -726,8 +726,6 @@
$(SRC)/embed$(O) : $(GENERAL_H_FILES) $(INC)/debug.h
-$(SRC)/core_ops$(O) : $(GENERAL_H_FILES) $(SRC)/core_ops.c
-
$(SRC)/dataypes$(O) : $(GENERAL_H_FILES) $(SRC)/dataypes.c
$(SRC)/exit$(O) : $(GENERAL_H_FILES) $(SRC)/exit.c
@@ -741,33 +739,35 @@
$(SRC)/nci.c : $(SRC)/call_list.txt $(BUILD_TOOL)/build_nativecall.pl
$(PERL) $(BUILD_TOOL)/build_nativecall.pl $(SRC)/call_list.txt
+$(SRC)/warnings$(O) : $(GENERAL_H_FILES)
+
+$(SRC)/misc$(O) : $(GENERAL_H_FILES)
+
+$(SRC)/utils$(O) : $(GENERAL_H_FILES)
+
+$(SRC)/spf_render$(O) : $(GENERAL_H_FILES)
+
+$(SRC)/spf_vtable$(O) : $(GENERAL_H_FILES)
+
+$(OPS)/core_ops$(O) : $(GENERAL_H_FILES) $(OPS)/core_ops.c
+
#core_ops depends upon config.h so that it gets updated along with updates to config.h's version numbers
-$(SRC)/core_ops.c $(INC)/oplib/core_ops.h : $(OPS_FILES) $(BUILD_TOOL)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(INC)/config.h lib/Parrot/OpLib/core.pm
+$(OPS)/core_ops.c $(INC)/oplib/core_ops.h : $(OPS_FILES) $(BUILD_TOOL)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(INC)/config.h lib/Parrot/OpLib/core.pm
$(PERL) $(BUILD_TOOL)/ops2c.pl C --core
-$(SRC)/core_ops_prederef$(O) : $(GENERAL_H_FILES) $(SRC)/core_ops_prederef.c
+$(OPS)/core_ops_prederef$(O) : $(GENERAL_H_FILES) $(OPS)/core_ops_prederef.c
-$(SRC)/core_ops_prederef.c $(INC)/oplib/core_ops_prederef.h : $(OPS_FILES) $(BUILD_TOOL)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(INC)/config.h lib/Parrot/OpLib/core.pm
+$(OPS)/core_ops_prederef.c $(INC)/oplib/core_ops_prederef.h : $(OPS_FILES) $(BUILD_TOOL)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(INC)/config.h lib/Parrot/OpLib/core.pm
$(PERL) $(BUILD_TOOL)/ops2c.pl CPrederef --core
-$(SRC)/core_ops_switch$(O) : $(GENERAL_H_FILES) $(SRC)/core_ops_switch.c
+$(OPS)/core_ops_switch$(O) : $(GENERAL_H_FILES) $(OPS)/core_ops_switch.c
-$(SRC)/core_ops_switch.c $(INC)/oplib/core_ops_switch.h : $(OPS_FILES) $(BUILD_TOOL)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(INC)/config.h lib/Parrot/OpLib/core.pm
+$(OPS)/core_ops_switch.c $(INC)/oplib/core_ops_switch.h : $(OPS_FILES) $(BUILD_TOOL)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(INC)/config.h lib/Parrot/OpLib/core.pm
$(PERL) $(BUILD_TOOL)/ops2c.pl CSwitch --core
${cg_c}
${gc_c}
-
-$(SRC)/warnings$(O) : $(GENERAL_H_FILES)
-
-$(SRC)/misc$(O) : $(GENERAL_H_FILES)
-
-$(SRC)/utils$(O) : $(GENERAL_H_FILES)
-
-$(SRC)/spf_render$(O) : $(GENERAL_H_FILES)
-
-$(SRC)/spf_vtable$(O) : $(GENERAL_H_FILES)
# $(STICKY_FILES) : Configure.pl
# $(PERL) Configure.pl
Index: config/auto/cgoto.pl
===================================================================
RCS file: /cvs/public/parrot/config/auto/cgoto.pl,v
retrieving revision 1.9
diff -u -r1.9 cgoto.pl
--- config/auto/cgoto.pl 10 Dec 2003 11:44:17 -0000 1.9
+++ config/auto/cgoto.pl 19 Dec 2003 16:31:50 -0000
@@ -27,17 +27,17 @@
Configure::Data->set(
cg_h => '$(INC)/oplib/core_ops_cg.h $(INC)/oplib/core_ops_cgp.h',
cg_c => <<'EOF',
-$(SRC)/core_ops_cg$(O): $(GENERAL_H_FILES) $(SRC)/core_ops_cg.c
-$(SRC)/core_ops_cgp$(O): $(GENERAL_H_FILES) $(SRC)/core_ops_cgp.c
+$(OPS)/core_ops_cg$(O): $(GENERAL_H_FILES) $(OPS)/core_ops_cg.c
+$(OPS)/core_ops_cgp$(O): $(GENERAL_H_FILES) $(OPS)/core_ops_cgp.c
-$(SRC)/core_ops_cg.c $(INC)/oplib/core_ops_cg.h: $(OPS_FILES) $(BUILD_TOOL)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm lib/Parrot/OpTrans/CGoto.pm
+$(OPS)/core_ops_cg.c $(INC)/oplib/core_ops_cg.h: $(OPS_FILES) $(BUILD_TOOL)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm lib/Parrot/OpTrans/CGoto.pm
$(PERL) $(BUILD_TOOL)/ops2c.pl CGoto --core
-$(SRC)/core_ops_cgp.c $(INC)/oplib/core_ops_cgp.h: $(OPS_FILES) $(BUILD_TOOL)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm lib/Parrot/OpTrans/CGP.pm
+$(OPS)/core_ops_cgp.c $(INC)/oplib/core_ops_cgp.h: $(OPS_FILES) $(BUILD_TOOL)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm lib/Parrot/OpTrans/CGP.pm
$(PERL) $(BUILD_TOOL)/ops2c.pl CGP --core
EOF
- cg_o => '$(SRC)/core_ops_cg$(O) $(SRC)/core_ops_cgp$(O)',
- cg_r => '$(RM_F) $(INC)/oplib/core_ops_cg.h $(SRC)/core_ops_cg.c \
- $(INC)/oplib/core_ops_cgp.h $(SRC)/core_ops_cgp.c',
+ cg_o => '$(OPS)/core_ops_cg$(O) $(OPS)/core_ops_cgp$(O)',
+ cg_r => '$(RM_F) $(INC)/oplib/core_ops_cg.h $(OPS)/core_ops_cg.c \
+ $(INC)/oplib/core_ops_cgp.h $(OPS)/core_ops_cgp.c',
cg_flag => '-DHAVE_COMPUTED_GOTO'
);
}
Index: build_tools/ops2c.pl
===================================================================
RCS file: /cvs/public/parrot/build_tools/ops2c.pl,v
retrieving revision 1.64
diff -u -r1.64 ops2c.pl
--- build_tools/ops2c.pl 19 Nov 2003 15:29:04 -0000 1.64
+++ build_tools/ops2c.pl 19 Dec 2003 16:31:50 -0000
@@ -64,10 +64,10 @@
my $incdir = "include/parrot/oplib";
my $include = "parrot/oplib/${base}_ops${suffix}.h";
my $header = "include/$include";
-my $source = "src/${base}_ops${suffix}.c";
+my $source = "ops/${base}_ops${suffix}.c";
if ($base =~ m!^dynoplibs/! || $dynamic) {
- $source =~ s!src/!!;
+ $source =~ s!ops/!!;
$header = "${base}_ops${suffix}.h";
$base =~ s!^.*[/\\]!!;
$include = "${base}_ops${suffix}.h";