view kdiff3/README @ 70:5bbfe4784324

KDiff3 0.9.89 for Qt4
author joachim99
date Tue, 18 Apr 2006 20:19:57 +0000
parents 8febbfb1148c
children f7dad0aa6146
line wrap: on
line source
KDiff3-Readme
=============

Author: Joachim Eibl  (joachim.eibl at gmx.de)
Copyright: (C) 2002-2006 by Joachim Eibl
KDiff3-Version: 0.9.89


KDiff3 is a program that
- compares and merges two or three input files or directories,
- shows the differences line by line and character by character (!),
- provides an automatic merge-facility and
- an integrated editor for comfortable solving of merge-conflicts
- has support for KDE-KIO (ftp, sftp, http, fish, smb)
- and has an intuitive graphical user interface.


Do you want help translating? Read the README in the po-subdirectory!


Licence:
    GNU GENERAL PUBLIC LICENSE, Version 2, June 1991
    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., 51 Franklin Steet, Fifth Floor, Boston, MA  02111-1307  USA

    For details see file "COPYING".

Exception from the GPL:
    As a special exception, the copyright holder Joachim Eibl gives permission
    to link this program with the Qt-library (commercial or non-commercial edition)
    from Trolltech (www.trolltech.com), and he permits to distribute the resulting
    executable, without including the source code for the Qt-library in the
    source distribution.


Requirements & Installation:
   Version 0.9.89 provides special support for KDE3, but it can also be
   built without KDE3 if the Qt-libraries are available.
   (I also test and use the program under Windows.)

   You always need
      - kdiff3-0.9.89.tar.gz

   For building the KDE3-version
      - KDE>=3.1 and QT>=3.1-libraries. (QT>=3.2 is recommended)
      - gcc, g++ with version >=3.2

   For building the Qt-only-version
      - QT-libraries (version >=3.1.0).
        (www.trolltech.com)
      - for Un*x:    gcc, g++ with version >=3.2
      - for Windows: VC6 / VC7.1

   On some distributions it will be necessary to install developer
   packages (RPMs) that contain include files for compilation:
      - xorg-x11-devel (or x11-devel)
      - qt-devel
      - kdelibs-devel

Installation for KDE3:
   - Make sure your shell-variable QTDIR is correct. (echo $QTDIR).
     If it doesn't contain the correct path, type
        export QTDIR=your_path_to_qt  (e.g. /usr/lib/qt3)
   - cd into the directory kdiff3-0.9.89 and type
   - ./configure --prefix=/opt/kde3           (your KDE3 directory here)
   - (make clean)                    (Required if you already compiled once.)
   - make                            (Run compilation)
   - make install                    (You must have root-rights for this step.)

   For details also see the generic instructions in file "INSTALL".

   If some icons are not visible or don't seem right, probably the prefix
   was wrong. Check where your KDE3 installation is located and
   use that directory with the prefix-option of configure.

   This command should tell you: kde-config --prefix

   For SuSE and most distributions the prefix usually is /opt/kde3.
   For Redhat/Fedora and Mandrake the prefix usually is /usr.
   For a local installation, that doesn't need root rights try
   - ./configure --prefix=$KDEHOME  ($KDEHOME probably is the same as $HOME/.kde)
   - make
   - make install    (Installs everything in $KDEHOME. No root rights required.)
   - Run $KDEHOME/bin/kdiff3. ($KDEHOME/bin is probably not in your path.)
   Warning: If a local installation and a global installation exist, the local
            menu, toolbar, help etc. will be used, even if you start the global
            executable. To avoid confusion, better remove the local version then.
            (rm -R `find $KDEHOME -name "*kdiff3*" -not -name "kdiff3*rc"`)

   On Fedora-64-bit systems the following configure-line was reported to work:
   ./configure --prefix=`kde-config --prefix` --enable-libsuffix=64 --with-qt-libraries=/usr/lib64/qt-3.3/lib/
   Both --enable-libsuffix=64 and -with-qt-libraries=/usr/lib64/qt-3.3/lib/ are needed;
   without the first one it fails to find the KDE libraries,
   and without the second one it fails to find libqt-mt
   (strangely enough: libqt-mt is in /usr/lib64/qt-3.3/lib, 
   and "configure" tries /usr/lib64/qt-3.3/lib64)
   If your qt-libraries are elsewhere please adapt the path accordingly.

   Some secondary dependencies aren't correctly discovered by configure.
   If e.g the a linker error appears telling you something like
   "Can't find -lacl" this probably means that you have to install 
   libacl-devel-*.rpm etc.

   If you run an older version of KDE and the make-process fails in the
   doc- or po-directory, cd to the src-directory and run "make" there. Also run 
   "make install" there. This hopefully will create a working kdiff3-binary,
   although without doc and language support.

Upgrading KDiff3 for KDE:
   If you already installed an older version or KDiff3 and you have the 
   impression, that the new version doesn't work as described, you should try to 
   remove all files belonging to KDiff3 before reinstalling. 
   Try this search command to locate KDiff3-related files:
      find $HOME/.kde /usr /opt -iname "*kdiff3*"
   (Will take a few minutes.)
   


Installation for the Qt-only-platforms for Un*x:
   (for Qt >=3.1.0)
   - Make sure your shell-variable QTDIR is correct. (echo $QTDIR).
     If it doesn't contain the correct path, type
        export QTDIR=your_path_to_qt  (e.g. /usr/lib/qt)
   - cd into the directory kdiff3-0.9.89/src and type
   - make -f Makefile.qt
   - make -f Makefile.qt install     (You must have root-rights for this step.)
     (copies the files into /usr/local/bin and /usr/local/share/doc/kdiff3)
   - Note: The file kdiff3.pro was used to generate the Makefile.qt:
           qmake kdiff3.pro -o Makefile.qt
   If you want to build the Qt-only version _and_ the KDE-version, do this
   in separate directories, otherwise there will be errors. 

Build for Windows:
 Use qmake and kdiff3.pro to generate
 an appropriate Makefile.
     qmake kdiff3.pro -o Makefile


Building Kdiff3 for Mac OSX 10.3.8 (by Mark Teel)
--------------------------------------------------------
   1) Install Qt/Mac with thread support and static libraries.
   2) cd .../kdiff3-0.9.89
   3) Create a makefile for kdiff3 by executing:
      qmake src/kdiff3.pro -o Makefile.qt
   4) Edit Makefile.qt and add the definition "KDIFF3" to the following two lines:
      CFLAGS   = -pipe -Wall -W -Os  -DKDIFF3 -DQT_NO_DEBUG ...
      CXXFLAGS = -pipe -Wall -W -Os  -DKDIFF3 -DQT_NO_DEBUG ...
   5) Edit Makefile.qt and change the include path like so:
      (old) INCPATH  = -I/Library/qt3/mkspecs/default -Isrc ...
      (new) INCPATH  = -I/Library/qt3/mkspecs/macx-g++ -Isrc ...
   6) KDiff3-0.9.88-specific: Edit src/kdiff3.cpp line 290 like this:
         statusBar()->setSizeGripEnabled(true);
   7) KDiff3-0.9.88-specific: (not necessary for 0.9.89 or later)
      Edit /usr/include/mach/ppc/processor_info.h and replace all instances of
      "unsigned int word" found in the four register unions (on lines 44, 65, 
      74, 82) as follows:
      (old)
         unsigned int word;
      (new)
      #if defined(KDIFF3)
         unsigned word;
      #else
         unsigned int word;
      #endif
   8) Execute:
      make -f Makefile.qt
   9) After the build completes copy kdiff3 from the kdiff3-0.9.89 directory to
      /Applications


Start from commandline:
- Comparing 2 files:     kdiff3 file1 file2
- Merging 2 files:       kdiff3 file1 file2 -o outputfile
- Comparing 3 files:     kdiff3 file1 file2 file3
- Merging 3 files:       kdiff3 file1 file2 file3 -o outputfile
     Note that file1 will be treated as base of file2 and file3.

If all files have the same name but are in different directories, you can
reduce typework by specifying the filename only for the first file. E.g.:
- Comparing 3 files:     kdiff3 dir1/filename dir2 dir3
(This also works in the open-dialog.)

If you start without arguments, then a dialog will appear where you can
select your files via a filebrowser.

For more documentation, see the help-menu or the subdirectory doc.

Have fun!