Installing jdupes
-----------------------------------------------------------------------------
To install the program with the default options and flags, just issue the
following commands (note that btrfs support is off by default):

make
su root
make install

This installs all jdupes files under /usr/local by default. You may change this
to a different location by editing the Makefile or specifying a PREFIX on the
command line: make PREFIX=/usr install

Various build options are available and can be turned on at compile time by
setting CFLAGS_EXTRA or by passing it to 'make':

make CFLAGS_EXTRA=-DYOUR_OPTION
make CFLAGS_EXTRA='-DYOUR_OPTION_ONE -DYOUR_OPTION_TWO'

This is a list of options that can be "turned on" this way:

OMIT_GETOPT_LONG       Do not use getopt_long() C library call
ON_WINDOWS             Modify code to compile with MinGW on Windows

Certain options need to be turned on by setting a variable passed to make
instead of using CFLAGS_EXTRA, i.e. 'make DEBUG=1':

DEBUG                  Turn on algorithm statistic reporting with '-D'
LOUD                   '-@' for low-level debugging; enables DEBUG
ENABLE_DEDUPE          Enable '-B/--dedupe' deduplication features
STATIC_DEDUPE_H        Build dedupe support with included minimal header file
LOW_MEMORY             Build for extremely low-RAM environments (CAUTION!)
NO_PERMS               Disable permission options and code
NO_HARDLINKS           Disable hard linking options and code
NO_SYMLINKS            Disable symbolic linking options and code
NO_USER_ORDER          Disable -I/-O options and code
NO_UNICODE             [Windows only] disable all Unicode support

The LOW_MEMORY option tweaks various knobs in the program to lower total
memory usage. It also disables some features to reduce the size of certain
data structures. The improvements in memory usage are not very large, but if
you're running in a very RAM-limited environment or have a CPU with very small
caches it may be a good choice. This is primarily meant for use in embedded
systems and should not be used unless you know what you are doing.

A test directory is included so that you may familiarize yourself with the way
jdupes operates. You may test the program before installing it by issuing a
command such as "./jdupes testdir" or "./jdupes -r testdir", just to name a
couple of examples. See the README for information on valid options.

A comparison shell script is also included. It will run your natively
installed 'jdupes' or 'jdupes' with the directories and extra options you
specify and compare the run times and output a 'diff' of the two program
outputs. Unless the core algorithm or sort behavior is changed, both programs
should produce identical outputs and the 'diff' output shouldn't appear at
all. To use it, type:

./compare_jdupes.sh [options]

There are some package generators included as make targets:

chrootpackage  Uses chroots under /chroot to build Linux packages
package        Makes auto-detected macOS/Linux/Windows packages
