1
====================================
2
xxdiff: Build Notes and Instructions
3
====================================
5
xxdiff is a graphical file and directories comparison and merge tool.
8
http://xxdiff.sourceforge.net
10
Martin Blais <blais@furius.ca>
12
Full documentation is available from the Help menu or web site.
13
Various integration tools are available under the tools subdirectory
14
(CVS, ClearCase, etc.)
22
- GNU make. You will need GNU make. Don't waste your time with other makes,
23
many are known not to work (Sun's, as well as OSF1).
25
- A C++ compiler with a decent STL (g++-2.96 or more will do).
31
- tmake-1.7 or more (old versions, e.g. tmake-1.4, have problems with the
32
INTERFACE keyword and don't generate appropriate rules for building the .ui
33
files). This won't work with qmake.
35
tmake can be found at http://www.trolltech.com/download/tmake.html
40
Compile xxdiff itself with tmake (http://www.trolltech.com). tmake is
41
the old build tool that Qt used to be building with, and we would be
42
happy to switch to qmake but we're using features from tmake that are
43
not supported in qmake.
45
Make sure your ``TMAKEPATH`` is properly set to point to the
46
architecture specific tmake directory::
49
tmake xxdiff.pro > Makefile
55
* you may have to set your QTDIR manually (e.g. to /usr/lib/qt3)
57
* you may have to edit CONFIG to include the option 'thread' or not, depending
58
on if you have only the multi-threaded version of qt installed or not
60
xxdiff does not specifically need it and can build and run without the
61
multi-threaded version of Qt. Re-run take after making the change.
70
install xxdiff/src/xxdiff /usr/X11R6/bin
72
You can generate HTML documentation with ``xxdiff --help-html`` if you want.
75
Building against qt-2.x (e.g. RedHat Advanced Server)
76
-----------------------------------------------------
78
As of version 3.0, xxdiff was back ported to compile with qt2 for RedHat AS (and
79
I supposed for all people with old version of qt). A very small amount of minor
80
features has been disabled for that to work. The affected features are:
82
- qt style (look and feel provided by qt)
83
- font name conversions
84
- printing the time in the filename title format string
86
To build it, first copy the files under .../src/qt2 into .../src like this::
88
cd xxdiff/src ; cp qt2/* .
90
Then go about compiling xxdiff the normal way (described above, basically,
94
Building under Windows
95
----------------------
97
This has been done with success by one of my users (suamor at
100
Here is what I was advising before his contribution:
103
- install qt non-commercial version
105
- you'll have to hack the makefile produced by tmake, it's not working.
106
- you'll have to add DEFINES += QT_DLL to the compilation options
108
I think this is how he compiled it:
110
- try using contrib/xxdiff.pro.windows, and run qmake on it
111
- tweak until it works.
113
Please refrain from asking Windows-related questions to me, it's and
114
endless, complicated task, and frankly, unless you've already figured
115
out the problems I'm not really interested. I don't even have a
116
Windows box to test it on and I probably won't have one for a good
117
while (hopefully I'll never have to have one). If you want to compile
118
under Windows, you've got to be somewhat of a hacker, and then I'm
119
sure you don't need me for that. You're on your own. Besides, I
120
wouldn't have the answer anyway. I have already wasted countless hours
121
trying to make this work under Windows, and although I was pretty damn
122
close, I never quite finished it. Maybe the tools will mature and it
123
will be easier one day.
125
However, I will happily include any contributions in the source tree
126
that would help others make this happen.
129
Yaakov Selkowitz (2004-02-10)
130
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
132
About xxdiff port to cygwin::
134
I wanted to let you know that the current version of your xxdiff program
135
has been ported to Cygwin, with Qt 3.2.3 (gcc3, from the KDE-Cygwin
136
project). It is available at my cygwin-ports project on sf.net.
138
I noted that in your README.build file is somewhat outdated in respect
139
to Cygwin. xxdiff builds fine with gcc-3.3.1, and in general should
140
build on Cygwin 1.5.x with the current Qt3 as if on *NIX.
142
For now tmake needs to be downloaded from trolltech, as I haven't
143
packaged it yet. TMAKEPATH will need to be set, of course.
145
In any case, I have used xxdiff a number of times and it has been
146
working quite well. Thank you for your work on this program!
149
cygwin-ports maintainer
152
Alexandre Feblot <alexandre.feblot at art.alcatel.fr> writes:
153
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
155
Hi, I enjoy (means can't deal without) xxdiff, since I don't work
156
anymore on SGI were I loved xdiff. This week end, I compiled it under
157
win XP / Cygwin. This is the way I did it, if you want to add this in
166
- binary, gcc2 compiled qt-3.0.4 (qt_304_b1.tar.bz2)
167
from http://sourceforge.net/projects/kde-cygwin
168
- tmake > 1.7 (www.trolltech.com)
169
- gcc-2 (v2.95.3 for me): anyway, xxdiff doesn't compile with gcc 3.3.1
173
- setenv TMAKEPATH /home/alex/tmake-1.11/lib/cygwin-g++
174
- setenv QTDIR /home/alex/qt3
176
- The Qt lib seems to have been compiled without large file option,
177
leading to undefined symbols. -> patch the standard includes just
178
for the compilation time:
180
- /usr/include/cygwin/config.h Put into comment::
182
#define __LARGE64_FILES 1
183
#define __CYGWIN_USE_BIG_TYPES__ 1
185
- /usr/include/sys/config.h Put into comment::
187
#define __LARGE64_FILES 1
189
- cd xxdiff-2.9.2/src
191
- xxdiff.pro patch to be used with tmake 1.11.
194
linux-g++:TMAKE_CXXFLAGS += -DCOMPILER_GNU
195
osf1-g++:TMAKE_CXXFLAGS += -DCOMPILER_GNU
196
(these lines caused tmake syntax errors for me)
198
- /home/alex/tmake-1.11/bin/tmake xxdiff.pro > Makefile
200
- Correct the generated makefile:
202
- replace gcc2 with gcc-2 in CC definition
203
doesn't compile with gcc 3.3.1)
204
- remove -DQT_THREAD_SUPPORT in CFLAGS and CXXFLAGS definition
205
- replace -lqt-mt with -lqt, and remove -lpthread in LIBS definition
206
(qt_304_b1.tar.bz2 doesn't contain the multithread version of Qt lib)
210
- add qt-3.dll in the path::
212
setenv PATH "$PATH":$QTDIR/bin
215
and remember to get back the standard includes to their original state.
217
Note: xxdiff.pro.windows used with qmake just creates a mess which
220
- missing include paths -> undefined functions
221
- no flex and bison compilation handling
232
Adam Zell (zellster) writes:
234
To build xxdiff with Microsoft Visual Studio .NET, the following
237
1) Copy win32-msvc rules and rename them win32-msvc.net.
238
2) Add -EHsc to compiler flags.
239
3) Uncomment out /NODEFAULTLIBS ...
240
4) Comment out the min, max, and getenv definitions in winfixes/winfixes.h.
242
The resulting executable will link, but will fail at run-time inside
243
of Qt. If you can make it work, please contact me and I will include
247
Building under Mac OS X w/ XFree86 port
248
---------------------------------------
250
The relevant part within the makefile is under macx-g++
252
- Info on the Mac XFree86 port: http://apple.com/macosx/x11/
254
- Info on the OpenDarwin ports: http://opendarwin.org/projects/darwinports/
257
Notes on Mac OSX from Rolf Boelens <boelens at nmr.chem.uu.nl>
258
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
264
A few years ago you helped me out on setting up xxdiff on Mac OSX 10.2 with
265
X11/xfree. I moved now to OSX 10.3 with a newer machine and recompiled
266
xxdiff-2.9.2 and the latest xxdiff-3.0.2. Since I like the program a lot, I
267
wanted to have it up and running again.
269
I used the latest OSX 10.3.2 and latest Developer Tools XCode 1.1 from Apple,
270
plus the Apple X11 release.
272
I will summarize what I had to adapt, it is really minor:
274
A. Commented out in xxdiff.pro the macx-g++ flags, since tmake does not
275
understand them and fails::
278
#macx-g++:TMAKE_CXXFLAGS += -D__GNU_LIBRARY__
279
#macx-g++:TMAKE_CXXFLAGS -= -fno-exceptions
282
The needed changes in Makefile can also be made later.
284
B. To make the Makefile::
286
% tmake xxdiff.pro -o Makefile
288
C. Needed changes in Makefile, use ``CXXFLAGS = -fexceptions``::
290
CXXFLAGS= -fexceptions -pipe -Wall -W -O3 -DNO_DEBUG
294
No other OSX specific c++ flags are needed anymore.
296
I added my own notes for testing both xxdiff versions.
297
I will try to post it at the sourceforge site as well, for your releif.
299
With best regards, Rolf
308
* Simple binary packaging (all platforms):
311
* Redhat Linux packaging:
314
* Debian Linux packaging:
315
See web page for link to current port.
321
adm/release_mips_tardist
323
Note: to install the SGI package you'll need fw_qt and it's
324
prerequisites. Installing from tardist package::
326
inst -f xxdiff-<version>.mips.tardist
330
The author's own release process:
331
---------------------------------
334
1a) tmake makefile is in release
335
1b) version number is correct
337
1) apply release tag to cvs files
339
2) build (see instructions above)
340
2a) run tests in xxdiff/test
342
3) build packages (see instructions above)
345
- add release to sourceforge project
346
- upload to sourceforge htdocs (secondary download location)
347
- upload to sourceforge web page
348
- upload to rhcontrib.bero.org
351
- sourceforge project release announcement