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 ) {