icoutils
========

The icoutils are a set of program for extracting and converting
bitmaps from Microsoft Windows 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). (Such embedded
files are referred to as resources.)

The icotool program (also in icoutils) converts .ico and .cur files
into a set of .xpm images. (Each .ico or .cur file may contain
multiple images, usually of different sizes and with different
number of colors.) (The xpm format was chosen because it is
simple to generate and supports transparent backgrounds.)

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
operating systems as well. Other types of embedded resourced
can be extracted as well (but only in raw form - icons and cursors
require additional conversion before they can be saved to
.ico and .cur files).

The extresso script (written in perl) automates the tasks of
extracting icons and converting them into xpm files with the help
of special resource scripts. (The purpose of these scripts are
to give names to the icons in the resource files.)

The icoutils were designed to compile and run on Linux systems with
GNU libc (2.0 or later). However, with some tweaking, it might work
on other non-Linux systems as well.

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

The icoutils are copyright (C) 1998-2002 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 2 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, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

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

The following programs are required to build icoutils:

* C compiler
  Any modern compiler should do, I hope.

The following programs are required at run-time:

* GNU libc6 2.0 or later
  The icoutils *may* use some GNU-specific extensions to the C library,
  but I'm not sure.

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

The icoutils programs use GNU autoconf and automake. This means you
usually just have to do

  $ ./configure
  $ make

to compile the program. If you want to install the necessary files,
do this as as root:

  # make install

For more information on configure and autoconf, consult the INSTALL document
in this directory.

Usage
=====

See the .txt or .html documents in the doc subdirectory.

Directory overview
==================

common/
extresso/
icotool/
wrestool/
  Source and header file directories.

doc/
  Documentation files. Unfortunately, autoconf forces quite a
  few of these files to be placed in the root (and makes it
  impossible to use symlinks).

data/icons/
  PNG files which I intend to create an .ICO file from as soon as
  icotool supports creation of such files.

data/resscripts/
  Resource scripts for use with extresso.

data/icewm/
  Configuration files and such for use with icewm.

Homepage
========

The latest version of the icoutils can be downloaded from

  http://www.student.lu.se/~nbi98oli/

Feedback
========

The author of icoutils and this document, Oskar Liljeblad, can be
reached via email:

  oskar@osk.mine.nu

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

Known Bugs
==========

 * Aside from not compiling on all systems, wrestool will probably not
   work on big endian machines (non x86). However, icotool should
   work on little as well as big endian machines.

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

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

Please see the TODO document.

-
