annotate kdiff3/README @ 80:fcd146072e0c

0.9.93
author joachim99
date Tue, 06 Jan 2009 17:51:29 +0000
parents 1184fc843210
children 4e6ebbbae925
rev   line source
joachim99@2 1 KDiff3-Readme
joachim99@2 2 =============
joachim99@2 3
joachim99@69 4 Author: Joachim Eibl (joachim.eibl at gmx.de)
joachim99@80 5 Copyright: (C) 2002-2008 by Joachim Eibl
joachim99@80 6 KDiff3-Version: 0.9.93
joachim99@2 7
joachim99@80 8 KDiff3 runs best on KDE but can be built without it, depending only on Qt-libs.
joachim99@80 9 These are available for Un*x, Windows, Mac.
joachim99@80 10 Thus there are many setup possibilities to consider.
joachim99@80 11
joachim99@80 12 From version 0.9.93 on the main target platform is KDE4/Qt4.
joachim99@80 13 For KDiff3 for KDE3/Qt3 use KDiff3-0.9.92 or older.
joachim99@80 14
joachim99@80 15 Contents
joachim99@80 16 --------
joachim99@80 17
joachim99@80 18 - Introduction
joachim99@80 19 - License
joachim99@80 20 - Requirements & Installation
joachim99@80 21 - For KDE4
joachim99@80 22 - With Qt4-libs, without KDE
joachim99@80 23 - for Linux/Un*x
joachim99@80 24 - for Windows
joachim99@80 25 - Debugging with MinGW under Windows:
joachim99@80 26 - for Mac: Building KDiff3 for Mac OSX (with Intel processor) as a universal binary
joachim99@80 27 - Additional hints
joachim99@80 28
joachim99@80 29
joachim99@80 30 Introduction
joachim99@80 31 ------------
joachim99@2 32
joachim99@2 33 KDiff3 is a program that
joachim99@53 34 - compares and merges two or three input files or directories,
joachim99@2 35 - shows the differences line by line and character by character (!),
joachim99@2 36 - provides an automatic merge-facility and
joachim99@2 37 - an integrated editor for comfortable solving of merge-conflicts
joachim99@80 38 - has support for KDE-KIO (ftp, sftp, http, fish, smb),
joachim99@80 39 - has an intuitive graphical user interface,
joachim99@80 40 - provides a context menu for KDE-Konqueror and Windows-Explorer,
joachim99@80 41 - supports 64 bit systems. (Some build issues are discussed in here.)
joachim99@53 42
joachim99@53 43 Do you want help translating? Read the README in the po-subdirectory!
joachim99@2 44
joachim99@2 45
joachim99@80 46 License
joachim99@80 47 -------
joachim99@80 48
joachim99@2 49 GNU GENERAL PUBLIC LICENSE, Version 2, June 1991
joachim99@2 50 This program is free software; you can redistribute it and/or modify
joachim99@2 51 it under the terms of the GNU General Public License as published by
joachim99@2 52 the Free Software Foundation; either version 2 of the License, or
joachim99@2 53 (at your option) any later version.
joachim99@2 54
joachim99@2 55 This program is distributed in the hope that it will be useful,
joachim99@2 56 but WITHOUT ANY WARRANTY; without even the implied warranty of
joachim99@2 57 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
joachim99@2 58 GNU General Public License for more details.
joachim99@2 59
joachim99@2 60 You should have received a copy of the GNU General Public License
joachim99@2 61 along with this program; if not, write to the Free Software
joachim99@69 62 Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA
joachim99@2 63
joachim99@2 64 For details see file "COPYING".
joachim99@2 65
joachim99@75 66 Exception from the GPL:
joachim99@75 67 As a special exception, the copyright holder Joachim Eibl gives permission
joachim99@80 68 to link this program with the Qt-library (commercial or open source edition)
joachim99@75 69 from Trolltech (www.trolltech.com), and he permits to distribute the resulting
joachim99@75 70 executable, without including the source code for the Qt-library in the
joachim99@75 71 source distribution.
joachim99@75 72
joachim99@2 73
joachim99@80 74 Requirements & Installation
joachim99@80 75 ---------------------------
joachim99@80 76
joachim99@80 77 - for KDE4:
joachim99@80 78 From version 0.9.93 on KDiff3 supports KDE4.
joachim99@80 79 For installation on most distributions you usually also require these packages (names as on opensuse):
joachim99@80 80 - g++ (g++, version 3.4 or newer)
joachim99@80 81 - libqt4-devel (Qt4-libs, version 4.4.0 or newer)
joachim99@80 82 - libkde4-devel (KDE4 Header files and development libraries)
joachim99@80 83 - libkonq-devel (optional, needed for the kdiff3-plugin, if not installed
joachim99@80 84 then the contextmenu plugin for konqueror won't be built.)
joachim99@80 85 - cmake (>2.6, checks dependencies and creates the Makefiles appopriate for your system)
joachim99@80 86
joachim99@80 87 Typically in a terminal (e.g. konsole) you cd into the kdiff3-directory and run these commands.
joachim99@80 88
joachim99@80 89 mkdir release # create sub directory
joachim99@80 90 cd release # cd into that directory
joachim99@80 91 kde4-config --prefix # Find out your KDE4-directory and note the result
joachim99@80 92 cmake .. -DCMAKE_INSTALL_PREFIX=<KDE4-prefix> # create Makefile, replace <KDE4-prefix> with the prior result
joachim99@80 93 make # run make (compile and link)
joachim99@80 94 sudo make install # install as root user
joachim99@80 95
joachim99@80 96 Now KDiff3 should be ready to use. Type "kdiff3" to start it.
joachim99@80 97 There should also be a entry in your KDE-start menu in "(Applications->)Development".
joachim99@80 98
joachim99@80 99 For creating a debug version:
joachim99@80 100 mkdir debug
joachim99@80 101 cd debug
joachim99@80 102 kde4-config --prefix # Find out your KDE4-directory and note the result
joachim99@80 103 cmake .. -DCMAKE_INSTALL_PREFIX=<KDE4-prefix> -DCMAKE_BUILD_TYPE=debugfull
joachim99@80 104 make
joachim99@80 105 sudo make install
joachim99@80 106
joachim99@80 107 The <KDE4-prefix> depends on your distribution:
joachim99@80 108 The command "kde4-config --prefix" should tell you.
joachim99@80 109 - For opensuse 11 use "/usr".
joachim99@80 110
joachim99@80 111 - Building KDiff3 with Qt4-libs, but without KDE
joachim99@80 112 - for Linux/Un*x
joachim99@80 113 - for Windows
joachim99@80 114 - for Mac
joachim99@80 115
joachim99@80 116 The version 0.9.93 requires Qt 4.4.0 or newer (from www.trolltech.com) for compilation.
joachim99@2 117
joachim99@12 118 You always need
joachim99@80 119 - kdiff3-0.9.93.tar.gz
joachim99@2 120
joachim99@73 121 - for Un*x: gcc, g++ with version >=3.4.2
joachim99@73 122 Qt-X11-libraries
joachim99@12 123
joachim99@73 124 - for Windows: Qt-win-libs
joachim99@80 125 If you have the Qt4 commercial edition, then compile with Visual Studio.NET2003 or newer.
joachim99@73 126 If you use the Qt4 open source edition, then you'll need MinGW.
joachim99@73 127 I verified that compilation and debugging works with these packages (probably newer ones will also work):
joachim99@80 128 - Use MinGW-5.1.4.exe or newer to install the following or newer:
joachim99@80 129 - gcc-core-3.4.5-20060117-1.tar.gz
joachim99@80 130 - binutils-2.17.50-20060824-1.tar.gz
joachim99@80 131 - gcc-g++-3.4.5-20060117-1.tar.gz
joachim99@80 132 - mingw-runtime-3.14.tar.gz
joachim99@80 133 - mingw32-make-3.81-2.tar.gz
joachim99@80 134 - w32api-3.11.tar.gz
joachim99@80 135 - gdb-6.3-2.exe (for debugging)
joachim99@12 136
joachim99@73 137 - for Mac: gcc, g++ with version >=3.4.2
joachim99@73 138 Qt-Mac-libraries
joachim99@80 139 - Optional: Qt Creator IDE: Development environment optimized for Qt (http://trolltech.com/developer/qt-creator)
joachim99@2 140
joachim99@80 141 Build-instructions (Un*x):
joachim99@80 142 - Make sure your shell-variable QTDIR is correct and that
joachim99@80 143 your path contains the Qt4-bin-directory.
joachim99@80 144 - cd into the directory kdiff3-0.9.93/src-QT4 and type
joachim99@80 145 - qmake kdiff3.pro
joachim99@80 146 - make (or "gmake" for GNU-Make)
joachim99@2 147
joachim99@80 148 Build-instructions (Windows):
joachim99@80 149 - set QTDIR=<QT4-dir> e.g.: c:\qt\4.4.1
joachim99@80 150 set "PATH=%QTDIR%\bin;%PATH%"
joachim99@80 151 - cd into the directory kdiff3-0.9.93\src-Qt4 and type
joachim99@80 152 - qmake kdiff3.pro
joachim99@80 153 - Either "nmake" for Visual Studio or "mingw32-make" depending on what you have.
joachim99@2 154
joachim99@80 155 Debugging with MinGW under Windows:
joachim99@80 156 - Qt Creator worked very good as debugger frontend too!
joachim99@80 157 - Debugging without gdb on the console:
joachim99@80 158 - The qt-win-opensource-4.4.1-mingw.exe only installs release dlls. You will have to compile the
joachim99@80 159 debug dlls yourself. Enter the qt-4.4.1-directory and run "configure -debug" and then "mingw32-make".
joachim99@80 160 - cd into the directory kdiff3-0.9.93\src-Qt4
joachim99@80 161 - edit the file "Makefile.Debug" and in the LFLAGS replace "-Wl,-subsystem,windows" with "-Wl,-subsystem,console"
joachim99@80 162 (this is necessary so that gdb can send a break signal to the running program)
joachim99@80 163 - mingw32-make debug (create a debuggable executable)
joachim99@80 164 - gdb debug\kdiff3.exe
joachim99@80 165 - At the "(gdb)"-prompt type "run" and enter to start.
joachim99@80 166 - While the program runs you can't set breakpoints, first interrupt it with Ctrl-C.
joachim99@80 167 - Use "help" to find out about how to use gdb. (Important commands: run, break, backtrace, print, quit)
joachim99@80 168 Using break with c++-methods requires to specify the parameter types too. Breakpoints in constructors might not work.
joachim99@58 169
joachim99@80 170 Building KDiff3 (Qt4) for Mac OSX (with Intel processor) as a universal binary (by Michael Schmidt)
joachim99@80 171 1) Install Qt/Mac 4.x with thread support, static libraries and universal flag.
joachim99@80 172 (For Qt4 run "configure -static"; only necessary if the final binary should not require shared Qt4-libs.)
joachim99@80 173 2) cd .../kdiff3-0.9.93/src-QT4
joachim99@80 174 3a) Create a makefile for kdiff3 by executing:
joachim99@80 175 qmake kdiff3.pro
joachim99@80 176 3b) optionally generate XCode-Project (for debugging purposes only) by executing:
joachim99@80 177 qmake -spec macx-xcode kdiff3.pro
joachim99@80 178 4) Execute:
joachim99@80 179 make
joachim99@80 180 5) After the build completes copy kdiff3 from the kdiff3-0.9.93/src-QT4 directory to
joachim99@80 181 /Applications
joachim99@58 182
joachim99@69 183
joachim99@75 184 (End of KDiff3 with Qt4-instructions)
joachim99@75 185 ------------------------------------------------------------------------
joachim99@75 186
joachim99@80 187 Additional hints
joachim99@80 188 ----------------
joachim99@75 189
joachim99@80 190 Start from commandline:
joachim99@80 191 - Comparing 2 files: kdiff3 file1 file2
joachim99@80 192 - Merging 2 files: kdiff3 file1 file2 -o outputfile
joachim99@80 193 - Comparing 3 files: kdiff3 file1 file2 file3
joachim99@80 194 - Merging 3 files: kdiff3 file1 file2 file3 -o outputfile
joachim99@80 195 Note that file1 will be treated as base of file2 and file3.
joachim99@2 196
joachim99@80 197 If all files have the same name but are in different directories, you can
joachim99@80 198 reduce typework by specifying the filename only for the first file. E.g.:
joachim99@80 199 - Comparing 3 files: kdiff3 dir1/filename dir2 dir3
joachim99@80 200 (This also works in the open-dialog.)
joachim99@12 201
joachim99@80 202 If you start without arguments, then a dialog will appear where you can
joachim99@80 203 select your files via a filebrowser.
joachim99@2 204
joachim99@80 205 For more documentation, see the help-menu or the subdirectory doc.
joachim99@2 206
joachim99@80 207 Have fun!