Index: config/gen/makefiles.pl
===================================================================
RCS file: /cvs/public/parrot/config/gen/makefiles.pl,v
retrieving revision 1.16
diff -u -a -r1.16 makefiles.pl
--- config/gen/makefiles.pl	21 Jul 2003 20:16:12 -0000	1.16
+++ config/gen/makefiles.pl	23 Jul 2003 11:00:38 -0000
@@ -13,8 +13,6 @@
           commentType => '#');
   genfile('config/gen/makefiles/classes.in',   'classes/Makefile',
           commentType => '#');
-  genfile('config/gen/makefiles/docs.in',      'docs/Makefile',
-          commentType => '#');
   genfile('config/gen/makefiles/languages.in', 'languages/Makefile',
           commentType => '#');
   genfile('config/gen/makefiles/jako.in',      'languages/jako/Makefile',
@@ -33,6 +31,34 @@
           commentType => '#');
   genfile('config/gen/makefiles/ook.in',       'languages/ook/Makefile',
           commentType => '#');
+
+  # set up docs/Makefile, partly based on the .ops in the root dir
+
+  opendir ROOT, "." or die "opendir .: $!";
+  my @ops = sort grep { -f $_ and /\.ops$/ } readdir ROOT;
+  closedir ROOT;
+
+  my $pod = join " ", map { my $t = $_; $t =~ s/\.ops$/.pod/; "ops/$t" } @ops;
+
+  Configure::Data->set(pod => $pod);
+
+  genfile('config/gen/makefiles/docs.in',      'docs/Makefile',
+          commentType => '#');
+
+  Configure::Data->set(pod => undef);
+
+  open MAKEFILE, ">> docs/Makefile" or die "open >> docs/Makefile: $!";
+  
+  foreach my $ops (@ops) {
+      my $pod = $ops;
+      $pod =~ s/\.ops$/.pod/;
+      print MAKEFILE <<"EOM";
+ops/$pod: ../$ops
+	perldoc -u ../$ops > ops/$pod
+EOM
+  }
+
+  close MAKEFILE
 }
 
 1;
Index: config/gen/makefiles/docs.in
===================================================================
RCS file: /cvs/public/parrot/config/gen/makefiles/docs.in,v
retrieving revision 1.5
diff -u -a -r1.5 docs.in
--- config/gen/makefiles/docs.in	22 Jul 2003 21:04:14 -0000	1.5
+++ config/gen/makefiles/docs.in	23 Jul 2003 11:00:38 -0000
@@ -1,11 +1,9 @@
 PERL = ${perl}
 RM_F = ${rm_f}
 
-OPS  = bit.pod cmp.pod core.pod debug.pod dotgnu.pod io.pod math.pod \
-       object.pod obscure.pod pmc.pod rx.pod set.pod stack.pod string.pod \
-       sys.pod var.pod
+POD = ${pod}
 
-all: packfile-c.pod packfile-perl.pod
+all: packfile-c.pod packfile-perl.pod $(POD)
 
 packfile-c.pod: ../packfile.c
 	perldoc -u ../packfile.c > packfile-c.pod
@@ -14,5 +12,5 @@
 	perldoc -u ../lib/Parrot/PackFile.pm > packfile-perl.pod
 
 clean:
-	$(RM_F) packfile-c.pod packfile-perl.pod
+	$(RM_F) packfile-c.pod packfile-perl.pod $(POD)
 



Simon Glover <[EMAIL PROTECTED]> writes:
>  OK, I've just created a new ops subdirectory in the docs directory, and
>  changed the docs makefile so that each *.ops file creates a corresponding
>  *.pod file in there. Everything works OK for me, but I'd appreciate it
>  if people using non-Unix systems (or non-GNU make) could check that it
>  works for them.

It's really hard to do portable makefile stuff that does name-mangling
as well as work across directories.  Your patch didn't work with BSD
make nor nmake on win32, so Dan rolled the pod generation back yesterday.

I've attached a patch to get the configure system to generate a VERY
basic makefile for the pod generation phase that works with both BSD
and GNU make, and I assume nmake.

Cheers,
-- 
Lars Balker Rasmussen                                      Consult::Perl

Reply via email to