~ubuntu-branches/ubuntu/hardy/xxdiff/hardy

« back to all changes in this revision

Viewing changes to README.build

  • Committer: Bazaar Package Importer
  • Author(s): Tomas Pospisek
  • Date: 2005-03-29 08:43:56 UTC
  • mfrom: (1.2.1 upstream) (2.1.2 hoary)
  • Revision ID: james.westby@ubuntu.com-20050329084356-nkwv8jf18nc7u5qf
Tags: 1:3.1-3
re-upload

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
====================================
 
2
xxdiff: Build Notes and Instructions
 
3
====================================
 
4
 
 
5
xxdiff is a graphical file and directories comparison and merge tool.
 
6
 
 
7
Official home page:
 
8
    http://xxdiff.sourceforge.net
 
9
Author:
 
10
    Martin Blais <blais@furius.ca>
 
11
 
 
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.)
 
15
 
 
16
Building from source
 
17
====================
 
18
 
 
19
Requirements
 
20
------------
 
21
 
 
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).
 
24
 
 
25
- A C++ compiler with a decent STL (g++-2.96 or more will do).
 
26
 
 
27
- flex and bison
 
28
 
 
29
- Qt-3.x
 
30
 
 
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.
 
34
 
 
35
  tmake can be found at http://www.trolltech.com/download/tmake.html
 
36
 
 
37
Compiling
 
38
---------
 
39
 
 
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.
 
44
 
 
45
Make sure your ``TMAKEPATH`` is properly set to point to the
 
46
architecture specific tmake directory::
 
47
 
 
48
   cd xxdiff/src
 
49
   tmake xxdiff.pro > Makefile
 
50
   make
 
51
 
 
52
Notes
 
53
~~~~~
 
54
 
 
55
* you may have to set your QTDIR manually (e.g. to /usr/lib/qt3)
 
56
 
 
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
 
59
  (libqt-mt).
 
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.
 
62
 
 
63
 
 
64
Installation
 
65
------------
 
66
 
 
67
::
 
68
 
 
69
    su -
 
70
    install xxdiff/src/xxdiff /usr/X11R6/bin
 
71
 
 
72
You can generate HTML documentation with ``xxdiff --help-html`` if you want.
 
73
 
 
74
 
 
75
Building against qt-2.x (e.g. RedHat Advanced Server)
 
76
-----------------------------------------------------
 
77
 
 
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:
 
81
 
 
82
- qt style (look and feel provided by qt)
 
83
- font name conversions
 
84
- printing the time in the filename title format string
 
85
 
 
86
To build it, first copy the files under .../src/qt2 into .../src like this::
 
87
 
 
88
   cd xxdiff/src ; cp qt2/* .
 
89
 
 
90
Then go about compiling xxdiff the normal way (described above, basically,
 
91
tmake, make).
 
92
 
 
93
 
 
94
Building under Windows
 
95
----------------------
 
96
 
 
97
This has been done with success by one of my users (suamor at
 
98
sourceforge.net).
 
99
 
 
100
Here is what I was advising before his contribution:
 
101
 
 
102
- install Cygwin
 
103
- install qt non-commercial version
 
104
- use nmake.exe
 
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
 
107
 
 
108
I think this is how he compiled it:
 
109
 
 
110
- try using contrib/xxdiff.pro.windows, and run qmake on it
 
111
- tweak until it works.
 
112
 
 
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.
 
124
 
 
125
However, I will happily include any contributions in the source tree
 
126
that would help others make this happen.
 
127
 
 
128
 
 
129
Yaakov Selkowitz (2004-02-10)
 
130
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
131
 
 
132
About xxdiff port to cygwin::
 
133
 
 
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.
 
137
  
 
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.
 
141
  
 
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.
 
144
  
 
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!
 
147
  
 
148
  Yaakov
 
149
  cygwin-ports maintainer
 
150
 
 
151
  
 
152
Alexandre Feblot <alexandre.feblot at art.alcatel.fr> writes:
 
153
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
154
 
 
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
 
158
your README.
 
159
 
 
160
Cheers.
 
161
 
 
162
Alexandre F.
 
163
 
 
164
 
 
165
Needs:
 
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
 
170
 
 
171
 
 
172
Do this:
 
173
- setenv TMAKEPATH /home/alex/tmake-1.11/lib/cygwin-g++
 
174
- setenv QTDIR /home/alex/qt3
 
175
 
 
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:
 
179
 
 
180
  - /usr/include/cygwin/config.h  Put into comment::
 
181
 
 
182
      #define __LARGE64_FILES 1
 
183
      #define __CYGWIN_USE_BIG_TYPES__ 1
 
184
 
 
185
  - /usr/include/sys/config.h  Put into comment::
 
186
 
 
187
      #define __LARGE64_FILES 1
 
188
 
 
189
- cd xxdiff-2.9.2/src
 
190
 
 
191
- xxdiff.pro patch to be used with tmake 1.11.
 
192
  Put into comment::
 
193
 
 
194
      linux-g++:TMAKE_CXXFLAGS += -DCOMPILER_GNU
 
195
      osf1-g++:TMAKE_CXXFLAGS += -DCOMPILER_GNU
 
196
      (these lines caused tmake syntax errors for me)
 
197
 
 
198
- /home/alex/tmake-1.11/bin/tmake xxdiff.pro > Makefile
 
199
 
 
200
- Correct the generated makefile:
 
201
 
 
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)
 
207
 
 
208
- make
 
209
 
 
210
- add qt-3.dll in the path::
 
211
 
 
212
     setenv PATH "$PATH":$QTDIR/bin
 
213
 
 
214
* enjoy.
 
215
  and remember to get back the standard includes to their original state.
 
216
 
 
217
Note:  xxdiff.pro.windows used with qmake just creates a mess which
 
218
doesn't compile:
 
219
 
 
220
 - missing include paths -> undefined functions
 
221
 - no flex and bison compilation handling
 
222
 - ...
 
223
 
 
224
 
 
225
 
 
226
 
 
227
 
 
228
 
 
229
Building under .NET
 
230
-------------------
 
231
 
 
232
Adam Zell (zellster) writes:
 
233
 
 
234
To build xxdiff with Microsoft Visual Studio .NET, the following
 
235
changes are needed:
 
236
 
 
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.
 
241
 
 
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
 
244
the necessary fixes.
 
245
 
 
246
 
 
247
Building under Mac OS X w/ XFree86 port
 
248
---------------------------------------
 
249
 
 
250
The relevant part within the makefile is under macx-g++
 
251
 
 
252
- Info on the Mac XFree86 port: http://apple.com/macosx/x11/
 
253
 
 
254
- Info on the OpenDarwin ports: http://opendarwin.org/projects/darwinports/
 
255
 
 
256
 
 
257
Notes on Mac OSX from Rolf Boelens <boelens at nmr.chem.uu.nl>
 
258
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
259
 
 
260
::
 
261
 
 
262
  Dear Martin,
 
263
  
 
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.
 
268
  
 
269
  I used the latest OSX 10.3.2 and latest Developer Tools XCode 1.1 from Apple,
 
270
  plus the Apple X11 release.
 
271
  
 
272
  I will summarize what I had to adapt, it is really minor:  
 
273
 
 
274
  A. Commented out in xxdiff.pro the macx-g++ flags, since tmake does not
 
275
     understand them and fails::
 
276
 
 
277
       ...
 
278
       #macx-g++:TMAKE_CXXFLAGS += -D__GNU_LIBRARY__
 
279
       #macx-g++:TMAKE_CXXFLAGS -= -fno-exceptions
 
280
       ...
 
281
   
 
282
     The needed changes in Makefile can also be made later.
 
283
  
 
284
  B. To make the Makefile::
 
285
 
 
286
       % tmake xxdiff.pro -o Makefile
 
287
  
 
288
  C. Needed changes in Makefile, use ``CXXFLAGS = -fexceptions``::
 
289
        ...
 
290
        CXXFLAGS=       -fexceptions -pipe -Wall -W -O3 -DNO_DEBUG 
 
291
        -DQT_THREAD_SUPPORT
 
292
        ...
 
293
 
 
294
  No other OSX specific c++ flags are needed anymore.
 
295
  
 
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.
 
298
  
 
299
  With best regards, Rolf
 
300
 
 
301
  
 
302
Packaging
 
303
=========
 
304
 
 
305
* Source packaging:
 
306
  adm/release_src
 
307
 
 
308
* Simple binary packaging (all platforms):
 
309
  adm/release_bin
 
310
 
 
311
* Redhat Linux packaging:
 
312
  adm/release_i386_rpm
 
313
 
 
314
* Debian Linux packaging:
 
315
  See web page for link to current port.
 
316
 
 
317
* OpenBSD packaging:
 
318
  In the ports tree.
 
319
 
 
320
* SGI packaging:
 
321
  adm/release_mips_tardist
 
322
 
 
323
  Note: to install the SGI package you'll need fw_qt and it's
 
324
  prerequisites. Installing from tardist package::
 
325
 
 
326
    inst -f xxdiff-<version>.mips.tardist
 
327
    > go
 
328
 
 
329
 
 
330
The author's own release process:
 
331
---------------------------------
 
332
 
 
333
0) check
 
334
   1a) tmake makefile is in release
 
335
   1b) version number is correct
 
336
 
 
337
1) apply release tag to cvs files
 
338
 
 
339
2) build (see instructions above)
 
340
   2a) run tests in xxdiff/test
 
341
 
 
342
3) build packages (see instructions above)
 
343
 
 
344
4) distribute
 
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
 
349
 
 
350
5) announce
 
351
   - sourceforge project release announcement
 
352
   - update web site
 
353
   - freshmeat
 
354
   - rh-contrib (bero)
 
355
   - qt-interest
 
356
   - cervisia ml
 
357
   - wincvs ml
 
358
   - sgi freeware
 
359
   - discreet