Solaris make bug

François Gouget fgouget at codeweavers.com
Thu Nov 8 21:46:50 CST 2001


   If I build Wine outside of the source tree, the Solaris make gets
confused by our .c.o rule: when the time comes to compile x11drv.o it
does :

LD_LIBRARY_PATH="../../unicode:$LD_LIBRARY_PATH"
../../tools/winebuild/winebuild -fPIC -L../../dlls  -o x11drv.spec.c
-spec ../../../src/dlls/x11drv/x11drv.spec
gcc -c -I. -I../../../src/dlls/x11drv -I../../include
-I../../../src/include  -g -O2 -Wall -mpreferred-stack-boundary=2 -fPIC
-D__WINE__  -D_REENTRANT -I/usr/X11R6/include -o
../../../src/dlls/x11drv/x11drv.spec.o x11drv.spec.c

   Notice the "../../../src/dlls/x11drv/x11drv.spec.o". And of course
when the time comes to link x11drv.o it does not find it of course!

   This does not happen if I replace the "$*.o" in .c.o with "$@" like
in the other rules. Any reason why it is different? Otherwise the
attached patch will workaround what looks like a bug in solaris make.


Changelog:

   François Gouget <fgouget at codeweavers.com>

 * Make.rules.in

   Make out-of-source-tree builds work with Solaris make


-- 
François Gouget
fgouget at codeweavers.com
-------------- next part --------------
Index: Make.rules.in
===================================================================
RCS file: /cvstrees/crossover/wine/Make.rules.in,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 Make.rules.in
--- Make.rules.in	2001/07/20 01:41:53	1.1.1.3
+++ Make.rules.in	2001/11/09 02:15:11
@@ -175,13 +175,13 @@
 .SUFFIXES: .mc .rc .mc.rc .res .spec .spec.c .glue.c
 
 .c.o:
-	$(CC) -c $(ALLCFLAGS) -o $*.o $<
+	$(CC) -c $(ALLCFLAGS) -o $@ $<
 
 .s.o:
-	$(AS) -o $*.o $<  
+	$(AS) -o $@ $<
 
 .S.o:
-	$(CC) -c -o $*.o $<  
+	$(CC) -c -o $@ $<
 
 .mc.mc.rc:
 	$(LDPATH) $(WMC) -i -H /dev/null -o $@ $<


More information about the wine-patches mailing list