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

Reply via email to