Cannot compile man pages outside source directory

William Poetra Yoga H williampoetra at yahoo.com
Fri May 6 08:47:30 CDT 2005


OK, now the script works correctly. But I think we have to test it some more,
so... any volunteers?

William Poetra Yoga Hadisoeseno


		
Discover Yahoo! 
Have fun online with music videos, cool games, IM and more. Check it out! 
http://discover.yahoo.com/online.html
-------------- next part --------------
Index: dlls/Makedll.rules.in
===================================================================
RCS file: /home/wine/wine/dlls/Makedll.rules.in,v
retrieving revision 1.71
diff -u -p -r1.71 Makedll.rules.in
--- dlls/Makedll.rules.in	8 Mar 2005 16:55:26 -0000	1.71
+++ dlls/Makedll.rules.in	6 May 2005 13:44:11 -0000
@@ -61,13 +61,13 @@ $(MAINSPEC).c: $(MAINSPEC) $(RC_SRCS:.rc
 # Rules for auto documentation
 
 man: $(C_SRCS)
-	$(C2MAN) -o $(TOPOBJDIR)/documentation/man$(api_manext) -R$(TOPOBJDIR) -S$(api_manext) $(INCLUDES) $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+	$(C2MAN) -o $(TOPOBJDIR)/documentation/man$(api_manext) -R$(TOPOBJDIR) -D$(SRCDIR) -S$(api_manext) $(INCLUDES) $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
 
 doc-html: $(C_SRCS)
-	$(C2MAN) -o $(TOPOBJDIR)/documentation/html -R$(TOPSRCDIR) $(INCLUDES) -Th $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+	$(C2MAN) -o $(TOPOBJDIR)/documentation/html -R$(TOPSRCDIR) -D$(SRCDIR) $(INCLUDES) -Th $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
 
 doc-sgml: $(C_SRCS)
-	$(C2MAN) -o $(TOPOBJDIR)/documentation/api-guide -R$(TOPSRCDIR) $(INCLUDES) -Ts $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+	$(C2MAN) -o $(TOPOBJDIR)/documentation/api-guide -R$(TOPSRCDIR) -D$(SRCDIR) $(INCLUDES) -Ts $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
 
 .PHONY: man doc-html doc-sgml
 
Index: tools/c2man.pl
===================================================================
RCS file: /home/wine/wine/tools/c2man.pl,v
retrieving revision 1.21
diff -u -p -r1.21 c2man.pl
--- tools/c2man.pl	7 Jan 2005 17:17:23 -0000	1.21
+++ tools/c2man.pl	6 May 2005 13:44:13 -0000
@@ -42,6 +42,7 @@ my $FLAG_64PAIR     = 64; # The 64 bit v
 # Options
 my $opt_output_directory = "man3w"; # All default options are for nroff (man pages)
 my $opt_manual_section = "3w";
+my $opt_source_dir = "";
 my $opt_wine_root_dir = "";
 my $opt_output_format = "";         # '' = nroff, 'h' = html, 's' = sgml
 my $opt_output_empty = 0;           # Non-zero = Create 'empty' comments (for every implemented function)
@@ -120,7 +121,7 @@ sub process_spec_file($)
 
   # We allow opening to fail just to cater for the peculiarities of
   # the Wine build system. This doesn't hurt, in any case
-  open(SPEC_FILE, "<$spec_name") || return;
+  open(SPEC_FILE, "<$spec_name") || open(SPEC_FILE, "<$opt_source_dir/$spec_name") || return;
 
   while(<SPEC_FILE>)
   {
@@ -236,7 +237,7 @@ sub process_source_file($)
   {
     print "Processing ".$source_file."\n";
   }
-  open(SOURCE_FILE,"<$source_file") || die "couldn't open ".$source_file."\n";
+  open(SOURCE_FILE,"<$source_file") || open(SOURCE_FILE,"<$opt_source_dir/$source_file") || die "couldn't open ".$source_file."\n";
 
   # Add this source file to the list of source files
   $source_files{$source_file} = [$source_details];
@@ -2115,6 +2116,9 @@ sub usage()
         "Options:\n",
         " -Th      : Output HTML instead of a man page\n",
         " -Ts      : Output SGML (Docbook source) instead of a man page\n",
+        " -D <dir> : Source directory, to find source files if they are not found in the\n",
+        "            current directory. Default is \"",$opt_source_dir,"\"\n",
+        " -R <dir> : Root of build directory, default is \"",$opt_wine_root_dir,"\"\n",
         " -o <dir> : Create output in <dir>, default is \"",$opt_output_directory,"\"\n",
         " -s <sect>: Set manual section to <sect>, default is ",$opt_manual_section,"\n",
         " -e       : Output \"FIXME\" documentation from empty comments.\n",
@@ -2156,6 +2160,10 @@ while(defined($_ = shift @ARGV))
                      }
                      last;
                    };
+      s/^D// && do {
+                     if ($_ ne "") { $opt_source_dir = $_; }
+                     last;
+                   };
       s/^R// && do { if ($_ =~ /^\//) { $opt_wine_root_dir = $_; }
                      else { $opt_wine_root_dir = `cd $pwd/$_ && pwd`; }
                      $opt_wine_root_dir =~ s/\n//;
@@ -2181,8 +2189,9 @@ if ($opt_verbose > 3)
 {
   print "Output dir:'".$opt_output_directory."'\n";
   print "Section   :'".$opt_manual_section."'\n";
-  print "Format  :'".$opt_output_format."'\n";
-  print "Root    :'".$opt_wine_root_dir."'\n";
+  print "Format    :'".$opt_output_format."'\n";
+  print "Source dir:'".$opt_source_dir."'\n";
+  print "Root      :'".$opt_wine_root_dir."'\n";
   print "Spec files:'@opt_spec_file_list'\n";
   print "Includes  :'@opt_header_file_list'\n";
   print "Sources   :'@opt_source_file_list'\n";


More information about the wine-devel mailing list