Please help, how to build the libpurple framework?
Ryan Govostes
rgovostes at gmail.com
Sun Aug 9 20:38:28 UTC 2009
On Aug 9, 2009, at 11:38 AM, Evan Schoenberg, M.D. wrote:
>> . The remaining changes that are required are
>> - figure out how to utilize pkgconfig so that dependencies from /
>> opt don't get in our way
>
> We were using pkgconfig with the old scripts, right? It looks like
> PKG_CONFIG is being set in the new ones; this is newly not working,
> or it wasn't working in the first place?
I don't think they work properly; if it were, I don't think we'd have
to continuously set the --with-libxyz= arguments in the configure
scripts. It would simplify things greatly.
>
>> - work out how to compile in new stuff like gstreamer, sipe, gfire
>
> It looks like we're doing a single configure and make for all
> architectures simultaneously? How does that work? When doing liboil
> and the gstreamer plugins, the old scripts do this:
> case $ARCH in
> ppc) TARGET_DIR="$TARGET_DIR_PPC"
> export PATH="$PATH_PPC"
> export PKG_CONFIG_PATH="$TARGET_DIR_PPC/lib/pkgconfig"
> export HOST="powerpc-apple-darwin"
> export NM="nm -arch ppc "
> # We add -DHAVE_SYMBOL_UNDERSCORE because otherwise the
> # Altivec functions for PPC are defined as __vec_memcpy
> rather
> # than _vec_memcpy, which fails (liboil)
> export LOCAL_CFLAGS="-DHAVE_SYMBOL_UNDERSCORE";;
> i386) TARGET_DIR="$TARGET_DIR_I386"
> export PATH="$PATH_I386"
> export PKG_CONFIG_PATH="$TARGET_DIR_I386/lib/pkgconfig"
> export HOST="i386-apple-darwin9.6.0"
> export NM="nm -arch i386 "
> export LOCAL_CFLAGS="";;
> esac
>
> what's the equivalent for a single cycle?
The thing is that gcc can build universal without help; our old method
of building two separate copies and then merging them is unnecessary
and breaks things like incremental compiling. In the new system, it
would be:
build_gstreamer() {
prereq "gstreamer" \
"http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.23.tar.gz
"
prereq "gstreamer-plugins-base" \
"http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.23.tar.gz
"
quiet pushd "$ROOTDIR/source/gstreamer"
if needsconfigure $@; then
status "Configuring gstreamer"
CFLAGS="$FLAGS" LDFLAGS="$FLAGS" \
PKG_CONFIG="$ROOTDIR/build/bin/pkg-config" \
PKG_CONFIG_PATH="$ROOTDIR/build/lib/pkgconfig:/usr/lib/pkgconfig" \
./configure \
--prefix="$ROOTDIR/build" \
--disable-dependency-tracking
fi
status "Building and installing gstreamer"
warning "Building too much! Patch the Makefile"
make
make install
quiet popd
}
Notice that nothing in this code references the host platform, it only
configures when it needs to, and it lets make handle all of the
dependency tracking. And it took about as much space as just setting
up the environment variables above.
>
>> - actually package up a framework
>
> Is this just a matter of calling universalize.sh once the dylibs are
> built, or is there a new challenge produced here?
I suppose you could probably make universalize.sh work, but it'd be
nicer (imo) to make an Xcode target which copies all the files in and
makes the framework.
-- Ryan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2446 bytes
Desc: not available
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20090809/fd4be00b/attachment.p7s>
More information about the devel
mailing list