384752eeada689301baa1b259fe69c5c3e8a6ac5
[platform/upstream/dosfstools.git] / README.md
1 dosfstools consists of the programs mkfs.fat, fsck.fat and fatlabel to create,
2 check and label file systems of the FAT family.  The dosfstools are licensed
3 under the GNU GPL version 3 or later. See the file `COPYING` for details.
4
5
6 ### Build Requirements
7
8 dosfstools recommends libudev. It is used in mkfs.fat to collect additional
9 information about the device to format in order to refuse potentially unsafe
10 operations without additional confirmation.
11
12 The test suite requires the tool `xxd` (available as part of the `vim`
13 distribution).
14
15
16 ### Installing
17
18 dosfstools are built using an autoconf/automake system, so the standard method
19 applies:
20
21 ```
22 ./configure
23 make
24 make install
25 ```
26
27 You need to have superuser privileges in order to install into the standard
28 system wide locations.
29
30 The `./configure` script has an option `--enable-compat-symlinks` that will
31 configure the build to symlink older names of the tools to the current ones on
32 installation. These are `dosfsck`, `fsck.msdos` and `fsck.vfat` for `fsck.fat`,
33 `mkdosfs`, `mkfs.msdos` and `mkfs.vfat` for `mkfs.fat` and `dosfslabel` for
34 `fatlabel`.
35
36
37 ### Running the test suite
38
39 The test suite can be run with `make check` after configuring. Note that if
40 `xxd` isn't available, all tests will be skipped and nothing actually tested.
41
42 During the tests temporary files of multiple GB in size will be created, but the
43 actual data content is not more than a few MB. The operating system and the
44 filesystem the tests are executed on should support sparse files, otherwise the
45 tests will be resource intensive.
46
47
48 ### Building from the VCS repository
49
50 If you are working directly from a git clone of the official dosfstools
51 repository, you will find that you can not run `./configure` straight away
52 because it, like other autogenerated files for the build system, is not included
53 in the repository.
54
55 First, autoconf and automake have to be installed.  Then you can run `autoreconf
56 -i` to generate all the required files.