#!/bin/sh # stolen from ffmpeg configure like a pig # Prevent locale nonsense from breaking basic text processing. LC_ALL=C export LC_ALL major=0 minor=9 micro=20 slib_file_name=libharfbuzz.so.$major.$minor.$micro slib_soname=libharfbuzz.so.$major api_hdrs=' hb.h hb-blob.h hb-buffer.h hb-common.h hb-deprecated.h hb-face.h hb-font.h hb-set.h hb-shape.h hb-shape-plan.h hb-unicode.h hb-ft.h hb-graphite2.h hb-coretext.h hb-uniscribe.h hb-icu.h hb-glib.h hb-gobject.h hb-gobject-structs.h hb-ot.h hb-ot-layout.h hb-ot-tag.h ' srcs=' hb-blob.c hb-buffer.c hb-common.c hb-face.c hb-fallback-shape.c hb-font.c hb-ft.c hb-glib.c hb-open-file.c hb-ot-layout.c hb-ot-tag.c hb-shape.c hb-shape-plan.c hb-shaper.c hb-unicode.c hb-utf-private.c ' clean_do(){ rm -Rf fake_root for src_file in $srcs do o_file=${src_file%.c} o_file=${o_file}.o rm -f "$o_file" done rm -f harfbuzz.pc hb-version.h exit 0 } ################################################################################ # find source path if test -f make; then src_path=. else src_path=$(cd $(dirname "$0"); pwd) echo "$src_path" | grep -q '[[:blank:]]' && die "Out of tree builds are impossible with whitespace in source path." test -e "$src_path/config.h" && die "Out of tree builds are impossible with config.h in source dir." fi is_in(){ value=$1 shift for var in $*; do [ $var = $value ] && return 0 done return 1 } append(){ var=$1 shift eval "$var=\"\$$var $*\"" } die_unknown(){ echo "Unknown option \"$1\"." echo "See $0 --help for available options." exit 1 } set_default(){ for opt; do eval : \${$opt:=\$${opt}_default} done } PATHS_LIST=' prefix incdir libdir pkg-config-sysroot ' CMDLINE_APPEND=" extra_cflags extra_cxxflags host_cppflags " CMDLINE_SET=" $PATHS_LIST slib_cc slib_ccld " #path defaults prefix_default='' incdir_default='$prefix/include' libdir_default='$prefix/lib' pkg_config_sysroot='' #command lin set defaults slib_cc_default='gcc -Wall -Wextra -Wno-missing-field-initializers -c -fPIC -fpic -O0 -std=c99' slib_ccld_default="gcc -shared -Wl,-soname=$slib_soname" ln_s_default='ln -sf' set_default $PATHS_LIST set_default slib_cc slib_ccld show_help(){ cat <<EOF Usage: make [options] [operations] Operations: [default is to build the shared library]: clean clean build products Options: [defaults in brackets after descriptions] Help options: --help print this message Path options for pkg-config file: --prefix=PREFIX install in PREFIX [$prefix_default] --libdir=DIR install libs in DIR [$incdir_default] --incdir=DIR install includes in DIR [$libdir_default] Advanced options (experts only): --pkg-config-sysroot=SYSROOT if you need to tell pkg-config that you cross-compile --slib-cc=CC use C compiler command line CC for shared lib object[$slib_cc_default] --slib-ccld=CCLD use linker command line LD for shared lib [$slib_ccld_default] EOF exit 0 } for opt do optval="${opt#*=}" case "$opt" in clean) clean_do ;; --help|-h) show_help ;; *) optname="${opt%%=*}" optname="${optname#--}" optname=$(echo "$optname" | sed 's/-/_/g') if is_in $optname $CMDLINE_SET; then eval $optname='$optval' elif is_in $optname $CMDLINE_APPEND; then append $optname "$optval" else die_unknown $opt fi ;; esac done #for pkgconfig to pickup the right package files if test -n "$pkg_config_sysroot"; then export PKG_CONFIG_SYSROOT_DIR=$pkg_config_sysroot fi CPPFLAGS="-I./ -I$src_path -DHAVE_GLIB \ $(pkg-config --cflags freetype2) \ $(pkg-config --cflags glib-2.0) " #generate the version header file sed -e " s/@HB_VERSION_MAJOR@/$major)/ s/@HB_VERSION_MINOR@/$minor/ s/@HB_VERSION_MICRO@/$micro/ s/@HB_VERSION@/$major.$minor.$micro/ " $src_path/hb-version.h.in >hb-version.h #evaluate the final paths (depth of one) eval "e_incdir=$incdir" eval "e_libdir=$libdir" #generate the pkg-config file sed -e " s:%libdir%:$e_libdir: s:%includedir%:$e_incdir: s:%VERSION%:$major.$minor.$micro: " $src_path/harfbuzz.pc.in >harfbuzz.pc #compile source files, build a list of objet files for src_file in $srcs do obj=${src_file%.c} obj=${obj}.o echo "SLIB_CC $src_file" $slib_cc $CPPFLAGS -o "$obj" "$src_path/$src_file" objs="$obj $objs" done #link the shared lib echo "SLIB_CCLD $slib_file_name" echo $objs mkdir -p "fake_root/$e_libdir" $slib_ccld -o "fake_root/$e_libdir/$slib_file_name" $objs #install the other files in the fake root ln -sf "$slib_file_name" "fake_root/$e_libdir/$slib_soname" ln -sf "$slib_soname" "fake_root/$e_libdir/libharfbuzz.so" mkdir -p "fake_root/$e_libdir/pkgconfig" cp -f harfbuzz.pc fake_root/$e_libdir/pkgconfig/harfbuzz.pc mkdir -p "fake_root/$e_incdir/harfbuzz" for hdr in $api_hdrs do cp -f $src_path/$hdr "fake_root/$e_incdir/harfbuzz/$hdr" cp -f hb-version.h "fake_root/$e_incdir/harfbuzz/" done
Mode | Type | Size | Ref | File |
---|---|---|---|---|
100644 | blob | 200 | 1a0b33b52f3f0b8f3567e0fb7b411e88c4b3c2c9 | ABBREVIATIONS |
100644 | blob | 119 | 8bbabe4337eabadd3f5ed07192b85e02d50f5bad | FIXME |
100644 | blob | 100 | 8a85692a2fc36a478ef9662ba2db214375a79254 | README |
100644 | blob | 223 | 7f27bbbdef02188df78858a31e0c38bda3fe4443 | harfbuzz.pc.in |
100644 | blob | 1478 | 2931ccaca651b04a927605232dd3500f7a661dce | hb-atomic-private.h |
100644 | blob | 120 | ee630543fb4ef3e9fa49f7362026407c0fd0a858 | hb-blob-private.h |
100644 | blob | 4983 | 607f12b39c30bbe160c4e3a6781b5a58b64de2fc | hb-blob.c |
100644 | blob | 3467 | d3d0f41b11c3b100cdee91525924c23226acd0cf | hb-blob.h |
100644 | blob | 1299 | 045519300e0994a11484696fa5c533663e4338db | hb-buffer-private.h |
100644 | blob | 11835 | a3b6deceb732205dfeb4b3798227732f4632ed8b | hb-buffer.c |
100644 | blob | 8424 | 87c4ce58e83744e68765567e4107533dae9d5b7f | hb-buffer.h |
100644 | blob | 3363 | f5141f528597232bb1a0214b7f1469cc9af008b8 | hb-common.c |
100644 | blob | 12423 | 40c1887296421c6d63f32e479cd318d4c4d79d19 | hb-common.h |
100644 | blob | 1407 | c4954fa1b2cadb133a419584de60fe16263f148b | hb-coretext.h |
100644 | blob | 1584 | 30ae4b1caf76dd03cc682eda7458728b5380ad6c | hb-deprecated.h |
100644 | blob | 1226 | 3ea9861f08c6fcc0422092c8bb38dd808b5c8757 | hb-face-private.h |
100644 | blob | 5452 | 4489a99ae3f4ebded37dab45f8cde0bf32cc43f1 | hb-face.c |
100644 | blob | 2815 | f682c468de58095fb0a7c4cdd577b34a9cb78077 | hb-face.h |
100644 | blob | 3705 | f027e1e59453b39ecb722e2c7ffd9126b579b1a5 | hb-fallback-shape.c |
100644 | blob | 3222 | 172e69a09927c17f177947f2d5f18318dd3f4545 | hb-font-private.h |
100644 | blob | 30726 | ba271fab87b5d9d6534bf971604b6079eabfc9f5 | hb-font.c |
100644 | blob | 12957 | 7273db43edaf542ef9d6e969fa2d8408e7d5100e | hb-font.h |
100644 | blob | 2570 | bb44c035ff48e7655a397e5b95872d75b92945ad | hb-ft.c |
100644 | blob | 1756 | 696251e143f31987eb599f8cb16db4f12ff8d901 | hb-ft.h |
100644 | blob | 4016 | 91eaa7075c5f9fe797de93912301d2e03d6b7248 | hb-glib.c |
100644 | blob | 1496 | 63a9d3366c58a0110881ad00d971830924b73a2a | hb-glib.h |
100644 | blob | 3185 | 4a88d569e8d3be4daa2eaf39192891426da46514 | hb-gobject-structs.h |
100644 | blob | 1334 | ea1bd25df82d46a222436a1ad078d0fc95d5c303 | hb-gobject.h |
100644 | blob | 1441 | 3eae54acbd81dbf3e534c4ad2e42d57611f7024e | hb-graphite2.h |
100644 | blob | 1495 | f2f35f0f2ce13b6b5c46453128e452ea9380eabf | hb-icu.h |
100644 | blob | 2180 | 7172c280ad7dbb708d6818d386bdbb6e852d80c8 | hb-open-file-private.h |
100644 | blob | 2659 | c4079cec956598ccf9521c874408a618fe7c29dc | hb-open-file.c |
100644 | blob | 65 | 642c3d3d45fdc42619d000cc9f7b3c890bdc0190 | hb-ot-face-private.h |
100644 | blob | 2806 | ecfd5b109b43f549366a61efff16daa92db87349 | hb-ot-layout.c |
100644 | blob | 9212 | d2a314cad6cbf94ba04ff9eaf513a74714eec732 | hb-ot-layout.h |
100644 | blob | 753 | 42faaca3f7ebdafc1232c6810b5ea2124896a95b | hb-ot-tag.c |
100644 | blob | 1688 | 1bf12ab3c09b9aef612515871e587c7c9ca7e62b | hb-ot-tag.h |
100644 | blob | 1526 | 80739063991cf14c4b65cc9247f751226f7f7277 | hb-ot.h |
100644 | blob | 1528 | ae4bc85a37900c9f54cb91986dadc216f620a358 | hb-private.h |
100644 | blob | 3544 | bafdae96333f9c81a4b20a4435e6eadaa31a7d32 | hb-set.h |
100644 | blob | 1647 | 1a90aed635a86f8e1d7002ffa8c7d300a3dd8acf | hb-shape-plan-private.h |
100644 | blob | 15942 | 929804aae7b6e5271cef5e9f1d654dcce7a8ca95 | hb-shape-plan.c |
100644 | blob | 2747 | 8f54552f90ba504f6ba2e9cf01459621fc73f9b2 | hb-shape-plan.h |
100644 | blob | 1370 | 1ff445b5de783fb0aa041f34d75919614b21ad34 | hb-shape.c |
100644 | blob | 2232 | 10a35cb517e14c96670d71bbcff266fce23cad91 | hb-shape.h |
100644 | blob | 1129 | 78e3fe4e3529b39789c0763b7f8e1019b3d5a725 | hb-shaper-private.h |
100644 | blob | 2184 | d1c8f9740fec1b4d19e0967f60391f1c5b17d155 | hb-shaper.c |
100644 | blob | 1261 | 86293900edd4d5fab1013bd0c32eeaad2abef41e | hb-unicode-private.h |
100644 | blob | 8084 | 462ddc1b9bcad35a3d4b3babb64772c93650e75c | hb-unicode.c |
100644 | blob | 14218 | 1c4e097b92d5ba628455fefe25b6f4697cc16f11 | hb-unicode.h |
100644 | blob | 1427 | 51887c8794bce4e37b35c4bb9c675baf55b63052 | hb-uniscribe.h |
100644 | blob | 5070 | 97eb7798f1dc725aad02cc651ffe859044647582 | hb-utf-private.c |
100644 | blob | 1423 | 636ce353798d395c780be99bb68350c3352f40a3 | hb-utf-private.h |
100644 | blob | 1849 | 43634f91ce8a10250c8279b19a1993843feb0f38 | hb-version.h.in |
100644 | blob | 1470 | c5a938a3818c9aca6de00a961c1c8f73bb2c47db | hb.h |
100644 | blob | 7651 | 65c5ca88a67c30becee01c5a8816d964b03862f9 | license.md |
100755 | blob | 5264 | 01bff5ed2957a061fb9cc148058a73e2ab87b350 | make |