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@75: KDiff3-Version: 0.9.91 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@75: Exception from the GPL: joachim99@75: As a special exception, the copyright holder Joachim Eibl gives permission joachim99@75: to link this program with the Qt-library (commercial or non-commercial edition) joachim99@75: from Trolltech (www.trolltech.com), and he permits to distribute the resulting joachim99@75: executable, without including the source code for the Qt-library in the joachim99@75: source distribution. joachim99@75: joachim99@2: joachim99@2: Requirements & Installation: joachim99@75: Version 0.9.91 provides special support for KDE3, but it can also be joachim99@75: built without KDE3 if the Qt-libraries are available. joachim99@75: (I also test and use the program under Windows.) joachim99@75: It is now also possible to build with Qt4 (See further below). joachim99@2: joachim99@12: You always need joachim99@75: - kdiff3-0.9.91.tar.gz joachim99@75: joachim99@75: For building the KDE3-version joachim99@75: - KDE>=3.3 and QT>=3.3-libraries. (but not with KDE4) joachim99@75: - gcc, g++ with version >=3.2 joachim99@75: joachim99@75: For building the Qt-only-version joachim99@75: - QT-libraries (version >=3.3.0, but <4.0 or >=4.2.0). joachim99@75: (www.trolltech.com) joachim99@75: - for Un*x: gcc, g++ with version >=3.2 joachim99@75: - for Windows: VC6 / VC7.1 joachim99@75: joachim99@75: On some distributions it will be necessary to install developer joachim99@75: packages (RPMs) that contain include files for compilation: joachim99@75: - xorg-x11-devel (or x11-devel) joachim99@75: - qt-devel joachim99@75: - kdelibs-devel joachim99@75: joachim99@75: Installation for KDE3: joachim99@75: - Make sure your shell-variable QTDIR is correct. (echo $QTDIR). joachim99@75: If it doesn't contain the correct path, type joachim99@75: export QTDIR=your_path_to_qt (e.g. /usr/lib/qt3) joachim99@75: - cd into the directory kdiff3-0.9.91 and type joachim99@75: - ./configure --prefix=/opt/kde3 (your KDE3 directory here) joachim99@75: - (make clean) (Required if you already compiled once.) joachim99@75: - make (Run compilation) joachim99@75: - make install (You must have root-rights for this step.) joachim99@75: joachim99@75: For details also see the generic instructions in file "INSTALL". joachim99@75: joachim99@75: If some icons are not visible or don't seem right, probably the prefix joachim99@75: was wrong. Check where your KDE3 installation is located and joachim99@75: use that directory with the prefix-option of configure. joachim99@75: joachim99@75: This command should tell you: kde-config --prefix joachim99@75: joachim99@75: For SuSE and most distributions the prefix usually is /opt/kde3. joachim99@75: For Redhat/Fedora and Mandrake the prefix usually is /usr. joachim99@75: For a local installation, that doesn't need root rights try joachim99@75: - ./configure --prefix=$KDEHOME ($KDEHOME probably is the same as $HOME/.kde) joachim99@75: - make joachim99@75: - make install (Installs everything in $KDEHOME. No root rights required.) joachim99@75: - Run $KDEHOME/bin/kdiff3. ($KDEHOME/bin is probably not in your path.) joachim99@75: Warning: If a local installation and a global installation exist, the local joachim99@75: menu, toolbar, help etc. will be used, even if you start the global joachim99@75: executable. To avoid confusion, better remove the local version then. joachim99@75: (rm -R `find $KDEHOME -name "*kdiff3*" -not -name "kdiff3*rc"`) joachim99@75: joachim99@75: On Fedora-64-bit systems the following configure-line was reported to work: joachim99@75: ./configure --prefix=`kde-config --prefix` --enable-libsuffix=64 --with-qt-libraries=/usr/lib64/qt-3.3/lib/ joachim99@75: Both --enable-libsuffix=64 and -with-qt-libraries=/usr/lib64/qt-3.3/lib/ are needed; joachim99@75: without the first one it fails to find the KDE libraries, joachim99@75: and without the second one it fails to find libqt-mt joachim99@75: (strangely enough: libqt-mt is in /usr/lib64/qt-3.3/lib, joachim99@75: and "configure" tries /usr/lib64/qt-3.3/lib64) joachim99@75: If your qt-libraries are elsewhere please adapt the path accordingly. joachim99@75: joachim99@75: Some secondary dependencies aren't correctly discovered by configure. joachim99@75: If e.g the a linker error appears telling you something like joachim99@75: "Can't find -lacl" this probably means that you have to install joachim99@75: libacl-devel-*.rpm etc. joachim99@75: joachim99@75: If you run an older version of KDE and the make-process fails in the joachim99@75: doc- or po-directory, cd to the src-directory and run "make" there. Also run joachim99@75: "make install" there. This hopefully will create a working kdiff3-binary, joachim99@75: although without doc and language support. joachim99@75: joachim99@75: Upgrading KDiff3 for KDE: joachim99@75: If you already installed an older version or KDiff3 and you have the joachim99@75: impression, that the new version doesn't work as described, you should try to joachim99@75: remove all files belonging to KDiff3 before reinstalling. joachim99@75: Try this search command to locate KDiff3-related files: joachim99@75: find $HOME/.kde /usr /opt -iname "*kdiff3*" joachim99@75: (Will take a few minutes.) joachim99@75: joachim99@75: joachim99@75: Building an RPM for Fedora Core (by Vadim Likhota) joachim99@75: Copy kdiff3-0.9.91.tar.gz into /usr/src/redhat/SOURCE joachim99@75: Copy kdiff3.spec into /usr/src/redhat/SPEC joachim99@75: Run rpmbuild -bb --target i686 kdiff3.spec joachim99@75: Find kdiff3-0.9.91-fc.i686.rpm in /usr/src/redhat/RPMS/I386 joachim99@75: joachim99@75: joachim99@75: Installation for the Qt-only-platforms for Un*x: joachim99@75: (for Qt >=3.3.0 but <4.0) joachim99@75: - Make sure your shell-variable QTDIR is correct. (echo $QTDIR). joachim99@75: If it doesn't contain the correct path, type joachim99@75: export QTDIR=your_path_to_qt (e.g. /usr/lib/qt) joachim99@75: - cd into the directory kdiff3-0.9.91/src and type joachim99@75: - make -f Makefile.qt joachim99@75: - make -f Makefile.qt install (You must have root-rights for this step.) joachim99@75: (copies the files into /usr/local/bin and /usr/local/share/doc/kdiff3) joachim99@75: - Note: The file kdiff3.pro was used to generate the Makefile.qt: joachim99@75: qmake kdiff3.pro -o Makefile.qt joachim99@75: If you want to build the Qt-only version _and_ the KDE-version, do this joachim99@75: in separate directories, otherwise there will be errors. joachim99@75: joachim99@75: Build for Windows: joachim99@75: Use qmake and kdiff3.pro to generate joachim99@75: an appropriate Makefile. joachim99@75: qmake kdiff3.pro -o Makefile joachim99@75: joachim99@75: joachim99@75: Building Kdiff3 for Mac OSX 10.3.8 (by Mark Teel) joachim99@75: -------------------------------------------------- joachim99@75: 1) Install Qt/Mac with thread support and static libraries. joachim99@75: 2) cd .../kdiff3-0.9.91 joachim99@75: 3) Create a makefile for kdiff3 by executing: joachim99@75: qmake src/kdiff3.pro -o Makefile.qt joachim99@75: 4) Edit Makefile.qt and add the definition "KDIFF3" to the following two lines: joachim99@75: CFLAGS = -pipe -Wall -W -Os -DKDIFF3 -DQT_NO_DEBUG ... joachim99@75: CXXFLAGS = -pipe -Wall -W -Os -DKDIFF3 -DQT_NO_DEBUG ... joachim99@75: 5) Edit Makefile.qt and change the include path like so: joachim99@75: (old) INCPATH = -I/Library/qt3/mkspecs/default -Isrc ... joachim99@75: (new) INCPATH = -I/Library/qt3/mkspecs/macx-g++ -Isrc ... joachim99@75: 6) Execute: joachim99@75: make -f Makefile.qt joachim99@75: 7) After the build completes copy kdiff3 from the kdiff3-0.9.91 directory to joachim99@75: /Applications joachim99@75: joachim99@75: ---------------------------------------------------------------- joachim99@75: joachim99@75: Building KDiff3 with Qt4: joachim99@75: joachim99@75: Requirements & Installation: joachim99@75: The version 0.9.91 requires Qt 4.2.0 (from www.trolltech.com) for compilation. joachim99@75: joachim99@75: You always need joachim99@75: - kdiff3-0.9.91.tar.gz joachim99@2: joachim99@73: - for Un*x: gcc, g++ with version >=3.4.2 joachim99@73: Qt-X11-libraries joachim99@12: joachim99@73: - for Windows: Qt-win-libs joachim99@73: If you have the Qt4 commercial edition, then compile with Visual Studio. joachim99@73: If you use the Qt4 open source edition, then you'll need MinGW. joachim99@73: I verified that compilation and debugging works with these packages (probably newer ones will also work): joachim99@73: - gcc-core-3.4.2-20040916-1.tar.gz joachim99@73: - binutils-2.15.91-20040904-1.tar.gz joachim99@73: - gcc-g++-3.4.2-20040916-1.tar.gz joachim99@73: - mingw-runtime-3.9.tar.gz joachim99@73: - mingw32-make-3.80.0-3.tar.gz joachim99@73: - w32api-3.6.tar.gz (see also the note below) joachim99@73: - gdb-5.2.1-1.exe (for debugging) joachim99@75: joachim99@73: (Note: At the time of writing this README, the MinGW-package that was part joachim99@73: of qt-win-opensource-4.1.2-mingw.exe lacked the latest w32api needed for joachim99@73: KDiff3-compilation. You will need to unpack w32api-3.6.tar.gz or newer joachim99@73: from www.mingw.org into your MinGW-directory.) joachim99@12: joachim99@73: - for Mac: gcc, g++ with version >=3.4.2 joachim99@73: Qt-Mac-libraries joachim99@2: joachim99@2: joachim99@73: Note for KDE-users: joachim99@75: The version 0.9.91-Qt4 doesn't provide support for KDE-3.x joachim99@73: because KDE-3.x.y requires Qt3. joachim99@73: If you need KDE-specific features like KIO-support stick to the joachim99@75: normal version 0.9.91. joachim99@2: joachim99@73: Build-instructions (Unix or Mac): joachim99@73: - Make sure your shell-variable QTDIR is correct and that joachim99@73: your path contains the Qt4-bin-directory. joachim99@75: - cd into the directory kdiff3-0.9.91/src-QT4 and type joachim99@73: - qmake kdiff3.pro joachim99@73: - make (or "gmake" for GNU-Make) joachim99@58: joachim99@73: Build-instructions (Windows): joachim99@73: - Run your qtvars.bat in the Qt4-bin directory. joachim99@73: (This should set your QTDIR, QMAKESPEC and PATH-environment-variables.) joachim99@75: - cd into the directory kdiff3-0.9.91/src-Qt4 and type joachim99@73: - qmake kdiff3.pro joachim99@73: - make (which calls either "mingw32-make" or "nmake") joachim99@58: joachim99@73: Debugging with MinGW under Windows: joachim99@75: - The qt-win-opensource-4.2.0-mingw.exe only installs release dlls. You will have to compile the joachim99@75: debug dlls yourself. Enter the qt-4.2.0-directory and run "configure -debug" and then "make". joachim99@75: - cd into the directory kdiff3-0.9.91/src-Qt4 joachim99@73: - edit the file "Makefile.Debug" and in the LFLAGS replace "-Wl,-subsystem,windows" with "-Wl,-subsystem,console" joachim99@73: (this is necessary so that gdb can send a break signal to the running program) joachim99@73: - make debug (create a debuggable executable) joachim99@73: - gdb debug\kdiff3.exe joachim99@73: - At the "(gdb)"-prompt type "run" and enter to start. joachim99@73: - While the program runs you can't set breakpoints, first interrupt it with Ctrl-C. joachim99@73: - Use "help" to find out about how to use gdb. (Important commands: run, break, backtrace, print, quit) joachim99@73: Using break with c++-methods requires to specify the parameter types too. Breakpoints in constructors might not work. joachim99@73: - I've tested graphical gdb-frontends too: joachim99@73: 1. Insight (also from mingw.org) worked until I wanted to interrupt the program for setting breakpoints. joachim99@73: 2. Dev-Cpp: The debugger said that the app crashed before even launching it. joachim99@73: Result: For Windows I recommend gdb on the console. Please tell me when things have improved! joachim99@69: joachim99@75: (End of KDiff3 with Qt4-instructions) joachim99@75: ------------------------------------------------------------------------ joachim99@75: joachim99@75: 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!