I've modified the c2man.pl script, now 'make manpages' doesn't exit with an error, but no file is written to documentation/man3w. What's wrong? The diff is attached.
William Poetra Yoga Hadisoeseno
__________________________________ Do you Yahoo!? Yahoo! Small Business - Try our new resources site! http://smallbusiness.yahoo.com/resources/
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 07:35:03 -0000 @@ -61,7 +61,7 @@ $(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) 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 07:35:06 -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) @@ -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]; @@ -2154,6 +2155,10 @@ while(defined($_ = shift @ARGV)) my $have_headers = `ls $include >/dev/null 2>&1`; if ($? >> 8 == 0) { @opt_header_file_list = (@opt_header_file_list, $include); } } + last; + }; + s/^D// && do { + if ($_ ne "") { $opt_source_dir = $_."/"; } last; }; s/^R// && do { if ($_ =~ /^//) { $opt_wine_root_dir = $_; }
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
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";
William Poetra Yoga H williampoetra@yahoo.com writes:
--- 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)
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.