1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
|
BUILDING
--------
To make the binaries from the top directory, type
make
This will create the directories "./bin", "./lib", and "./font/compiled".
The compiled programs will be in the "./bin" directory. The "./lib"
directory will contain the file wcwidth.c, to provide an implementation
of the POSIX wcwidth and wcswidth functions.
By default, simply typing "make" does not build the font. To build the
font, type
make BUILDFONT=1
The font will then build, placing files in the "font/compiled/" directory.
The default settings will build Unifont with four-digit hexadecimal
glyphs appearing for unassigned code points, and with no glyphs for
Private Use Area code points or non-printing code points. As an
example, to override these defaults in this top-level directory type
make BUILDFONT=1 UNASSIGNED="" PUA="plane00/pua.hex" \
NONPRINTING="plane00/nonprinting.hex"
To make certain that no unassigned, PUA, or non-printing glyphs are
included, type
make BUILDFONT=1 UNASSIGNED="" PUA="" NONPRINTING=""
You can similarly build Unifont with your own custom PUA glyphs.
Just specify where the custom PUA file is, relative to the "font/"
directory. Note, though, that unifontpic generates its glyph
diagram from whatever .hex files are in the "font/plane00" directory.
Therefore, to have custom PUA glyphs be part of this generated
glyph map, replace "font/plane00/pua.hex" with a custom pua.hex file.
Other useful make variables that can be overridden on the command line
from the top-level Makefile include:
DESTDIR - By default, not set; set to an alternate root location
such as "~/tmproot" if desired, but this directory
must already exist.
USRDIR - Set as typically "usr" or "usr/local" for installation
PREFIX - This is just $(DESTDIR)/$(USRDIR) but can be overridden.
PKGDEST - Destination for package files, by default "usr/share"
so that the README file, this INSTALL file, the ChangeLog
file, etc. will be installed in "/usr/share/unifont".
COMPRESS - Set to non-zero to compress installed man pages
All of the .hex file names can be replaced selectively on the top-level
"make" command line. The list of component hex file variables is:
UNIFONTBASE - The bulk of Unifont scripts
CJK - Most of the CJK Ideographs
HANGUL - Hangul Syllables block
NONPRINTING - Glyphs for non-printing characters
SPACES - Space glyphs, single- and double-width
UNASSIGNED - Glyphs for unassigned code points
PUA - Glyphs for the Private Use Area
The files "doc/unifont.info" and "doc/unifont.pdf" are pre-generated
as part of the distribution. This is for the convenience of systems
that do not have texinfo, texi2pdf, and TeX installed. To rebuild
these files from scratch (with texinfo, texi2pdf, etc. installed), type
cd doc
make doc
make clean
The "make clean" command removes intermediate files that texi2pdf creates.
The files in the "doxygen" directory are also pre-generated as part
of the distribution. This is for the convenience of systems that
do not have texlive, doxygen, and graphviz installed. To rebuild
these files from scratch, from the top-level directory type
rm -rf doxygen
make doxygen
To install the binaries, man pages, and Unifont, review the
destination directories in the Makefiles to verify that the files
will be installed where you want, and then type
make install
This installs programs in "/usr/bin" or "/usr/local/bin" (depending
on the USRDIR setting in the top-level Makefile), installs PCF and
TrueType fonts in the appropriate places, and places the following
files in "/usr/share/unifont" or "/usr/local/share/unifont" (again
depending on the USRDIR setting in the top-level Makefile):
ChangeLog.gz - license information for this package
combining.txt - list of Unicode Plane 0 combining characters
INSTALL.gz - this INSTALL file
NEWS.gz - the main changes for each version
README.gz - the README file
unifont.bmp - 256-by-256 glyph graphic of Unifont
unifont.info.gz - Texinfo tutorial on using the Unifont utilities
unifont.txt.gz - Texinfo tutorial on using the Unifont utilities
unifont.hex - composite Unifont .hex source, used by GRUB1
wchardata.c - implementation of IEEE 1003.1-2008 wcswidth and wcwidth
Typing "make install" will install font files from "font/compiled/"
if that directory exists; otherwise it will install font files from
the "font/precompiled/" directory.
To rebuild what is in the "font/precompiled" directory (which you
ordinarily should never do--there would have to be a very good
reason), remove its files, modify the DATE and VERSION information
in the top-level Makefile and in "font/Makefile", then type
make BUILDFONT=1
make precompiled
from the top-level directory or the "font/" subdirectory.
To just make the fonts, charts, etc. within the "font" directory,
install the "bdftopcf" program and FontForge as well as performing
a "make install" to install the Unifont binaries. Then from the
top-level directory type
cd font
make BUILDFONT=1
The resulting fonts will be in the "./font/compiled" directory, along
with bitmap renderings of each glyph. Note that if you've changed
glyphs, it might not be necessary to specify "BUILDFONT=1" but by
setting that on the command line, it forces the build whether or not
any glyphs have changed.
WARNING: Building the TrueType version of GNU Unifont will require
anywhere from 256 MBytes to 1 GByte of virtual memory, can require
almost 250 Megabytes of free disk space during the build, and is best
run on a decent processor (say 1 GHz clock rate or better).
During the TrueType build, FontForge will monopolize your CPU...plan
accordingly.
There is no reason to build the font from scratch unless you modify
the .hex font source files (or must satisfy an insatiable curiosity),
because the "./font/precompiled" directory already contains pre-built
BDF, PCF, and TrueType fonts.
To create a custom version of the font with combining circles (similar
to what was done to create the large picture of Unifont), type:
cd font/ttfsrc
sort ../plane00/*.hex | \
unigencircles combining.txt ../plane00/nonprinting.hex > unifont.hex
make BUILDFONT=1
When "make" is finished, the ttfsrc directory will contain a "unifont.ttf"
file which includes the dashed combining circles that the unigencircles
utility added. Copy this "unifont.ttf" file to a safe location in a different
directory with a more descriptive name. This font is named "unifont_sample-*.*"
in the font distribution. Then type
make clean
If you've made a new version of the font, hand-copy the new font file(s)
to your desired destination. Otherwise, precompiled PCF and TrueType
versions of the font will be copied from "./font/precompiled/" into
"$(DESTDIR)/usr/share/fonts".
After font installation, you might need to restart the X Window System
for the new fonts to be recognized, but first try the command
xset fp rehash
in a shell (terminal) window. If that doesn't work, restart the X
Window System.
To remove intermediate files, from the top-level directory type
make clean
To remove all created files and leave the directory in its pre-build
state, from the top-level directory type
make distclean
That will remove the "./bin" directory, the "./lib" directory, the
"./font/compiled" directory, and other intermediate files. Note that
this command leaves the files in "./font/precompiled" intact, even
though a prior "make precompiled" command would have rebuilt those files.
|