PATCH_LIST= FILE_LIST= SRC_FETCH_METHOD=http # retrieval method : # can be svn, git, http, ftp, filesystem # SRC_FETCH_METHOD=http # SRC_FETCH_PATH=http://ftp.acc.umu.se/pub/gnome/sources/glib/2.28/glib-2.28.8.tar.bz2 # retrieval path : # SRC_FETCH_PATH=http://foo.com/test.tar.bz2 # # Use FLXHOSTOS, FLXHOSTARCH, HOSTCC, HOSTCXX for the machine used to build. # Use FLXTARGOS, FLXTARGARCH, CC, CXX, LD, for the target machine. # FLXMAKE usually is 'make', FLXPMAKE usually is 'make -j 2' # Build tools are in /$FLXTOOLDIR, toolchain root dir is /$FLXROOTDIR. # Current dir is /$CURDIR, package dir is /$PKGDIR, dest root dir is /$ROOTDIR. # Package name is $PKGRADIX-$PKGVER-$DISTVER # optimize for size #FLXARCH=$FLX_ARCH_SMALL MAKEDEPENDS=( 'zlib-*:::*.so.* *.so *.h' ) # ( 'zlib-*:::*.so.* *.so *.h' 'libffi-*:::*.a *.h *.pc' ) # format : # MAKEDEPENDS='packagename:versfx:architecture:globbing' # # exemple : # MAKEDEPENDS='tplparser-0local-flx0.0:albdev:i586:*.a *.h' # LIBFFI_CFLAGS="-I$FLXROOTDIR/usr/lib/libffi-3.0.10/ -I$FLXROOTDIR/usr/lib/libffi-3.0.10/include" \ # LIBFFI_LIBS="$FLXROOTDIR/usr/lib/libffi.a" \ function do_config { # glib requires the "glib-genmarshal" utility that it provides. We would # prefer to build it just before using it but that's not possible because # it relies on the whole library. So we need a first native pass to build # it then keep the utility at hand and build again. We do this in the do_config # pass which is already quite long. CC="$HOSTCC" CXX="$HOSTCXX" LD="$HOSTCC" CFLAGS="-O0" \ ./configure --prefix=/usr --sysconfdir=/etc --enable-static=yes \ --disable-gtk-doc-html --disable-selinux --disable-fam --disable-silent-rules \ --disable-dependency-tracking --disable-mem-pools --disable-xattr --disable-regex \ --disable-threads --disable-iconv-cache --disable-gc-friendly \ || exit $? # now build just what we need $FLXPMAKE -C glib/libcharset libcharset.la || exit $? $FLXPMAKE -C glib libglib-2.0.la || exit $? $FLXPMAKE -C gthread libgthread-2.0.la || exit $? $FLXPMAKE -C gobject glib-genmarshal || exit $? # and save the resulting executable mv gobject/glib-genmarshal native-glib-genmarshal || exit $? # and then clean everything and start over $FLXMAKE distclean do_config_native } function do_config_native { CC="$CC" CXX="$CXX" LD="$LD" \ RANLIB="$RANLIB" AR="$AR" AS="$AS" NM="$NM" OBJDUMP="$OBJDUMP" \ CFLAGS="$GCC_ARCH_SMALL $GCC_CPU_SMALL $GCC_OPT_SMALL" \ GLIB_GENMARSHAL="$PWD/native-glib-genmarshal" \ PKG_CONFIG="" \ ac_cv_path_GLIB_GENMARSHAL="$PWD/native-glib-genmarshal" \ ac_cv_path_GLIB_COMPILE_SCHEMAS="yes" \ glib_cv_long_long_format=ll glib_cv_stack_grows=no glib_cv_working_bcopy=no glib_cv_sane_realloc=yes \ glib_cv_have_strlcpy=no glib_cv_have_qsort_r=no glib_cv_va_val_copy=no glib_cv_rtldglobal_broken=no \ glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes glib_cv_use_pid_surrogate=yes \ ac_cv_func_printf_unix98=no ac_cv_func_vsnprintf_c99=no \ ./configure \ --build=${FLXHOST} --host=${FLXTARG} \ --prefix=/usr --sysconfdir=/etc --disable-gtk-doc-html --disable-selinux --disable-fam --disable-silent-rules \ --with-sysroot=$FLXROOTDIR } function do_compile_only { # parallel make $FLXPMAKE -C glib V=1 } function do_prepack { $FLXMAKE install DESTDIR=$ROOTDIR set_default_perm $ROOTDIR }