Cannot compile man pages outside source directory

William Poetra Yoga H williampoetra at yahoo.com
Fri May 6 10:18:46 CDT 2005


--- Alexandre Julliard <julliard at winehq.org> wrote:
> 
> Just a detail but you probably want to use -C instead of -D for that
> option, it's what the other tools like makedep or winebuild use for
> that purpose.
> 

OK, it's -C now. By the way, I think the checks when assigning $opt_source_dir
are a bit simpler (maybe too simple?) than those for other command line options...

William Poetra Yoga Hadisoeseno


		
__________________________________ 
Do you Yahoo!? 
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/ 
-------------- 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 15:12:52 -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) -C$(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) -C$(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) -C$(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 15:12:56 -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,10 @@ 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")
+  || (($opt_source_dir ne "")
+      && open(SPEC_FILE, "<$opt_source_dir/$spec_name"))
+  || return;
 
   while(<SPEC_FILE>)
   {
@@ -236,7 +240,10 @@ 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")
+  || (($opt_source_dir ne "")
+      && 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 +2122,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",
+        " -C <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 +2166,10 @@ while(defined($_ = shift @ARGV))
                      }
                      last;
                    };
+      s/^C// && 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 +2195,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