Re: Several Darwin quartz objects not being built when using GNU make-3.81+.
Marc Aurele La France <[email protected]>
| Newsgroups | gmane.comp.xfree86.devel |
|---|---|
| Message-ID | <Pine.WNT.4.64.0704151243360.1068@tsi> |
On Wed, 11 Apr 2007, SciFi wrote:
> 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).
Does the patch below help?
*** cvs/xc/config/cf/Imake.tmpl Sun Apr 1 18:33:28 2007
--- devel/xc/config/cf/Imake.tmpl Sat Apr 14 23:40:09 2007
*************** XCOMM common rules for all Makefiles - d
*** 2255,2260 ****
--- 2255,2265 ----
.cc.s:
CompileCplusplusToAsm($(_NOOP_))
+ .SUFFIXES: .m
+
+ .m.o:
+ $(CC) -c $(CFLAGS) -o $@ $<
+
/*
* These need to be here so that rules in Imakefile occur first; the blank
* emptyrule is to make sure that an empty Imakefile does not default to make
Thanks.
Marc.
+----------------------------------+----------------------------------+
| Marc Aurele La France | work: 1-780-492-9310 |
| Academic Information and | fax: 1-780-492-1729 |
| Communications Technologies | email: [email protected] |
| 352 General Services Building +----------------------------------+
| University of Alberta | |
| Edmonton, Alberta | Standard disclaimers apply |
| T6G 2H1 | |
| CANADA | |
+----------------------------------+----------------------------------+
XFree86 developer and VP. ATI driver and X server internals.