README
icoutils - Introduction
=======================

The icoutils are a set of program for extracting and converting images in
Microsoft Windows(R) icon and cursor files. These files usually have the
extension .ico or .cur, but they can also be embedded in executables and
libraries (.dll-files).

The icotool program converts icon and cursor files into a set of PNG
images. (Each icon/cursor file may contain multiple images, usually of
different sizes and with different number of colors.) Icotool can also
create icon/cursor files from PNG images.

The wrestool program can extract both icons and cursors from 32-bit ("PE")
and 16-bit ("NE") executables and libraries. It writes .ico and .cur files
that can be used on Windows(R) operating systems as well. Other types of
embedded resourced can be extracted, however only in raw form - icons and
cursors require additional conversion before they can be saved as icon and
cursor files.

The extresso script automates the tasks of extracting and converting icons.
This is done with the help of of special resource scripts. The purpose of
these scripts are to give names to the icons in the executables and
libraries.

The icoutils were designed to compile and run on modern POSIX compatible
systems such as Linux.

Windows is a registered trademark of Microsoft Corporation in the United
States and other countries.

Copyright and License
=====================

The icoutils are copyright (C) 1998 Oskar Liljeblad.
 
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

The source code of this project may contain files from other projects, and
files generated by other projects, including:

 * GNU Autoconf (http://www.gnu.org/software/autoconf/)
 * GNU Automake (http://sources.redhat.com/automake/)
 * GNU gettext (http://www.gnu.org/software/gettext/)
 * GNU Libtool (http://www.gnu.org/software/libtool/)
 * Gnulib (http://www.gnu.org/software/gnulib/)
 * Autoconf Macro Archive (http://ac-archive.sourceforge.net/)

Such files are licensed under the terms of the GNU General Public License
or a license compatible with the GNU GPL (as listed on
http://www.gnu.org/licenses/license-list.html). See each file for copyright
details.

Requirements
============

The following programs are required to build icoutils:

 * GNU C Compiler (gcc), version 2.95 or later

   The icoutils use some features specific to gcc 2.95 and later (such as
   macros with variable number of arguments). The GNU C Compiler is part of
   the GNU Compiler Collection which can be downloaded from
   http://gcc.gnu.org/. In Debian and many other distributions the package
   is called gcc.

 * make, a modern implementation

   The make program is required to build icoutils. icoutils uses Makefiles
   generated by GNU Automake. The recommended make is GNU Make which can be
   downloaded from http://www.gnu.org/software/make/. In Debian and many
   other distributions the package is called make.

The following libraries are required to run icoutils:

 * libpng, 1.0.0 or later.

   The icotool program uses libpng to read and write PNG images. Libpng can
   be downloaded from http://www.libpng.org/pub/png/libpng.html. In Debian,
   the libpng package is called libpng12-0 (libpng3 in stable). The
   libpng12-dev (libpng-dev in stable) package is required when building
   the icoutils.

   Libpng is licensed under the terms of the libpng license. This license
   is almost identical to the ZLib license, which is compatible with GNU
   GPL according to http://www.gnu.org/philosophy/license-list.html. Libpng
   itself depends on ZLib.

The following programs and libraries are required to run the extresso and
genresscript programs which are optional:

 * Perl, probably 5.6 or later

   Perl can be downloaded from http://www.perl.org/. Perl is licensed under
   the terms of either the GNU General Public License or the Artistic
   license (the choice is yours).

 * libwww-perl, probably 5.64 or later

   The extresso perl script uses libwww-perl for fetching files.
   Libwww-perl can be downloaded from http://lwp.linpro.no/lwp/.
   Libwww-perl is licensed under the same terms as Perl itself. This also
   applies to all modules which libwww-perl depends on.

Installation
============

The icoutils programs use GNU Autoconf and GNU Automake. This means you
usually just have to do

   ./configure
   make

to compile the program. If you want to install the necessary files, run the
following as as root:

   make install

For more information regarding configure and make, see the INSTALL
document.

Usage
=====

See the manual pages or the documentation in the doc subdirectory of the
source code tarball.

Homepage
========

Web site and file area for microdc is hosted on Savannah:

   http://www.nongnu.org/icoutils/

Feedback
========

The maintainer of icoutils and this document, Frank Richter, can be reached
via email:

   frank.richter@gmail.com (mailto:frank.richter@gmail.com)

Please send bug reports, suggestions, ideas or comments in general to me.
   
Known Bugs
==========

 * Aside from not compiling on all systems, wrestool MAY not work on
   non-x86 machines due to endian-ness. However, icotool should work on
   little as well as big endian machines.

 * There is no relocation support for 16-bit (NE) binaries. If you find a
   massive deposit of such binaries, let me know.

Possible things to do
=====================

Please see the TODO document.

-