1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359
|
====================================
xxdiff: Build Notes and Instructions
====================================
xxdiff is a graphical file and directories comparison and merge tool.
Official home page:
http://xxdiff.sourceforge.net
Author:
Martin Blais <blais@furius.ca>
Full documentation is available from the Help menu or web site.
Various integration tools are available under the tools subdirectory
(CVS, ClearCase, etc.)
Building from source
====================
Requirements
------------
- GNU make. You will need GNU make. Don't waste your time with other makes,
many are known not to work (Sun's, as well as OSF1).
- A C++ compiler with a decent STL (g++-2.96 or more will do).
- flex and bison
- Qt-3.x
- tmake-1.7 or more (old versions, e.g. tmake-1.4, have problems with the
INTERFACE keyword and don't generate appropriate rules for building the .ui
files). This won't work with qmake.
tmake can be found at http://www.trolltech.com/download/tmake.html
Compiling
---------
Compile xxdiff itself with tmake (http://www.trolltech.com). tmake is
the old build tool that Qt used to be building with, and we would be
happy to switch to qmake but we're using features from tmake that are
not supported in qmake.
Make sure your ``TMAKEPATH`` is properly set to point to the
architecture specific tmake directory::
cd xxdiff/src
tmake xxdiff.pro > Makefile
make
Notes
~~~~~
* you may have to set your QTDIR manually (e.g. to /usr/lib/qt3)
* you may have to edit CONFIG to include the option 'thread' or not, depending
on if you have only the multi-threaded version of qt installed or not
(libqt-mt).
xxdiff does not specifically need it and can build and run without the
multi-threaded version of Qt. Re-run take after making the change.
Installation
------------
::
su -
install xxdiff/src/xxdiff /usr/X11R6/bin
You can generate HTML documentation with ``xxdiff --help-html`` if you want.
Building against qt-2.x (e.g. RedHat Advanced Server)
-----------------------------------------------------
As of version 3.0, xxdiff was back ported to compile with qt2 for RedHat AS (and
I supposed for all people with old version of qt). A very small amount of minor
features has been disabled for that to work. The affected features are:
- qt style (look and feel provided by qt)
- font name conversions
- printing the time in the filename title format string
To build it, first copy the files under .../src/qt2 into .../src like this::
cd xxdiff/src ; cp qt2/* .
Then go about compiling xxdiff the normal way (described above, basically,
tmake, make).
Building under Windows
----------------------
This has been done with success by one of my users (suamor at
sourceforge.net).
Here is what I was advising before his contribution:
- install Cygwin
- install qt non-commercial version
- use nmake.exe
- you'll have to hack the makefile produced by tmake, it's not working.
- you'll have to add DEFINES += QT_DLL to the compilation options
I think this is how he compiled it:
- try using contrib/xxdiff.pro.windows, and run qmake on it
- tweak until it works.
Please refrain from asking Windows-related questions to me, it's and
endless, complicated task, and frankly, unless you've already figured
out the problems I'm not really interested. I don't even have a
Windows box to test it on and I probably won't have one for a good
while (hopefully I'll never have to have one). If you want to compile
under Windows, you've got to be somewhat of a hacker, and then I'm
sure you don't need me for that. You're on your own. Besides, I
wouldn't have the answer anyway. I have already wasted countless hours
trying to make this work under Windows, and although I was pretty damn
close, I never quite finished it. Maybe the tools will mature and it
will be easier one day.
However, I will happily include any contributions in the source tree
that would help others make this happen.
Yaakov Selkowitz (2004-02-10)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
About xxdiff port to cygwin::
I wanted to let you know that the current version of your xxdiff program
has been ported to Cygwin, with Qt 3.2.3 (gcc3, from the KDE-Cygwin
project). It is available at my cygwin-ports project on sf.net.
I noted that in your README.build file is somewhat outdated in respect
to Cygwin. xxdiff builds fine with gcc-3.3.1, and in general should
build on Cygwin 1.5.x with the current Qt3 as if on *NIX.
For now tmake needs to be downloaded from trolltech, as I haven't
packaged it yet. TMAKEPATH will need to be set, of course.
In any case, I have used xxdiff a number of times and it has been
working quite well. Thank you for your work on this program!
Yaakov
cygwin-ports maintainer
Alexandre Feblot <alexandre.feblot at art.alcatel.fr> writes:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Hi, I enjoy (means can't deal without) xxdiff, since I don't work
anymore on SGI were I loved xdiff. This week end, I compiled it under
win XP / Cygwin. This is the way I did it, if you want to add this in
your README.
Cheers.
Alexandre F.
Needs:
- binary, gcc2 compiled qt-3.0.4 (qt_304_b1.tar.bz2)
from http://sourceforge.net/projects/kde-cygwin
- tmake > 1.7 (www.trolltech.com)
- gcc-2 (v2.95.3 for me): anyway, xxdiff doesn't compile with gcc 3.3.1
Do this:
- setenv TMAKEPATH /home/alex/tmake-1.11/lib/cygwin-g++
- setenv QTDIR /home/alex/qt3
- The Qt lib seems to have been compiled without large file option,
leading to undefined symbols. -> patch the standard includes just
for the compilation time:
- /usr/include/cygwin/config.h Put into comment::
#define __LARGE64_FILES 1
#define __CYGWIN_USE_BIG_TYPES__ 1
- /usr/include/sys/config.h Put into comment::
#define __LARGE64_FILES 1
- cd xxdiff-2.9.2/src
- xxdiff.pro patch to be used with tmake 1.11.
Put into comment::
linux-g++:TMAKE_CXXFLAGS += -DCOMPILER_GNU
osf1-g++:TMAKE_CXXFLAGS += -DCOMPILER_GNU
(these lines caused tmake syntax errors for me)
- /home/alex/tmake-1.11/bin/tmake xxdiff.pro > Makefile
- Correct the generated makefile:
- replace gcc2 with gcc-2 in CC definition
doesn't compile with gcc 3.3.1)
- remove -DQT_THREAD_SUPPORT in CFLAGS and CXXFLAGS definition
- replace -lqt-mt with -lqt, and remove -lpthread in LIBS definition
(qt_304_b1.tar.bz2 doesn't contain the multithread version of Qt lib)
- make
- add qt-3.dll in the path::
setenv PATH "$PATH":$QTDIR/bin
* enjoy.
and remember to get back the standard includes to their original state.
Note: xxdiff.pro.windows used with qmake just creates a mess which
doesn't compile:
- missing include paths -> undefined functions
- no flex and bison compilation handling
- ...
Building under .NET
-------------------
Adam Zell (zellster) writes:
To build xxdiff with Microsoft Visual Studio .NET, the following
changes are needed:
1) Copy win32-msvc rules and rename them win32-msvc.net.
2) Add -EHsc to compiler flags.
3) Uncomment out /NODEFAULTLIBS ...
4) Comment out the min, max, and getenv definitions in winfixes/winfixes.h.
The resulting executable will link, but will fail at run-time inside
of Qt. If you can make it work, please contact me and I will include
the necessary fixes.
Building under Mac OS X w/ XFree86 port
---------------------------------------
The relevant part within the makefile is under macx-g++
- Info on the Mac XFree86 port: http://apple.com/macosx/x11/
- Info on the OpenDarwin ports: http://opendarwin.org/projects/darwinports/
Notes on Mac OSX from Rolf Boelens <boelens at nmr.chem.uu.nl>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
::
Dear Martin,
A few years ago you helped me out on setting up xxdiff on Mac OSX 10.2 with
X11/xfree. I moved now to OSX 10.3 with a newer machine and recompiled
xxdiff-2.9.2 and the latest xxdiff-3.0.2. Since I like the program a lot, I
wanted to have it up and running again.
I used the latest OSX 10.3.2 and latest Developer Tools XCode 1.1 from Apple,
plus the Apple X11 release.
I will summarize what I had to adapt, it is really minor:
A. Commented out in xxdiff.pro the macx-g++ flags, since tmake does not
understand them and fails::
...
#macx-g++:TMAKE_CXXFLAGS += -D__GNU_LIBRARY__
#macx-g++:TMAKE_CXXFLAGS -= -fno-exceptions
...
The needed changes in Makefile can also be made later.
B. To make the Makefile::
% tmake xxdiff.pro -o Makefile
C. Needed changes in Makefile, use ``CXXFLAGS = -fexceptions``::
...
CXXFLAGS= -fexceptions -pipe -Wall -W -O3 -DNO_DEBUG
-DQT_THREAD_SUPPORT
...
No other OSX specific c++ flags are needed anymore.
I added my own notes for testing both xxdiff versions.
I will try to post it at the sourceforge site as well, for your releif.
With best regards, Rolf
Packaging
=========
* Source packaging:
adm/release_src
* Simple binary packaging (all platforms):
adm/release_bin
* Redhat Linux packaging:
adm/release_i386_rpm
* Debian Linux packaging:
See web page for link to current port.
* OpenBSD packaging:
In the ports tree.
* SGI packaging:
adm/release_mips_tardist
Note: to install the SGI package you'll need fw_qt and it's
prerequisites. Installing from tardist package::
inst -f xxdiff-<version>.mips.tardist
> go
The author's own release process:
---------------------------------
0) check
1a) tmake makefile is in release
1b) version number is correct
1) apply release tag to cvs files
2) build (see instructions above)
2a) run tests in xxdiff/test
3) build packages (see instructions above)
4) distribute
- add release to sourceforge project
- upload to sourceforge htdocs (secondary download location)
- upload to sourceforge web page
- upload to rhcontrib.bero.org
5) announce
- sourceforge project release announcement
- update web site
- freshmeat
- rh-contrib (bero)
- qt-interest
- cervisia ml
- wincvs ml
- sgi freeware
- discreet
|