reactos/modules/rosapps/applications/devutils/cdmake
..
cdmake.c
CMakeLists.txt
config.h
dirhash.c
dirhash.h
llmsort.c
readme.txt

                              CD-ROM Maker
                           Philip J. Erdelsky

The CDMAKE utility converts files from DOS/Windows format to ISO9660
(CD-ROM) format.

First, gather all the files to be converted and put them into a single
base directory and its subdirectories, arranged just the way you want
them on the CD-ROM. Remember that ISO9660 allows subdirectories to be
nested only eight levels deep. Therefore, if the base directory is
C:\CDROM,

     C:\CDROM\D2\D3\D4\D5\D6\D7\D8\FOO.TXT is permitted, but

     C:\CDROM\D2\D3\D4\D5\D6\D7\D8\D9\FOO.TXT is forbidden.

Also, ISO9660 does not allow directories to have extensions, although
DOS does.

Finally, the characters in file and directory names and file extensions
must be letters, digits or underscores. Other punctuation marks
permitted by DOS/Windows are forbidden by ISO9660. You can use the -c
option to override this restriction, but the resulting CD-ROM may not be
readable on systems other than DOS/Windows.

Files in the base directory will be written to the root directory of the
CD-ROM image. All subdirectories of the base directory will appear as
subdirectories of the root directory of the CD-ROM image. Their
contents, and the contents of their subdirectories, down to the eighth
level, will be faithfully copied to the CD-ROM image.

System files will not be written to the CD-ROM image. Hidden files will
be written to the CD-ROM image, and will retain their hidden attributes.
Read-only files will be written, and will remain read-only on the
CD-ROM, but this does not distinguish them in any way, because on a
CD-ROM all files are read-only. The archive attribute will be lost.

File and directory date and time stamps will be preserved in the CD-ROM
image.

The utility is called up by a command line of the following form:

     CDMAKE  [-q] [-v] [-p] [-s N] [-m] [-j] [-b bootimage]  source  volume  image

     source        specifications of base directory containing all files to
                   be written to CD-ROM image

     volume        volume label

     image         image file or device

     -q            quiet mode - display nothing but error messages

     -v            verbose mode - display file information as files are
                   scanned and written - overrides -p option

     -p            show progress while writing

     -s N          abort operation before beginning write if image will be
                   larger than N megabytes (i.e. 1024*1024*N bytes)

     -m            accept punctuation marks other than underscores in
                   names and extensions

     -j            generates Joliet filename records

     -b bootimage  create bootable ElTorito CD-ROM using 'no emulation' mode


The utility makes three passes over the source files:

     (1) The scanning pass, in which the names and extensions are
         checked for validity, and the names, extensions, sizes, dates,
         times and attributes are recorded internally. The files are not
         actually read during this pass.

     (2) The layout pass, in which the sizes and positions of
         directories, files and other items in the CD-ROM image are
         determined.

     (3) The writing pass, in which the files are actually read and the
         CD-ROM image is actually written to the specified file or
         device. The image is always written sequentially.

If neither the -q nor the -v option is used, CDMAKE will display the
volume label, size, number of files and directories and the total bytes
in each at the end of the layout pass.

If the -p option is used, and is not overridden by the -v option, then
during the writing pass, CDMAKE will display the number of bytes still
to be written to the CD-ROM image, updating it frequently. The number
will decrease as the operation progresses, and will reach zero when the
operation is complete.

The operation of CDMAKE can be aborted by typing Ctrl-C when the utility
is displaying text of any kind.