--with-apple-libc-source
- Specify the path to Apple's Libc package, so that appropriate headers
- can be found and used.
+ Specify the path to Apple's Libc package, so that appropriate headers can
+ be found and used.
--with-apple-libclosure-source
--with-apple-xnu-source
- Specify the path to Apple's XNU package, so that appropriate headers
- can be found and used.
+ Specify the path to Apple's XNU package, so that appropriate headers can be
+ found and used.
--with-blocks-runtime
- On systems where -fblocks is supported, specify an additional library
- path in which libBlocksRuntime can be found. This is not required on
- Mac OS X, where the Blocks runtime is included in libSystem, but is
- required on FreeBSD.
+ On systems where -fblocks is supported, specify an additional library path
+ in which libBlocksRuntime can be found. This is not required on Mac OS X,
+ where the Blocks runtime is included in libSystem, but is required on
+ FreeBSD.
-The following options are likely to only be useful when building libdispatch
-on Mac OS X as a replacement for /usr/lib/system/libdispatch.dylib:
+The following options are likely to only be useful when building libdispatch on
+Mac OS X as a replacement for /usr/lib/system/libdispatch.dylib:
--disable-libdispatch-init-constructor
- Do not tag libdispatch's init routine as __constructor, in which case
- it must be run manually before libdispatch routines can be called.
- For the libdispatch library in /usr/lib/system, the init routine is called
- automatically during process start.
+ Do not tag libdispatch's init routine as __constructor, in which case it
+ must be run manually before libdispatch routines can be called. This is the
+ default when building on Mac OS X. For /usr/lib/system/libdispatch.dylib
+ the init routine is called automatically during process start.
--enable-apple-tsd-optimizations
- Use a non-portable allocation scheme for pthread per-thread data (TSD)
- keys when building libdispatch for /usr/lib/system on Mac OS X. This
- should not be used on other OS's, or on Mac OS X when building a
- stand-alone library.
+ Use a non-portable allocation scheme for pthread per-thread data (TSD) keys
+ when building libdispatch for /usr/lib/system on Mac OS X. This should not
+ be used on other OS's, or on Mac OS X when building a stand-alone library.
Typical configuration commands
libdispatch for /usr/lib/system on Mac OS X Lion:
sh autogen.sh
- ./configure CFLAGS='-arch x86_64 -arch i386' \
+ ./configure CFLAGS='-arch x86_64 -arch i386 -g -Os' \
--prefix=/usr --libdir=/usr/lib/system \
--disable-dependency-tracking --disable-static \
- --disable-libdispatch-init-constructor \
--enable-apple-tsd-optimizations \
--with-apple-libc-source=/path/to/10.7.0/Libc-763.11 \
--with-apple-libclosure-source=/path/to/10.7.0/libclosure-53 \
--with-apple-xnu-source=/path/to/10.7.0/xnu-1699.22.73
+ make check
Typical configuration line for FreeBSD 8.x and 9.x to build libdispatch with
clang and blocks support:
sh autogen.sh
./configure CC=clang --with-blocks-runtime=/usr/local/lib
+ make check