joachim99@2: KDiff3-Readme joachim99@2: ============= joachim99@2: joachim99@69: Author: Joachim Eibl (joachim.eibl at gmx.de) joachim99@69: Copyright: (C) 2002-2006 by Joachim Eibl joachim99@69: KDiff3-Version: 0.9.89 joachim99@2: joachim99@2: joachim99@2: KDiff3 is a program that joachim99@53: - compares and merges two or three input files or directories, joachim99@2: - shows the differences line by line and character by character (!), joachim99@2: - provides an automatic merge-facility and joachim99@2: - an integrated editor for comfortable solving of merge-conflicts joachim99@53: - has support for KDE-KIO (ftp, sftp, http, fish, smb) joachim99@53: - and has an intuitive graphical user interface. joachim99@53: joachim99@53: joachim99@53: Do you want help translating? Read the README in the po-subdirectory! joachim99@2: joachim99@2: joachim99@2: Licence: joachim99@2: GNU GENERAL PUBLIC LICENSE, Version 2, June 1991 joachim99@2: This program is free software; you can redistribute it and/or modify joachim99@2: it under the terms of the GNU General Public License as published by joachim99@2: the Free Software Foundation; either version 2 of the License, or joachim99@2: (at your option) any later version. joachim99@2: joachim99@2: This program is distributed in the hope that it will be useful, joachim99@2: but WITHOUT ANY WARRANTY; without even the implied warranty of joachim99@2: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the joachim99@2: GNU General Public License for more details. joachim99@2: joachim99@2: You should have received a copy of the GNU General Public License joachim99@2: along with this program; if not, write to the Free Software joachim99@69: Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA joachim99@2: joachim99@2: For details see file "COPYING". joachim99@2: joachim99@12: Exception from the GPL: joachim99@12: As a special exception, the copyright holder Joachim Eibl gives permission joachim99@12: to link this program with the Qt-library (commercial or non-commercial edition) joachim99@12: from Trolltech (www.trolltech.com), and he permits to distribute the resulting joachim99@12: executable, without including the source code for the Qt-library in the joachim99@12: source distribution. joachim99@12: joachim99@2: joachim99@2: Requirements & Installation: joachim99@69: Version 0.9.89 provides special support for KDE3, but it can also be joachim99@12: built without KDE3 if the Qt-libraries are available. joachim99@66: (I also test and use the program under Windows.) joachim99@2: joachim99@12: You always need joachim99@69: - kdiff3-0.9.89.tar.gz joachim99@2: joachim99@12: For building the KDE3-version joachim99@66: - KDE>=3.1 and QT>=3.1-libraries. (QT>=3.2 is recommended) joachim99@12: - gcc, g++ with version >=3.2 joachim99@12: joachim99@12: For building the Qt-only-version joachim99@53: - QT-libraries (version >=3.1.0). joachim99@12: (www.trolltech.com) joachim99@12: - for Un*x: gcc, g++ with version >=3.2 joachim99@66: - for Windows: VC6 / VC7.1 joachim99@12: joachim99@69: On some distributions it will be necessary to install developer joachim99@69: packages (RPMs) that contain include files for compilation: joachim99@69: - xorg-x11-devel (or x11-devel) joachim99@69: - qt-devel joachim99@69: - kdelibs-devel joachim99@2: joachim99@2: Installation for KDE3: joachim99@2: - Make sure your shell-variable QTDIR is correct. (echo $QTDIR). joachim99@2: If it doesn't contain the correct path, type joachim99@2: export QTDIR=your_path_to_qt (e.g. /usr/lib/qt3) joachim99@69: - cd into the directory kdiff3-0.9.89 and type joachim99@12: - ./configure --prefix=/opt/kde3 (your KDE3 directory here) joachim99@12: - (make clean) (Required if you already compiled once.) joachim99@12: - make (Run compilation) joachim99@12: - make install (You must have root-rights for this step.) joachim99@2: joachim99@2: For details also see the generic instructions in file "INSTALL". joachim99@2: joachim99@12: If some icons are not visible or don't seem right, probably the prefix joachim99@12: was wrong. Check where your KDE3 installation is located and joachim99@12: use that directory with the prefix-option of configure. joachim99@58: joachim99@58: This command should tell you: kde-config --prefix joachim99@58: joachim99@12: For SuSE and most distributions the prefix usually is /opt/kde3. joachim99@66: For Redhat/Fedora and Mandrake the prefix usually is /usr. joachim99@12: For a local installation, that doesn't need root rights try joachim99@12: - ./configure --prefix=$KDEHOME ($KDEHOME probably is the same as $HOME/.kde) joachim99@12: - make joachim99@12: - make install (Installs everything in $KDEHOME. No root rights required.) joachim99@12: - Run $KDEHOME/bin/kdiff3. ($KDEHOME/bin is probably not in your path.) joachim99@12: Warning: If a local installation and a global installation exist, the local joachim99@12: menu, toolbar, help etc. will be used, even if you start the global joachim99@12: executable. To avoid confusion, better remove the local version then. joachim99@12: (rm -R `find $KDEHOME -name "*kdiff3*" -not -name "kdiff3*rc"`) joachim99@12: joachim99@69: On Fedora-64-bit systems the following configure-line was reported to work: joachim99@69: ./configure --prefix=`kde-config --prefix` --enable-libsuffix=64 --with-qt-libraries=/usr/lib64/qt-3.3/lib/ joachim99@69: Both --enable-libsuffix=64 and -with-qt-libraries=/usr/lib64/qt-3.3/lib/ are needed; joachim99@69: without the first one it fails to find the KDE libraries, joachim99@69: and without the second one it fails to find libqt-mt joachim99@69: (strangely enough: libqt-mt is in /usr/lib64/qt-3.3/lib, joachim99@69: and "configure" tries /usr/lib64/qt-3.3/lib64) joachim99@69: If your qt-libraries are elsewhere please adapt the path accordingly. joachim99@69: joachim99@69: Some secondary dependencies aren't correctly discovered by configure. joachim99@69: If e.g the a linker error appears telling you something like joachim99@69: "Can't find -lacl" this probably means that you have to install joachim99@69: libacl-devel-*.rpm etc. joachim99@69: joachim99@69: If you run an older version of KDE and the make-process fails in the joachim99@69: doc- or po-directory, cd to the src-directory and run "make" there. Also run joachim99@69: "make install" there. This hopefully will create a working kdiff3-binary, joachim99@69: although without doc and language support. joachim99@69: joachim99@53: Upgrading KDiff3 for KDE: joachim99@53: If you already installed an older version or KDiff3 and you have the joachim99@53: impression, that the new version doesn't work as described, you should try to joachim99@53: remove all files belonging to KDiff3 before reinstalling. joachim99@53: Try this search command to locate KDiff3-related files: joachim99@53: find $HOME/.kde /usr /opt -iname "*kdiff3*" joachim99@53: (Will take a few minutes.) joachim99@53: joachim99@53: joachim99@12: joachim99@12: Installation for the Qt-only-platforms for Un*x: joachim99@12: (for Qt >=3.1.0) joachim99@12: - Make sure your shell-variable QTDIR is correct. (echo $QTDIR). joachim99@12: If it doesn't contain the correct path, type joachim99@12: export QTDIR=your_path_to_qt (e.g. /usr/lib/qt) joachim99@69: - cd into the directory kdiff3-0.9.89/src and type joachim99@12: - make -f Makefile.qt joachim99@12: - make -f Makefile.qt install (You must have root-rights for this step.) joachim99@12: (copies the files into /usr/local/bin and /usr/local/share/doc/kdiff3) joachim99@12: - Note: The file kdiff3.pro was used to generate the Makefile.qt: joachim99@12: qmake kdiff3.pro -o Makefile.qt joachim99@66: If you want to build the Qt-only version _and_ the KDE-version, do this joachim99@66: in separate directories, otherwise there will be errors. joachim99@12: joachim99@12: Build for Windows: joachim99@53: Use qmake and kdiff3.pro to generate joachim99@12: an appropriate Makefile. joachim99@12: qmake kdiff3.pro -o Makefile joachim99@12: joachim99@12: joachim99@69: Building Kdiff3 for Mac OSX 10.3.8 (by Mark Teel) joachim99@69: -------------------------------------------------------- joachim99@69: 1) Install Qt/Mac with thread support and static libraries. joachim99@69: 2) cd .../kdiff3-0.9.89 joachim99@69: 3) Create a makefile for kdiff3 by executing: joachim99@69: qmake src/kdiff3.pro -o Makefile.qt joachim99@69: 4) Edit Makefile.qt and add the definition "KDIFF3" to the following two lines: joachim99@69: CFLAGS = -pipe -Wall -W -Os -DKDIFF3 -DQT_NO_DEBUG ... joachim99@69: CXXFLAGS = -pipe -Wall -W -Os -DKDIFF3 -DQT_NO_DEBUG ... joachim99@69: 5) Edit Makefile.qt and change the include path like so: joachim99@69: (old) INCPATH = -I/Library/qt3/mkspecs/default -Isrc ... joachim99@69: (new) INCPATH = -I/Library/qt3/mkspecs/macx-g++ -Isrc ... joachim99@69: 6) KDiff3-0.9.88-specific: Edit src/kdiff3.cpp line 290 like this: joachim99@69: statusBar()->setSizeGripEnabled(true); joachim99@69: 7) KDiff3-0.9.88-specific: (not necessary for 0.9.89 or later) joachim99@69: Edit /usr/include/mach/ppc/processor_info.h and replace all instances of joachim99@69: "unsigned int word" found in the four register unions (on lines 44, 65, joachim99@69: 74, 82) as follows: joachim99@69: (old) joachim99@69: unsigned int word; joachim99@69: (new) joachim99@69: #if defined(KDIFF3) joachim99@69: unsigned word; joachim99@69: #else joachim99@69: unsigned int word; joachim99@69: #endif joachim99@69: 8) Execute: joachim99@69: make -f Makefile.qt joachim99@69: 9) After the build completes copy kdiff3 from the kdiff3-0.9.89 directory to joachim99@69: /Applications joachim99@12: joachim99@69: joachim99@2: Start from commandline: joachim99@2: - Comparing 2 files: kdiff3 file1 file2 joachim99@2: - Merging 2 files: kdiff3 file1 file2 -o outputfile joachim99@2: - Comparing 3 files: kdiff3 file1 file2 file3 joachim99@2: - Merging 3 files: kdiff3 file1 file2 file3 -o outputfile joachim99@2: Note that file1 will be treated as base of file2 and file3. joachim99@2: joachim99@12: If all files have the same name but are in different directories, you can joachim99@12: reduce typework by specifying the filename only for the first file. E.g.: joachim99@12: - Comparing 3 files: kdiff3 dir1/filename dir2 dir3 joachim99@12: (This also works in the open-dialog.) joachim99@12: joachim99@2: If you start without arguments, then a dialog will appear where you can joachim99@2: select your files via a filebrowser. joachim99@2: joachim99@2: For more documentation, see the help-menu or the subdirectory doc. joachim99@2: joachim99@2: Have fun!