diff options
author | Eric Andersen <andersen@codepoet.org> | 2007-01-14 03:52:21 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2007-01-14 03:52:21 +0000 |
commit | 732d94d25fd10fff65a378b03c3fca9bde403e95 (patch) | |
tree | b9a58d5d379614371b65b671fb7851622a6b5667 /package/xorg | |
parent | 4ac03cc86a989c2f86b2cdb7041b854bf9609049 (diff) |
fixup a whole steaming pile of insanity. When packages are configured,
they should be configured with --prefix=/usr and we then need to use
make DESTDIR=$(STAGING_DIR) install to get things installed into the
staging directory. The current situation for many packages, which use
--prefix=$(STAGING_DIR) results in the staging_dir paths getting compiled
into the binary itself.
This also adds in a pile of libtool fixups. Between broken pkgconfig,
broken libtool handling, and broken --prefix settings, its a wonder
things have worked as well as they have up till now.
-Erik
Diffstat (limited to 'package/xorg')
-rw-r--r-- | package/xorg/Config.in | 2 | ||||
-rw-r--r-- | package/xorg/libXfont-1.1.0-noftinternals.patch | 294 | ||||
-rw-r--r-- | package/xorg/libdir-la.patch | 153 | ||||
-rw-r--r-- | package/xorg/xorg-config.patch | 5 | ||||
-rw-r--r-- | package/xorg/xorg.mk | 12 |
5 files changed, 458 insertions, 8 deletions
diff --git a/package/xorg/Config.in b/package/xorg/Config.in index 5dec3e94c..7b35c1980 100644 --- a/package/xorg/Config.in +++ b/package/xorg/Config.in @@ -4,8 +4,8 @@ config BR2_PACKAGE_XORG depends !BR2_PACKAGE_TINYX select BR2_PACKAGE_ZLIB select BR2_PACKAGE_LIBPNG - select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_EXPAT + select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_PKGCONFIG help The official X Window system and server. diff --git a/package/xorg/libXfont-1.1.0-noftinternals.patch b/package/xorg/libXfont-1.1.0-noftinternals.patch new file mode 100644 index 000000000..846410dc7 --- /dev/null +++ b/package/xorg/libXfont-1.1.0-noftinternals.patch @@ -0,0 +1,294 @@ +diff -urbN libXfont-1.1.0/src/FreeType/ftfuncs.c libXfont-1.1.0.new/src/FreeType/ftfuncs.c +--- xc/lib/font/FreeType/ftfuncs.c 2005-10-24 02:32:05.000000000 +0800 ++++ xc/lib/font/FreeType/ftfuncs.c 2006-06-25 10:56:24.221147322 +0800 +@@ -54,10 +54,7 @@ + #include FT_TYPE1_TABLES_H + #include FT_XFREE86_H + #include FT_BBOX_H +-#include FT_INTERNAL_TRUETYPE_TYPES_H + #include FT_TRUETYPE_TAGS_H +-#include FT_INTERNAL_SFNT_H +-#include FT_INTERNAL_STREAM_H + /* + * If you want to use FT_Outline_Get_CBox instead of + * FT_Outline_Get_BBox, define here. +@@ -123,6 +120,25 @@ + }; + + ++/* read 2-byte value from a SFNT table */ ++static FT_UShort ++sfnt_get_ushort( FT_Face face, ++ FT_ULong table_tag, ++ FT_ULong table_offset ) ++{ ++ FT_Byte buff[2]; ++ FT_ULong len = sizeof(buff); ++ FT_UShort result = 0; ++ ++ if ( !FT_Load_Sfnt_Table( face, table_tag, table_offset, buff, &len ) ); ++ result = (FT_UShort)( (buff[0] << 8) | buff[1] ); ++ ++ return result; ++} ++ ++#define sfnt_get_short(f,t,o) ((FT_Short)sfnt_get_ushort((f),(t),(o))) ++ ++ + static int ftypeInitP = 0; /* is the engine initialised? */ + FT_Library ftypeLibrary; + +@@ -211,6 +227,10 @@ + if(maxp && maxp->maxContours == 0) + face->bitmap = 1; + } ++ ++ face->num_hmetrics = (FT_UInt) sfnt_get_ushort( face->face, ++ TTAG_hhea, 34 ); ++ + /* Insert face in hashtable and return it */ + face->next = faceTable[bucket]; + faceTable[bucket] = face; +@@ -462,6 +482,34 @@ + } + + if( FT_IS_SFNT( face->face ) ) { ++#if 1 ++ FT_F26Dot6 tt_char_width, tt_char_height, tt_dim_x, tt_dim_y; ++ FT_UInt nn; ++ ++ instance->strike_index=0xFFFFU; ++ ++ tt_char_width = (FT_F26Dot6)(trans->scale*(1<<6) + 0.5); ++ tt_char_height = (FT_F26Dot6)(trans->scale*(1<<6) + 0.5); ++ ++ tt_dim_x = FLOOR64( ( tt_char_width * trans->xres + 36 ) / 72 + 32 ); ++ tt_dim_y = FLOOR64( ( tt_char_height * trans->yres + 36 ) / 72 + 32 ); ++ ++ if ( tt_dim_x && !tt_dim_y ) ++ tt_dim_y = tt_dim_x; ++ else if ( !tt_dim_x && tt_dim_y ) ++ tt_dim_x = tt_dim_y; ++ ++ for ( nn = 0; nn < face->face->num_fixed_sizes; nn++ ) ++ { ++ FT_Bitmap_Size* sz = &face->face->available_sizes[nn]; ++ ++ if ( tt_dim_x == FLOOR64(sz->x_ppem + 32) && tt_dim_y == FLOOR64(sz->y_ppem + 32) ) ++ { ++ instance->strike_index = nn; ++ break; ++ } ++ } ++#else + /* See Set_Char_Sizes() in ttdriver.c */ + FT_Error err; + TT_Face tt_face; +@@ -486,6 +534,7 @@ + sfnt = (SFNT_Service)tt_face->sfnt; + err = sfnt->set_sbit_strike(tt_face,tt_x_ppem,tt_y_ppem,&instance->strike_index); + if ( err ) instance->strike_index=0xFFFFU; ++#endif + } + + /* maintain a linked list of instances */ +@@ -803,31 +852,61 @@ + * parse the htmx field in TrueType font. + */ + +-/* from src/truetype/ttgload.c */ + static void +-tt_get_metrics( TT_HoriHeader* header, ++tt_get_metrics( FT_Face face, + FT_UInt idx, ++ FT_UInt num_hmetrics, + FT_Short* bearing, + FT_UShort* advance ) +-/* Copyright 1996-2001, 2002 by */ +-/* David Turner, Robert Wilhelm, and Werner Lemberg. */ + { +- TT_LongMetrics longs_m; +- FT_UShort k = header->number_Of_HMetrics; ++ /* read the metrics directly from the horizontal header, we ++ * parse the SFNT table directly through the standard FreeType API. ++ * this works with any version of the library and doesn't need to ++ * peek at its internals. Maybe a bit less ++ */ ++ FT_UInt count = num_hmetrics; ++ FT_ULong length = 0; ++ FT_ULong offset = 0; ++ FT_Error error; + +- if ( k == 0 ) { +- *bearing = *advance = 0; +- return; +- } ++ error = FT_Load_Sfnt_Table( face, TTAG_hmtx, 0, NULL, &length ); + +- if ( idx < (FT_UInt)k ) { +- longs_m = (TT_LongMetrics )header->long_metrics + idx; +- *bearing = longs_m->bearing; +- *advance = longs_m->advance; ++ if ( count == 0 || error ) ++ { ++ *advance = 0; ++ *bearing = 0; ++ } ++ else if ( idx < count ) ++ { ++ offset = idx * 4L; ++ if ( offset + 4 > length ) ++ { ++ *advance = 0; ++ *bearing = 0; ++ } ++ else ++ { ++ *advance = sfnt_get_ushort( face, TTAG_hmtx, offset ); ++ *bearing = sfnt_get_short ( face, TTAG_hmtx, offset+2 ); ++ } ++ } ++ else ++ { ++ offset = 4L * (count - 1); ++ if ( offset + 4 > length ) ++ { ++ *advance = 0; ++ *bearing = 0; ++ } ++ else ++ { ++ *advance = sfnt_get_ushort ( face, TTAG_hmtx, offset ); ++ offset += 4 + 2 * ( idx - count ); ++ if ( offset + 2 > length) ++ *bearing = 0; ++ else ++ *bearing = sfnt_get_short ( face, TTAG_hmtx, offset ); + } +- else { +- *bearing = ((TT_ShortMetrics*)header->short_metrics)[idx - k]; +- *advance = ((TT_LongMetrics )header->long_metrics)[k - 1].advance; + } + } + +@@ -835,6 +914,7 @@ + ft_get_very_lazy_bbox( FT_UInt index, + FT_Face face, + FT_Size size, ++ FT_UInt num_hmetrics, + double slant, + FT_Matrix *matrix, + FT_BBox *bbox, +@@ -842,15 +922,14 @@ + FT_Long *vertAdvance) + { + if ( FT_IS_SFNT( face ) ) { +- TT_Face ttface = (TT_Face)face; + FT_Size_Metrics *smetrics = &size->metrics; + FT_Short leftBearing = 0; + FT_UShort advance = 0; + FT_Vector p0, p1, p2, p3; + + /* horizontal */ +- tt_get_metrics(&ttface->horizontal, index, +- &leftBearing, &advance); ++ tt_get_metrics( face, index, num_hmetrics, ++ &leftBearing, &advance ); + + #if 0 + fprintf(stderr,"x_scale=%f y_scale=%f\n", +@@ -910,7 +989,27 @@ + FT_UShort glyph_index, FT_Glyph_Metrics *metrics_return, + int *sbitchk_incomplete_but_exist ) + { +-#if (FREETYPE_VERSION >= 2001008) ++#if 1 ++ if ( strike_index != 0xFFFFU && ft_face->available_sizes != NULL ) ++ { ++ FT_Error error; ++ FT_Bitmap_Size* sz = &ft_face->available_sizes[strike_index]; ++ ++ error = FT_Set_Pixel_Sizes( ft_face, sz->x_ppem/64, sz->y_ppem/64 ); ++ if ( !error ) ++ { ++ error = FT_Load_Glyph( ft_face, glyph_index, FT_LOAD_SBITS_ONLY ); ++ if ( !error ) ++ { ++ if ( metrics_return != NULL ) ++ *metrics_return = ft_face->glyph->metrics; ++ ++ return 0; ++ } ++ } ++ } ++ return -1; ++#elif (FREETYPE_VERSION >= 2001008) + SFNT_Service sfnt; + TT_Face face; + FT_Error error; +@@ -1043,6 +1142,7 @@ + if( bitmap_metrics == NULL ) { + if ( sbitchk_incomplete_but_exist==0 && (instance->ttcap.flags & TTCAP_IS_VERY_LAZY) ) { + if( ft_get_very_lazy_bbox( idx, face->face, instance->size, ++ face->num_hmetrics, + instance->ttcap.vl_slant, + &instance->transformation.matrix, + &bbox, &outline_hori_advance, +@@ -1207,10 +1307,27 @@ + } + + if( face->face->glyph->format != FT_GLYPH_FORMAT_BITMAP ) { ++#ifdef USE_GET_CBOX ++ FT_Outline_Get_CBox(&face->face->glyph->outline, &bbox); ++ ftrc = 0; ++#else ++ ftrc = FT_Outline_Get_BBox(&face->face->glyph->outline, &bbox); ++#endif ++ if( ftrc != 0 ) return FTtoXReturnCode(ftrc); ++ bbox.yMin = FLOOR64( bbox.yMin ); ++ bbox.yMax = CEIL64 ( bbox.yMax ); ++ ht_actual = ( bbox.yMax - bbox.yMin ) >> 6; ++ /* FreeType think a glyph with 0 height control box is invalid. ++ * So just let X to create a empty bitmap instead. */ ++ if ( ht_actual == 0 ) ++ is_outline = -1; ++ else ++ { + ftrc = FT_Render_Glyph(face->face->glyph,FT_RENDER_MODE_MONO); + if( ftrc != 0 ) return FTtoXReturnCode(ftrc); + is_outline = 1; + } ++ } + else{ + is_outline=0; + } +@@ -1221,6 +1338,7 @@ + if( is_outline == 1 ){ + if( correct ){ + if( ft_get_very_lazy_bbox( idx, face->face, instance->size, ++ face->num_hmetrics, + instance->ttcap.vl_slant, + &instance->transformation.matrix, + &bbox, &outline_hori_advance, +diff -urbN libXfont-1.1.0/src/FreeType/ftfuncs.h libXfont-1.1.0.new/src/FreeType/ftfuncs.h +--- xc/lib/font/FreeType/ftfuncs.h 2005-07-07 22:59:47.000000000 +0800 ++++ xc/lib/font/FreeType/ftfuncs.h 2006-06-21 21:05:28.533849804 +0800 +@@ -47,6 +47,7 @@ + char *filename; + FT_Face face; + int bitmap; ++ FT_UInt num_hmetrics; + struct _FTInstance *instances; + struct _FTInstance *active_instance; + struct _FTFace *next; /* link to next face in bucket */ +diff -urbN libXfont-1.1.0/src/FreeType/ftsystem.c libXfont-1.1.0.new/src/FreeType/ftsystem.c +--- xc/lib/font/FreeType/ftsystem.c 2005-07-09 14:36:10.000000000 +0800 ++++ xc/lib/font/FreeType/ftsystem.c 2006-06-21 21:05:28.534849622 +0800 +@@ -35,7 +35,6 @@ + #endif + #include <ft2build.h> + #include FT_CONFIG_CONFIG_H +-#include FT_INTERNAL_DEBUG_H + #include FT_SYSTEM_H + #include FT_ERRORS_H + #include FT_TYPES_H diff --git a/package/xorg/libdir-la.patch b/package/xorg/libdir-la.patch new file mode 100644 index 000000000..90b0444c6 --- /dev/null +++ b/package/xorg/libdir-la.patch @@ -0,0 +1,153 @@ +--- xc/lib/Xft/ltmain.sh.orig 2004-04-23 12:43:42.000000000 -0600 ++++ xc/lib/Xft/ltmain.sh 2007-01-13 15:04:20.000000000 -0700 +@@ -548,7 +548,7 @@ + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 +- exit 1 ++ #exit 1 + # else + # $echo "$modename: using $tagname tagged configuration" + fi +@@ -1652,7 +1652,7 @@ + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 +- exit 1 ++ #exit 1 + # else + # $echo "$modename: using $tagname tagged configuration" + fi +@@ -5362,10 +5362,13 @@ + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. +- if test "$inst_prefix_dir" = "$destdir"; then +- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 +- exit 1 +- fi ++ # ++ # This breaks install into our staging area. -PB ++ # ++ #if test "$inst_prefix_dir" = "$destdir"; then ++ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++ # exit 1 ++ #fi + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. +--- xc/extras/fontconfig/ltmain.sh.orig 2004-04-23 12:43:42.000000000 -0600 ++++ xc/extras/fontconfig/ltmain.sh 2007-01-13 15:04:20.000000000 -0700 +@@ -548,7 +548,7 @@ + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 +- exit 1 ++ #exit 1 + # else + # $echo "$modename: using $tagname tagged configuration" + fi +@@ -1652,7 +1652,7 @@ + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 +- exit 1 ++ #exit 1 + # else + # $echo "$modename: using $tagname tagged configuration" + fi +@@ -5362,10 +5362,13 @@ + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. +- if test "$inst_prefix_dir" = "$destdir"; then +- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 +- exit 1 +- fi ++ # ++ # This breaks install into our staging area. -PB ++ # ++ #if test "$inst_prefix_dir" = "$destdir"; then ++ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++ # exit 1 ++ #fi + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. +--- xc/extras/freetype2/builds/unix/ltmain.sh.orig 2007-01-13 15:05:47.000000000 -0700 ++++ xc/extras/freetype2/builds/unix/ltmain.sh 2007-01-13 15:07:55.000000000 -0700 +@@ -226,8 +226,9 @@ + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" +- $echo "$modename: specify a tag with \`--tag'" 1>&2 +- exit $EXIT_FAILURE ++ $echo "$modename: defaulting to \`CC'" ++ $echo "$modename: if this is not correct, specify a tag with \`--tag'" ++# exit $EXIT_FAILURE + # else + # $echo "$modename: using $tagname tagged configuration" + fi +@@ -2147,8 +2148,14 @@ + absdir="$abs_ladir" + libdir="$abs_ladir" + else +- dir="$libdir" +- absdir="$libdir" ++ # Adding 'libdir' from the .la file to our library search paths ++ # breaks crosscompilation horribly. We cheat here and don't add ++ # it, instead adding the path where we found the .la. -CL ++ dir="$abs_ladir" ++ absdir="$abs_ladir" ++ libdir="$abs_ladir" ++ #dir="$libdir" ++ #absdir="$libdir" + fi + else + dir="$ladir/$objdir" +@@ -2615,6 +2622,16 @@ + esac + if grep "^installed=no" $deplib > /dev/null; then + path="$absdir/$objdir" ++# This interferes with crosscompilation. -CL ++# else ++# eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++# if test -z "$libdir"; then ++# $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ++# exit 1 ++# fi ++# if test "$absdir" != "$libdir"; then ++# $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 ++# fi + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then +@@ -5165,6 +5182,10 @@ + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do ++ # Replacing uninstalled with installed can easily break crosscompilation, ++ # since the installed path is generally the wrong architecture. -CL ++ newdependency_libs="$newdependency_libs $deplib" ++ continue + case $deplib in + *.la) + name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` +@@ -5483,10 +5504,13 @@ + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. +- if test "$inst_prefix_dir" = "$destdir"; then +- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 +- exit $EXIT_FAILURE +- fi ++ # ++ # This breaks install into our staging area. -PB ++ # ++ # if test "$inst_prefix_dir" = "$destdir"; then ++ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++ # exit $EXIT_FAILURE ++ # fi + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. diff --git a/package/xorg/xorg-config.patch b/package/xorg/xorg-config.patch index 9bfd56726..389801e1d 100644 --- a/package/xorg/xorg-config.patch +++ b/package/xorg/xorg-config.patch @@ -1,6 +1,6 @@ --- xc/config/cf/host.def~ Thu May 12 15:28:01 MDT 2005 +++ xc/config/cf/host.def Thu May 12 15:28:01 MDT 2005 -@@ -0,0 +1,44 @@ +@@ -0,0 +1,45 @@ +#define KDriveXServer YES +#define TinyXServer YES +#define XfbdevServer YES @@ -10,7 +10,8 @@ + +#define HasFreetype2 YES +#define Freetype2Dir REPLACE_STAGING_DIR -+#define HasFontconfig NO ++#define HasFontconfig YES ++#define FontconfigDir REPLACE_STAGING_DIR +#define HasLibpng YES +#define HasZlib YES +#define HaveLib64 NO diff --git a/package/xorg/xorg.mk b/package/xorg/xorg.mk index 7477a4606..3f913458a 100644 --- a/package/xorg/xorg.mk +++ b/package/xorg/xorg.mk @@ -12,7 +12,7 @@ XORG_APPS:=xlsfonts/xlsfonts xmodmap/xmodmap xinit/startx \ mkfontscale/mkfontscale mkfontdir/mkfontdir \ #xterm/xterm -XORG_LIBS:= Xft fontconfig Xrender Xaw Xmu Xt \ +XORG_LIBS:= Xft Xrender Xaw Xmu Xt \ SM ICE Xpm Xp Xext X11 Xmuu Xxf86misc @@ -73,9 +73,12 @@ endif $(DL_DIR)/$(XORG_SOURCE): $(WGET) -P $(DL_DIR) $(XORG_SITE)/$(XORG_SOURCE) -$(XORG_DIR)/.configured: $(DL_DIR)/$(XORG_SOURCE) +$(XORG_DIR)/.unpacked: $(DL_DIR)/$(XORG_SOURCE) $(XORG_CAT) $(DL_DIR)/$(XORG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - toolchain/patch-kernel.sh $(XORG_DIR) package/xorg/ \*.patch + touch $(XORG_DIR)/.unpacked + +$(XORG_DIR)/.configured: $(XORG_DIR)/.unpacked $(SED) 's:REPLACE_STAGING_DIR:$(STAGING_DIR):g' $(XORG_HOST_DEF) $(SED) 's:REPLACE_GCCINC_DIR:$(shell $(TARGET_CROSS)gcc -print-file-name=include):g' $(XORG_CF) $(SED) 's:REPLACE_STAGING_DIR:$(STAGING_DIR):g' $(XORG_CF) @@ -98,10 +101,10 @@ $(XORG_XSERVER): $(XORG_DIR)/.configured $(STAGING_DIR)$(TARGET_LIBX)/libX11.so.6.2: $(XORG_XSERVER) -mkdir -p $(STAGING_DIR)/usr/X11R6 + ln -fs ../../include $(STAGING_DIR)/usr/X11R6/include ln -fs ../../lib $(STAGING_DIR)$(TARGET_LIBX) ( cd $(XORG_DIR); $(MAKE) \ DESTDIR=$(STAGING_DIR) install XCURSORGEN=xcursorgen MKFONTSCALE=mkfontscale ) - $(SED) 's,/usr/X11R6,$(STAGING_DIR)/usr/X11R6,' $(STAGING_DIR)/usr/X11R6/lib/pkgconfig/*.pc touch -c $(STAGING_DIR)$(TARGET_LIBX)/libX11.so.6.2 $(TARGET_XSERVER): $(XORG_XSERVER) @@ -146,8 +149,7 @@ $(XORG_LIBX)/libX11.so.6.2: $(TARGET_XSERVER) $(TARGET_DIR)/usr/bin/mcookie: package/xorg/mcookie.c $(TARGET_CROSS)gcc -Wall -Os -s package/xorg/mcookie.c -o $(TARGET_DIR)/usr/bin/mcookie -xorg: zlib png pkgconfig expat freetype \ - $(STAGING_DIR)$(TARGET_LIBX)/libX11.so.6.2 \ +xorg: zlib png pkgconfig expat fontconfig $(STAGING_DIR)$(TARGET_LIBX)/libX11.so.6.2 \ $(XORG_LIBX)/libX11.so.6.2 $(TARGET_DIR)/usr/bin/mcookie xorg-source: $(DL_DIR)/$(XORG_SOURCE) |