Several Darwin quartz objects not being built when using GNU make-3.81+.

SciFi <[email protected]>
Newsgroups gmane.comp.xfree86.devel
Message-ID <[email protected]>
Hi,


(This is part of a collection of patches and workarounds I have
for consideration for problems in the build process in current
cvs.  I'll just briefly describe each patch(-set) below, and if
needed will put them into bugzilla separately with more details.)


6.  Several Darwin quartz objects not being built when using GNU
make-3.81+.


Build Log snip:

>>>>
[...]  -Wall -UNEED_SCREEN_REGIONS     -I. -I../../../../../programs/Xserver/fb -I../../../../../programs/Xserver/mi -I../../../../../programs/Xserver/include            -I../../../../../programs/Xserver/render -I../../../../../programs/Xserver/miext/shadow            -I../../../../../programs/Xserver/Xext -I.. -I../../../../../lib/apple  -I../../../../../exports/include    -D__powerpc__ -D__DARWIN__                                 -DNO_ALLOCA -DCSRG_BASED  -DSHAPE -DXINPUT -DXKB -DLBX -DXAPPGROUP 	-DXCSECURITY -DXSYNC -DXF86BIGFONT 	 -DBIGREQS -DPANORAMIX -DRENDER -DRANDR 	-DRES  -DPIXPRIV 	  		      -DNDEBUG  		       -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH 				 -DXFree86Server 				-DSMART_SCHEDULE 				-DBUILDDEBUG 				-DX_BYTE_ORDER=X_BIG_ENDIAN      -DXBINDIR=/usr/X11R6/bin -DXINITDIR=/usr/X11R6/lib/X11/xinit           -DHAS_CG_MACH_PORT -DROOTLESSDEBUG -DBUILD_XPR -DHAS_KL_API   pseudoramiX.c
rm -f libXQuartz.a
ar clq libXQuartz.a Preferences.o         XApplication.o         XServer.o         applewm.o         keysym2ucs.o         quartz.o         quartzAudio.o         quartzCocoa.o         quartzPasteboard.o         quartzKeyboard.o         quartzStartup.o         pseudoramiX.o
ar: Preferences.o: No such file or directory
ar: XApplication.o: No such file or directory
ar: XServer.o: No such file or directory
ar: quartzCocoa.o: No such file or directory
make[6]: *** [libXQuartz.a] Error 1
make[6]: Leaving directory `/Volumes/Biggie/test/xf86_cvs/build/programs/Xserver/hw/darwin/quartz'
[...]
<<<<

...and at least the cr/ subdir under quartz/ is doing similar, too.

There is nothing in the log that shows these objects were built at
all, period.

To recreate:

a)  Build and install GNU make-3.81 release or from cvs/svn. 
Be sure to adjust $PATH etc. properly if needed.
I'm presently using:
$ make --version
GNU Make 3.81.90
[...]
This program built for powerpc-apple-darwin8.9.0

b)  Build xf86 with latest XCode (Apple-provided gcc, ld, etc.).

c)  Possibly related env-vars:
export MACOSX_DEPLOYMENT_TARGET="10.4"
export SDKROOT="/Developer/SDKs/MacOSX10.4u.sdk"
export SDK="${SDKROOT}"
...and maybe others...

$ gcc --version
powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
[...]

$ uname -a
Darwin <hostname> 8.9.0 Darwin Kernel Version 8.9.0: Thu Feb 22 20:54:07 PST 2007; root:xnu-792.17.14~1/RELEASE_PPC Power Macintosh powerpc PowerMac7,3 Darwin

(OSX 10.4.9 running on a Dual G5 2.7GHz with 3.5GB of matched-pair
SDRAM and more...)


Discussion:

GNU-make versions starting with 3.81 (and still in CVS as I write
this) do not see the rules for building .m files (Objective-C for
MacOSX).  This actually occurs on many different projects around
the world (I first noticed on MPlayer).  I don't know how to fix
this in Makefiles; I don't see any indication that the make-devel
list or their bugtracker even know about this problem, so I
surmise we're not doing something right with the vastly revamped
GNU-make versions.  One must use Apple's provided gnumake (3.80)
to compile these modules.  So when using make-3.81+ and the build
stops as above, I do this:
$ cd [build/]programs/Xserver/hw/darwin/quartz
$ gnumake
$ cd [build/]programs/Xserver/hw/darwin/quartz/cr
$ gnumake
... then cd back to the [build] dir and continue with using GNU
make-3.81+ (which is named 'make', lives in /usr/local/bin, and
$PATH hits it first).


Thanks for any help.  :)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.