Cannot compile man pages outside source directory

William Poetra Yoga H williampoetra at yahoo.com
Wed May 4 05:24:54 CDT 2005


I realized today that we can't compile man pages outside the source directory,
c2man complains about being unable to find .c files.

I modified a line in dlls/Makedll.in:

        $(C2MAN) -o $(TOPOBJDIR)/documentation/man$(api_manext)
-R$(TOPOBJDIR) -S$(api_manext) $(INCLUDES) $(MAINSPEC:%=-w %)
$(SPEC_SRCS16:%=-w
 %) $(C_SRCS) $(C_SRCS16)

 so that it becomes:

        cd $(SRCDIR) && $(C2MAN) -o $(TOPOBJDIR)/documentation/man$(api_manext)
-R$(TOPOBJDIR) -S$(api_manext) $(INCLUDES) $(MAINSPEC:%=-w %)
$(SPEC_SRCS16:%=-w
 %) $(C_SRCS) $(C_SRCS16)

Then, because documentation/man3w should be in the build directory, we have to
modify TOPSRCDIR and TOPOBJDIR for the makefiles. I modified them to:

TOPSRCDIR = @abs_top_srcdir@
TOPOBJDIR = @abs_top_builddir@

Is this correct? I'm testing it (my machine's slow) to see if it breaks
anything.

I've just done 

for i in `find -name Makefile.in`
do
  cat $i | sed \
  -e s/TOPSRCDIR = .*/TOPSRCDIR = @abs_top_srcdir@/ \
  -e s/TOPOBJDIR = .*/TOPOBJDIR = @abs_top_builddir@/ \
  > $i.new
  cat $i.new > $i
  rm $i.new
done

and the patch is quite large, about 130k, so maybe I won't post it here
(straight to wine-patches if it's ok). Just the first 2:

Index: Makefile.in
===================================================================
RCS file: /home/wine/wine/Makefile.in,v
retrieving revision 1.161
diff -u -p -r1.161 Makefile.in
--- Makefile.in	2 Mar 2005 12:18:55 -0000	1.161
+++ Makefile.in	4 May 2005 10:19:18 -0000
@@ -17,8 +17,8 @@
 
 # Directories
 
-TOPSRCDIR = @top_srcdir@
-TOPOBJDIR = .
+TOPSRCDIR = @abs_top_srcdir@
+TOPOBJDIR = @abs_top_builddir@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 LIBEXT    = @LIBEXT@
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	4 May 2005 10:19:18 -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)
+	cd $(SRCDIR) && $(C2MAN) -o $(TOPOBJDIR)/documentation/man$(api_manext)
-R$(TOPOBJDIR) -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)
+	cd $(SRCDIR) && $(C2MAN) -o $(TOPOBJDIR)/documentation/html -R$(TOPSRCDIR)
$(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)
+	cd $(SRCDIR) && $(C2MAN) -o $(TOPOBJDIR)/documentation/api-guide
-R$(TOPSRCDIR) $(INCLUDES) -Ts $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %)
$(C_SRCS) $(C_SRCS16)
 
 .PHONY: man doc-html doc-sgml
 

William Poetra Yoga Hadisoeseno

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



More information about the wine-devel mailing list