<?xml version="1.0" ?>
<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
<!ENTITY % English "INCLUDE">
]>

<refentry lang="&language;">
<refentryinfo>
<date>March 8, 2003</date>
</refentryinfo>

<refmeta>
<refentrytitle><command>cheatmake</command></refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>

<refnamediv>
<refname><command>cheatmake</command></refname>
<refpurpose>fool <command>make</command> into not rebuilding certain files</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>cheatmake</command>

<group><option>hidechange</option> <replaceable>file</replaceable></group>
<group><option>show</option></group>
<group><option>why</option> <replaceable>file</replaceable></group>
</cmdsynopsis>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para><command>cheatmake</command> is used to save time when
recompiling. It can fool make into skipping files that haven't changed
in a meaningful way. This can be used for instance when you change a
comment in a file but none of the actual code.</para>

<para>This utility is part of the &kde; Software Development Kit. </para>

</refsect1>

<refsect1>
<title>Options</title>

<variablelist>
<varlistentry>
<term><option>hidechange</option> <replaceable>file</replaceable></term>
<listitem><para>Hides the fact that file was changed by setting the timestamp into the past.  Use with care!</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>show</option></term>
<listitem><para>Lists what files <command>make</command> currently needs to rebuild</para></listitem>
</varlistentry>
<varlistentry>
<term><option>why</option> <replaceable>file</replaceable></term>
<listitem><para>Explains why make must rebuild file</para></listitem>
</varlistentry>
</variablelist>
</refsect1>

<refsect1>
<title>Environment</title>

<para>One of the following variables (but not both) should be set if
the source directory is different from the build directory. If the
build directory is simply a subdirectory of the source directory, the
simpler variable <envar>OBJ_SUBDIR</envar> should be used. </para>

<variablelist>
<varlistentry>
<term><envar>OBJ_SUBJDIR</envar></term>
<listitem><para>Indicates that the build directory is in the given subdirectory of the source directory. For instance, if the source directory is <filename class="directory">kdesdk</filename> and the build directory is <filename class="directory">kdesdk/obj-i386-linux</filename>, then <envar>OBJ_SUBDIR</envar> should be set to <parameter>obj-i386-linux</parameter>.</para></listitem>
</varlistentry>
<varlistentry>
<term><envar>OBJ_REPLACEMENT</envar></term>
<listitem><para>A <command>sed</command> expression that is used to transform the source directory into the build directory.  For instance, if the source directory is <filename class="directory">kdesdk/obj-i386-linux</filename>, then <envar>OBJ_REPLACEMENT</envar> should be set to <parameter>s#kdesdk#kdesdk-obj#</parameter>.</para>
</listitem>
</varlistentry>
</variablelist>

</refsect1>

<refsect1>
<title>See Also</title>

<para>make(1)</para>

</refsect1>

<refsect1>
<title>Authors</title>

<para><command>cheatmake</command> was written by &David.Faure; &David.Faure.mail;.  This manual page was
prepared by <personname><firstname>Ben</firstname><surname>Burton</surname></personname>
<email>bab@debian.org</email> for the Debian
<acronym>GNU</acronym>/&Linux; system (but may be used by
others).</para>

</refsect1>

</refentry>
