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!
|