4 # Generating Fontmap for TTF fonts: http://docs.scribus.net/index.php?lang=en&page=gsfont
8 # Requires: /bin/sh textutils fileutils
10 # mkfontdir, mkfontscale (XFree86) (or ttmkfdir - for TTF only)
11 # fc-cache (fontconfig or XFree86-fontconfig)
12 # gnome-font-install (gnome-print)
17 FBASEDIR="/usr/share/fonts"
19 MKFONTDIRBIN="/usr/bin/mkfontdir"
20 MKFONTDIR="$MKFONTDIRBIN"
21 if [ ! -x "$MKFONTDIRBIN" -a -x /usr/X11R6/bin/mkfontdir ]; then
22 MKFONTDIR="/usr/X11R6/bin/mkfontdir"
24 MKFONTSCALEBIN="/usr/bin/mkfontscale"
25 MKFONTSCALE="$MKFONTSCALEBIN"
26 if [ ! -x "$MKFONTSCALEBIN" -a -x /usr/X11R6/bin/mkfontscale ]; then
27 MKFONTSCALEBIN="/usr/X11R6/bin/mkfontscale"
29 MKTTFFONTSCALEBIN="$MKFONTSCALEBIN"
30 MKTTFFONTSCALE="$MKTTFFONTSCALEBIN"
31 if [ ! -x "$MKFONTSCALEBIN" -a -x /usr/bin/ttmkfdir ]; then
32 # fallback for X <= 4.2.x
33 MKTTFFONTSCALEBIN="/usr/bin/ttmkfdir"
34 MKTTFFONTSCALE="$MKFONTSCALEBIN -e /usr/share/fonts/encodings/encodings.dir"
37 FCCACHEBIN="/usr/bin/fc-cache"
38 if [ ! -x $FCCACHEBIN -a -x /usr/X11R6/bin/fc-cache ]; then
39 # use XFree86-fontconfig
40 FCCACHEBIN="/usr/X11R6/bin/fc-cache"
42 if [ ! -x $FCCACHEBIN -a -x /usr/X11R6/bin/xftcache ]; then
43 # fallback for XFree86 4.[0-2]
44 FCCACHEBIN="/usr/X11R6/bin/xftcache"
46 FCCACHE="$FCCACHEBIN ."
48 GNOMEFONTINSTBIN="/usr/bin/gnome-font-install"
49 if [ ! -x $GNOMEFONTINSTBIN -a -x /usr/X11R6/bin/gnome-font-install ]; then
51 GNOMEFONTINSTBIN="/usr/X11R6/bin/gnome-font-install"
53 GNOMEFONTINST="$GNOMEFONTINSTBIN --target $FBASEDIR/fontmap"
55 T1LIBCONFIGBIN="/usr/bin/t1libconfig"
56 T1LIBCONFIG="$T1LIBCONFIGBIN --force"
59 echo >&2 "Usage: $PROGRAM TYPE [DIR]"
60 echo >&2 " TYPE is one of:"
61 echo >&2 " OTF, TTF, Type1, misc, 100dpi, 75dpi, cyrillic, local, CID, Speedo, PEX"
62 echo >&2 " default DIR is $FBASEDIR/TYPE"
67 if [ "$1" = "-v" ]; then
73 if [ "$VERBOSE" = "1" ]; then
80 FDIR="$FBASEDIR/$FTYPE"
87 if [ "`echo fonts.alias.*`" != 'fonts.alias.*' ]; then
88 cat fonts.alias.* | LC_ALL=C sort -u > fonts.alias
89 elif [ -f fonts.alias ]; then
90 mv -f fonts.alias fonts.alias-save
92 verb "$PROGRAM: Updating for $FTYPE..."
95 if [ -x $MKTTFFONTSCALEBIN ]; then
96 verb "$PROGRAM: Running $MKTTFFONTSCALEBIN."
99 if [ -x $MKFONTDIRBIN ]; then
100 verb "$PROGRAM: Running $MKFONTDIRBIN."
103 if [ -x $FCCACHEBIN ]; then
104 verb "$PROGRAM: Running $FCCACHEBIN."
109 rm -f fonts.scale.bak Fontmap.bak
110 if [ "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then
111 verb "$PROGRAM: Merging fonts.scale.* files."
112 cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp
113 cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale
114 cat fonts.scale.tmp >> fonts.scale
115 rm -f fonts.scale.tmp
116 elif [ "`echo *.pf[ab]`" != '*.pf[ab]' ]; then
117 # no hints - try to generate
118 if [ -x $MKFONTSCALEBIN ]; then
119 verb "$PROGRAM: Running $MKFONTSCALEBIN."
122 elif [ -f fonts.scale ]; then
123 mv -f fonts.scale fonts.scale-save
125 if [ -x $MKFONTDIRBIN ]; then
126 verb "$PROGRAM: Running $MKFONTDIRBIN."
129 if [ -x $FCCACHEBIN ]; then
130 verb "$PROGRAM: Running $FCCACHEBIN."
133 if [ "`echo Fontmap.*`" != 'Fontmap.*' ]; then
134 verb "$PROGRAM: Merging Fontmap.* files."
135 cat Fontmap.* > Fontmap
136 elif [ -f Fontmap ]; then
137 mv -f Fontmap Fontmap-save
139 if [ -x $GNOMEFONTINSTBIN ]; then
140 verb "$PROGRAM: Running $GNOMEFONTINSTBIN."
143 if [ -x $T1LIBCONFIGBIN ]; then
144 verb "$PROGRAM: Running $T1LIBCONFIGBIN."
149 if [ "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then
150 verb "$PROGRAM: Merging fonts.scale.* files."
151 cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp
152 cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale
153 cat fonts.scale.tmp >> fonts.scale
154 rm -f fonts.scale.tmp
155 elif [ -f fonts.scale ]; then
156 mv -f fonts.scale fonts.scale-save
158 if [ -x $MKFONTDIRBIN ]; then
159 verb "$PROGRAM: Running $MKFONTDIRBIN."
164 # special case - fonts needed for X server to start
165 if [ -x $MKFONTDIRBIN ]; then
166 verb "$PROGRAM: Running $MKFONTDIRBIN."
168 elif [ -f 6x13-ISO8859-1.pcf.gz -a -f cursor.pcf.gz ]; then
169 cat > fonts.dir <<EOF
171 6x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
175 if [ -x $FCCACHEBIN ]; then
176 verb "$PROGRAM: Running $FCCACHEBIN."
180 100dpi|75dpi|cyrillic|local)
181 if [ -x $MKFONTDIRBIN ]; then
182 verb "$PROGRAM: Running $MKFONTDIRBIN."
185 if [ -x $FCCACHEBIN ]; then
186 verb "$PROGRAM: Running $FCCACHEBIN."
193 echo >&2 "Warning: \"$FTYPE\": unknown font type!" >&2
194 if [ -x $MKFONTDIRBIN ]; then
195 verb "$PROGRAM: Running $MKFONTDIRBIN."