Commit 31b822cd authored by Joachim Eibl's avatar Joachim Eibl

KDiff3 0.9.89


git-svn-id: https://kdiff3.svn.sourceforge.net/svnroot/kdiff3/trunk@72 c8aa9fed-2811-0410-8543-893ada326672
parent 0e7602b9
......@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
......
Version 0.9.89 - 2006/04/09
===========================
New features:
- Version control history auto merge plus sorting
- Auto merge regular expression
- Splitting and joining differences for merging
- Manual Diff Alignment tool
- Printing of differences
- Colorsettings for Dir-Colors
- Dir-show identical/different/A-only/B-only/C-only files with immediate effect (instead of option "List only deltas")
- Filename-edit above DiffInputWindows
- Windows-Context Menu in A/B/C-columns for dir-comparison (Windows only)
- Edit Menu: Select All (Ctrl-A)
- New commandline options:
--config filename: Select an individual config file. (Now also available for Windows and Qt-only version.)
--cs config: Change one specific setting via the command line. (For settings that were previously adjustable via GUI only.)
--confighelp: Show available config items and their current values.
- Dircomp: "Compare/Merge explicitly selected files" (Select files/dirs by clicking icons in columns A/B/C)
- User definable ignored command line options.
- Ability to swap pathnames in open dialog
- "Ignore"-button in error dialog when option not understood (Windows only)
- Quadratical scroll speedup during selection when mouse moves out of the diff input window.
Bugfixes, redesign:
- Preparations for Qt4-Port + some redesign
- GNU-Diff algorithm improved to be independent of line endings (needed for manual diff alignment)
- Avoid restoring a window where it is almost invisible (if moved almost out of the screen area)
- Go to next delta honors special "A vs. B", "A vs. C" or "B vs. C" overview when active. (Patch by Vladan Bato)
- DirectoryMergeWindow: File/Antifile and DirPattern changes will update immediately without rescan.
- Blue toolbar icons (for better visibility of disabled state)
- Bugfix: Crash when merging and selecting "Choose A/B/C for all unsolved conflicts"
and one of the solved conflicts contained no lines in chosen input.
- Fix: With --auto option, GUI stays invisible if not necessary
- Fixed odd ProgressDialog-behaviour when continuing after an error or abort.
- Directory merge: Fixed FollowFileLinks. (Didn't work when copying a file.)
- Initial position now (x=0,y=22). This solves a problem on some Macs.
- Better alignment of B and C in 3-file comparison
- Correctly updating the selection when scrolling via keys and mouse is pressed
- Horizontal scrolling in right-to-left language caused vertical lines - fixed.
Version 0.9.88 - 2005/25/02
===========================
- Fixed crash that occurred in Directory Comparison mode "Full-Analysis".
- Fix for Windows: Didn't save encoding correctly.
- Many translations updated.
Version 0.9.87 - 2005/30/01
===========================
- Unicode16 and UTF8 support (Internal data format is now QString (Unicode16). Conversion during save and load.)
......
......@@ -2,6 +2,7 @@ Basic Installation
==================
These are generic installation instructions.
Please read the README-file for most needed steps first.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
......
KDiff3-Readme
=============
Author: Joachim Eibl (joachim.eibl@gmx.de)
Copyright: (C) 2002-2005 by Joachim Eibl
KDiff3-Version: 0.9.87
Author: Joachim Eibl (joachim.eibl at gmx.de)
Copyright: (C) 2002-2006 by Joachim Eibl
KDiff3-Version: 0.9.89
KDiff3 is a program that
......@@ -32,7 +32,7 @@ Licence:
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA
For details see file "COPYING".
......@@ -45,12 +45,12 @@ Exception from the GPL:
Requirements & Installation:
Version 0.9.87 provides special support for KDE3, but it can also be
Version 0.9.89 provides special support for KDE3, but it can also be
built without KDE3 if the Qt-libraries are available.
(I also test and use the program under Windows.)
You always need
- kdiff3-0.9.87.tar.gz
- kdiff3-0.9.89.tar.gz
For building the KDE3-version
- KDE>=3.1 and QT>=3.1-libraries. (QT>=3.2 is recommended)
......@@ -62,12 +62,17 @@ Requirements & Installation:
- for Un*x: gcc, g++ with version >=3.2
- for Windows: VC6 / VC7.1
On some distributions it will be necessary to install developer
packages (RPMs) that contain include files for compilation:
- xorg-x11-devel (or x11-devel)
- qt-devel
- kdelibs-devel
Installation for KDE3:
- Make sure your shell-variable QTDIR is correct. (echo $QTDIR).
If it doesn't contain the correct path, type
export QTDIR=your_path_to_qt (e.g. /usr/lib/qt3)
- cd into the directory kdiff3-0.9.87 and type
- cd into the directory kdiff3-0.9.89 and type
- ./configure --prefix=/opt/kde3 (your KDE3 directory here)
- (make clean) (Required if you already compiled once.)
- make (Run compilation)
......@@ -93,6 +98,25 @@ Installation for KDE3:
executable. To avoid confusion, better remove the local version then.
(rm -R `find $KDEHOME -name "*kdiff3*" -not -name "kdiff3*rc"`)
On Fedora-64-bit systems the following configure-line was reported to work:
./configure --prefix=`kde-config --prefix` --enable-libsuffix=64 --with-qt-libraries=/usr/lib64/qt-3.3/lib/
Both --enable-libsuffix=64 and -with-qt-libraries=/usr/lib64/qt-3.3/lib/ are needed;
without the first one it fails to find the KDE libraries,
and without the second one it fails to find libqt-mt
(strangely enough: libqt-mt is in /usr/lib64/qt-3.3/lib,
and "configure" tries /usr/lib64/qt-3.3/lib64)
If your qt-libraries are elsewhere please adapt the path accordingly.
Some secondary dependencies aren't correctly discovered by configure.
If e.g the a linker error appears telling you something like
"Can't find -lacl" this probably means that you have to install
libacl-devel-*.rpm etc.
If you run an older version of KDE and the make-process fails in the
doc- or po-directory, cd to the src-directory and run "make" there. Also run
"make install" there. This hopefully will create a working kdiff3-binary,
although without doc and language support.
Upgrading KDiff3 for KDE:
If you already installed an older version or KDiff3 and you have the
impression, that the new version doesn't work as described, you should try to
......@@ -108,7 +132,7 @@ Installation for the Qt-only-platforms for Un*x:
- Make sure your shell-variable QTDIR is correct. (echo $QTDIR).
If it doesn't contain the correct path, type
export QTDIR=your_path_to_qt (e.g. /usr/lib/qt)
- cd into the directory kdiff3-0.9.87/src and type
- cd into the directory kdiff3-0.9.89/src and type
- make -f Makefile.qt
- make -f Makefile.qt install (You must have root-rights for this step.)
(copies the files into /usr/local/bin and /usr/local/share/doc/kdiff3)
......@@ -123,13 +147,38 @@ Build for Windows:
qmake kdiff3.pro -o Makefile
Build for Mac:
- I couldn't test this, so you might have to experiment a bit.
- Start by generating a Makefile with
- qmake kdiff3.pro -o Makefile
- If you succeed, I'd like to know how, so I can document it here.
Building Kdiff3 for Mac OSX 10.3.8 (by Mark Teel)
--------------------------------------------------------
1) Install Qt/Mac with thread support and static libraries.
2) cd .../kdiff3-0.9.89
3) Create a makefile for kdiff3 by executing:
qmake src/kdiff3.pro -o Makefile.qt
4) Edit Makefile.qt and add the definition "KDIFF3" to the following two lines:
CFLAGS = -pipe -Wall -W -Os -DKDIFF3 -DQT_NO_DEBUG ...
CXXFLAGS = -pipe -Wall -W -Os -DKDIFF3 -DQT_NO_DEBUG ...
5) Edit Makefile.qt and change the include path like so:
(old) INCPATH = -I/Library/qt3/mkspecs/default -Isrc ...
(new) INCPATH = -I/Library/qt3/mkspecs/macx-g++ -Isrc ...
6) KDiff3-0.9.88-specific: Edit src/kdiff3.cpp line 290 like this:
statusBar()->setSizeGripEnabled(true);
7) KDiff3-0.9.88-specific: (not necessary for 0.9.89 or later)
Edit /usr/include/mach/ppc/processor_info.h and replace all instances of
"unsigned int word" found in the four register unions (on lines 44, 65,
74, 82) as follows:
(old)
unsigned int word;
(new)
#if defined(KDIFF3)
unsigned word;
#else
unsigned int word;
#endif
8) Execute:
make -f Makefile.qt
9) After the build completes copy kdiff3 from the kdiff3-0.9.89 directory to
/Applications
Start from commandline:
- Comparing 2 files: kdiff3 file1 file2
- Merging 2 files: kdiff3 file1 file2 -o outputfile
......
......@@ -28,13 +28,10 @@ TODO
- kdiff3 does not preserve the permissions of files it overwrites during a 'save' operation.
- Insbesondere Ausführbarkeit "x" und Schreibschutz "w" sollten erhalten bleiben.
- Edit Select All, Ctrl-A
- Under Windows: Shortcut Ctrl-Shift-2 (for select B everywhere doesn't work.)
- Paste from Clipboard doesn't work.
- Improve message about WinCVS in the Installer.
- Bug: Comment section isn't recognized as nonwhite difference if several lines are between /* and */ on one side.
......@@ -43,15 +40,9 @@ TODO
- ??? The gutters (kdiff3 have 2 "gutters") fonts and background-foreground colors sholud be configured other
than the "general" foreground-background colors. Otherwise they are confused with the main dialog.
- Unicode and UTF8 support
- Try to autodetect the line-end-style
- Ignore cvs-keywords like $Revision$
- Correct Christof crash with the Find-function.
- Windows: Check if folders can match case-insensitive.
- Close diff/merge window-menu-action.
- Printing of the diff-windows (requires automatic line wrap)
- Undo function in the merge-editor.
- More viewing options for directory widget.
......@@ -93,3 +84,4 @@ More Statistics before the merge begins:
- Allow analysis of unified directory-diff/patch-file.
- LineEdit for Save-Filename
## generate API documentation with doxygen
apidox-am-yes:
@if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$DOXDATA" ; then \
export DOXDATA=$(kde_libs_htmldir)/en/common ; \
fi ; \
abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\
test -d $(top_builddir)/apidocs || \
( cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
--no-modulename --installdir=$(kde_libs_htmldir)/en \
--no-recurse $(abs_top_srcdir) . ) ; \
cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
--recurse --no-modulename --installdir=$(kde_libs_htmldir)/en \
$$abs_top_srcdir $(subdir)
apidox-am-toplevel-yes:
@if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$ADMIN" ; then \
export DOXDATA=$(kde_libs_htmldir)/en/common ; \
fi ; \
abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\
cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
--no-modulename --installdir=$(kde_libs_htmldir)/en \
$$abs_top_srcdir
## Don't generate API documentation without doxygen
apidox-am-no:
apidox-am-toplevel-no:
apidox:
@if test "$(subdir)" != "."; then \
$(mkinstalldirs) $(top_builddir)/apidocs/$(subdir) ;\
if test ! -x $(top_builddir)/apidocs/common; then \
if test -d $(top_srcdir)/doc/common; then \
common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\
else \
common_dir=$(kde_libs_htmldir)/en/common ;\
fi ;\
$(LN_S) $$common_dir $(top_builddir)/apidocs/common; \
fi ;\
cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \
echo "PROJECT_NAME = \"$(subdir) Library\"" >> Doxyfile; \
echo "PROJECT_NUMBER = \"Version $(VERSION)\"" >> Doxyfile; \
echo "INPUT = $(srcdir)" >> Doxyfile; \
echo "IMAGE_PATH = $(top_srcdir)/doc/api" >> Doxyfile ;\
echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile; \
echo "HTML_OUTPUT = $(subdir)/html" >> Doxyfile; \
echo "HTML_HEADER = $(top_builddir)/apidocs/common/header.html" >> Doxyfile;\
echo "HTML_FOOTER = $(top_builddir)/apidocs/common/footer.html" >> Doxyfile;\
echo "HTML_STYLESHEET = $(top_builddir)/apidocs/common/doxygen.css" >> Doxyfile;\
echo "LATEX_OUTPUT = $(subdir)/latex" >> Doxyfile; \
echo "RTF_OUTPUT = $(subdir)/rtf" >> Doxyfile; \
echo "MAN_OUTPUT = $(subdir)/man" >> Doxyfile; \
echo "GENERATE_HTML = $(GENERATE_FLAG)" >> Doxyfile ;\
echo "GENERATE_MAN = $(GENERATE_FLAG)" >> Doxyfile ;\
echo "GENERATE_LATEX = $(GENERATE_FLAG)" >> Doxyfile ;\
if test -n "$(DOXYGEN_EXCLUDE)"; then \
patterns= ;\
dirs= ;\
for item in `echo "$(DOXYGEN_EXCLUDE)"`; do \
if test -d "$(srcdir)/$$item"; then \
dirs="$$dirs $(srcdir)/$$item/" ;\
else \
patterns="$$patterns $$item" ;\
fi ;\
done ;\
echo "EXCLUDE_PATTERNS += $$patterns" >> Doxyfile; \
echo "EXCLUDE += $$dirs" >> Doxyfile ;\
fi ;\
echo "TAGFILES = \\" >> Doxyfile; \
tags='$(DOXYGEN_REFERENCES) qt'; for tag in $$tags; do \
tagpath= ;\
path="../../$$tag" ;\
if test -f $(top_builddir)/apidocs/$$tag/$$tag.tag; then \
tagpath="$(top_builddir)/apidocs/$$tag/$$tag.tag" ;\
else \
tagpath=`ls -1 $(kde_htmldir)/en/*-apidocs/$$tag/$$tag.tag 2> /dev/null` ;\
if test -n "$$tagpath"; then \
path=`echo $$tagpath | sed -e "s,.*/\([^/]*-apidocs\)/$$tag/$$tag.tag,../../../\1/$$tag,"` ;\
fi ;\
fi ;\
if test "$$tag" = qt; then \
echo $$tagpath=$(QTDOCDIR) >> Doxyfile ;\
else if test -n "$$tagpath"; then \
echo "$$tagpath=$$path/html \\" >> Doxyfile ;\
fi ;\
fi ;\
done ;\
echo "GENERATE_TAGFILE = $(top_builddir)/apidocs/$(subdir)/`basename $(subdir)`.tag" >> Doxyfile ;\
echo "IGNORE_PREFIX = K" >> Doxyfile ;\
echo "HAVE_DOT = $(KDE_HAVE_DOT)" >> Doxyfile ;\
$(DOXYGEN) Doxyfile ;\
$(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\
else \
$(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\
fi
apidox-am-no:
install-data-local: install-apidox
......@@ -83,13 +53,12 @@ install-apidox:
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \
done; \
fi; \
rm -f $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \
$(LN_S) $(kde_libs_htmldir)/en/common $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \
else\
if test -d $(top_builddir)/apidocs; then \
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\
list=`cd $(top_builddir)/apidocs && ls -1`; \
echo "installing $(top_builddir)/apidocs/$$file" ;\
echo "target directory $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs" ; \
for file in $$list; do \
if test -f $(top_builddir)/apidocs/$$file; then \
$(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
......@@ -111,65 +80,19 @@ uninstall-apidox:
fi\
fi
apidox:
@if test "$(subdir)" != "."; then \
$(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\
else \
$(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\
fi
install-apidox-recurse: install-apidox
@set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \
list='$(SUBDIRS)'; \
for subdir in $$list; do \
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \
echo "Making apidox in $$subdir"; \
if test "$$subdir" != "."; then \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no apidox) || exit 1; \
fi ; fi ;\
done; \
for subdir in $$list; do \
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \
echo "Making apidox in $$subdir"; \
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am > /dev/null ; then \
echo "Installing apidox from $$subdir"; \
if test "$$subdir" != "."; then \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=yes apidox) || exit 1; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no install-apidox-recurse) || exit 1; \
fi ; fi ;\
done; \
fi
apidox-am-toplevel-no:
apidox-am-toplevel-yes:
@echo "*** Creating API documentation main page"; \
cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \
echo "PROJECT_NAME = \"$(DOXYGEN_PROJECT_NAME)\"" >> Doxyfile ; \
echo "PROJECT_NUMBER = \"$(DOXYGEN_PROJECT_NUMBER)\"" >> Doxyfile ; \
echo "INPUT = $(top_srcdir)" >> Doxyfile ; \
echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile ; \
echo "FILE_PATTERNS = *.dox" >> Doxyfile ; \
echo "RECURSIVE = NO" >> Doxyfile ; \
echo "SOURCE_BROWSER = NO" >> Doxyfile ; \
echo "ALPHABETICAL_INDEX = NO" >> Doxyfile ; \
echo "HTML_OUTPUT = ." >> Doxyfile ; \
echo "HTML_HEADER = apidocs/common/mainheader.html" >> Doxyfile ; \
echo "HTML_FOOTER = apidocs/common/mainfooter.html" >> Doxyfile ; \
echo "HTML_STYLESHEET = apidocs/common/doxygen.css" >> Doxyfile ; \
echo "GENERATE_LATEX = NO" >> Doxyfile ; \
echo "GENERATE_RTF = NO" >> Doxyfile ; \
echo "GENERATE_MAN = NO" >> Doxyfile ; \
echo "GENERATE_XML = NO" >> Doxyfile ; \
echo "GENERATE_AUTOGEN_DEF = NO" >> Doxyfile ; \
echo "ENABLE_PREPROCESSING = NO" >> Doxyfile ; \
echo "CLASS_DIAGRAMS = NO" >> Doxyfile ; \
echo "HAVE_DOT = NO" >> Doxyfile ; \
echo "GENERATE_HTML = YES" >> Doxyfile ;\
$(mkinstalldirs) $(top_builddir)/apidocs ; \
rm -f $(top_builddir)/apidocs/common ; \
if test -d $(top_srcdir)/doc/common; then \
common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\
else \
common_dir=$(kde_libs_htmldir)/en/common ;\
fi ;\
$(LN_S) $$common_dir $(top_builddir)/apidocs/common ;\
doxygen Doxyfile; \
rm -f Doxyfile
.PHONY: apidox-am-yes apidox-am-no install-data-local install-apidox install-apidox uninstall-local uninstall-apidox uninstall-apidox apidox apidox-am-toplevel-no apidox-am-toplevel-yes
......
This diff is collapsed.
......@@ -6,7 +6,7 @@
SHELL=/bin/sh
cvs dist cvs-clean configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4:
cvs dist configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4 extract-messages:
@admindir=$(admindir); \
if test "x$$admindir" = x; then \
admindir=.; until test -f $$admindir/admin/cvs.sh; do \
......@@ -30,6 +30,8 @@ cvs dist cvs-clean configure configure.in configure.files subdirs package-messag
configure.in: configure.files subdirs
configure.files: subdirs
svn: cvs
.SILENT:
.PHONY: cvs dist cvs-clean package-merge package-messages
.PHONY: svn cvs dist package-merge package-messages
This diff is collapsed.
......@@ -351,7 +351,7 @@ sub processMakefile ($)
my $tmp = "force-reedit:\n";
$tmp .= "\t$automkCall\n\tcd \$(top_srcdir) && perl $thisProg $printname\n\n";
appendLines($tmp);
make_bcheck_target();
make_meta_classes();
tag_COMPILE_FIRST();
......@@ -422,10 +422,6 @@ sub processMakefile ($)
substituteLine($lookup, "RECURSIVE_TARGETS = $1 nmcheck-recursive bcheck-recursive");
}
my $cvs_lines = "cvs-clean:\n";
$cvs_lines .= "\t\$(MAKE) admindir=\$(top_srcdir)/admin -f \$(top_srcdir)/admin/Makefile.common cvs-clean\n";
appendLines($cvs_lines);
$cvs_lines = "kde-rpo-clean:\n";
$cvs_lines .= "\t-rm -f *.rpo\n";
appendLines($cvs_lines);
......@@ -483,6 +479,7 @@ sub processMakefile ($)
$MakefileData =~ s/$lookup/$replacement/;
$lookup =~ s/\\\$\\\(CXXFLAGS\\\)/\\\$\\\(KCXXFLAGS\\\)/;
$replacement = "$stuff_before\$(KCXXFLAGS) \$(KDE_CXXFLAGS)$stuff_after";
next if ($stuff_before =~ /\$\(KDE_CXXFLAGS\)/ or $stuff_after =~ /\$\(KDE_CXXFLAGS\)/);
substituteLine($lookup, $replacement);
} else {
$found = 0;
......@@ -634,7 +631,7 @@ sub initialise ()
if ($pre eq '' && exists($varcontent{$variable})) {
my @addlist = split(/[\034\s]+/, $varcontent{$variable});
push(@objlist, @addlist);
} elsif ($variable !~ 'OBJEXT') {
} elsif ($variable !~ 'OBJEXT' && $variable !~ /am__objects_\d+/ ) {
$ocv = 1;
}
}
......@@ -875,8 +872,9 @@ sub tag_KDEINIT()
$lines .= "\techo 'int main(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}.la.$cxxsuffix\n";
$lines .= "\n${kdeinit}_dummy.$cxxsuffix:\n";
$lines .= "\techo 'extern \"C\" int kdemain(int argc, char* argv[]);' > ${kdeinit}_dummy.$cxxsuffix; \\\n";
$lines .= "\techo 'extern \"C\" int kdeinitmain(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}_dummy.$cxxsuffix\n";
$lines .= "\techo '#include <kdemacros.h>' > ${kdeinit}_dummy.$cxxsuffix; \\\n";
$lines .= "\techo 'extern \"C\" int kdemain(int argc, char* argv[]);' >> ${kdeinit}_dummy.$cxxsuffix; \\\n";
$lines .= "\techo 'extern \"C\" KDE_EXPORT int kdeinitmain(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}_dummy.$cxxsuffix\n";
push(@cleanfiles, "${kdeinit}.la.$cxxsuffix");
push(@cleanfiles, "${kdeinit}_dummy.$cxxsuffix");
......@@ -1147,6 +1145,9 @@ sub tag_AUTOMAKE ()
print STDOUT "AUTOMAKE processing <$1>\n" if ($verbose);
my $newLine = $1."\n\tcd \$(top_srcdir) && perl $thisProg $printname";
# automake 1.8.x adds another automake call. *sigh*
$newLine =~ s/;([\034\s]+cd\s+\$\(srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\).*)[\034\s]+\&\&[\034\s]+exit[\034\s]+0;([\034\s]+exit\s+1)/; \034 ( $1 ) || exit 1; echo \' cd \$(top_srcdir) && perl $thisProg \'; cd \$(top_srcdir) && perl $thisProg && exit 0; $2/;
substituteLine ($lookup, $newLine);
$automkCall = $1;
......@@ -1262,7 +1263,7 @@ sub tag_IDLFILES ()
if ($allidls !~ /$source\_kidl/) {
$use_ng = ($MakefileData =~ /\n$source\_DCOPIDLNG\s*=\s*(\S+)\n/);
$dcopidl = $use_ng ? "\$(DCOPIDLNG)" : "\$(DCOPIDL)";
$dcopidl = $use_ng ? "KDECONFIG=\"\$(KDECONFIG)\" \$(DCOPIDLNG)" : "\$(DCOPIDL)";
$dep_lines .= "$source.kidl: $sourcedir$source.h \$(DCOP_DEPENDENCIES)\n";
$dep_lines .= "\t$dcopidl $sourcedir$source.h > $source.kidl || ( rm -f $source.kidl ; false )\n";
......@@ -1365,14 +1366,19 @@ sub tag_UIFILES ()
my ($mangled_source) = $source;
$mangled_source =~ s/[^A-Za-z0-9]/_/g; # get rid of garbage
$dep_lines .= "\t\$(UIC) -tr \${UIC_TR} -i $source.h $sourcedir$source.ui > $source.$cxxsuffix.temp ; ret=\$\$?; \\\n";
$dep_lines .= "\t\$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\" ),QString::null,g\" $source.$cxxsuffix.temp | \$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\"\\, \\\"\\\" ),QString::null,g\" | \$(PERL) -pe \"s,image([0-9][0-9]*)_data,img\\\$\$1_" . $mangled_source . ",g\" >> $source.$cxxsuffix ;\\\n";
$dep_lines .= "\t\$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\" ),QString::null,g\" $source.$cxxsuffix.temp | \$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\"\\, \\\"\\\" ),QString::null,g\" | \$(PERL) -pe \"s,image([0-9][0-9]*)_data,img\\\$\$1_" . $mangled_source . ",g\" | \$(PERL) -pe \"s,: QWizard\\(,: KWizard(,g\" >> $source.$cxxsuffix ;\\\n";
$dep_lines .= "\trm -f $source.$cxxsuffix.temp ;\\\n";
} else {
$dep_lines .= "\t\$(UIC) -i $source.h $sourcedir$source.ui > $source.$cxxsuffix; ret=\$\$?; \\\n";
}
$dep_lines .= "\tif test \"\$\$ret\" = 0; then echo '#include \"$source.moc\"' >> $source.$cxxsuffix; else rm -f $source.$cxxsuffix ; exit \$\$ret ; fi\n\n";
$dep_lines .= "$source.h: $sourcedir$source.ui\n";
$dep_lines .= "\t\$(UIC) -o $source.h $sourcedir$source.ui\n\n";
$dep_lines .= "\trm -rf $source.h;\n";
if (!$kdeopts{"qtonly"}) {
$dep_lines .= "\t\$(UIC) $sourcedir$source.ui | \$(PERL) -pi -e \"s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g\" >> $source.h ;\n";
} else {
$dep_lines .= "\t\$(UIC) -o $source.h $sourcedir$source.ui\n";
}
$dep_lines .= "$source.moc: $source.h\n";
$dep_lines .= "\t\$(MOC) $source.h -o $source.moc\n";
......@@ -2271,7 +2277,7 @@ sub make_bcheck_target()
"\t echo \"\$\$i\"; \\\n" .
"\t if ! ";
$t .= $cxxsuffix eq "KKK" ?
"\$(CXX) \$(DEFS) -I. -I\$(srcdir) -I\$(top_builddir) \$(INCLUDES) \$(AM_CPPFLAGS) \$(CPPFLAGS) \$(KDE_CXXFLAGS) " :
"\$(CXX) \$(DEFS) -I. -I\$(srcdir) -I\$(top_builddir) \$(INCLUDES) \$(AM_CPPFLAGS) \$(CPPFLAGS) \$(CXXFLAGS) \$(KDE_CXXFLAGS) " :
"\$(CXXCOMPILE) ";
$t .= " --dump-class-hierarchy -c \$\$i.bchecktest.cc; then \\\n" .
"\t rm -f \$\$i.bchecktest.cc; exit 1; \\\n" .
......
......@@ -118,6 +118,7 @@ while (<IN>) {
s/0x[0-9a-fA-F]+/0x......../g;
s/base size=/size=/g;
s/\(\)\s*$//g;
s/base align=/align=/g;
$chunk .= $_ . "\n";
......
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
# Copyright 1999, 2000 Free Software Foundation, Inc.
scriptversion=2005-05-14.22
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -17,83 +18,125 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Usage:
# compile PROGRAM [ARGS]...
# `-o FOO.o' is removed from the args passed to the actual compile.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand `-c -o'.
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
prog=$1
shift
If you are trying to build a whole package this is not the
right script to run: please start by reading the file `INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
esac
ofile=
cfile=
args=
while test $# -gt 0; do
case "$1" in
-o)
# configure might choose to run compile as `compile cc -o foo foo.c'.
# So we do something ugly here.
ofile=$2
shift
case "$ofile" in
*.o | *.obj)
;;
*)
args="$args -o $ofile"
ofile=
;;
esac
;;
*.c)
cfile=$1
args="$args $1"
;;
*)
args="$args $1"
;;
esac
shift
eat=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as `compile cc -o foo foo.c'.
# So we strip `-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no `-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# `.c' file was seen then we are probably linking. That is also
# ok.
exec "$prog" $args
# If no `-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# `.c' file was seen then we are probably linking. That is also
# ok.