Opened 16 years ago

Closed 16 years ago

Last modified 15 years ago

#13622 closed enhancement (fixed)

cairo: add a universal variant

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.5.2
Keywords: Cc:
Port:

Description

Building cairo +universal doesn't work:

$ sudo port install cairo +universal
--->  Fetching cairo
--->  Verifying checksum(s) for cairo
--->  Extracting cairo
--->  Configuring cairo
Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_Users_rschmidt_macports_dports-clean_graphics_cairo/work/cairo-1.4.12" && ./configure --prefix=/opt/local --disable-dependency-tracking " returned error 1
Command output: checking whether the /usr/bin/gcc-4.0 linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin8.11.1 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by /usr/bin/g++-4.0... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... no
checking whether the /usr/bin/g++-4.0 linker (/usr/bin/ld) supports shared libraries... yes
checking for /usr/bin/g++-4.0 option to produce PIC... -fno-common
checking if /usr/bin/g++-4.0 PIC flag -fno-common works... yes
checking if /usr/bin/g++-4.0 static flag -static works... no
checking if /usr/bin/g++-4.0 supports -c -o file.o... yes
checking whether the /usr/bin/g++-4.0 linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin8.11.1 dyld
checking how to hardcode library paths into programs... immediate
appending configuration tag "F77" to libtool
checking for ANSI C header files... (cached) yes
checking for inline... inline
checking whether byte ordering is bigendian... no
checking whether float word ordering is bigendian... unknown
configure: error:

Unknown float word ordering. You need to manually preset
ax_cv_c_float_words_bigendian=no (or yes) according to your system.

    

Error: Status 1 encountered during processing.
$ 

The default +universal variant doesn't work because cairo tries to determine the processor endianness at configure time, or rather, it assumes at configure time that there is a single endianness, which there isn't with a universal build. The developers of cairo decline to modify their configuration system to assist us. Therefore we must do it the hard way, building twice and lipo'ing the result together. Fortunately there is only a single library that needs to be lipo'd so this shouldn't be too much trouble. I'll try to adapt the universal build technique of the openssl port.

Change History (2)

comment:1 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: newclosed

Added a functional +universal variant in r32156.

comment:2 Changed 15 years ago by (none)

Milestone: Port Enhancements

Milestone Port Enhancements deleted

Note: See TracTickets for help on using tickets.