(automake-1.16.info)Limitations on File Names


Next: Errors with distclean Prev: Wildcards Up: FAQ
Enter node , (file) or (file)node

27.4 Limitations on File Names
==============================

Automake attempts to support all kinds of file names, even those that
contain unusual characters or are unusually long.  However, some
limitations are imposed by the underlying operating system and tools.

   Most operating systems prohibit the use of the null byte in file
names, and reserve ‘/’ as a directory separator.  Also, they require
that file names are properly encoded for the user’s locale.  Automake is
subject to these limits.

   Portable packages should limit themselves to POSIX file names.  These
can contain ASCII letters and digits, ‘_’, ‘.’, and ‘-’.  File names
consist of components separated by ‘/’.  File name components cannot
begin with ‘-’.

   Portable POSIX file names cannot contain components that exceed a
14-byte limit, but nowadays it’s normally safe to assume the
more-generous XOPEN limit of 255 bytes.  POSIX limits file names to 255
bytes (XOPEN allows 1023 bytes), but you may want to limit a source
tarball to file names of 99 bytes to avoid interoperability problems
with old versions of ‘tar’.

   If you depart from these rules (e.g., by using non-ASCII characters
in file names, or by using lengthy file names), your installers may have
problems for reasons unrelated to Automake.  However, if this does not
concern you, you should know about the limitations imposed by Automake
itself.  These limitations are undesirable, but some of them seem to be
inherent to underlying tools like Autoconf, Make, M4, and the shell.
They fall into three categories: install directories, build directories,
and file names.

   The following characters:

     newline " # $ ' `

   should not appear in the names of install directories.  For example,
the operand of ‘configure’’s ‘--prefix’ option should not contain these
characters.

   Build directories suffer the same limitations as install directories,
and in addition should not contain the following characters:

     & @ \

   For example, the full name of the directory containing the source
files should not contain these characters.

   Source and installation file names like ‘main.c’ are limited even
further: they should conform to the POSIX/XOPEN rules described above.
In addition, if you plan to port to non-POSIX environments, you should
avoid file names that differ only in case (e.g., ‘makefile’ and
‘Makefile’).  Nowadays it is no longer worth worrying about the 8.3
limits of DOS file systems.


automatically generated by info2www version 1.2.2.9