Hi,
the make shipped with Borland C++ builder doesn't like the makefiles
in the current way. I had to tweak the buildfiles a little in order to
get it Configure and compile. (It still does not link but thats
another story). I removed the appearences of && in the Makefiles with
${make_and} which is defined to '&&' on all platforms but bcc, and
simplified the cd dir && make && cd .. case by using a
perl-replacement for the -C commandlineoption of make on windows
platforms.
Can people on diffrent architectures please test the
attached patch?
Its already tested on linux/i386.
bye
b�
? ~bcc32.diff
Index: config/auto/sizes.pl
===================================================================
RCS file: /cvs/public/parrot/config/auto/sizes.pl,v
retrieving revision 1.7
diff -u -r1.7 sizes.pl
--- config/auto/sizes.pl 27 Apr 2003 07:36:44 -0000 1.7
+++ config/auto/sizes.pl 30 Aug 2003 15:36:48 -0000
@@ -118,7 +118,7 @@
};
# clear int8_t on error
- if($@) {
+ if($@ || !exists $results{hugeintval}) {
Configure::Data->set('int8_t' => undef);
next;
}
Index: config/gen/makefiles/imcc.in
===================================================================
RCS file: /cvs/public/parrot/config/gen/makefiles/imcc.in,v
retrieving revision 1.28
diff -u -r1.28 imcc.in
--- config/gen/makefiles/imcc.in 16 Aug 2003 17:44:19 -0000 1.28
+++ config/gen/makefiles/imcc.in 30 Aug 2003 15:36:48 -0000
@@ -52,8 +52,8 @@
echo Compiling with:
@$(PERL) ../../tools/dev/cc_flags.pl ./CFLAGS echo $(CFLAGS) xx$(O) -c xx.c
-../../$(PARROTLIB):
- cd ..${slash}.. && $(MAKE) $(PARROTLIB) && cd languages${slash}imcc
+..${slash}..${slash}$(PARROTLIB):
+ $(MAKE_C) ../.. $(PARROTLIB)
# The .flag files are needed because we are keeping some derived files in CVS,
# which does not keep accurate timestamps on the files, relative to each other.
Index: config/gen/makefiles/root.in
===================================================================
RCS file: /cvs/public/parrot/config/gen/makefiles/root.in,v
retrieving revision 1.114
diff -u -r1.114 root.in
--- config/gen/makefiles/root.in 28 Aug 2003 11:03:02 -0000 1.114
+++ config/gen/makefiles/root.in 30 Aug 2003 15:36:48 -0000
@@ -182,6 +182,7 @@
# do it for you.
#
${make_set_make}
+MAKE_C = ${make_c}
.c$(O) :
@$(PERL) tools/dev/cc_flags.pl ./CFLAGS $(CC) $(CFLAGS) ${cc_o_out}$@ -c $<
@@ -319,23 +320,23 @@
#
###############################################################################
-examples/assembly/mops.pbc : examples/assembly/mops.pasm
- cd examples && cd assembly && $(MAKE) mops.pbc PERL=$(PERL) && cd .. && cd ..
+examples${slash}assembly${slash}mops.pbc : examples${slash}assembly${slash}mops.pasm
+ $(MAKE_C) examples/assembly mops.pbc
-examples/assembly/mops.c : examples/assembly/mops.pbc pbc2c.pl
- $(PERL) pbc2c.pl examples/assembly/mops.pbc > examples/assembly/mops.c
+examples${slash}assembly${slash}mops.c : examples${slash}assembly${slash}mops.pbc pbc2c.pl
+ $(PERL) pbc2c.pl examples${slash}assembly${slash}mops.pbc > examples${slash}assembly${slash}mops.c
-examples/assembly/mops${exe} : examples/assembly/mops$(O) $(LIBPARROT)
- $(LINK) $(LINKFLAGS) ${ld_out}examples/assembly/mops${exe} examples/assembly/mops$(O) $(LIBPARROT) $(C_LIBS)
+examples${slash}assembly${slash}mops${exe} : examples${slash}assembly${slash}mops$(O) $(LIBPARROT)
+ $(LINK) $(LINKFLAGS) ${ld_out}examples${slash}assembly${slash}mops${exe} examples${slash}assembly${slash}mops$(O) $(LIBPARROT) $(C_LIBS)
-examples/assembly/life.pbc : examples/assembly/life.pasm
- cd examples && cd assembly && $(MAKE) life.pbc PERL=$(PERL) && cd .. && cd ..
+examples${slash}assembly${slash}life.pbc : examples${slash}assembly${slash}life.pasm
+ $(MAKE_C) examples/assembly life.pbc
-examples/assembly/life.c : examples/assembly/life.pbc pbc2c.pl
- $(PERL) pbc2c.pl examples/assembly/life.pbc > examples/assembly/life.c
+examples${slash}assembly${slash}life.c : examples${slash}assembly${slash}life.pbc pbc2c.pl
+ $(PERL) pbc2c.pl examples${slash}assembly${slash}life.pbc > examples${slash}assembly${slash}life.c
-examples/assembly/life${exe} : examples/assembly/life$(O) $(LIBPARROT)
- $(LINK) $(LINKFLAGS) ${ld_out}examples/assembly/life${exe} examples/assembly/life$(O) $(LIBPARROT) $(C_LIBS)
+examples${slash}assembly${slash}life${exe} : examples${slash}assembly${slash}life$(O) $(LIBPARROT)
+ $(LINK) $(LINKFLAGS) ${ld_out}examples${slash}assembly${slash}life${exe} examples${slash}assembly${slash}life$(O) $(LIBPARROT) $(C_LIBS)
###############################################################################
#
@@ -343,11 +344,11 @@
#
###############################################################################
-examples/mops/mops$(O) : examples/mops/mops.c
+examples${slash}mops${slash}mops$(O) : examples${slash}mops${slash}mops.c
-examples/mops/mops${exe} : examples/mops/mops$(O)
- $(LINK) $(LINKFLAGS) ${ld_out}examples/mops/mops${exe} \
- examples/mops/mops$(O) $(LIBPARROT) $(C_LIBS)
+examples${slash}mops${slash}mops${exe} : examples${slash}mops${slash}mops$(O)
+ $(LINK) $(LINKFLAGS) ${ld_out}examples${slash}mops${slash}mops${exe} \
+ examples${slash}mops${slash}mops$(O) $(LIBPARROT) $(C_LIBS)
###############################################################################
@@ -517,27 +518,27 @@
docs : docs/.dummy
docs/.dummy :
- cd docs && $(MAKE) && cd ..
+ $(MAKE_C) docs
languages : languages.dummy
languages.dummy :
- cd languages && $(MAKE) && cd ..
+ $(MAKE_C) languages
# If anything in the classes directory is out of date,
# then run `make` in sub-dir to rebuild only the out of date files.
-$(CLASS_O_FILES) : $(CLASS_PMC_FILES) $(NONGEN_HEADERS)
- cd classes && $(MAKE) && cd ..
+$(CLASS_O_FILES) : $(CLASS_PMC_FILES) $(INC)/vtable.h
+ $(MAKE_C) classes
$(IMCC_PROG) : $(LIBPARROT) \
- languages/imcc/*.c \
- languages/imcc/*.h \
- languages/imcc/*.y \
- languages/imcc/*.l
- cd languages${slash}imcc && $(MAKE) && cd ..${slash}..
+ languages${slash}imcc${slash}*.c \
+ languages${slash}imcc${slash}*.h \
+ languages${slash}imcc${slash}*.y \
+ languages${slash}imcc${slash}*.l
+ $(MAKE_C) languages/imcc
$(PERL) -MExtUtils::Command -e mv $(IMCC_PROG) $(TEST_PROG)
- cd languages${slash}imcc && $(MAKE) && cd ..${slash}..
+ $(MAKE_C) languages/imcc
# the chmod doesn't work here, so move imcc and make it again :-(
# $(PERL) -MExtUtils::Command -e chmod 0755 $(TEST_PROG)
@@ -634,9 +635,9 @@
examples/assembly/mops${exe} examples/assembly/mops.c \
examples/assembly/mops$(O) examples/assembly/mops.pbc \
examples/mops/mops$(O) examples/mops/mops${exe}
- cd docs && $(MAKE) clean && cd ..
- cd classes && $(MAKE) clean && cd ..
- cd languages && $(MAKE) clean && cd ..
+ $(MAKE_C) docs clean
+ $(MAKE_C) classes clean
+ $(MAKE_C) languages clean
progclean:
$(RM_F) $(O_FILES) \
@@ -645,7 +646,7 @@
$(PDB) pdb$(O) \
$(DIS) disassemble$(O)
$(RM_RF) blib
- cd classes && $(MAKE) progclean && cd ..
+ $(MAKE_C) classes progclean
testclean :
$(RM_F) t/op/*.pasm t/op/*.pbc t/op/*.out t/op/*.o t/op/*.stabs.s \
@@ -715,7 +716,7 @@
rpms : release
sudo cp parrot-$(VERSION).tar.gz /usr/src/*/SOURCES
sudo cp parrot.spec /usr/src/*/SPECS
- cd /usr/src/*/SPECS && sudo rpm -ba parrot.spec
+ cd /usr/src/*/SPECS ${make_and} sudo rpm -ba parrot.spec
###############################################################################
#
Index: config/init/data.pl
===================================================================
RCS file: /cvs/public/parrot/config/init/data.pl,v
retrieving revision 1.12
diff -u -r1.12 data.pl
--- config/init/data.pl 30 May 2003 05:05:49 -0000 1.12
+++ config/init/data.pl 30 Aug 2003 15:36:48 -0000
@@ -73,6 +73,8 @@
ranlib => $Config{ranlib},
make => $Config{make},
make_set_make => $Config{make_set_make},
+ make_and => '&&',
+ make_c => '$(MAKE) -C',
cp => 'cp',
slash => '/',
Index: config/init/hints.pl
===================================================================
RCS file: /cvs/public/parrot/config/init/hints.pl,v
retrieving revision 1.4
diff -u -r1.4 hints.pl
--- config/init/hints.pl 28 Dec 2002 01:35:48 -0000 1.4
+++ config/init/hints.pl 30 Aug 2003 15:36:48 -0000
@@ -11,17 +11,21 @@
sub runstep {
my $hints = "config/init/hints/" . lc($^O) . ".pl";
my $hints_used = 0;
+ print "[ ";
if(-e $hints) {
+ print "$hints ";
do $hints;
die $@ if $@;
$hints_used++;
}
$hints = "config/init/hints/local.pl";
if(-e $hints) {
+ print "$hints ";
do $hints;
die $@ if $@;
$hints_used++;
}
+ print "]";
if ($hints_used == 0) {
print "(no hints) ";
}
Index: config/init/hints/mswin32.pl
===================================================================
RCS file: /cvs/public/parrot/config/init/hints/mswin32.pl,v
retrieving revision 1.11
diff -u -r1.11 mswin32.pl
--- config/init/hints/mswin32.pl 18 Aug 2003 10:57:49 -0000 1.11
+++ config/init/hints/mswin32.pl 30 Aug 2003 15:36:48 -0000
@@ -16,7 +16,8 @@
Configure::Data->set(
rm_f => '$(PERL) -MExtUtils::Command -e rm_f',
rm_rf => '$(PERL) -MExtUtils::Command -e rm_rf',
- PQ => '"'
+ PQ => '"',
+ make_c => '$(PERL) -e "chdir shift @ARGV; system \'$(MAKE)\', @ARGV; exit $$? >> 8;"'
);
if( $is_msvc ) {
@@ -71,8 +72,12 @@
ld_shared => '-WD',
libs => 'import32.lib cw32.lib',
+ link => 'bcc32.exe',
+ linkflags => '',
+
cp => 'copy',
- slash => '\\'
+ slash => '\\',
+ make_and => "\n\t"
);
}
elsif( $is_mingw ) {