comparison kdiff3/README @ 80:fcd146072e0c

0.9.93
author joachim99
date Tue, 06 Jan 2009 17:51:29 +0000
parents 1184fc843210
children 4e6ebbbae925
comparison
equal deleted inserted replaced
79:881e47f5076b 80:fcd146072e0c
1 KDiff3-Readme 1 KDiff3-Readme
2 ============= 2 =============
3 3
4 Author: Joachim Eibl (joachim.eibl at gmx.de) 4 Author: Joachim Eibl (joachim.eibl at gmx.de)
5 Copyright: (C) 2002-2006 by Joachim Eibl 5 Copyright: (C) 2002-2008 by Joachim Eibl
6 KDiff3-Version: 0.9.92 6 KDiff3-Version: 0.9.93
7 7
8 KDiff3 runs best on KDE but can be built without it, depending only on Qt-libs.
9 These are available for Un*x, Windows, Mac.
10 Thus there are many setup possibilities to consider.
11
12 From version 0.9.93 on the main target platform is KDE4/Qt4.
13 For KDiff3 for KDE3/Qt3 use KDiff3-0.9.92 or older.
14
15 Contents
16 --------
17
18 - Introduction
19 - License
20 - Requirements & Installation
21 - For KDE4
22 - With Qt4-libs, without KDE
23 - for Linux/Un*x
24 - for Windows
25 - Debugging with MinGW under Windows:
26 - for Mac: Building KDiff3 for Mac OSX (with Intel processor) as a universal binary
27 - Additional hints
28
29
30 Introduction
31 ------------
8 32
9 KDiff3 is a program that 33 KDiff3 is a program that
10 - compares and merges two or three input files or directories, 34 - compares and merges two or three input files or directories,
11 - shows the differences line by line and character by character (!), 35 - shows the differences line by line and character by character (!),
12 - provides an automatic merge-facility and 36 - provides an automatic merge-facility and
13 - an integrated editor for comfortable solving of merge-conflicts 37 - an integrated editor for comfortable solving of merge-conflicts
14 - has support for KDE-KIO (ftp, sftp, http, fish, smb) 38 - has support for KDE-KIO (ftp, sftp, http, fish, smb),
15 - and has an intuitive graphical user interface, 39 - has an intuitive graphical user interface,
16 - also supports 64 bit systems. (Some build issues are discussed in here.) 40 - provides a context menu for KDE-Konqueror and Windows-Explorer,
17 41 - supports 64 bit systems. (Some build issues are discussed in here.)
18 42
19 Do you want help translating? Read the README in the po-subdirectory! 43 Do you want help translating? Read the README in the po-subdirectory!
20 44
21 45
22 License: 46 License
47 -------
48
23 GNU GENERAL PUBLIC LICENSE, Version 2, June 1991 49 GNU GENERAL PUBLIC LICENSE, Version 2, June 1991
24 This program is free software; you can redistribute it and/or modify 50 This program is free software; you can redistribute it and/or modify
25 it under the terms of the GNU General Public License as published by 51 it under the terms of the GNU General Public License as published by
26 the Free Software Foundation; either version 2 of the License, or 52 the Free Software Foundation; either version 2 of the License, or
27 (at your option) any later version. 53 (at your option) any later version.
37 63
38 For details see file "COPYING". 64 For details see file "COPYING".
39 65
40 Exception from the GPL: 66 Exception from the GPL:
41 As a special exception, the copyright holder Joachim Eibl gives permission 67 As a special exception, the copyright holder Joachim Eibl gives permission
42 to link this program with the Qt-library (commercial or non-commercial edition) 68 to link this program with the Qt-library (commercial or open source edition)
43 from Trolltech (www.trolltech.com), and he permits to distribute the resulting 69 from Trolltech (www.trolltech.com), and he permits to distribute the resulting
44 executable, without including the source code for the Qt-library in the 70 executable, without including the source code for the Qt-library in the
45 source distribution. 71 source distribution.
46 72
47 73
48 Requirements & Installation: 74 Requirements & Installation
49 Version 0.9.91 provides special support for KDE3, but it can also be 75 ---------------------------
50 built without KDE3 if the Qt-libraries are available. 76
51 (I also test and use the program under Windows.) 77 - for KDE4:
52 It is now also possible to build with Qt4 (See further below). 78 From version 0.9.93 on KDiff3 supports KDE4.
79 For installation on most distributions you usually also require these packages (names as on opensuse):
80 - g++ (g++, version 3.4 or newer)
81 - libqt4-devel (Qt4-libs, version 4.4.0 or newer)
82 - libkde4-devel (KDE4 Header files and development libraries)
83 - libkonq-devel (optional, needed for the kdiff3-plugin, if not installed
84 then the contextmenu plugin for konqueror won't be built.)
85 - cmake (>2.6, checks dependencies and creates the Makefiles appopriate for your system)
86
87 Typically in a terminal (e.g. konsole) you cd into the kdiff3-directory and run these commands.
88
89 mkdir release # create sub directory
90 cd release # cd into that directory
91 kde4-config --prefix # Find out your KDE4-directory and note the result
92 cmake .. -DCMAKE_INSTALL_PREFIX=<KDE4-prefix> # create Makefile, replace <KDE4-prefix> with the prior result
93 make # run make (compile and link)
94 sudo make install # install as root user
95
96 Now KDiff3 should be ready to use. Type "kdiff3" to start it.
97 There should also be a entry in your KDE-start menu in "(Applications->)Development".
98
99 For creating a debug version:
100 mkdir debug
101 cd debug
102 kde4-config --prefix # Find out your KDE4-directory and note the result
103 cmake .. -DCMAKE_INSTALL_PREFIX=<KDE4-prefix> -DCMAKE_BUILD_TYPE=debugfull
104 make
105 sudo make install
106
107 The <KDE4-prefix> depends on your distribution:
108 The command "kde4-config --prefix" should tell you.
109 - For opensuse 11 use "/usr".
110
111 - Building KDiff3 with Qt4-libs, but without KDE
112 - for Linux/Un*x
113 - for Windows
114 - for Mac
115
116 The version 0.9.93 requires Qt 4.4.0 or newer (from www.trolltech.com) for compilation.
53 117
54 You always need 118 You always need
55 - kdiff3-0.9.91.tar.gz 119 - kdiff3-0.9.93.tar.gz
56
57 For building the KDE3-version
58 - KDE>=3.3 and QT>=3.3-libraries. (but not with KDE4)
59 - gcc, g++ with version >=3.2
60
61 For building the Qt-only-version
62 - QT-libraries (version >=3.3.0, but <4.0 or >=4.2.0).
63 (www.trolltech.com)
64 - for Un*x: gcc, g++ with version >=3.2
65 - for Windows: VC6 / VC7.1
66
67 On some distributions it will be necessary to install developer
68 packages (RPMs) that contain include files for compilation:
69 - xorg-x11-devel (or x11-devel)
70 - qt-devel
71 - kdelibs-devel
72
73 Installation for KDE3:
74 - Make sure your shell-variable QTDIR is correct. (echo $QTDIR).
75 If it doesn't contain the correct path, type
76 export QTDIR=your_path_to_qt (e.g. /usr/lib/qt3)
77 - cd into the directory kdiff3-0.9.91 and type
78 - ./configure --prefix=/opt/kde3 (your KDE3 directory here)
79 - (make clean) (Required if you already compiled once.)
80 - make (Run compilation)
81 - make install (You must have root-rights for this step.)
82
83 For details also see the generic instructions in file "INSTALL".
84
85 If some icons are not visible or don't seem right, probably the prefix
86 was wrong. Check where your KDE3 installation is located and
87 use that directory with the prefix-option of configure.
88
89 This command should tell you: kde-config --prefix
90
91 For SuSE and most distributions the prefix usually is /opt/kde3.
92 For Redhat/Fedora and Mandrake the prefix usually is /usr.
93 For a local installation, that doesn't need root rights try
94 - ./configure --prefix=$KDEHOME ($KDEHOME probably is the same as $HOME/.kde)
95 - make
96 - make install (Installs everything in $KDEHOME. No root rights required.)
97 - Run $KDEHOME/bin/kdiff3. ($KDEHOME/bin is probably not in your path.)
98 Warning: If a local installation and a global installation exist, the local
99 menu, toolbar, help etc. will be used, even if you start the global
100 executable. To avoid confusion, better remove the local version then.
101 (rm -R `find $KDEHOME -name "*kdiff3*" -not -name "kdiff3*rc"`)
102
103 On Fedora-64-bit systems the following configure-line was reported to work:
104 ./configure --prefix=`kde-config --prefix` --enable-libsuffix=64 --with-qt-libraries=/usr/lib64/qt-3.3/lib/
105 Both --enable-libsuffix=64 and -with-qt-libraries=/usr/lib64/qt-3.3/lib/ are needed;
106 without the first one it fails to find the KDE libraries,
107 and without the second one it fails to find libqt-mt
108 (strangely enough: libqt-mt is in /usr/lib64/qt-3.3/lib,
109 and "configure" tries /usr/lib64/qt-3.3/lib64)
110 If your qt-libraries are elsewhere please adapt the path accordingly.
111
112 Some secondary dependencies aren't correctly discovered by configure.
113 If e.g the a linker error appears telling you something like
114 "Can't find -lacl" this probably means that you have to install
115 libacl-devel-*.rpm etc.
116
117 If you run an older version of KDE and the make-process fails in the
118 doc- or po-directory, cd to the src-directory and run "make" there. Also run
119 "make install" there. This hopefully will create a working kdiff3-binary,
120 although without doc and language support.
121
122 Upgrading KDiff3 for KDE:
123 If you already installed an older version or KDiff3 and you have the
124 impression, that the new version doesn't work as described, you should try to
125 remove all files belonging to KDiff3 before reinstalling.
126 Try this search command to locate KDiff3-related files:
127 find $HOME/.kde /usr /opt -iname "*kdiff3*"
128 (Will take a few minutes.)
129
130
131 Building an RPM for Fedora Core (by Vadim Likhota)
132 Copy kdiff3-0.9.91.tar.gz into /usr/src/redhat/SOURCE
133 Copy kdiff3.spec into /usr/src/redhat/SPEC
134 Run rpmbuild -bb --target i686 kdiff3.spec
135 Find kdiff3-0.9.91-fc.i686.rpm in /usr/src/redhat/RPMS/I386
136
137
138 Installation for the Qt-only-platforms for Un*x:
139 (for Qt >=3.3.0 but <4.0)
140 - Make sure your shell-variable QTDIR is correct. (echo $QTDIR).
141 If it doesn't contain the correct path, type
142 export QTDIR=your_path_to_qt (e.g. /usr/lib/qt)
143 - cd into the directory kdiff3-0.9.91/src and type
144 - make -f Makefile.qt
145 - make -f Makefile.qt install (You must have root-rights for this step.)
146 (copies the files into /usr/local/bin and /usr/local/share/doc/kdiff3)
147 - Note: The file kdiff3.pro was used to generate the Makefile.qt:
148 qmake kdiff3.pro -o Makefile.qt
149 If you want to build the Qt-only version _and_ the KDE-version, do this
150 in separate directories, otherwise there will be errors.
151 - A user reported that on his 64-bit machine running FC4 he had to edit his Makefile.qt
152 LIBS = $(SUBLIBS) -L/usr/lib64/ -L$(QTDIR)/lib64/ -L/usr/lib -L$(QTDIR)/lib/ -L/usr/X11R6/lib/ -L/usr/X11R6/lib64/ -lqt-mt -lXext -lX11 -lm -lpthread
153
154
155 Build for Windows:
156 Use qmake and kdiff3.pro to generate
157 an appropriate Makefile.
158 qmake kdiff3.pro -o Makefile
159
160
161 Building KDiff3 (Qt3) for Mac OSX 10.3.8 (by Mark Teel)
162 -------------------------------------------------------
163 1) Install Qt/Mac with thread support and static libraries.
164 2) cd .../kdiff3-0.9.91/src
165 3) Create a makefile for kdiff3 by executing:
166 qmake kdiff3.pro -o Makefile.qt
167 4) Edit Makefile.qt and change the include path like so:
168 (old) INCPATH = -I/Library/qt3/mkspecs/default -Isrc ...
169 (new) INCPATH = -I/Library/qt3/mkspecs/macx-g++ -Isrc ...
170 5) Execute:
171 make -f Makefile.qt
172 6) After the build completes copy kdiff3 from the kdiff3-0.9.91/src directory to
173 /Applications
174
175 Building KDiff3 (Qt4) for Mac OSX (with Intel processor) as a universal binary (by Michael Schmidt)
176 ---------------------------------------------------------------------------------------------------
177 1) Install Qt/Mac 4.x with thread support, static libraries and universal flag.
178 2) cd .../kdiff3-0.9.91/src-QT4
179 3a) Create a makefile for kdiff3 by executing:
180 qmake kdiff3.pro
181 3b) optionally generate XCode-Project (for debugging purposes only) by executing:
182 qmake -spec macx-xcode kdiff3.pro
183 4) Execute:
184 make
185 5) After the build completes copy kdiff3 from the kdiff3-0.9.91/src-QT4 directory to
186 /Applications
187
188 ----------------------------------------------------------------
189
190 Building KDiff3 with Qt4:
191
192 Requirements & Installation:
193 The version 0.9.91 requires Qt 4.2.0 (from www.trolltech.com) for compilation.
194
195 You always need
196 - kdiff3-0.9.91.tar.gz
197 120
198 - for Un*x: gcc, g++ with version >=3.4.2 121 - for Un*x: gcc, g++ with version >=3.4.2
199 Qt-X11-libraries 122 Qt-X11-libraries
200 123
201 - for Windows: Qt-win-libs 124 - for Windows: Qt-win-libs
202 If you have the Qt4 commercial edition, then compile with Visual Studio. 125 If you have the Qt4 commercial edition, then compile with Visual Studio.NET2003 or newer.
203 If you use the Qt4 open source edition, then you'll need MinGW. 126 If you use the Qt4 open source edition, then you'll need MinGW.
204 I verified that compilation and debugging works with these packages (probably newer ones will also work): 127 I verified that compilation and debugging works with these packages (probably newer ones will also work):
205 - gcc-core-3.4.2-20040916-1.tar.gz 128 - Use MinGW-5.1.4.exe or newer to install the following or newer:
206 - binutils-2.15.91-20040904-1.tar.gz 129 - gcc-core-3.4.5-20060117-1.tar.gz
207 - gcc-g++-3.4.2-20040916-1.tar.gz 130 - binutils-2.17.50-20060824-1.tar.gz
208 - mingw-runtime-3.9.tar.gz 131 - gcc-g++-3.4.5-20060117-1.tar.gz
209 - mingw32-make-3.80.0-3.tar.gz 132 - mingw-runtime-3.14.tar.gz
210 - w32api-3.6.tar.gz (see also the note below) 133 - mingw32-make-3.81-2.tar.gz
211 - gdb-5.2.1-1.exe (for debugging) 134 - w32api-3.11.tar.gz
212 135 - gdb-6.3-2.exe (for debugging)
213 (Note: At the time of writing this README, the MinGW-package that was part
214 of qt-win-opensource-4.1.2-mingw.exe lacked the latest w32api needed for
215 KDiff3-compilation. You will need to unpack w32api-3.6.tar.gz or newer
216 from www.mingw.org into your MinGW-directory.)
217 136
218 - for Mac: gcc, g++ with version >=3.4.2 137 - for Mac: gcc, g++ with version >=3.4.2
219 Qt-Mac-libraries 138 Qt-Mac-libraries
220 139 - Optional: Qt Creator IDE: Development environment optimized for Qt (http://trolltech.com/developer/qt-creator)
221 140
222 Note for KDE-users: 141 Build-instructions (Un*x):
223 The version 0.9.91-Qt4 doesn't provide support for KDE-3.x 142 - Make sure your shell-variable QTDIR is correct and that
224 because KDE-3.x.y requires Qt3. 143 your path contains the Qt4-bin-directory.
225 If you need KDE-specific features like KIO-support stick to the 144 - cd into the directory kdiff3-0.9.93/src-QT4 and type
226 normal version 0.9.91. 145 - qmake kdiff3.pro
227 146 - make (or "gmake" for GNU-Make)
228 Build-instructions (Unix or Mac): 147
229 - Make sure your shell-variable QTDIR is correct and that 148 Build-instructions (Windows):
230 your path contains the Qt4-bin-directory. 149 - set QTDIR=<QT4-dir> e.g.: c:\qt\4.4.1
231 - cd into the directory kdiff3-0.9.91/src-QT4 and type 150 set "PATH=%QTDIR%\bin;%PATH%"
232 - qmake kdiff3.pro 151 - cd into the directory kdiff3-0.9.93\src-Qt4 and type
233 - make (or "gmake" for GNU-Make) 152 - qmake kdiff3.pro
234 153 - Either "nmake" for Visual Studio or "mingw32-make" depending on what you have.
235 Build-instructions (Windows): 154
236 - Run your qtvars.bat in the Qt4-bin directory. 155 Debugging with MinGW under Windows:
237 (This should set your QTDIR, QMAKESPEC and PATH-environment-variables.) 156 - Qt Creator worked very good as debugger frontend too!
238 - cd into the directory kdiff3-0.9.91/src-Qt4 and type 157 - Debugging without gdb on the console:
239 - qmake kdiff3.pro 158 - The qt-win-opensource-4.4.1-mingw.exe only installs release dlls. You will have to compile the
240 - make (which calls either "mingw32-make" or "nmake") 159 debug dlls yourself. Enter the qt-4.4.1-directory and run "configure -debug" and then "mingw32-make".
241 160 - cd into the directory kdiff3-0.9.93\src-Qt4
242 Debugging with MinGW under Windows: 161 - edit the file "Makefile.Debug" and in the LFLAGS replace "-Wl,-subsystem,windows" with "-Wl,-subsystem,console"
243 - The qt-win-opensource-4.2.0-mingw.exe only installs release dlls. You will have to compile the 162 (this is necessary so that gdb can send a break signal to the running program)
244 debug dlls yourself. Enter the qt-4.2.0-directory and run "configure -debug" and then "make". 163 - mingw32-make debug (create a debuggable executable)
245 - cd into the directory kdiff3-0.9.91/src-Qt4 164 - gdb debug\kdiff3.exe
246 - edit the file "Makefile.Debug" and in the LFLAGS replace "-Wl,-subsystem,windows" with "-Wl,-subsystem,console" 165 - At the "(gdb)"-prompt type "run" and enter to start.
247 (this is necessary so that gdb can send a break signal to the running program) 166 - While the program runs you can't set breakpoints, first interrupt it with Ctrl-C.
248 - make debug (create a debuggable executable) 167 - Use "help" to find out about how to use gdb. (Important commands: run, break, backtrace, print, quit)
249 - gdb debug\kdiff3.exe 168 Using break with c++-methods requires to specify the parameter types too. Breakpoints in constructors might not work.
250 - At the "(gdb)"-prompt type "run" and enter to start. 169
251 - While the program runs you can't set breakpoints, first interrupt it with Ctrl-C. 170 Building KDiff3 (Qt4) for Mac OSX (with Intel processor) as a universal binary (by Michael Schmidt)
252 - Use "help" to find out about how to use gdb. (Important commands: run, break, backtrace, print, quit) 171 1) Install Qt/Mac 4.x with thread support, static libraries and universal flag.
253 Using break with c++-methods requires to specify the parameter types too. Breakpoints in constructors might not work. 172 (For Qt4 run "configure -static"; only necessary if the final binary should not require shared Qt4-libs.)
254 - I've tested graphical gdb-frontends too: 173 2) cd .../kdiff3-0.9.93/src-QT4
255 1. Insight (also from mingw.org) worked until I wanted to interrupt the program for setting breakpoints. 174 3a) Create a makefile for kdiff3 by executing:
256 2. Dev-Cpp: The debugger said that the app crashed before even launching it. 175 qmake kdiff3.pro
257 Result: For Windows I recommend gdb on the console. Please tell me when things have improved! 176 3b) optionally generate XCode-Project (for debugging purposes only) by executing:
177 qmake -spec macx-xcode kdiff3.pro
178 4) Execute:
179 make
180 5) After the build completes copy kdiff3 from the kdiff3-0.9.93/src-QT4 directory to
181 /Applications
182
258 183
259 (End of KDiff3 with Qt4-instructions) 184 (End of KDiff3 with Qt4-instructions)
260 ------------------------------------------------------------------------ 185 ------------------------------------------------------------------------
261 186
262 187 Additional hints
263 Start from commandline: 188 ----------------
264 - Comparing 2 files: kdiff3 file1 file2 189
265 - Merging 2 files: kdiff3 file1 file2 -o outputfile 190 Start from commandline:
266 - Comparing 3 files: kdiff3 file1 file2 file3 191 - Comparing 2 files: kdiff3 file1 file2
267 - Merging 3 files: kdiff3 file1 file2 file3 -o outputfile 192 - Merging 2 files: kdiff3 file1 file2 -o outputfile
268 Note that file1 will be treated as base of file2 and file3. 193 - Comparing 3 files: kdiff3 file1 file2 file3
269 194 - Merging 3 files: kdiff3 file1 file2 file3 -o outputfile
270 If all files have the same name but are in different directories, you can 195 Note that file1 will be treated as base of file2 and file3.
271 reduce typework by specifying the filename only for the first file. E.g.: 196
272 - Comparing 3 files: kdiff3 dir1/filename dir2 dir3 197 If all files have the same name but are in different directories, you can
273 (This also works in the open-dialog.) 198 reduce typework by specifying the filename only for the first file. E.g.:
274 199 - Comparing 3 files: kdiff3 dir1/filename dir2 dir3
275 If you start without arguments, then a dialog will appear where you can 200 (This also works in the open-dialog.)
276 select your files via a filebrowser. 201
277 202 If you start without arguments, then a dialog will appear where you can
278 For more documentation, see the help-menu or the subdirectory doc. 203 select your files via a filebrowser.
279 204
280 Have fun! 205 For more documentation, see the help-menu or the subdirectory doc.
206
207 Have fun!