File: README.build

package info (click to toggle)
xxdiff 1%3A3.1-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 3,936 kB
  • ctags: 2,393
  • sloc: cpp: 19,971; python: 3,334; ansic: 1,505; sh: 1,466; perl: 308; yacc: 273; lex: 219; lisp: 115; makefile: 101
file content (359 lines) | stat: -rw-r--r-- 10,178 bytes parent folder | download
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