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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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:  tsi@xxxxxxxxxxx         |
|  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.
_______________________________________________
Devel mailing list
Devel@xxxxxxxxxxx
http://XFree86.Org/mailman/listinfo/devel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [X Forum]     [XFree86]     [XFree86 Newbie]     [X.Org]     [IETF Annouce]     [Security]     [Fontconfig]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]

  Powered by Linux