BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kde-common/admin@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19dav3.5.13-sru
commit
5dc1ccc699
@ -0,0 +1,102 @@
|
|||||||
|
## 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 \
|
||||||
|
$(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\
|
||||||
|
else \
|
||||||
|
$(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
install-data-local: install-apidox
|
||||||
|
|
||||||
|
## install API documentation
|
||||||
|
install-apidox:
|
||||||
|
@if test "$(subdir)" != "."; then \
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \
|
||||||
|
if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \
|
||||||
|
echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
|
||||||
|
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
|
||||||
|
fi; \
|
||||||
|
if test -d $(top_builddir)/apidocs/$(subdir)/html; then \
|
||||||
|
list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \
|
||||||
|
echo "installing $(top_builddir)/apidocs/$(subdir)/html" ;\
|
||||||
|
for file in $$list; do \
|
||||||
|
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \
|
||||||
|
done; \
|
||||||
|
fi; \
|
||||||
|
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; \
|
||||||
|
fi; \
|
||||||
|
done ; fi; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
uninstall-local: uninstall-apidox
|
||||||
|
|
||||||
|
## uninstall API documentation
|
||||||
|
uninstall-apidox:
|
||||||
|
@if test "$(subdir)" != "."; then \
|
||||||
|
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \
|
||||||
|
rm -rf $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
|
||||||
|
fi \
|
||||||
|
else \
|
||||||
|
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \
|
||||||
|
rm -rf $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
|
||||||
|
fi \
|
||||||
|
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 > /dev/null ; then \
|
||||||
|
echo "Installing apidox from $$subdir"; \
|
||||||
|
if test "$$subdir" != "."; then \
|
||||||
|
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no install-apidox-recurse) || exit 1; \
|
||||||
|
fi ; fi ;\
|
||||||
|
done; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.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
|
||||||
|
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: makefile
|
||||||
|
# End:
|
@ -0,0 +1,192 @@
|
|||||||
|
OUTPUT_LANGUAGE = English
|
||||||
|
USE_WINDOWS_ENCODING = NO
|
||||||
|
BRIEF_MEMBER_DESC = NO
|
||||||
|
REPEAT_BRIEF = YES
|
||||||
|
ABBREVIATE_BRIEF =
|
||||||
|
ALWAYS_DETAILED_SEC = YES
|
||||||
|
INLINE_INHERITED_MEMB = NO
|
||||||
|
FULL_PATH_NAMES = NO
|
||||||
|
STRIP_FROM_PATH =
|
||||||
|
SHORT_NAMES = NO
|
||||||
|
JAVADOC_AUTOBRIEF = YES
|
||||||
|
MULTILINE_CPP_IS_BRIEF = NO
|
||||||
|
INHERIT_DOCS = YES
|
||||||
|
DISTRIBUTE_GROUP_DOC = NO
|
||||||
|
TAB_SIZE = 4
|
||||||
|
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||||
|
OPTIMIZE_OUTPUT_JAVA = NO
|
||||||
|
SUBGROUPING = YES
|
||||||
|
EXTRACT_ALL = NO
|
||||||
|
EXTRACT_PRIVATE = NO
|
||||||
|
EXTRACT_STATIC = YES
|
||||||
|
EXTRACT_LOCAL_CLASSES = NO
|
||||||
|
HIDE_UNDOC_MEMBERS = NO
|
||||||
|
HIDE_UNDOC_CLASSES = YES
|
||||||
|
HIDE_FRIEND_COMPOUNDS = NO
|
||||||
|
HIDE_IN_BODY_DOCS = NO
|
||||||
|
INTERNAL_DOCS = NO
|
||||||
|
CASE_SENSE_NAMES = YES
|
||||||
|
HIDE_SCOPE_NAMES = NO
|
||||||
|
SHOW_INCLUDE_FILES = YES
|
||||||
|
INLINE_INFO = YES
|
||||||
|
SORT_BRIEF_DOCS = NO
|
||||||
|
SORT_BY_SCOPE_NAME = NO
|
||||||
|
GENERATE_TESTLIST = NO
|
||||||
|
GENERATE_BUGLIST = YES
|
||||||
|
GENERATE_DEPRECATEDLIST= YES
|
||||||
|
ENABLED_SECTIONS =
|
||||||
|
MAX_INITIALIZER_LINES = 30
|
||||||
|
SHOW_USED_FILES = YES
|
||||||
|
QUIET = YES
|
||||||
|
WARNINGS = NO
|
||||||
|
WARN_IF_UNDOCUMENTED = NO
|
||||||
|
WARN_IF_DOC_ERROR = YES
|
||||||
|
WARN_FORMAT =
|
||||||
|
WARN_LOGFILE =
|
||||||
|
INPUT =
|
||||||
|
FILE_PATTERNS = *.h \
|
||||||
|
*.cpp \
|
||||||
|
*.cc \
|
||||||
|
*.hpp \
|
||||||
|
*.dox \
|
||||||
|
*.c++ \
|
||||||
|
*.cxx \
|
||||||
|
*.h++ \
|
||||||
|
*.hh
|
||||||
|
RECURSIVE = YES
|
||||||
|
EXCLUDE =
|
||||||
|
EXCLUDE_SYMLINKS = NO
|
||||||
|
EXCLUDE_PATTERNS = *.moc.* \
|
||||||
|
moc* \
|
||||||
|
*.all_cpp.* \
|
||||||
|
*unload.* \
|
||||||
|
*/test/* \
|
||||||
|
*/tests/* \
|
||||||
|
*_p.h
|
||||||
|
EXAMPLE_PATH =
|
||||||
|
EXAMPLE_PATTERNS =
|
||||||
|
EXAMPLE_RECURSIVE = NO
|
||||||
|
IMAGE_PATH =
|
||||||
|
INPUT_FILTER =
|
||||||
|
FILTER_SOURCE_FILES = NO
|
||||||
|
SOURCE_BROWSER = YES
|
||||||
|
INLINE_SOURCES = NO
|
||||||
|
STRIP_CODE_COMMENTS = YES
|
||||||
|
REFERENCED_BY_RELATION = YES
|
||||||
|
REFERENCES_RELATION = YES
|
||||||
|
VERBATIM_HEADERS = YES
|
||||||
|
ALPHABETICAL_INDEX = YES
|
||||||
|
COLS_IN_ALPHA_INDEX = 3
|
||||||
|
HTML_OUTPUT =
|
||||||
|
HTML_FILE_EXTENSION = .html
|
||||||
|
HTML_HEADER = ../apidocs/common/header.html
|
||||||
|
HTML_FOOTER = ../apidocs/common/footer.html
|
||||||
|
HTML_STYLESHEET = ../apidocs/common/doxygen.css
|
||||||
|
HTML_ALIGN_MEMBERS = YES
|
||||||
|
GENERATE_HTMLHELP = NO
|
||||||
|
CHM_FILE =
|
||||||
|
HHC_LOCATION =
|
||||||
|
GENERATE_CHI = NO
|
||||||
|
BINARY_TOC = NO
|
||||||
|
TOC_EXPAND = NO
|
||||||
|
DISABLE_INDEX = YES
|
||||||
|
ENUM_VALUES_PER_LINE = 4
|
||||||
|
GENERATE_TREEVIEW = NO
|
||||||
|
TREEVIEW_WIDTH = 250
|
||||||
|
GENERATE_LATEX = NO
|
||||||
|
LATEX_OUTPUT =
|
||||||
|
LATEX_CMD_NAME = latex
|
||||||
|
MAKEINDEX_CMD_NAME = makeindex
|
||||||
|
COMPACT_LATEX = NO
|
||||||
|
PAPER_TYPE = a4wide
|
||||||
|
EXTRA_PACKAGES =
|
||||||
|
LATEX_HEADER =
|
||||||
|
PDF_HYPERLINKS = NO
|
||||||
|
USE_PDFLATEX = NO
|
||||||
|
LATEX_BATCHMODE = NO
|
||||||
|
LATEX_HIDE_INDICES = NO
|
||||||
|
GENERATE_RTF = NO
|
||||||
|
RTF_OUTPUT =
|
||||||
|
COMPACT_RTF = NO
|
||||||
|
RTF_HYPERLINKS = NO
|
||||||
|
RTF_STYLESHEET_FILE =
|
||||||
|
RTF_EXTENSIONS_FILE =
|
||||||
|
GENERATE_MAN = NO
|
||||||
|
MAN_OUTPUT =
|
||||||
|
MAN_EXTENSION = .kde3
|
||||||
|
MAN_LINKS = YES
|
||||||
|
GENERATE_XML = NO
|
||||||
|
XML_OUTPUT = xml
|
||||||
|
XML_SCHEMA =
|
||||||
|
XML_DTD =
|
||||||
|
XML_PROGRAMLISTING = NO
|
||||||
|
GENERATE_AUTOGEN_DEF = NO
|
||||||
|
GENERATE_PERLMOD = NO
|
||||||
|
PERLMOD_LATEX = NO
|
||||||
|
PERLMOD_PRETTY = YES
|
||||||
|
PERLMOD_MAKEVAR_PREFIX =
|
||||||
|
ENABLE_PREPROCESSING = YES
|
||||||
|
SEARCH_INCLUDES = YES
|
||||||
|
INCLUDE_PATH =
|
||||||
|
INCLUDE_FILE_PATTERNS =
|
||||||
|
PREDEFINED = QT_VERSION=320 \
|
||||||
|
__cplusplus \
|
||||||
|
Q_WS_X11
|
||||||
|
EXPAND_AS_DEFINED =
|
||||||
|
SKIP_FUNCTION_MACROS = YES
|
||||||
|
TAGFILES =
|
||||||
|
GENERATE_TAGFILE =
|
||||||
|
ALLEXTERNALS = NO
|
||||||
|
EXTERNAL_GROUPS = NO
|
||||||
|
PERL_PATH =
|
||||||
|
CLASS_DIAGRAMS = YES
|
||||||
|
HIDE_UNDOC_RELATIONS = NO
|
||||||
|
HAVE_DOT = NO
|
||||||
|
UML_LOOK = NO
|
||||||
|
TEMPLATE_RELATIONS = YES
|
||||||
|
INCLUDE_GRAPH = YES
|
||||||
|
INCLUDED_BY_GRAPH = YES
|
||||||
|
CALL_GRAPH = NO
|
||||||
|
GRAPHICAL_HIERARCHY = YES
|
||||||
|
DOT_IMAGE_FORMAT = png
|
||||||
|
DOT_PATH =
|
||||||
|
DOTFILE_DIRS =
|
||||||
|
MAX_DOT_GRAPH_WIDTH = 800
|
||||||
|
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||||
|
MAX_DOT_GRAPH_DEPTH = 0
|
||||||
|
GENERATE_LEGEND = YES
|
||||||
|
DOT_CLEANUP = YES
|
||||||
|
SEARCHENGINE = NO
|
||||||
|
|
||||||
|
### KDE Settings
|
||||||
|
ALIASES = \
|
||||||
|
"intern=\par<b>Internal use only.</b>" \
|
||||||
|
"reimp=\par<b>Reimplemented from superclass.</b>" \
|
||||||
|
"obsolete=@deprecated" \
|
||||||
|
"feature=\xrefitem features \"Feature(s)\" \"Features\"" \
|
||||||
|
"maintainer=\xrefitem maintainers \"Maintainer(s)\" \"Maintainers\"" \
|
||||||
|
"unmaintained=\xrefitem unmaintained \"Unmaintained\" \"Unmaintained\"" \
|
||||||
|
"requirement=\xrefitem requirements \"Requirement(s)\" \"Requirements\"" \
|
||||||
|
"faq=\xrefitem FAQ \"F.A.Q.\" \"F.A.Q.\"" \
|
||||||
|
"authors=\xrefitem authors \"Author(s)\" \"Authors\"" \
|
||||||
|
"FIXME=\xrefitem fixme \"Fixme\" \"Fixme\""
|
||||||
|
|
||||||
|
HTML_ALIGN_MEMBERS = YES
|
||||||
|
REFERENCED_BY_RELATION = NO
|
||||||
|
REFERENCES_RELATION = NO
|
||||||
|
VERBATIM_HEADERS = NO
|
||||||
|
GENERATE_HTML = YES
|
||||||
|
SOURCE_BROWSER = YES
|
||||||
|
GENERATE_AUTOGEN_DEF = NO
|
||||||
|
DETAILS_AT_TOP = YES
|
||||||
|
SORT_MEMBER_DOCS = YES
|
||||||
|
GENERATE_TODOLIST = YES
|
||||||
|
IGNORE_PREFIX = K
|
||||||
|
GENERATE_HTML = YES
|
||||||
|
CLASS_GRAPH = YES
|
||||||
|
COLLABORATION_GRAPH = NO
|
||||||
|
|
||||||
|
|
||||||
|
MACRO_EXPANSION = YES
|
||||||
|
EXPAND_ONLY_PREDEF = YES
|
||||||
|
|
@ -0,0 +1,37 @@
|
|||||||
|
### Makefile.common
|
||||||
|
###
|
||||||
|
### Copyright (C) 2002 by the KDE developers
|
||||||
|
|
||||||
|
### All the real work is done by the shellscript cvs.sh
|
||||||
|
|
||||||
|
SHELL=/bin/sh
|
||||||
|
|
||||||
|
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 \
|
||||||
|
admindir=$$admindir/..; \
|
||||||
|
if test `cd $$admindir && pwd` = / ; then break; fi; \
|
||||||
|
done; \
|
||||||
|
admindir=$$admindir/admin; \
|
||||||
|
if test -f $$admindir/cvs.sh; then :; else \
|
||||||
|
echo "Can't find the admin/ directory in any parent of the"; \
|
||||||
|
echo "current directory. Please set it with admindir=..."; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
if test "$@" = "package-merge"; then \
|
||||||
|
MAKE="$(MAKE)" POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \
|
||||||
|
$(SHELL) $$admindir/cvs.sh package-merge ;\
|
||||||
|
else \
|
||||||
|
MAKE="$(MAKE)" $(SHELL) $$admindir/cvs.sh $@ ;\
|
||||||
|
fi
|
||||||
|
|
||||||
|
configure.in: configure.files subdirs
|
||||||
|
configure.files: subdirs
|
||||||
|
|
||||||
|
svn: cvs
|
||||||
|
|
||||||
|
.SILENT:
|
||||||
|
|
||||||
|
.PHONY: svn cvs dist package-merge package-messages
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,157 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
|
use DB_File;
|
||||||
|
use Fcntl ':flock';
|
||||||
|
|
||||||
|
if (!defined($ARGV[0])) {
|
||||||
|
print "usage: requires .class dump as parameter!\n";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub bailout
|
||||||
|
{
|
||||||
|
untie %bcheckdb if(defined(%bcheckdb));
|
||||||
|
|
||||||
|
if(defined(MYLOCK)) {
|
||||||
|
flock MYLOCK, LOCK_UN;
|
||||||
|
close(MYLOCK);
|
||||||
|
}
|
||||||
|
|
||||||
|
print @_;
|
||||||
|
exit 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub ask_user
|
||||||
|
{
|
||||||
|
my ($dbkey, $dbchunk) = @_;
|
||||||
|
|
||||||
|
if (defined($ENV{"BCHECK_UPDATE"})) {
|
||||||
|
$bcheckdb{$dbkey} = $dbchunk;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
&bailout("BC problem detected") if (! -t STDIN);
|
||||||
|
|
||||||
|
print "(I)gnore / (Q)uit / (U)pdate: ";
|
||||||
|
|
||||||
|
my $key;
|
||||||
|
while(defined(read STDIN, $key, 1)) {
|
||||||
|
$key = lc($key);
|
||||||
|
|
||||||
|
print "got: >$key<\n";
|
||||||
|
|
||||||
|
return if ($key eq 'i');
|
||||||
|
|
||||||
|
&bailout("BC problem. aborted") if ($key eq 'q');
|
||||||
|
|
||||||
|
if ($key eq 'u') {
|
||||||
|
$bcheckdb{$dbkey} = $dbchunk;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
print "\n(I)gnore / (Q)uit / (U)pdate: ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub diff_chunk($$)
|
||||||
|
{
|
||||||
|
my ($oldl, $newl) = @_;
|
||||||
|
my @old = split /^/m, $oldl;
|
||||||
|
my @new = split /^/m, $newl;
|
||||||
|
my $haschanges = 0;
|
||||||
|
my $max = $#old > $#new ? $#old : $#new;
|
||||||
|
|
||||||
|
die "whoops. key different" if ($old[0] ne $new[0]);
|
||||||
|
|
||||||
|
if ($#old != $#new) {
|
||||||
|
warn ("Structural difference.\n");
|
||||||
|
print @old;
|
||||||
|
print "-----------------------------------------------\n";
|
||||||
|
print @new;
|
||||||
|
$haschanges = 1;
|
||||||
|
return $haschanges;
|
||||||
|
}
|
||||||
|
|
||||||
|
print $old[0];
|
||||||
|
|
||||||
|
my ($class) = ($old[0] =~ /^(?:Class |Vtable for )(\S+)/);
|
||||||
|
|
||||||
|
my $c = 1;
|
||||||
|
while ($c < $max) {
|
||||||
|
my ($o, $n) = ($old[$c], $new[$c]);
|
||||||
|
chomp $o;
|
||||||
|
chomp $n;
|
||||||
|
$c++;
|
||||||
|
next if ($o eq $n);
|
||||||
|
|
||||||
|
if(defined($class) and $n =~ /^(\d+\s+)\w+(::\S+\s*.*)$/) {
|
||||||
|
next if ($n eq "$1$class$2");
|
||||||
|
}
|
||||||
|
|
||||||
|
$haschanges = 1;
|
||||||
|
|
||||||
|
print "-$o\n+$n\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
return $haschanges;
|
||||||
|
}
|
||||||
|
|
||||||
|
local $dblock = $ENV{"HOME"} . "/bcheck.lock";
|
||||||
|
my $dbfile = $ENV{"HOME"} . "/bcheck.db";
|
||||||
|
my $cdump = $ARGV[0];
|
||||||
|
|
||||||
|
die "file $cdump is not readable: $!" if (! -f $cdump);
|
||||||
|
|
||||||
|
# make sure the advisory lock exists
|
||||||
|
open(MYLOCK, ">$dblock");
|
||||||
|
print MYLOCK "";
|
||||||
|
|
||||||
|
flock MYLOCK, LOCK_EX;
|
||||||
|
|
||||||
|
tie %bcheckdb, 'DB_File', $dbfile;
|
||||||
|
|
||||||
|
my $chunk = "";
|
||||||
|
|
||||||
|
open (IN, "<$cdump") or die "cannot open $cdump: $!";
|
||||||
|
while (<IN>) {
|
||||||
|
|
||||||
|
chop;
|
||||||
|
|
||||||
|
s/0x[0-9a-fA-F]+/0x......../g;
|
||||||
|
s/base size=/size=/g;
|
||||||
|
s/\(\)\s*$//g;
|
||||||
|
s/base align=/align=/g;
|
||||||
|
|
||||||
|
$chunk .= $_ . "\n";
|
||||||
|
|
||||||
|
if(/^\s*$/) {
|
||||||
|
my @lines = split /^/m, $chunk;
|
||||||
|
my $key = $lines[0];
|
||||||
|
chomp $key;
|
||||||
|
|
||||||
|
if($key !~ /<anonymous struct>/ &&
|
||||||
|
$key !~ /<anonymous union>/) {
|
||||||
|
if(defined($bcheckdb{$key})) {
|
||||||
|
my $dbversion = $bcheckdb{$key};
|
||||||
|
|
||||||
|
if($dbversion ne $chunk) {
|
||||||
|
&ask_user($key, $chunk) if(&diff_chunk($dbversion, $chunk));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$bcheckdb{$key} = $chunk;
|
||||||
|
print "NEW: $key\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$chunk = "";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
close(IN);
|
||||||
|
|
||||||
|
untie %bcheckdb;
|
||||||
|
flock MYLOCK, LOCK_UN;
|
||||||
|
close(MYLOCK);
|
||||||
|
|
||||||
|
exit 0;
|
@ -0,0 +1,142 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Wrapper for compilers which do not understand `-c -o'.
|
||||||
|
|
||||||
|
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
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# 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., 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.
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
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=
|
||||||
|
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 "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Name of file we expect compiler to create.
|
||||||
|
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
|
||||||
|
|
||||||
|
# Create the lock directory.
|
||||||
|
# Note: use `[/.-]' here to ensure that we don't use the same name
|
||||||
|
# that we are using for the .o file. Also, base the name on the expected
|
||||||
|
# object file name, since that is what matters with a parallel build.
|
||||||
|
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
|
||||||
|
while true; do
|
||||||
|
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
# FIXME: race condition here if user kills between mkdir and trap.
|
||||||
|
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||||
|
|
||||||
|
# Run the compile.
|
||||||
|
"$@"
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if test -f "$cofile"; then
|
||||||
|
mv "$cofile" "$ofile"
|
||||||
|
elif test -f "${cofile}bj"; then
|
||||||
|
mv "${cofile}bj" "$ofile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rmdir "$lockdir"
|
||||||
|
exit $ret
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
@ -0,0 +1,191 @@
|
|||||||
|
#!/usr/bin/env perl
|
||||||
|
|
||||||
|
# this script patches a config.status file, to use our own perl script
|
||||||
|
# in the main loop
|
||||||
|
# we do it this way to circumvent hacking (and thereby including)
|
||||||
|
# autoconf function (which are GPL) into our LGPL acinclude.m4.in
|
||||||
|
# written by Michael Matz <matz@kde.org>
|
||||||
|
# adapted by Dirk Mueller <mueller@kde.org>
|
||||||
|
#
|
||||||
|
# This file is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Library General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Library General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU Library General Public License
|
||||||
|
# along with this library; see the file COPYING.LIB. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
# we have to change two places
|
||||||
|
# 1. the splitting of the substitutions into chunks of 90 (or even 48 in
|
||||||
|
# later autoconf's
|
||||||
|
# 2. the big main loop which patches all Makefile.in's
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use File::Basename;
|
||||||
|
|
||||||
|
my $ac_aux_dir = dirname($0);
|
||||||
|
my ($flag);
|
||||||
|
my $ac_version = 0;
|
||||||
|
my $vpath_seen = 0;
|
||||||
|
$flag = 0;
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
# usage of $flag: 0 -- we have seen nothing yet
|
||||||
|
# 1 -- we are in (1)
|
||||||
|
# 2 -- we have ended (1)
|
||||||
|
# 3 -- we are in (2)
|
||||||
|
# 4 -- we ended (2)
|
||||||
|
|
||||||
|
if ($flag == 4) {
|
||||||
|
print;
|
||||||
|
} elsif ($flag == 0) {
|
||||||
|
# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..."
|
||||||
|
# ends with (excluding) "CONFIG_FILE=..."
|
||||||
|
# in later autoconf (2.14.1) there is no CONFIG_FILES= line,
|
||||||
|
# but instead the (2) directly follow (1)
|
||||||
|
if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) {
|
||||||
|
$flag = 1;
|
||||||
|
if ($1 eq 'lines') {
|
||||||
|
# lets hope its different with 2141,
|
||||||
|
# wasn't able to verify that
|
||||||
|
if ($2 eq '48') {
|
||||||
|
$ac_version = 250;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$ac_version = 2141;
|
||||||
|
}
|
||||||
|
} elsif ($1 eq 'cmds') {
|
||||||
|
$ac_version = 213;
|
||||||
|
}
|
||||||
|
# hmm, we don't know the autoconf version, but we try anyway
|
||||||
|
} else {
|
||||||
|
print;
|
||||||
|
}
|
||||||
|
} elsif ($flag == 1) {
|
||||||
|
if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) {
|
||||||
|
print;
|
||||||
|
$flag = 2;
|
||||||
|
} elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
|
||||||
|
$flag = 3;
|
||||||
|
}
|
||||||
|
} elsif ($flag == 2) {
|
||||||
|
# 2. begins with: "for ac_file in.*CONFIG_FILES" (the next 'for' after (1))
|
||||||
|
# end with: "rm -f conftest.s\*"
|
||||||
|
# on autoconf 250, it ends with '# CONFIG_HEADER section'
|
||||||
|
#
|
||||||
|
# gg: if a post-processing commands section is found first,
|
||||||
|
# stop there and insert a new loop to honor the case/esac.
|
||||||
|
# (pattern: /^\s+#\sRun the commands associated with the file./)
|
||||||
|
|
||||||
|
if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
|
||||||
|
$flag = 3;
|
||||||
|
} else {
|
||||||
|
print;
|
||||||
|
}
|
||||||
|
} elsif ($flag == 3) {
|
||||||
|
if (/^\s*rm\s+-f\s+conftest/ ) {
|
||||||
|
$flag = 4;
|
||||||
|
&insert_main_loop();
|
||||||
|
} elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) {
|
||||||
|
$flag = 4;
|
||||||
|
&insert_main_loop();
|
||||||
|
#die "hhhhhhh";
|
||||||
|
if ($ac_version != 2141) {
|
||||||
|
print STDERR "hmm, don't know autoconf version\n";
|
||||||
|
}
|
||||||
|
} elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) {
|
||||||
|
$flag = 4;
|
||||||
|
my $commands = defined $2;
|
||||||
|
&insert_main_loop();
|
||||||
|
$commands && insert_command_loop();
|
||||||
|
if($ac_version != 250) {
|
||||||
|
print STDERR "hmm, something went wrong :-(\n";
|
||||||
|
}
|
||||||
|
} elsif (/VPATH/ ) {
|
||||||
|
$vpath_seen = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
die "wrong input (flag != 4)" unless $flag == 4;
|
||||||
|
print STDERR "hmm, don't know autoconf version\n" unless $ac_version;
|
||||||
|
|
||||||
|
sub insert_main_loop {
|
||||||
|
|
||||||
|
if ($ac_version == 250) {
|
||||||
|
&insert_main_loop_250();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
&insert_main_loop_213();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub insert_main_loop_250 {
|
||||||
|
|
||||||
|
print <<EOF;
|
||||||
|
#echo Doing the fast build of Makefiles -- autoconf $ac_version
|
||||||
|
EOF
|
||||||
|
if ($vpath_seen) {
|
||||||
|
print <<EOF;
|
||||||
|
# VPATH subst was seen in original config.status main loop
|
||||||
|
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >>\$tmp/subs.sed
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
print <<EOF;
|
||||||
|
rm -f \$tmp/subs.files
|
||||||
|
for ac_file in .. \$CONFIG_FILES ; do
|
||||||
|
if test "x\$ac_file" != x..; then
|
||||||
|
echo \$ac_file >> \$tmp/subs.files
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if test -f \$tmp/subs.files ; then
|
||||||
|
perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL"
|
||||||
|
fi
|
||||||
|
rm -f \$tmp/subs.files
|
||||||
|
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub insert_main_loop_213 {
|
||||||
|
print <<EOF;
|
||||||
|
#echo Doing the fast build of Makefiles -- autoconf $ac_version
|
||||||
|
if test "x\$ac_cs_root" = "x" ; then
|
||||||
|
ac_cs_root=conftest
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
if ($vpath_seen) {
|
||||||
|
print <<EOF;
|
||||||
|
# VPATH subst was seen in original config.status main loop
|
||||||
|
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >> \$ac_cs_root.subs
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
print <<EOF;
|
||||||
|
rm -f \$ac_cs_root.sacfiles
|
||||||
|
for ac_file in .. \$CONFIG_FILES ; do
|
||||||
|
if test "x\$ac_file" != x..; then
|
||||||
|
echo \$ac_file >> \$ac_cs_root.sacfiles
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if test -f \$ac_cs_root.sacfiles ; then
|
||||||
|
perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL"
|
||||||
|
fi
|
||||||
|
rm -f \$ac_cs_root.s*
|
||||||
|
|
||||||
|
EOF
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub insert_command_loop {
|
||||||
|
print <<EOF;
|
||||||
|
for ac_file in .. \$CONFIG_FILES ; do
|
||||||
|
EOF
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,238 @@
|
|||||||
|
#!/usr/bin/env perl
|
||||||
|
# a script for use by autoconf to make the Makefiles
|
||||||
|
# from the Makefile.in's
|
||||||
|
#
|
||||||
|
# the original autoconf mechanism first splits all substitutions into groups
|
||||||
|
# of ca. 90, and than invokes sed for _every_ Makefile.in and every group
|
||||||
|
# (so around 2-3 times per Makefile.in). So this takes forever, as sed
|
||||||
|
# has to recompile the regexps every time.
|
||||||
|
#
|
||||||
|
# this script does better. It changes all Makefile.ins in one process.
|
||||||
|
# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec!
|
||||||
|
#
|
||||||
|
# written by Michael Matz <matz@kde.org>
|
||||||
|
# adapted by Dirk Mueller <mueller@kde.org>
|
||||||
|
|
||||||
|
# This file is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Library General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Library General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU Library General Public License
|
||||||
|
# along with this library; see the file COPYING.LIB. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
use File::Path;
|
||||||
|
|
||||||
|
my $ac_subs=$ARGV[0];
|
||||||
|
my $ac_sacfiles = $ARGV[1];
|
||||||
|
my $ac_given_srcdir=$ARGV[2];
|
||||||
|
my $ac_given_INSTALL=$ARGV[3];
|
||||||
|
|
||||||
|
my @comp_match;
|
||||||
|
my @comp_subs;
|
||||||
|
|
||||||
|
#print "ac_subs=$ac_subs\n";
|
||||||
|
#print "ac_sacfiles=$ac_sacfiles\n";
|
||||||
|
#print "ac_given_srcdir=$ac_given_srcdir\n";
|
||||||
|
#print "ac_given_INSTALL=$ac_given_INSTALL\n";
|
||||||
|
|
||||||
|
my $configure_input;
|
||||||
|
my ($srcdir, $top_srcdir);
|
||||||
|
my $INSTALL;
|
||||||
|
my $bad_perl = ($] < 5.005);
|
||||||
|
my $created_file_count = 0;
|
||||||
|
|
||||||
|
open(CF, "< $ac_subs") || die "can't open $ac_subs: $!";
|
||||||
|
my @subs = <CF>;
|
||||||
|
my $pat;
|
||||||
|
close(CF);
|
||||||
|
chomp @subs;
|
||||||
|
@comp_match=();
|
||||||
|
@comp_subs=();
|
||||||
|
|
||||||
|
if ($bad_perl) {
|
||||||
|
print "Using perl older than version 5.005\n";
|
||||||
|
foreach $pat (@subs) {
|
||||||
|
if ( ($pat =~ m/s%([^%]*)%([^%]*)%g/ )
|
||||||
|
|| ($pat =~ m/s%([^%]*)%([^%]*)%;t/ )
|
||||||
|
|| ($pat =~ m/s,([^,]*),(.*),;t/)
|
||||||
|
|| ($pat =~ m%s/([^/]*)/([^/]*)/g% )
|
||||||
|
|| ($pat =~ m%s/([^/]*)/([^/]*)/;t% )
|
||||||
|
) {
|
||||||
|
# form : s%bla%blubb%g
|
||||||
|
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
|
||||||
|
# or s,bla,blubb,;t t (autoconf 2.52)
|
||||||
|
my $srch = $1;
|
||||||
|
my $repl = $2;
|
||||||
|
$repl =~ s/\\(.)/$1/g;
|
||||||
|
push @comp_subs, make_closure($srch, $repl);
|
||||||
|
|
||||||
|
} elsif ( ($pat =~ /%([^%]*)%d/ )
|
||||||
|
|| ($pat =~ m%/([^/]*)/d% )
|
||||||
|
) {
|
||||||
|
push @comp_subs, make_closure($1, "");
|
||||||
|
} else {
|
||||||
|
die "Uhh. Malformed pattern in $ac_subs ($pat)"
|
||||||
|
unless ( $pat =~ /^\s*$/ ); # ignore white lines
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
foreach $pat (@subs) {
|
||||||
|
if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) ||
|
||||||
|
($pat =~ /s%([^%]*)%([^%]*)%;t/ ) ||
|
||||||
|
($pat =~ /s,([^,]*),(.*),;t/) ) {
|
||||||
|
# form : s%bla%blubb%g
|
||||||
|
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
|
||||||
|
# or s,bla,blubb,;t t (autoconf 2.52)
|
||||||
|
my $srch = $1;
|
||||||
|
my $repl = $2;
|
||||||
|
push @comp_match, eval "qr/\Q$srch\E/"; # compile match pattern
|
||||||
|
$repl =~ s/\\(.)/$1/g;
|
||||||
|
push @comp_subs, $repl;
|
||||||
|
} elsif ( ($pat =~ /%([^%]*)%d/ )
|
||||||
|
|| ($pat =~ m%/([^/]*)/d% )
|
||||||
|
) {
|
||||||
|
push @comp_match, eval "qr/\Q$1\E/";
|
||||||
|
push @comp_subs, "";
|
||||||
|
} else {
|
||||||
|
die "Uhh. Malformed pattern in $ac_subs ($pat)"
|
||||||
|
unless ( $pat =~ /^\s*$/ ); # ignore white lines
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
undef @subs;
|
||||||
|
|
||||||
|
# read the list of files to be patched, form:
|
||||||
|
# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile
|
||||||
|
|
||||||
|
open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!";
|
||||||
|
my @ac_files = <CF>;
|
||||||
|
close(CF);
|
||||||
|
chomp @ac_files;
|
||||||
|
|
||||||
|
|
||||||
|
my $ac_file;
|
||||||
|
foreach $ac_file (@ac_files) {
|
||||||
|
next if $ac_file =~ /\.\./;
|
||||||
|
next if $ac_file =~ /^\s*$/;
|
||||||
|
my $ac_file_in;
|
||||||
|
my ($ac_dir, $ac_dots, $ac_dir_suffix);
|
||||||
|
|
||||||
|
if ($ac_file =~ /.*:.*/ ) {
|
||||||
|
($ac_file_in = $ac_file) =~ s%[^:]*:%%;
|
||||||
|
$ac_file =~ s%:.*%%;
|
||||||
|
} else {
|
||||||
|
$ac_file_in = $ac_file.".in";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
|
||||||
|
|
||||||
|
# Remove last slash and all that follows it. Not all systems have dirname.
|
||||||
|
($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%;
|
||||||
|
if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) {
|
||||||
|
# The file is in a subdirectory.
|
||||||
|
if (! -d "$ac_dir") { mkpath "$ac_dir", 0, 0777; }
|
||||||
|
($ac_dir_suffix = $ac_dir) =~ s%^./%%;
|
||||||
|
$ac_dir_suffix="/".$ac_dir_suffix;
|
||||||
|
# A "../" for each directory in $ac_dir_suffix.
|
||||||
|
($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g;
|
||||||
|
} else {
|
||||||
|
$ac_dir_suffix="";
|
||||||
|
$ac_dots="";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($ac_given_srcdir eq ".") {
|
||||||
|
$srcdir=".";
|
||||||
|
if ($ac_dots) {
|
||||||
|
( $top_srcdir = $ac_dots) =~ s%/$%%;
|
||||||
|
} else { $top_srcdir="."; }
|
||||||
|
} elsif ($ac_given_srcdir =~ m%^/%) {
|
||||||
|
$srcdir=$ac_given_srcdir.$ac_dir_suffix;
|
||||||
|
$top_srcdir = $ac_given_srcdir;
|
||||||
|
} else {
|
||||||
|
$srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix;
|
||||||
|
$top_srcdir = $ac_dots.$ac_given_srcdir;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($ac_given_INSTALL) {
|
||||||
|
if ($ac_given_INSTALL =~ m%^/% ) {
|
||||||
|
$INSTALL = $ac_given_INSTALL;
|
||||||
|
} else {
|
||||||
|
$INSTALL = $ac_dots.$ac_given_INSTALL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print "fast creating $ac_file\n";
|
||||||
|
unlink $ac_file;
|
||||||
|
my $ac_comsub="";
|
||||||
|
my $fname=$ac_file_in;
|
||||||
|
$fname =~ s%.*/%%;
|
||||||
|
$configure_input="$ac_file. Generated from $fname by config.pl.";
|
||||||
|
|
||||||
|
my $ac_file_inputs;
|
||||||
|
($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%;
|
||||||
|
$ac_file_inputs =~ s%:% $ac_given_srcdir/%g;
|
||||||
|
|
||||||
|
patch_file($ac_file, $ac_file_inputs);
|
||||||
|
++$created_file_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
print "config.pl: fast created $created_file_count file(s).\n";
|
||||||
|
|
||||||
|
sub patch_file {
|
||||||
|
my ($outf, $infiles) = @_;
|
||||||
|
my $filedata;
|
||||||
|
my @infiles=split(' ', $infiles);
|
||||||
|
my $i=0;
|
||||||
|
my $name;
|
||||||
|
|
||||||
|
foreach $name (@infiles) {
|
||||||
|
if (open(CF, "< $name")) {
|
||||||
|
while (<CF>) {
|
||||||
|
$filedata .= $_;
|
||||||
|
}
|
||||||
|
close(CF);
|
||||||
|
} else {
|
||||||
|
print STDERR "can't open $name: $!"."\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$filedata =~ s%\@configure_input\@%$configure_input%g;
|
||||||
|
$filedata =~ s%\@srcdir\@%$srcdir%g;
|
||||||
|
$filedata =~ s%\@top_srcdir\@%$top_srcdir%g;
|
||||||
|
$filedata =~ s%\@INSTALL\@%$INSTALL%g;
|
||||||
|
|
||||||
|
if ($bad_perl) {
|
||||||
|
while ($i <= $#comp_subs) {
|
||||||
|
my $ref = $comp_subs[$i];
|
||||||
|
&$ref(\$filedata);
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
while ($i <= $#comp_match) {
|
||||||
|
$filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
open(CF, "> $outf") || die "can't create $outf: $!";
|
||||||
|
print CF $filedata;
|
||||||
|
close(CF);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub make_closure {
|
||||||
|
my ($pat, $sub) = @_;
|
||||||
|
my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%\Q$pat\E%\Q$sub\E%g; }";
|
||||||
|
if ($@) {
|
||||||
|
print "can't create CODE: $@\n";
|
||||||
|
}
|
||||||
|
return $ret;
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,45 @@
|
|||||||
|
# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
|
||||||
|
if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
|
||||||
|
# And if so, warn when they don't match
|
||||||
|
if test "$kde_libs_prefix" != "$given_prefix"; then
|
||||||
|
# And if kde doesn't know about the prefix yet
|
||||||
|
echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
|
||||||
|
if test $? -ne 0; then
|
||||||
|
echo ""
|
||||||
|
echo "Warning: you chose to install this package in $given_prefix,"
|
||||||
|
echo "but KDE was found in $kde_libs_prefix."
|
||||||
|
echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
|
||||||
|
echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
|
||||||
|
echo "Then restart KDE."
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
|
||||||
|
echo ""
|
||||||
|
echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
|
||||||
|
echo "was not included. Therefore, GCC symbol visibility support remains disabled."
|
||||||
|
echo ""
|
||||||
|
echo "For better performance, consider including the Qt visibility supporting patch"
|
||||||
|
echo "located at:"
|
||||||
|
echo ""
|
||||||
|
echo "http://bugs.kde.org/show_bug.cgi?id=109386"
|
||||||
|
echo ""
|
||||||
|
echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
|
||||||
|
echo "everything will continue to work just fine without it."
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$all_tests" = "bad"; then
|
||||||
|
if test ! "$cache_file" = "/dev/null"; then
|
||||||
|
echo ""
|
||||||
|
echo "Please remove the file $cache_file after changing your setup"
|
||||||
|
echo "so that configure will find the changes next time."
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "Good - your configure finished. Start make now"
|
||||||
|
echo ""
|
||||||
|
fi
|
@ -0,0 +1,57 @@
|
|||||||
|
dnl This file is part of the KDE libraries/packages
|
||||||
|
dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
|
||||||
|
|
||||||
|
dnl This file is free software; you can redistribute it and/or
|
||||||
|
dnl modify it under the terms of the GNU Library General Public
|
||||||
|
dnl License as published by the Free Software Foundation; either
|
||||||
|
dnl version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
dnl This library is distributed in the hope that it will be useful,
|
||||||
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
dnl Library General Public License for more details.
|
||||||
|
|
||||||
|
dnl You should have received a copy of the GNU Library General Public License
|
||||||
|
dnl along with this library; see the file COPYING.LIB. If not, write to
|
||||||
|
dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
dnl Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
# Original Author was Kalle@kde.org
|
||||||
|
# I lifted it in some mater. (Stephan Kulow)
|
||||||
|
# I used much code from Janos Farkas
|
||||||
|
|
||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
|
AC_INIT(acinclude.m4) dnl a source file from your sub dir
|
||||||
|
|
||||||
|
dnl This is so we can use kde-common
|
||||||
|
AC_CONFIG_AUX_DIR(admin)
|
||||||
|
|
||||||
|
dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
|
||||||
|
unset CDPATH
|
||||||
|
|
||||||
|
dnl Checking host/target/build systems, for make, install etc.
|
||||||
|
AC_CANONICAL_SYSTEM
|
||||||
|
dnl Perform program name transformation
|
||||||
|
AC_ARG_PROGRAM
|
||||||
|
|
||||||
|
dnl Automake doc recommends to do this only here. (Janos)
|
||||||
|
AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs
|
||||||
|
|
||||||
|
KDE_SET_PREFIX
|
||||||
|
|
||||||
|
dnl generate the config header
|
||||||
|
AM_CONFIG_HEADER(config.h) dnl at the distribution this done
|
||||||
|
|
||||||
|
dnl Checks for programs.
|
||||||
|
AC_CHECK_COMPILERS
|
||||||
|
AC_ENABLE_SHARED(yes)
|
||||||
|
AC_ENABLE_STATIC(no)
|
||||||
|
KDE_PROG_LIBTOOL
|
||||||
|
|
||||||
|
dnl for NLS support. Call them in this order!
|
||||||
|
dnl WITH_NLS is for the po files
|
||||||
|
AM_KDE_WITH_NLS
|
||||||
|
|
||||||
|
dnl KDE_USE_QT
|
||||||
|
AC_PATH_KDE
|
@ -0,0 +1,661 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
#
|
||||||
|
# cvs.sh
|
||||||
|
#
|
||||||
|
# This file contains support code from Makefile.common
|
||||||
|
# It defines a shell function for each known target
|
||||||
|
# and then does a case to call the correct function.
|
||||||
|
|
||||||
|
unset MAKEFLAGS
|
||||||
|
|
||||||
|
call_and_fix_autoconf()
|
||||||
|
{
|
||||||
|
$AUTOCONF || exit 1
|
||||||
|
if test -r configure.in.in ; then
|
||||||
|
perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
|
||||||
|
\\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
|
||||||
|
\\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
|
||||||
|
\\n rm -f \\\$CONFIG_STATUS.bak\\nfi\
|
||||||
|
\\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
strip_makefile()
|
||||||
|
{
|
||||||
|
if test ! -f $makefile_wo; then
|
||||||
|
perl -e '$in=0; while ( <> ) { $in = 1 if ($_ =~ m/^if / ); print $_ unless ($in || $_ =~ m/^include /); $in = 0 if ($_ =~ m/^endif/); }' < $makefile_am > $makefile_wo
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_autotool_versions()
|
||||||
|
{
|
||||||
|
required_autoconf_version="2.53 or newer"
|
||||||
|
AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
|
||||||
|
case $AUTOCONF_VERSION in
|
||||||
|
Autoconf*2.5* | autoconf*2.5* | autoconf*2.6* ) : ;;
|
||||||
|
"" )
|
||||||
|
echo "*** AUTOCONF NOT FOUND!."
|
||||||
|
echo "*** KDE requires autoconf $required_autoconf_version"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
echo "*** YOU'RE USING $AUTOCONF_VERSION."
|
||||||
|
echo "*** KDE requires autoconf $required_autoconf_version"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
|
||||||
|
case $AUTOHEADER_VERSION in
|
||||||
|
Autoconf*2.5* | autoheader*2.5* | autoheader*2.6* ) : ;;
|
||||||
|
"" )
|
||||||
|
echo "*** AUTOHEADER NOT FOUND!."
|
||||||
|
echo "*** KDE requires autoheader $required_autoconf_version"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
echo "*** YOU'RE USING $AUTOHEADER_VERSION."
|
||||||
|
echo "*** KDE requires autoheader $required_autoconf_version"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
|
||||||
|
required_automake_version="1.6.1 or newer"
|
||||||
|
case $AUTOMAKE_STRING in
|
||||||
|
automake*1.5d* | automake*1.5* | automake*1.5-* )
|
||||||
|
echo "*** YOU'RE USING $AUTOMAKE_STRING."
|
||||||
|
echo "*** KDE requires automake $required_automake_version"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9* | automake*1.10*)
|
||||||
|
echo "*** $AUTOMAKE_STRING found."
|
||||||
|
UNSERMAKE=no
|
||||||
|
;;
|
||||||
|
"" )
|
||||||
|
echo "*** AUTOMAKE NOT FOUND!."
|
||||||
|
echo "*** KDE requires automake $required_automake_version"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*unsermake* ) :
|
||||||
|
echo "*** YOU'RE USING UNSERMAKE."
|
||||||
|
echo "*** GOOD LUCK!! :)"
|
||||||
|
UNSERMAKE=unsermake
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
echo "*** YOU'RE USING $AUTOMAKE_STRING."
|
||||||
|
echo "*** KDE requires automake $required_automake_version"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
unset required_automake_version
|
||||||
|
}
|
||||||
|
|
||||||
|
cvs()
|
||||||
|
{
|
||||||
|
check_autotool_versions
|
||||||
|
acinclude_m4
|
||||||
|
|
||||||
|
### Make new subdirs and configure.in.
|
||||||
|
### The make calls could be optimized away here,
|
||||||
|
### with a little thought.
|
||||||
|
if test -r configure.in.in; then
|
||||||
|
rm -f configure.in
|
||||||
|
echo "*** Creating list of subdirectories"
|
||||||
|
create_subdirs
|
||||||
|
|
||||||
|
if test -r Makefile.am.in; then
|
||||||
|
echo "*** Creating Makefile.am"
|
||||||
|
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
|
||||||
|
strip_makefile
|
||||||
|
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
|
||||||
|
else
|
||||||
|
Makefile_am
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
configure_files
|
||||||
|
echo "*** Creating configure.in"
|
||||||
|
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
|
||||||
|
strip_makefile
|
||||||
|
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
|
||||||
|
else
|
||||||
|
configure_in
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "*** Creating aclocal.m4"
|
||||||
|
$ACLOCAL $ACLOCALFLAGS || exit 1
|
||||||
|
echo "*** Creating configure"
|
||||||
|
call_and_fix_autoconf
|
||||||
|
|
||||||
|
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
|
||||||
|
echo "*** Creating config.h template"
|
||||||
|
$AUTOHEADER || exit 1
|
||||||
|
touch config.h.in
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "*** Creating Makefile templates"
|
||||||
|
$AUTOMAKE || exit 1
|
||||||
|
|
||||||
|
if test "$UNSERMAKE" = no; then
|
||||||
|
echo "*** Postprocessing Makefile templates"
|
||||||
|
perl -w admin/am_edit || exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if egrep "^cvs-local:" $makefile_am >/dev/null; then \
|
||||||
|
strip_makefile
|
||||||
|
$MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "*** Creating date/time stamp"
|
||||||
|
touch stamp-h.in
|
||||||
|
|
||||||
|
echo "*** Finished"
|
||||||
|
echo " Don't forget to run ./configure"
|
||||||
|
echo " If you haven't done so in a while, run ./configure --help"
|
||||||
|
}
|
||||||
|
|
||||||
|
dist()
|
||||||
|
{
|
||||||
|
check_autotool_versions
|
||||||
|
|
||||||
|
###
|
||||||
|
### First build all of the files necessary to do just "make"
|
||||||
|
###
|
||||||
|
acinclude_m4
|
||||||
|
if test -r configure.in.in; then
|
||||||
|
rm -f configure.in
|
||||||
|
create_subdirs
|
||||||
|
|
||||||
|
if test -r Makefile.am.in; then
|
||||||
|
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
|
||||||
|
strip_makefile
|
||||||
|
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
|
||||||
|
else
|
||||||
|
Makefile_am
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
configure_files
|
||||||
|
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
|
||||||
|
strip_makefile
|
||||||
|
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
|
||||||
|
else
|
||||||
|
configure_in
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
$ACLOCAL $ACLOCALFLAGS
|
||||||
|
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
|
||||||
|
echo "*** Creating config.h template"
|
||||||
|
$AUTOHEADER || exit 1
|
||||||
|
touch config.h.in
|
||||||
|
fi
|
||||||
|
$AUTOMAKE --foreign || exit 1
|
||||||
|
if test "$UNSERMAKE" = no; then
|
||||||
|
echo "*** Postprocessing Makefile templates"
|
||||||
|
perl -w admin/am_edit || exit 1
|
||||||
|
fi
|
||||||
|
call_and_fix_autoconf
|
||||||
|
touch stamp-h.in
|
||||||
|
if grep "^cvs-local:" $makefile_am >/dev/null; then
|
||||||
|
strip_makefile
|
||||||
|
$MAKE -f $makefile_wo cvs-local top_srcdir=.
|
||||||
|
fi
|
||||||
|
|
||||||
|
###
|
||||||
|
### Then make messages
|
||||||
|
###
|
||||||
|
if test -d po; then
|
||||||
|
LIST=`find ./po -name "*.po"`
|
||||||
|
for i in $LIST; do
|
||||||
|
file2=`echo $i | sed -e "s#\.po#\.gmo#"`
|
||||||
|
msgfmt -o $file2 $i || touch $file2
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if grep "^cvs-dist-local:" $makefile_am >/dev/null; then
|
||||||
|
strip_makefile
|
||||||
|
$MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
subdir_dist()
|
||||||
|
{
|
||||||
|
$ACLOCAL $ACLOCALFLAGS
|
||||||
|
$AUTOHEADER
|
||||||
|
touch config.h.in
|
||||||
|
$AUTOMAKE
|
||||||
|
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
|
||||||
|
case $AUTOMAKE_STRING in
|
||||||
|
*unsermake* ) :
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
perl -w ../admin/am_edit --path=../admin
|
||||||
|
esac
|
||||||
|
call_and_fix_autoconf
|
||||||
|
touch stamp-h.in
|
||||||
|
}
|
||||||
|
|
||||||
|
configure_in()
|
||||||
|
{
|
||||||
|
rm -f configure.in configure.in.new
|
||||||
|
kde_use_qt_param=
|
||||||
|
test -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
|
||||||
|
list=`fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"`
|
||||||
|
: > configure.in.new
|
||||||
|
for file in $list; do
|
||||||
|
echo "dnl =======================================================" >> configure.in.new
|
||||||
|
echo "dnl FILE: $file" >> configure.in.new
|
||||||
|
echo "dnl =======================================================" >> configure.in.new
|
||||||
|
echo "" >> configure.in.new
|
||||||
|
cat $file >> configure.in.new
|
||||||
|
done
|
||||||
|
echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
|
||||||
|
if test -f Makefile.am.in; then
|
||||||
|
subdirs=`cat subdirs`
|
||||||
|
for dir in $subdirs; do
|
||||||
|
vdir=`echo $dir | sed -e 's,[-+.@],_,g'`
|
||||||
|
echo "AM_CONDITIONAL($vdir""_SUBDIR_included, test \"x\$$vdir""_SUBDIR_included\" = xyes)" >> configure.in.new
|
||||||
|
if test -f "$dir/configure.in"; then
|
||||||
|
echo "if test \"x\$$vdir""_SUBDIR_included\" = xyes; then " >> configure.in.new
|
||||||
|
echo " AC_CONFIG_SUBDIRS($dir)" >> configure.in.new
|
||||||
|
echo "fi" >> configure.in.new
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
|
||||||
|
|
||||||
|
if test -f inst-apps; then
|
||||||
|
topleveldirs=`cat inst-apps`
|
||||||
|
else
|
||||||
|
topleveldirs=
|
||||||
|
for dir in `ls -1d * | sort`; do
|
||||||
|
if test "$dir" != "debian" && test -d $dir; then
|
||||||
|
topleveldirs="$topleveldirs $dir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
for topleveldir in $topleveldirs; do
|
||||||
|
if test -f $topleveldir/configure.in; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if test -f $topleveldir/Makefile.am; then :; else
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
mfs=`find $topleveldir -follow -name Makefile.am -print | fgrep -v "/." | \
|
||||||
|
sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'`
|
||||||
|
for i in $mfs; do
|
||||||
|
echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
files=`cat configure.files`
|
||||||
|
list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
|
||||||
|
for file in $list; do
|
||||||
|
echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new
|
||||||
|
done
|
||||||
|
|
||||||
|
midfiles=`cat configure.files | fgrep "configure.in.mid"`
|
||||||
|
test -n "$midfiles" && cat $midfiles >> configure.in.new
|
||||||
|
|
||||||
|
echo "AC_OUTPUT" >> configure.in.new
|
||||||
|
modulename=
|
||||||
|
if test -f configure.in.in; then
|
||||||
|
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
|
||||||
|
kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
|
||||||
|
fi
|
||||||
|
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
|
||||||
|
line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
|
||||||
|
if test -n "$line"; then
|
||||||
|
modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
|
||||||
|
VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
|
||||||
|
fi
|
||||||
|
sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
|
||||||
|
configure.in.new > configure.in && mv configure.in configure.in.new
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
|
||||||
|
VERSION="\"3.5.10\""
|
||||||
|
fi
|
||||||
|
if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
|
||||||
|
modulename=`pwd`;
|
||||||
|
modulename=`basename $modulename`
|
||||||
|
esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
|
||||||
|
modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`
|
||||||
|
|
||||||
|
fi
|
||||||
|
if test -n "$kde_use_qt_param"; then
|
||||||
|
sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
|
||||||
|
configure.in.new > configure.in && mv configure.in configure.in.new
|
||||||
|
fi
|
||||||
|
sed -e "s#@MODULENAME@#$modulename#" configure.in.new |
|
||||||
|
sed -e "s#@VERSION@#$VERSION#" > configure.in
|
||||||
|
botfiles=`cat configure.files | egrep "configure.in.bot"`
|
||||||
|
test -n "$botfiles" && cat $botfiles >> configure.in
|
||||||
|
cat $admindir/configure.in.bot.end >> configure.in
|
||||||
|
rm -f configure.in.new
|
||||||
|
}
|
||||||
|
|
||||||
|
configure_files()
|
||||||
|
{
|
||||||
|
echo "*** Creating configure.files"
|
||||||
|
admindir=NO
|
||||||
|
for i in . .. ../.. ../../..; do
|
||||||
|
if test -x $i/admin; then admindir=$i/admin; break; fi
|
||||||
|
done
|
||||||
|
rm -f configure.files
|
||||||
|
touch configure.files
|
||||||
|
if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
|
||||||
|
echo $admindir/configure.in.min >> configure.files
|
||||||
|
fi
|
||||||
|
test -f configure.in.in && echo configure.in.in >> configure.files
|
||||||
|
# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs
|
||||||
|
if test -f inst-apps; then
|
||||||
|
inst=`cat inst-apps`
|
||||||
|
list=""
|
||||||
|
for i in $inst; do
|
||||||
|
list="$list `find $i/ -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
|
||||||
|
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
list=`find . -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
|
||||||
|
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
|
||||||
|
fi
|
||||||
|
for i in $list; do if test -f $i && test `dirname $i` != "." ; then
|
||||||
|
echo $i >> configure.files
|
||||||
|
fi; done
|
||||||
|
test -f configure.in.mid && echo configure.in.mid >> configure.files
|
||||||
|
test -f configure.in.bot && echo configure.in.bot >> configure.files
|
||||||
|
if test ! -s configure.files; then
|
||||||
|
echo "There are no files to build a configure. Please check your checkout."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
create_subdirs()
|
||||||
|
{
|
||||||
|
if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then
|
||||||
|
# as many modules contain rules to create subdirs without any
|
||||||
|
# dependencies make won't create it unless there is no file.
|
||||||
|
# so we check if that's a dummy rule or one that works
|
||||||
|
rm -f subdirs.cvs.sh.$$
|
||||||
|
if test -f subdirs; then
|
||||||
|
mv subdirs subdirs.cvs.sh.$$
|
||||||
|
fi
|
||||||
|
strip_makefile
|
||||||
|
$MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1
|
||||||
|
if test -f subdirs.cvs.sh.$$; then
|
||||||
|
if test -s subdirs; then
|
||||||
|
rm subdirs.cvs.sh.$$
|
||||||
|
else
|
||||||
|
mv subdirs.cvs.sh.$$ subdirs
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
subdirs
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
subdirs()
|
||||||
|
{
|
||||||
|
dirs=
|
||||||
|
idirs=
|
||||||
|
if test -f inst-apps; then
|
||||||
|
idirs=`cat inst-apps`
|
||||||
|
else
|
||||||
|
idirs=`ls -1 | sort`
|
||||||
|
fi
|
||||||
|
|
||||||
|
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
|
||||||
|
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
|
||||||
|
for i in $idirs; do
|
||||||
|
if test -f $i/Makefile.am; then
|
||||||
|
case " $compilefirst $compilelast " in
|
||||||
|
*" $i "*) ;;
|
||||||
|
*) dirs="$dirs $i"
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
: > ./_SUBDIRS
|
||||||
|
|
||||||
|
for d in $compilefirst; do
|
||||||
|
echo $d >> ./_SUBDIRS
|
||||||
|
done
|
||||||
|
|
||||||
|
(for d in $dirs; do
|
||||||
|
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
|
||||||
|
for s in $list; do
|
||||||
|
echo $s $d
|
||||||
|
done
|
||||||
|
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
|
||||||
|
for s in $list; do
|
||||||
|
echo $d $s
|
||||||
|
done
|
||||||
|
echo $d $d
|
||||||
|
done ) | tsort >> ./_SUBDIRS
|
||||||
|
|
||||||
|
for d in $compilelast; do
|
||||||
|
echo $d >> ./_SUBDIRS
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -r subdirs && cmp -s subdirs _SUBDIRS; then
|
||||||
|
rm -f _SUBDIRS
|
||||||
|
fi
|
||||||
|
test -r _SUBDIRS && mv _SUBDIRS subdirs || true
|
||||||
|
}
|
||||||
|
|
||||||
|
Makefile_am()
|
||||||
|
{
|
||||||
|
if test -f Makefile.am.in; then
|
||||||
|
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
|
||||||
|
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
|
||||||
|
|
||||||
|
idirs=
|
||||||
|
dirs=
|
||||||
|
if test -f inst-apps; then
|
||||||
|
idirs=`cat inst-apps`
|
||||||
|
else
|
||||||
|
idirs=`cat subdirs`
|
||||||
|
fi
|
||||||
|
for i in $idirs; do
|
||||||
|
case " $compilefirst $compilelast " in
|
||||||
|
*" $i "*) ;;
|
||||||
|
*) dirs="$dirs $i"
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
adds=`fgrep '$(top_srcdir)/acinclude.m4:' Makefile.am.in | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir)/,,g'`
|
||||||
|
if echo "$adds" | fgrep "*" >/dev/null ; then
|
||||||
|
adds=`ls -d -1 $adds 2>/dev/null`
|
||||||
|
fgrep -v '$(top_srcdir)/acinclude.m4:' Makefile.am.in > Makefile.am.in.adds
|
||||||
|
str='$(top_srcdir)/acinclude.m4:'
|
||||||
|
for add in $adds; do
|
||||||
|
str="$str \$(top_srcdir)/$add"
|
||||||
|
done
|
||||||
|
echo $str >> Makefile.am.in.adds
|
||||||
|
else
|
||||||
|
cat Makefile.am.in > Makefile.am.in.adds
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat Makefile.am.in.adds | \
|
||||||
|
sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \
|
||||||
|
sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am
|
||||||
|
echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
|
||||||
|
rm Makefile.am.in.adds
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
acinclude_m4()
|
||||||
|
{
|
||||||
|
echo "*** Creating acinclude.m4"
|
||||||
|
adds=
|
||||||
|
if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
|
||||||
|
strip_makefile
|
||||||
|
rm -f acinclude.m4
|
||||||
|
adds=`grep '\$(top_srcdir)/acinclude.m4:' $makefile_wo | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir),.,g'`
|
||||||
|
if echo $adds | fgrep "*" >/dev/null ; then
|
||||||
|
adds=`ls -d -1 $adds 2>/dev/null`
|
||||||
|
else
|
||||||
|
$MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 || exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
rm -f acinclude.m4
|
||||||
|
fi
|
||||||
|
# if it wasn't created up to now, then we do it better
|
||||||
|
if test ! -f acinclude.m4; then
|
||||||
|
cat admin/acinclude.m4.in admin/libtool.m4.in admin/pkg.m4.in $adds > acinclude.m4
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
package_merge()
|
||||||
|
{
|
||||||
|
catalogs=$POFILES
|
||||||
|
for cat in $catalogs; do
|
||||||
|
msgmerge -o $cat.new $cat $PACKAGE.pot
|
||||||
|
if test -s $cat.new; then
|
||||||
|
grep -v "\"POT-Creation" $cat.new > $cat.new.2
|
||||||
|
grep -v "\"POT-Creation" $cat >> $cat.new.1
|
||||||
|
if diff $cat.new.1 $cat.new.2; then
|
||||||
|
rm $cat.new
|
||||||
|
else
|
||||||
|
mv $cat.new $cat
|
||||||
|
fi
|
||||||
|
rm -f $cat.new.1 $cat.new.2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
extract_messages()
|
||||||
|
{
|
||||||
|
podir=${podir:-$PWD/po}
|
||||||
|
files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
|
||||||
|
dirs=`for i in $files; do echo \`dirname $i\`; done`
|
||||||
|
tmpname="$PWD/messages.log"
|
||||||
|
if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
|
||||||
|
if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
|
||||||
|
export EXTRACTRC PREPARETIPS
|
||||||
|
|
||||||
|
for subdir in $dirs; do
|
||||||
|
test -z "$VERBOSE" || echo "Making messages in $subdir"
|
||||||
|
(cd $subdir
|
||||||
|
if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
|
||||||
|
$EXTRACTRC *.rc *.ui *.kcfg > rc.cpp
|
||||||
|
else
|
||||||
|
candidates=`ls -1 *.rc *.ui *.kcfg 2>/dev/null`
|
||||||
|
if test -n "$candidates"; then
|
||||||
|
echo "$subdir has *.rc, *.ui or *.kcfg files, but not correct messages line"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if find . -name \*.c\* -o -name \*.h\* | fgrep -v ".svn" | xargs fgrep -s -q KAboutData ; then
|
||||||
|
echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
|
||||||
|
else echo " " > _translatorinfo.cpp
|
||||||
|
fi
|
||||||
|
perl -e '$mes=0; while (<STDIN>) { next if (/^(if\s|else\s|endif)/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile
|
||||||
|
|
||||||
|
kdepotpath=${includedir:-`kde-config --expandvars --install include`}/kde.pot
|
||||||
|
if ! test -f $kdepotpath; then
|
||||||
|
kdepotpath=`kde-config --expandvars --prefix`/include/kde.pot
|
||||||
|
fi
|
||||||
|
|
||||||
|
$MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" srcdir=. \
|
||||||
|
XGETTEXT="${XGETTEXT:-xgettext} --foreign-user -C -ci18n -ki18n -ktr2i18n -kI18N_NOOP -kI18N_NOOP2 -kaliasLocale -x $kdepotpath" messages
|
||||||
|
exit_code=$?
|
||||||
|
if test "$exit_code" != 0; then
|
||||||
|
echo "make exit code: $exit_code"
|
||||||
|
fi
|
||||||
|
) 2>&1 | grep -v '^make\[1\]' > $tmpname
|
||||||
|
test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
|
||||||
|
test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
|
||||||
|
rm -f $subdir/_translatorinfo.cpp
|
||||||
|
rm -f $subdir/_transMakefile
|
||||||
|
done
|
||||||
|
rm -f $tmpname
|
||||||
|
}
|
||||||
|
|
||||||
|
package_messages()
|
||||||
|
{
|
||||||
|
rm -rf po.backup
|
||||||
|
mkdir po.backup
|
||||||
|
|
||||||
|
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
|
||||||
|
egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
|
||||||
|
cat po/$i > po.backup/backup_$i
|
||||||
|
touch -r po/$i po.backup/backup_$i
|
||||||
|
rm po/$i
|
||||||
|
done
|
||||||
|
|
||||||
|
extract_messages
|
||||||
|
|
||||||
|
for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
|
||||||
|
test -f po/$i || echo "disappeared: $i"
|
||||||
|
done
|
||||||
|
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
|
||||||
|
sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po/$i > po/$i.new && mv po/$i.new po/$i
|
||||||
|
#msgmerge -q -o po/$i po/$i po/$i
|
||||||
|
egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
|
||||||
|
if test -f po.backup/$i && ! cmp -s temp.pot po.backup/$i; then
|
||||||
|
echo "will update $i"
|
||||||
|
else
|
||||||
|
if test -f po.backup/backup_$i; then
|
||||||
|
test -z "$VERBOSE" || echo "I'm restoring $i"
|
||||||
|
mv po.backup/backup_$i po/$i
|
||||||
|
rm po.backup/$i
|
||||||
|
else
|
||||||
|
echo "will add $i"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -f temp.pot
|
||||||
|
rm -rf po.backup
|
||||||
|
}
|
||||||
|
|
||||||
|
# Make sure that sorting is always done the same way
|
||||||
|
LC_ALL=C
|
||||||
|
export LC_ALL
|
||||||
|
unset LANG || :
|
||||||
|
unset LC_CTYPE || :
|
||||||
|
unset LANGUAGE || :
|
||||||
|
|
||||||
|
unset CDPATH || :
|
||||||
|
admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
|
||||||
|
test "x$admindir" = "x$0" && admindir=.
|
||||||
|
|
||||||
|
test "x$MAKE" = x && MAKE=make
|
||||||
|
makefile_am=Makefile.am
|
||||||
|
makefile_wo=Makefile.am.wo
|
||||||
|
if test -f Makefile.am.in; then
|
||||||
|
makefile_am=Makefile.am.in
|
||||||
|
makefile_wo=Makefile.am.in.wo
|
||||||
|
rm -f $makefile_wo
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Call script to find autoconf and friends. Uses eval since the script outputs
|
||||||
|
# sh-compatible code.
|
||||||
|
eval `$admindir/detect-autoconf.pl`
|
||||||
|
|
||||||
|
###
|
||||||
|
### Main
|
||||||
|
###
|
||||||
|
|
||||||
|
arg=`echo $1 | tr .- __`
|
||||||
|
case $arg in
|
||||||
|
cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
|
||||||
|
cvs_clean | package_merge | package_messages | Makefile_am | acinclude_m4 | extract_messages ) $arg ;;
|
||||||
|
configure ) call_and_fix_autoconf ;;
|
||||||
|
* ) echo "Usage: cvs.sh <target>"
|
||||||
|
echo "Target can be one of:"
|
||||||
|
echo " cvs svn dist"
|
||||||
|
echo " configure.in configure.files"
|
||||||
|
echo " package-merge package-messages"
|
||||||
|
echo ""
|
||||||
|
echo "Usage: anything but $1"
|
||||||
|
exit 1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -f $makefile_wo; then
|
||||||
|
rm $makefile_wo
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
|
use Shell qw(mv cp mkdir rm) ;
|
||||||
|
use File::Find;
|
||||||
|
use Cwd;
|
||||||
|
|
||||||
|
$origPwd = `pwd`;
|
||||||
|
chomp $origPwd;
|
||||||
|
|
||||||
|
$kde_prefix = "/usr";
|
||||||
|
$sysconfdir = "/etc";
|
||||||
|
$kde_includedir = "$kde_prefix/include/kde";
|
||||||
|
$infodir = "$kde_prefix/share/info";
|
||||||
|
$mandir = "$kde_prefix/share/man";
|
||||||
|
$qtdir = "/usr/share/qt3";
|
||||||
|
|
||||||
|
$kde_cgidir = "$kde_prefix/lib/cgi-bin";
|
||||||
|
$kde_confdir = "$sysconfdir/kde3";
|
||||||
|
$kde_htmldir = "$kde_prefix/share/doc/kde/HTML";
|
||||||
|
|
||||||
|
if (defined $ENV{DEB_BUILD_OPTIONS} &&
|
||||||
|
$ENV{DEB_BUILD_OPTIONS} =~ /\bnostrip\b/) {
|
||||||
|
$enable_debug="--enable-debug=full";
|
||||||
|
} else {
|
||||||
|
$enable_debug="--disable-debug";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (@ARGV && $ARGV[0] eq 'echodirs') {
|
||||||
|
print STDOUT "export kde_prefix=$kde_prefix\n";
|
||||||
|
print STDOUT "export sysconfdir=$sysconfdir\n";
|
||||||
|
print STDOUT "export kde_includedir=$kde_includedir\n";
|
||||||
|
print STDOUT "export infodir=$infodir\n";
|
||||||
|
print STDOUT "export mandir=$mandir\n";
|
||||||
|
print STDOUT "export qtdir=$qtdir\n";
|
||||||
|
|
||||||
|
print STDOUT "export kde_cgidir=$kde_cgidir\n";
|
||||||
|
print STDOUT "export kde_confdir=$kde_confdir\n";
|
||||||
|
print STDOUT "export kde_htmldir=$kde_htmldir\n";
|
||||||
|
|
||||||
|
print STDOUT "configkde=$enable_debug --disable-rpath --prefix=\$(kde_prefix) --sysconfdir=\$(sysconfdir) --includedir=\$(kde_includedir) --infodir=\$(infodir) --mandir=\$(mandir) --with-qt-dir=\$(qtdir)\n";
|
||||||
|
|
||||||
|
exit
|
||||||
|
}
|
@ -0,0 +1,530 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
|
||||||
|
scriptversion=2005-07-09.11
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# 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., 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.
|
||||||
|
|
||||||
|
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||||
|
as side-effects.
|
||||||
|
|
||||||
|
Environment variables:
|
||||||
|
depmode Dependency tracking mode.
|
||||||
|
source Source file read by `PROGRAMS ARGS'.
|
||||||
|
object Object file output by `PROGRAMS ARGS'.
|
||||||
|
DEPDIR directory where to store dependencies.
|
||||||
|
depfile Dependency file to output.
|
||||||
|
tmpdepfile Temporary file to use when outputing dependencies.
|
||||||
|
libtool Whether libtool is used (yes/no).
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "depcomp $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||||
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||||
|
depfile=${depfile-`echo "$object" |
|
||||||
|
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||||
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||||
|
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
|
||||||
|
# Some modes work just like other modes, but use different flags. We
|
||||||
|
# parameterize here, but still list the modes in the big case below,
|
||||||
|
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||||
|
# here, because this file can only contain one case statement.
|
||||||
|
if test "$depmode" = hp; then
|
||||||
|
# HP compiler uses -M and no extra arg.
|
||||||
|
gccflag=-M
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = dashXmstdout; then
|
||||||
|
# This is just like dashmstdout with a different argument.
|
||||||
|
dashmflag=-xM
|
||||||
|
depmode=dashmstdout
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$depmode" in
|
||||||
|
gcc3)
|
||||||
|
## gcc 3 implements dependency tracking that does exactly what
|
||||||
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||||
|
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||||
|
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
mv "$tmpdepfile" "$depfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
gcc)
|
||||||
|
## There are various ways to get dependency output from gcc. Here's
|
||||||
|
## why we pick this rather obscure method:
|
||||||
|
## - Don't want to use -MD because we'd like the dependencies to end
|
||||||
|
## up in a subdir. Having to rename by hand is ugly.
|
||||||
|
## (We might end up doing this anyway to support other compilers.)
|
||||||
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||||
|
## -MM, not -M (despite what the docs say).
|
||||||
|
## - Using -M directly means running the compiler twice (even worse
|
||||||
|
## than renaming).
|
||||||
|
if test -z "$gccflag"; then
|
||||||
|
gccflag=-MD,
|
||||||
|
fi
|
||||||
|
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||||
|
## The second -e expression handles DOS-style file names with drive letters.
|
||||||
|
sed -e 's/^[^:]*: / /' \
|
||||||
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||||
|
## This next piece of magic avoids the `deleted header file' problem.
|
||||||
|
## The problem is that when a header file which appears in a .P file
|
||||||
|
## is deleted, the dependency causes make to die (because there is
|
||||||
|
## typically no way to rebuild the header). We avoid this by adding
|
||||||
|
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||||
|
## this for us directly.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" |
|
||||||
|
## Some versions of gcc put a space before the `:'. On the theory
|
||||||
|
## that the space means something, we add a space to the output as
|
||||||
|
## well.
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
sgi)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||||
|
else
|
||||||
|
"$@" -MDupdate "$tmpdepfile"
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
|
||||||
|
# Clip off the initial element (the dependent). Don't try to be
|
||||||
|
# clever and replace this with sed code, as IRIX sed won't handle
|
||||||
|
# lines with more than a fixed number of characters (4096 in
|
||||||
|
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||||
|
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||||
|
# dependency line.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||||
|
tr '
|
||||||
|
' ' ' >> $depfile
|
||||||
|
echo >> $depfile
|
||||||
|
|
||||||
|
# The second pass generates a dummy entry for each header file.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||||
|
>> $depfile
|
||||||
|
else
|
||||||
|
# The sourcefile does not contain any dependencies, so just
|
||||||
|
# store a dummy comment line, to avoid errors with the Makefile
|
||||||
|
# "include basename.Plo" scheme.
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix)
|
||||||
|
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||||
|
# in a .u file. In older versions, this file always lives in the
|
||||||
|
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||||
|
# start of each line; $object doesn't have directory information.
|
||||||
|
# Version 6 uses the directory in both cases.
|
||||||
|
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
|
||||||
|
tmpdepfile="$stripped.u"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" -Wc,-M
|
||||||
|
else
|
||||||
|
"$@" -M
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then :
|
||||||
|
else
|
||||||
|
stripped=`echo "$stripped" | sed 's,^.*/,,'`
|
||||||
|
tmpdepfile="$stripped.u"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
outname="$stripped.o"
|
||||||
|
# Each line is of the form `foo.o: dependent.h'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
# The sourcefile does not contain any dependencies, so just
|
||||||
|
# store a dummy comment line, to avoid errors with the Makefile
|
||||||
|
# "include basename.Plo" scheme.
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
icc)
|
||||||
|
# Intel's C compiler understands `-MD -MF file'. However on
|
||||||
|
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||||
|
# ICC 7.0 will fill foo.d with something like
|
||||||
|
# foo.o: sub/foo.c
|
||||||
|
# foo.o: sub/foo.h
|
||||||
|
# which is wrong. We want:
|
||||||
|
# sub/foo.o: sub/foo.c
|
||||||
|
# sub/foo.o: sub/foo.h
|
||||||
|
# sub/foo.c:
|
||||||
|
# sub/foo.h:
|
||||||
|
# ICC 7.1 will output
|
||||||
|
# foo.o: sub/foo.c sub/foo.h
|
||||||
|
# and will wrap long lines using \ :
|
||||||
|
# foo.o: sub/foo.c ... \
|
||||||
|
# sub/foo.h ... \
|
||||||
|
# ...
|
||||||
|
|
||||||
|
"$@" -MD -MF "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each line is of the form `foo.o: dependent.h',
|
||||||
|
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||||
|
sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
tru64)
|
||||||
|
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||||
|
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||||
|
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||||
|
# dependencies in `foo.d' instead, so we check for that too.
|
||||||
|
# Subdirectories are respected.
|
||||||
|
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||||
|
test "x$dir" = "x$object" && dir=
|
||||||
|
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||||
|
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
# With Tru64 cc, shared objects can also be used to make a
|
||||||
|
# static library. This mecanism is used in libtool 1.4 series to
|
||||||
|
# handle both shared and static libraries in a single compilation.
|
||||||
|
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||||
|
#
|
||||||
|
# With libtool 1.5 this exception was removed, and libtool now
|
||||||
|
# generates 2 separate objects for the 2 libraries. These two
|
||||||
|
# compilations output dependencies in in $dir.libs/$base.o.d and
|
||||||
|
# in $dir$base.o.d. We have to check for both files, because
|
||||||
|
# one of the two compilations can be disabled. We should prefer
|
||||||
|
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||||
|
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||||
|
# the former would cause a distcleancheck panic.
|
||||||
|
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||||
|
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||||
|
"$@" -Wc,-MD
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.o.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
tmpdepfile3=$dir$base.d
|
||||||
|
tmpdepfile4=$dir$base.d
|
||||||
|
"$@" -MD
|
||||||
|
fi
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||||
|
# That's a tab and a space in the [].
|
||||||
|
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
#nosideeffect)
|
||||||
|
# This comment above is used by automake to tell side-effect
|
||||||
|
# dependency tracking mechanisms from slower ones.
|
||||||
|
|
||||||
|
dashmstdout)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout, regardless of -o.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test $1 != '--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove `-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
test -z "$dashmflag" && dashmflag=-M
|
||||||
|
# Require at least two characters before searching for `:'
|
||||||
|
# in the target name. This is to cope with DOS-style filenames:
|
||||||
|
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||||
|
"$@" $dashmflag |
|
||||||
|
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" | \
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
dashXmstdout)
|
||||||
|
# This case only exists to satisfy depend.m4. It is never actually
|
||||||
|
# run, as this mode is specially recognized in the preamble.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
makedepend)
|
||||||
|
"$@" || exit $?
|
||||||
|
# Remove any Libtool call
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test $1 != '--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
# X makedepend
|
||||||
|
shift
|
||||||
|
cleared=no
|
||||||
|
for arg in "$@"; do
|
||||||
|
case $cleared in
|
||||||
|
no)
|
||||||
|
set ""; shift
|
||||||
|
cleared=yes ;;
|
||||||
|
esac
|
||||||
|
case "$arg" in
|
||||||
|
-D*|-I*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
# Strip any option that makedepend may not understand. Remove
|
||||||
|
# the object too, otherwise makedepend will parse it as a source file.
|
||||||
|
-*|$object)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||||
|
touch "$tmpdepfile"
|
||||||
|
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||||
|
' | \
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||||
|
;;
|
||||||
|
|
||||||
|
cpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test $1 != '--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove `-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
"$@" -E |
|
||||||
|
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||||
|
sed '$ s: \\$::' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
cat < "$tmpdepfile" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvisualcpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout, regardless of -o,
|
||||||
|
# because we must use -o when running libtool.
|
||||||
|
"$@" || exit $?
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case "$arg" in
|
||||||
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||||
|
set fnord "$@"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
"$@" -E |
|
||||||
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||||
|
echo " " >> "$depfile"
|
||||||
|
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
none)
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unknown depmode $depmode" 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
@ -0,0 +1,19 @@
|
|||||||
|
$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in $(top_srcdir)/admin/cvs.sh $(top_srcdir)/admin/pkg.m4.in
|
||||||
|
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh acinclude_m4
|
||||||
|
|
||||||
|
$(top_srcdir)/configure.in: $(top_srcdir)/subdirs $(top_srcdir)/configure.files $(top_srcdir)/admin/cvs.sh
|
||||||
|
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure_in
|
||||||
|
|
||||||
|
$(top_srcdir)/configure.files: $(top_srcdir)/subdirs $(CONF_FILES)
|
||||||
|
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure.files $(top_srcdir)/admin/cvs.sh
|
||||||
|
|
||||||
|
$(top_srcdir)/Makefile.am: $(top_srcdir)/Makefile.am.in $(top_srcdir)/subdirs $(top_srcdir)/admin/cvs.sh
|
||||||
|
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh Makefile_am
|
||||||
|
|
||||||
|
$(top_srcdir)/subdirs: $(top_srcdir)/Makefile.am.in $(top_srcdir)/admin/cvs.sh
|
||||||
|
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh subdirs
|
||||||
|
|
||||||
|
# defining default rules for files that may not be present
|
||||||
|
$(top_srcdir)/Makefile.am.in:
|
||||||
|
$(CONF_FILES):
|
||||||
|
|
@ -0,0 +1,256 @@
|
|||||||
|
#!/usr/bin/env perl
|
||||||
|
|
||||||
|
# Try to locate best version of auto*
|
||||||
|
# By Michael Pyne <michael.pyne@kdemail.net>
|
||||||
|
#
|
||||||
|
# Copyright (c) 2005.
|
||||||
|
# This code is public domain. You may use it however you like (including
|
||||||
|
# relicensing).
|
||||||
|
|
||||||
|
# Emulate the 'which' program.
|
||||||
|
sub which
|
||||||
|
{
|
||||||
|
my $prog = shift;
|
||||||
|
my @paths = split(/:/, $ENV{'PATH'});
|
||||||
|
|
||||||
|
for $path (@paths)
|
||||||
|
{
|
||||||
|
return "$path/$prog" if -x "$path/$prog";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Subroutine to lexicographically compare two version strings, a and b.
|
||||||
|
# If a > b, 1 is returned.
|
||||||
|
# If a == b, 0 is returned.
|
||||||
|
# If a < b, -1 is returned.
|
||||||
|
#
|
||||||
|
# If the strings are of uneven number length then the shorter string is
|
||||||
|
# prepended by enough zeroes to make the two string lengths equal in order to
|
||||||
|
# allow an accurate comparison. Note that the zero-padding only occurs in
|
||||||
|
# between version separators (i.e. 1.6 and 1.10, results in 1.06 vs. 1.10).
|
||||||
|
# Parts of the version ending in -foo (or any other text) are not considered
|
||||||
|
# when doing the compare. (i.e. 2.53a vs 2.53 doesn't end up in 2.53a vs.
|
||||||
|
# 2.053)
|
||||||
|
sub compareVersions
|
||||||
|
{
|
||||||
|
my ($a, $b) = @_;
|
||||||
|
|
||||||
|
# Split the strings up by '.' (version separator) and start comparing digit
|
||||||
|
# length.
|
||||||
|
|
||||||
|
my @aParts = split(/\./, $a);
|
||||||
|
my @bParts = split(/\./, $b);
|
||||||
|
|
||||||
|
# Make the arrays equal in length by adding missing zeroes to the end of the
|
||||||
|
# version.
|
||||||
|
push @aParts, '0' while scalar @aParts < scalar @bParts;
|
||||||
|
push @bParts, '0' while scalar @bParts < scalar @aParts;
|
||||||
|
|
||||||
|
# Now compare each individual portion.
|
||||||
|
for (my $i = 0; $i < scalar @aParts; ++$i)
|
||||||
|
{
|
||||||
|
# Make sure that any portion that has numbers is contiguous. I'm sure
|
||||||
|
# there's a technique for saving stuff like 2.52a2 but I don't feel
|
||||||
|
# like implementing it.
|
||||||
|
if ($aParts[$i] !~ /^[^\d]*\d+[^\d]*$/ or
|
||||||
|
$bParts[$i] !~ /^[^\d]*\d+[^\d]*$/)
|
||||||
|
{
|
||||||
|
die "Not able to compare $a to $b!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
my ($aDigits) = ($aParts[$i] =~ /(\d+)/);
|
||||||
|
my ($bDigits) = ($bParts[$i] =~ /(\d+)/);
|
||||||
|
|
||||||
|
# Perl is $MODERATELY_INSULTING_TERM, don't remove the parentheses in
|
||||||
|
# the delta calculation below.
|
||||||
|
my $delta = (length $aDigits) - (length $bDigits);
|
||||||
|
if ($delta < 0) # b is longer
|
||||||
|
{
|
||||||
|
my $replacement = ('0' x (-$delta)) . $aDigits;
|
||||||
|
$aParts[$i] =~ s/$aDigits/$replacement/;
|
||||||
|
}
|
||||||
|
elsif ($delta > 0) # a is longer
|
||||||
|
{
|
||||||
|
my $replacement = ('0' x $delta) . $bDigits;
|
||||||
|
$bParts[$i] =~ s/$bDigits/$replacement/;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Arrays now have standardized version components, let's re-merge them
|
||||||
|
# to strings to do the compare.
|
||||||
|
my $newA = join('.', @aParts);
|
||||||
|
my $newB = join('.', @bParts);
|
||||||
|
|
||||||
|
return 1 if ($newA gt $newB);
|
||||||
|
return -1 if ($newA lt $newB);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Subroutine to determine the highest installed version of the given program,
|
||||||
|
# searching from the given paths.
|
||||||
|
sub findBest
|
||||||
|
{
|
||||||
|
my ($program, @paths) = @_;
|
||||||
|
my $best_version_found = '0'; # Deliberately a string.
|
||||||
|
my %versions;
|
||||||
|
my %minimumVersions = (
|
||||||
|
'autoconf' => '2.5',
|
||||||
|
'automake' => '1.6',
|
||||||
|
);
|
||||||
|
my $sgn; # Used for compareVersions results.
|
||||||
|
|
||||||
|
# Allow user to use environment variable to override search.
|
||||||
|
return $ENV{uc $program} if $ENV{uc $program};
|
||||||
|
|
||||||
|
for $prefix (@paths)
|
||||||
|
{
|
||||||
|
@files = glob "$prefix/$program*";
|
||||||
|
for $file (@files)
|
||||||
|
{
|
||||||
|
# Don't check non-executable scripts.
|
||||||
|
next unless -x $file;
|
||||||
|
|
||||||
|
($version) = $file =~ /$prefix\/$program-?(.*)$/;
|
||||||
|
|
||||||
|
# Don't check the -wrapper ones (or any other non program one).
|
||||||
|
# The real deal should start with a version number, or have no
|
||||||
|
# suffix at all.
|
||||||
|
next if $version =~ /^[^\d]/;
|
||||||
|
|
||||||
|
# Special case some programs to make sure it has a minimum version.
|
||||||
|
if (not $version and exists $minimumVersions{$program})
|
||||||
|
{
|
||||||
|
my $min_version = $minimumVersions{$program};
|
||||||
|
my $versionOutput = `$program --version 2>/dev/null | head -n 1`;
|
||||||
|
|
||||||
|
# If we can't run the script to get the version it likely won't work later.
|
||||||
|
next unless $versionOutput;
|
||||||
|
|
||||||
|
# Use number.number for version (we don't need the excess in general).
|
||||||
|
($versionOutput) = ($versionOutput =~ /(\d+\.\d+)/);
|
||||||
|
|
||||||
|
# compareVersions returns -1 if the left argument is less than
|
||||||
|
# the right argument. It can also die for invalid input so
|
||||||
|
# wrap with eval.
|
||||||
|
eval {
|
||||||
|
$sgn = compareVersions($versionOutput, $min_version);
|
||||||
|
};
|
||||||
|
|
||||||
|
# $@ would be set if an error was encountered.
|
||||||
|
if ($@ or not $versionOutput or $sgn == -1) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# If no version suffix then use it in favor of a versioned autotool
|
||||||
|
# since the ever-popular WANT_AUTOFOO should then work (in theory).
|
||||||
|
return $file unless $version;
|
||||||
|
|
||||||
|
# Emulate 'which', and abort if we've already seen this version.
|
||||||
|
next if exists $versions{$version};
|
||||||
|
|
||||||
|
# Save filename of program.
|
||||||
|
$versions{$version} = $file;
|
||||||
|
|
||||||
|
# Use string comparison so that e.g. 253a will be > 253 but < 254.
|
||||||
|
# See above about the need for eval.
|
||||||
|
eval {
|
||||||
|
$sgn = compareVersions($version, $best_version_found);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (not $@ and $sgn == 1)
|
||||||
|
{
|
||||||
|
$best_version_found = $version;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $versions{$best_version_found};
|
||||||
|
}
|
||||||
|
|
||||||
|
# Find an appropriate "which" program for later use by the shell script calling
|
||||||
|
# us.
|
||||||
|
sub findWhich
|
||||||
|
{
|
||||||
|
for $candidate ('type -p', 'which', 'type')
|
||||||
|
{
|
||||||
|
$test = `$candidate sh 2>/dev/null`;
|
||||||
|
chomp $test;
|
||||||
|
|
||||||
|
return $candidate if -x $test;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Uses which() to find a program unless the user provided its path in the
|
||||||
|
# environment (the upper case program name is searched).
|
||||||
|
sub findProgram
|
||||||
|
{
|
||||||
|
$suffix = ""; # For use if @_ has only one param.
|
||||||
|
my ($program, $suffix) = @_;
|
||||||
|
|
||||||
|
return $ENV{uc $program} if $ENV{uc $program};
|
||||||
|
return which("$program$suffix");
|
||||||
|
}
|
||||||
|
|
||||||
|
# SCRIPT STARTS.
|
||||||
|
|
||||||
|
# Search in path.
|
||||||
|
@paths = split(/:/, $ENV{'PATH'});
|
||||||
|
|
||||||
|
# Make sure at least /usr/bin and /usr/local/bin are in this search.
|
||||||
|
unshift @paths, '/usr/local/bin' unless grep $_ eq '/usr/local/bin', @paths;
|
||||||
|
unshift @paths, '/usr/bin' unless grep $_ eq '/usr/bin', @paths;
|
||||||
|
|
||||||
|
$autoconf = findBest('autoconf', @paths);
|
||||||
|
($autoconf_suffix) = $autoconf =~ /.*autoconf(.*)$/;
|
||||||
|
|
||||||
|
# Find matching autoconf companions.
|
||||||
|
$autoheader = findProgram('autoheader', $autoconf_suffix);
|
||||||
|
$autom4te = findProgram('autom4te', $autoconf_suffix);
|
||||||
|
|
||||||
|
# Get best automake, and look for unsermake to possibly override it.
|
||||||
|
$automake = findBest('automake', @paths);
|
||||||
|
$unsermake = "";
|
||||||
|
# backward compatible: if $UNSERMAKE points to a path, use it
|
||||||
|
$unsermake = findProgram('unsermake') if (defined($ENV{'UNSERMAKE'}) and $ENV{'UNSERMAKE'} =~ /\//);
|
||||||
|
# new compatible: if it says 'yes', use the one from path
|
||||||
|
$unsermake = which('unsermake') if ($ENV{'UNSERMAKE'} ne 'no');
|
||||||
|
|
||||||
|
($automake_suffix) = $automake =~ /.*automake(.*)$/;
|
||||||
|
|
||||||
|
# Find matching automake companions.
|
||||||
|
$aclocal = findProgram('aclocal', $automake_suffix);
|
||||||
|
|
||||||
|
# Use unsermake if we found it.
|
||||||
|
$automake = "$unsermake -c" if ($unsermake and $aclocal);
|
||||||
|
|
||||||
|
$which = findWhich();
|
||||||
|
|
||||||
|
# Make sure we have all of the needed programs.
|
||||||
|
for $i (qw'autoconf autoheader autom4te automake aclocal')
|
||||||
|
{
|
||||||
|
unless(${$i})
|
||||||
|
{
|
||||||
|
print STDERR "# Unable to find $i!!\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Print results in eval-able form.
|
||||||
|
print <<EOF;
|
||||||
|
AUTOCONF="$autoconf"
|
||||||
|
AUTOHEADER="$autoheader"
|
||||||
|
AUTOM4TE="$autom4te"
|
||||||
|
|
||||||
|
AUTOMAKE="$automake"
|
||||||
|
ACLOCAL="$aclocal"
|
||||||
|
|
||||||
|
WHICH="$which"
|
||||||
|
|
||||||
|
export AUTOCONF AUTOHEADER AUTOM4TE AUTOMAKE ACLOCAL WHICH
|
||||||
|
EOF
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
|
# vim: set noet ts=8 sw=4:
|
@ -0,0 +1,883 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
#
|
||||||
|
# doxygen.sh Copyright (C) 2005 by Adriaan de Groot
|
||||||
|
# Based on some code from Doxyfile.am, among other things.
|
||||||
|
# License: GPL version 2.
|
||||||
|
# See file COPYING in kdelibs for details.
|
||||||
|
|
||||||
|
echo "*** doxygen.sh"
|
||||||
|
|
||||||
|
# Recurse handling is a little complicated, since normally
|
||||||
|
# subdir (given on the command-line) processing doesn't recurse
|
||||||
|
# but you can force it to do so.
|
||||||
|
recurse=1
|
||||||
|
recurse_given=NO
|
||||||
|
use_modulename=1
|
||||||
|
cleanup=YES
|
||||||
|
|
||||||
|
while test -n "$1" ; do
|
||||||
|
case "x$1" in
|
||||||
|
"x--no-cleanup" )
|
||||||
|
cleanup=NO
|
||||||
|
;;
|
||||||
|
"x--no-recurse" )
|
||||||
|
recurse=0
|
||||||
|
recurse_given=YES
|
||||||
|
;;
|
||||||
|
"x--recurse" )
|
||||||
|
recurse=1
|
||||||
|
recurse_given=YES
|
||||||
|
;;
|
||||||
|
"x--no-modulename" )
|
||||||
|
use_modulename=0
|
||||||
|
;;
|
||||||
|
"x--modulename" )
|
||||||
|
use_modulename=1
|
||||||
|
;;
|
||||||
|
"x--help" )
|
||||||
|
echo "doxygen.sh usage:"
|
||||||
|
echo "doxygen.sh [--no-recurse] [--no-modulename] <srcdir> [<subdir>]"
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
x--doxdatadir=* )
|
||||||
|
DOXDATA=`echo $1 | sed -e 's+--doxdatadir=++'`
|
||||||
|
;;
|
||||||
|
x--installdir=*)
|
||||||
|
PREFIX=`echo $1 | sed -e 's+--installdir=++'`
|
||||||
|
;;
|
||||||
|
x--* )
|
||||||
|
echo "Unknown option: $1"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
top_srcdir="$1"
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
### Sanity check the mandatory "top srcdir" argument.
|
||||||
|
if test -z "$top_srcdir" ; then
|
||||||
|
echo "Usage: doxygen.sh <top_srcdir>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test ! -d "$top_srcdir" ; then
|
||||||
|
echo "top_srcdir ($top_srcdir) is not a directory."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
### Normalize top_srcdir so it is an absolute path.
|
||||||
|
if expr "x$top_srcdir" : "x/" > /dev/null ; then
|
||||||
|
# top_srcdir is absolute already
|
||||||
|
:
|
||||||
|
else
|
||||||
|
top_srcdir=`cd "$top_srcdir" 2> /dev/null && pwd`
|
||||||
|
if test ! -d "$top_srcdir" ; then
|
||||||
|
echo "top_srcdir ($top_srcdir) is not a directory."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Sanity check and guess QTDOCDIR.
|
||||||
|
if test -z "$QTDOCDIR" ; then
|
||||||
|
if test -z "$QTDIR" ; then
|
||||||
|
for i in /usr/X11R6/share/doc/qt/html
|
||||||
|
do
|
||||||
|
QTDOCDIR="$i"
|
||||||
|
test -d "$QTDOCDIR" && break
|
||||||
|
done
|
||||||
|
else
|
||||||
|
for i in share/doc/qt/html doc/html
|
||||||
|
do
|
||||||
|
QTDOCDIR="$QTDIR/$i"
|
||||||
|
test -d "$QTDOCDIR" && break
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test -z "$QTDOCDIR" || test ! -d "$QTDOCDIR" ; then
|
||||||
|
if test -z "$QTDOCDIR" ; then
|
||||||
|
echo "* QTDOCDIR could not be guessed."
|
||||||
|
else
|
||||||
|
echo "* QTDOCDIR does not name a directory."
|
||||||
|
fi
|
||||||
|
if test -z "$QTDOCTAG" ; then
|
||||||
|
echo "* QTDOCDIR set to \"\""
|
||||||
|
QTDOCDIR=""
|
||||||
|
else
|
||||||
|
echo "* But I'll use $QTDOCDIR anyway because of QTDOCTAG."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
### Get the "top srcdir", also its name, and handle the case that subdir "."
|
||||||
|
### is given (which would be top_srcdir then, so it's equal to none-given
|
||||||
|
### but no recursion either).
|
||||||
|
###
|
||||||
|
# top_srcdir="$1" # Already set by options processing
|
||||||
|
module_name=`basename "$top_srcdir"`
|
||||||
|
subdir="$2"
|
||||||
|
if test "x." = "x$subdir" ; then
|
||||||
|
subdir=""
|
||||||
|
if test "x$recurse_given" = "xNO" ; then
|
||||||
|
recurse=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test "x" != "x$subdir" ; then
|
||||||
|
# If no recurse option given explicitly, default to
|
||||||
|
# no recurse when processing subdirs given on the command-line.
|
||||||
|
if test "x$recurse_given" = "xNO" ; then
|
||||||
|
recurse=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$DOXDATA" || test ! -d "$DOXDATA" ; then
|
||||||
|
if test -n "$DOXDATA" ; then
|
||||||
|
echo "* \$DOXDATA is '$DOXDATA' which does not name a directory"
|
||||||
|
fi
|
||||||
|
DOXDATA="$top_srcdir/doc/common"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test ! -d "$DOXDATA" ; then
|
||||||
|
echo "* \$DOXDATA does not name a directory ( or is unset ), tried \"$DOXDATA\""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$PREFIX" && test ! -d "$PREFIX" ; then
|
||||||
|
echo "* \$PREFIX does not name a directory, tried \"$PREFIX\""
|
||||||
|
echo "* \$PREFIX is disabled."
|
||||||
|
PREFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
### We need some values from top-level files, which
|
||||||
|
### are not preserved between invocations of this
|
||||||
|
### script, so factor it out for easy use.
|
||||||
|
create_doxyfile_in()
|
||||||
|
{
|
||||||
|
eval `grep 'VERSION="' "$top_srcdir/admin/cvs.sh"`
|
||||||
|
echo "PROJECT_NUMBER = $VERSION" > Doxyfile.in
|
||||||
|
grep '^KDE_INIT_DOXYGEN' "$top_srcdir/configure.in.in" | \
|
||||||
|
sed -e 's+[^[]*\[\([^]]*\)+PROJECT_NAME = "\1"+' \
|
||||||
|
-e 's+].*++' >> Doxyfile.in
|
||||||
|
}
|
||||||
|
|
||||||
|
apidoxdir="$module_name"-apidocs
|
||||||
|
test "x$use_modulename" = "x0" && apidoxdir="apidocs"
|
||||||
|
|
||||||
|
### If we're making the top subdir, create the structure
|
||||||
|
### for the apidox and initialize it. Otherwise, just use the
|
||||||
|
### structure assumed to be there.
|
||||||
|
if test -z "$subdir" ; then
|
||||||
|
if test ! -d "$apidoxdir" ; then
|
||||||
|
mkdir "$apidoxdir" > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
cd "$apidoxdir" > /dev/null 2>&1 || {
|
||||||
|
echo "Cannot create and cd into $apidoxdir"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
test -f "Doxyfile.in" || create_doxyfile_in
|
||||||
|
|
||||||
|
# Copy in logos and the like
|
||||||
|
for i in "favicon.ico" "kde_gear_64.png"
|
||||||
|
do
|
||||||
|
cp "$DOXDATA/$i" . > /dev/null 2> /dev/null
|
||||||
|
done
|
||||||
|
for i in "$top_srcdir/doc/api/Dox-"*.png
|
||||||
|
do
|
||||||
|
T=`basename "$i" | sed -e 's+Dox-++'`
|
||||||
|
test -f "$i" && cp "$i" "./$T" > /dev/null 2> /dev/null
|
||||||
|
done
|
||||||
|
|
||||||
|
top_builddir="."
|
||||||
|
srcdir="$1"
|
||||||
|
subdir="."
|
||||||
|
else
|
||||||
|
cd "$apidoxdir" > /dev/null 2>&1 || {
|
||||||
|
echo "Cannot cd into $apidoxdir -- maybe you need to"
|
||||||
|
echo "build the top-level dox first."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if test "x1" = "x$recurse" ; then
|
||||||
|
# OK, so --recurse was requested
|
||||||
|
if test ! -f "subdirs.top" ; then
|
||||||
|
echo "* No subdirs.top available in the $apidoxdir."
|
||||||
|
echo "* The --recurse option will be ignored."
|
||||||
|
recurse=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
### Read a single line (TODO: support \ continuations) from the Makefile.am.
|
||||||
|
### Used to extract variable assignments from it.
|
||||||
|
extract_line()
|
||||||
|
{
|
||||||
|
file="$2" ; test -z "$file" && file="$srcdir/Makefile.am"
|
||||||
|
pattern=`echo "$1" | tr + .`
|
||||||
|
grep "^$1" "$file" | \
|
||||||
|
sed -e "s+$pattern.*=\s*++"
|
||||||
|
}
|
||||||
|
|
||||||
|
### Handle the COMPILE_{FIRST,LAST,BEFORE,AFTER} part of Makefile.am
|
||||||
|
### in the toplevel. Copied from admin/cvs.sh. Licence presumed LGPL).
|
||||||
|
create_subdirs()
|
||||||
|
{
|
||||||
|
echo "* Sorting top-level subdirs"
|
||||||
|
dirs=
|
||||||
|
idirs=
|
||||||
|
if test -f "$top_srcdir/inst-apps"; then
|
||||||
|
idirs=`cat "$top_srcdir/"inst-apps`
|
||||||
|
else
|
||||||
|
idirs=`cd "$top_srcdir" && ls -1 | sort`
|
||||||
|
fi
|
||||||
|
|
||||||
|
compilefirst=""
|
||||||
|
compilelast=""
|
||||||
|
if test -f "$top_srcdir/"Makefile.am.in ; then
|
||||||
|
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' "$top_srcdir/"Makefile.am.in | head -n 1`
|
||||||
|
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' "$top_srcdir/"Makefile.am.in | head -n 1`
|
||||||
|
fi
|
||||||
|
for i in $idirs; do
|
||||||
|
if test -f "$top_srcdir/$i"/Makefile.am; then
|
||||||
|
case " $compilefirst $compilelast " in
|
||||||
|
*" $i "*) ;;
|
||||||
|
*) dirs="$dirs $i"
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
: > ./_SUBDIRS
|
||||||
|
|
||||||
|
for d in $compilefirst; do
|
||||||
|
echo $d >> ./_SUBDIRS
|
||||||
|
done
|
||||||
|
|
||||||
|
(for d in $dirs; do
|
||||||
|
list=""
|
||||||
|
if test -f "$top_srcdir/"Makefile.am.in ; then
|
||||||
|
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" "$top_srcdir/"Makefile.am.in | head -n 1`
|
||||||
|
fi
|
||||||
|
for s in $list; do
|
||||||
|
echo $s $d
|
||||||
|
done
|
||||||
|
list=""
|
||||||
|
if test -f "$top_srcdir/"Makefile.am.in ; then
|
||||||
|
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" "$top_srcdir/"Makefile.am.in | head -n 1`
|
||||||
|
fi
|
||||||
|
for s in $list; do
|
||||||
|
echo $d $s
|
||||||
|
done
|
||||||
|
echo $d $d
|
||||||
|
done ) | tsort >> ./_SUBDIRS
|
||||||
|
|
||||||
|
for d in $compilelast; do
|
||||||
|
echo $d >> ./_SUBDIRS
|
||||||
|
done
|
||||||
|
|
||||||
|
test -r _SUBDIRS && mv _SUBDIRS subdirs.top || true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
### Add HTML header, footer, CSS tags to Doxyfile.
|
||||||
|
### Assumes $subdir is set. Argument is a string
|
||||||
|
### to stick in front of the file if needed.
|
||||||
|
apidox_htmlfiles()
|
||||||
|
{
|
||||||
|
dox_header="$top_srcdir/doc/api/$1header.html"
|
||||||
|
dox_footer="$top_srcdir/doc/api/$1footer.html"
|
||||||
|
dox_css="$top_srcdir/doc/api/doxygen.css"
|
||||||
|
test -f "$dox_header" || dox_header="$DOXDATA/$1header.html"
|
||||||
|
test -f "$dox_footer" || dox_footer="$DOXDATA/$1footer.html"
|
||||||
|
test -f "$dox_css" || dox_css="$DOXDATA/doxygen.css"
|
||||||
|
|
||||||
|
echo "HTML_HEADER = $dox_header" >> "$subdir/Doxyfile" ; \
|
||||||
|
echo "HTML_FOOTER = $dox_footer" >> "$subdir/Doxyfile" ; \
|
||||||
|
echo "HTML_STYLESHEET = $dox_css" >> "$subdir/Doxyfile"
|
||||||
|
}
|
||||||
|
|
||||||
|
apidox_specials()
|
||||||
|
{
|
||||||
|
line=`extract_line DOXYGEN_PROJECTNAME "$1"`
|
||||||
|
test -n "$line" && echo "PROJECT_NAME = \"$line\"" >> "$2"
|
||||||
|
}
|
||||||
|
|
||||||
|
apidox_local()
|
||||||
|
{
|
||||||
|
for i in "$top_srcdir/doc/api/Doxyfile.local"
|
||||||
|
do
|
||||||
|
if test -f "$i" ; then
|
||||||
|
cat "$i" >> "$subdir/Doxyfile"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
### Post-process HTML files by substituting in the menu files
|
||||||
|
#
|
||||||
|
# In non-top directories, both <!-- menu --> and <!-- gmenu -->
|
||||||
|
# are calculated and replaced. Top directories get an empty <!-- menu -->
|
||||||
|
# if any.
|
||||||
|
doxyndex()
|
||||||
|
{
|
||||||
|
# Special case top-level to have an empty MENU.
|
||||||
|
if test "x$subdir" = "x." ; then
|
||||||
|
MENU=""
|
||||||
|
htmldir="."
|
||||||
|
htmltop="$top_builddir" # Just ., presumably
|
||||||
|
echo "* Post-processing top-level files"
|
||||||
|
else
|
||||||
|
MENU="<ul>"
|
||||||
|
htmldir="$subdir/html"
|
||||||
|
htmltop="$top_builddir.." # top_builddir ends with /
|
||||||
|
echo "* Post-processing files in $htmldir"
|
||||||
|
|
||||||
|
# Build a little PHP file that maps class names to file
|
||||||
|
# names, for the quick-class-picker functionality.
|
||||||
|
# (The quick-class-picker is disabled due to styling
|
||||||
|
# problems in IE & FF).
|
||||||
|
(
|
||||||
|
echo "<?php \$map = array("; \
|
||||||
|
for htmlfile in `find $htmldir/ -type f -name "class[A-Z]*.html" | grep -v "\-members.html$"`; do
|
||||||
|
classname=`echo $htmlfile | sed -e "s,.*/class\\(.*\\).html,\1," -e "s,_1_1,::,g" -e "s,_01, ,g" -e "s,_4,>,g" -e "s+_00+,+g" -e "s+_3+<+g" | tr "[A-Z]" "[a-z]"`
|
||||||
|
echo " \"$classname\" => \"$htmlfile\","
|
||||||
|
done | sort ; \
|
||||||
|
echo ") ?>"
|
||||||
|
) > "$subdir/classmap.inc"
|
||||||
|
|
||||||
|
# This is a list of pairs, with / separators so we can use
|
||||||
|
# basename and dirname (a crude shell hack) to split them
|
||||||
|
# into parts. For each, if the file part exists (as a html
|
||||||
|
# file) tack it onto the MENU variable as a <li> with link.
|
||||||
|
for i in "Main Page/index" \
|
||||||
|
"Modules/modules" \
|
||||||
|
"Namespace List/namespaces" \
|
||||||
|
"Class Hierarchy/hierarchy" \
|
||||||
|
"Alphabetical List/classes" \
|
||||||
|
"Class List/annotated" \
|
||||||
|
"File List/files" \
|
||||||
|
"Directories/dirs" \
|
||||||
|
"Namespace Members/namespacemembers" \
|
||||||
|
"Class Members/functions" \
|
||||||
|
"Related Pages/pages"
|
||||||
|
do
|
||||||
|
NAME=`dirname "$i"`
|
||||||
|
FILE=`basename "$i"`
|
||||||
|
test -f "$htmldir/$FILE.html" && MENU="$MENU<li><a href=\"$FILE.html\">$NAME</a></li>"
|
||||||
|
done
|
||||||
|
|
||||||
|
MENU="$MENU</ul>"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Get the list of global Menu entries.
|
||||||
|
GMENU=`cat subdirs | tr -d '\n'`
|
||||||
|
|
||||||
|
PMENU=`grep '<!-- pmenu' "$htmldir/index.html" | sed -e 's+.*pmenu *++' -e 's+ *-->++' | awk '{ c=split($0,a,"/"); for (j=1; j<=c; j++) { printf " / <a href=\""; if (j==c) { printf("."); } for (k=j; k<c; k++) { printf "../"; } if (j<c) { printf("../html/index.html"); } printf "\">%s</a>\n" , a[j]; } }' | tr -d '\n'`
|
||||||
|
|
||||||
|
# Map the PHP file into HTML options so that
|
||||||
|
# it can be substituted in for the quick-class-picker.
|
||||||
|
CMENU=""
|
||||||
|
# For now, leave the CMENU disabled
|
||||||
|
CMENUBEGIN="<!--"
|
||||||
|
CMENUEND="-->"
|
||||||
|
|
||||||
|
if test "x$subdir" = "x." ; then
|
||||||
|
# Disable CMENU on toplevel anyway
|
||||||
|
CMENUBEGIN="<!--"
|
||||||
|
CMENUEND="-->"
|
||||||
|
else
|
||||||
|
test -f "$subdir/classmap.inc" && \
|
||||||
|
CMENU=`grep '=>' "$subdir/classmap.inc" | sed -e 's+"\([^"]*\)" => "'"$subdir/html/"'\([^"]*\)"+<option value="\2">\1<\/option>+' | tr -d '\n'`
|
||||||
|
|
||||||
|
if test -f "$subdir/classmap.inc" && grep "=>" "$subdir/classmap.inc" > /dev/null 2>&1 ; then
|
||||||
|
# Keep the menu, it's useful
|
||||||
|
:
|
||||||
|
else
|
||||||
|
CMENUBEGIN="<!--"
|
||||||
|
CMENUEND="-->"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Now substitute in the MENU in every file. This depends
|
||||||
|
# on HTML_HEADER (ie. header.html) containing the
|
||||||
|
# <!-- menu --> comment.
|
||||||
|
for i in "$htmldir"/*.html
|
||||||
|
do
|
||||||
|
if test -f "$i" ; then
|
||||||
|
sed -e "s+<!-- menu -->+$MENU+" \
|
||||||
|
-e "s+<!-- gmenu -->+$GMENU+" \
|
||||||
|
-e "s+<!-- pmenu.*-->+$PMENU+" \
|
||||||
|
-e "s+<!-- cmenu.begin -->+$CMENUBEGIN+" \
|
||||||
|
-e "s+<!-- cmenu.end -->+$CMENUEND+" \
|
||||||
|
< "$i" | sed -e "s+@topdir@+$htmltop+g" > "$i.new" && mv "$i.new" "$i"
|
||||||
|
sed -e "s+<!-- cmenu -->+$CMENU+" < "$i" > "$i.new"
|
||||||
|
test -s "$i.new" && mv "$i.new" "$i"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Handle the Doxygen processing of a toplevel directory.
|
||||||
|
apidox_toplevel()
|
||||||
|
{
|
||||||
|
echo ""
|
||||||
|
echo "*** Creating API documentation main page for $module_name"
|
||||||
|
echo "*"
|
||||||
|
rm -f "Doxyfile"
|
||||||
|
for i in "$top_srcdir/doc/api/Doxyfile.global" \
|
||||||
|
"$top_srcdir/admin/Doxyfile.global" \
|
||||||
|
"$DOXDATA/Doxyfile.global"
|
||||||
|
do
|
||||||
|
if test -f "$i" ; then
|
||||||
|
cp "$i" Doxyfile
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if test ! -f "Doxyfile" ; then
|
||||||
|
echo "* Cannot create Doxyfile."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat "$top_builddir/Doxyfile.in" >> Doxyfile
|
||||||
|
|
||||||
|
|
||||||
|
echo "INPUT = $top_srcdir" >> Doxyfile
|
||||||
|
echo "OUTPUT_DIRECTORY = $top_builddir" >> Doxyfile ; \
|
||||||
|
echo "FILE_PATTERNS = *.dox" >> Doxyfile ; \
|
||||||
|
echo "RECURSIVE = NO" >> Doxyfile ; \
|
||||||
|
echo "ALPHABETICAL_INDEX = NO" >> Doxyfile ; \
|
||||||
|
echo "HTML_OUTPUT = ." >> Doxyfile ; \
|
||||||
|
apidox_htmlfiles "main"
|
||||||
|
|
||||||
|
# KDevelop has a top-level Makefile.am with settings.
|
||||||
|
for i in "$top_srcdir/Makefile.am.in" "$top_srcdir/Makefile.am"
|
||||||
|
do
|
||||||
|
if test -f "$i" ; then
|
||||||
|
grep '^DOXYGEN_SET_' "$i" | \
|
||||||
|
sed -e 's+DOXYGEN_SET_++' -e "s+@topdir@+$top_srcdir+" >> Doxyfile
|
||||||
|
apidox_specials "$srcdir/Makefile.am" "$subdir/Doxyfile"
|
||||||
|
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
apidox_local
|
||||||
|
|
||||||
|
doxygen Doxyfile
|
||||||
|
|
||||||
|
( cd "$top_srcdir" && grep -l '^include.*Doxyfile.am' `find . -name Makefile.am` ) | sed -e 's+/Makefile.am$++' -e 's+^\./++' | sort > subdirs.in
|
||||||
|
for i in `cat subdirs.in`
|
||||||
|
do
|
||||||
|
test "x." = "x$i" && continue;
|
||||||
|
|
||||||
|
dir=`dirname "$i"`
|
||||||
|
file=`basename "$i"`
|
||||||
|
if test "x." = "x$dir" ; then
|
||||||
|
dir=""
|
||||||
|
else
|
||||||
|
dir="$dir/"
|
||||||
|
fi
|
||||||
|
indent=`echo "$dir" | sed -e 's+[^/]*/+\ \ +g' | sed -e 's+&+\\\&+g'`
|
||||||
|
entryname=`extract_line DOXYGEN_SET_PROJECT_NAME "$top_srcdir/$dir/$file/Makefile.am"`
|
||||||
|
test -z "$entryname" && entryname="$file"
|
||||||
|
|
||||||
|
if grep DOXYGEN_EMPTY "$top_srcdir/$dir/$file/Makefile.am" > /dev/null 2>&1 ; then
|
||||||
|
echo "<li>$indent$file</li>"
|
||||||
|
else
|
||||||
|
echo "<li>$indent<a href=\"@topdir@/$dir$file/html/index.html\">$entryname</a></li>"
|
||||||
|
fi
|
||||||
|
done > subdirs
|
||||||
|
|
||||||
|
doxyndex
|
||||||
|
}
|
||||||
|
|
||||||
|
### Handle the Doxygen processing of a non-toplevel directory.
|
||||||
|
apidox_subdir()
|
||||||
|
{
|
||||||
|
echo ""
|
||||||
|
echo "*** Creating apidox in $subdir"
|
||||||
|
echo "*"
|
||||||
|
rm -f "$subdir/Doxyfile"
|
||||||
|
if test ! -d "$top_srcdir/$subdir" ; then
|
||||||
|
echo "* No source (sub)directory $subdir"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
for i in "$top_srcdir/doc/api/Doxyfile.global" \
|
||||||
|
"$top_srcdir/admin/Doxyfile.global" \
|
||||||
|
"$DOXDATA/Doxyfile.global"
|
||||||
|
do
|
||||||
|
if test -f "$i" ; then
|
||||||
|
cp "$i" "$subdir/Doxyfile"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
test -f "Doxyfile.in" || create_doxyfile_in
|
||||||
|
cat "Doxyfile.in" >> "$subdir/Doxyfile"
|
||||||
|
|
||||||
|
echo "PROJECT_NAME = \"$subdir\"" >> "$subdir/Doxyfile"
|
||||||
|
echo "INPUT = $srcdir" >> "$subdir/Doxyfile"
|
||||||
|
echo "OUTPUT_DIRECTORY = ." >> "$subdir/Doxyfile"
|
||||||
|
if grep -l "$subdir/" subdirs.in > /dev/null 2>&1 ; then
|
||||||
|
echo "RECURSIVE = NO" >> "$subdir/Doxyfile"
|
||||||
|
fi
|
||||||
|
echo "HTML_OUTPUT = $subdir/html" >> "$subdir/Doxyfile"
|
||||||
|
echo "GENERATE_TAGFILE = $subdir/$subdirname.tag" >> "$subdir/Doxyfile"
|
||||||
|
test -d "$top_srcdir/doc/api" && \
|
||||||
|
echo "IMAGE_PATH = $top_srcdir/doc/api" >> "$subdir/Doxyfile"
|
||||||
|
|
||||||
|
apidox_htmlfiles ""
|
||||||
|
|
||||||
|
# Makefile.ams may contain overrides to our settings,
|
||||||
|
# so copy them in.
|
||||||
|
grep '^DOXYGEN_SET_' "$srcdir/Makefile.am" | \
|
||||||
|
sed -e 's+DOXYGEN_SET_++' >> "$subdir/Doxyfile"
|
||||||
|
apidox_specials "$srcdir/Makefile.am" "$subdir/Doxyfile"
|
||||||
|
|
||||||
|
excludes=`extract_line DOXYGEN_EXCLUDE`
|
||||||
|
if test -n "$excludes"; then
|
||||||
|
patterns=""
|
||||||
|
dirs=""
|
||||||
|
for item in `echo "$excludes"`; do
|
||||||
|
if test -d "$top_srcdir/$subdir/$item"; then
|
||||||
|
dirs="$dirs $top_srcdir/$subdir/$item/"
|
||||||
|
else
|
||||||
|
patterns="$patterns $item"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "EXCLUDE_PATTERNS += $patterns" >> "$subdir/Doxyfile"
|
||||||
|
echo "EXCLUDE += $dirs" >> "$subdir/Doxyfile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "TAGFILES = \\" >> "$subdir/Doxyfile"
|
||||||
|
## For now, don't support \ continued references lines
|
||||||
|
tags=`extract_line DOXYGEN_REFERENCES`
|
||||||
|
for i in $tags qt ; do
|
||||||
|
tagsubdir=`dirname $i` ; tag=`basename $i`
|
||||||
|
tagpath=""
|
||||||
|
not_found=""
|
||||||
|
|
||||||
|
if test "x$tagsubdir" = "x." ; then
|
||||||
|
tagsubdir=""
|
||||||
|
else
|
||||||
|
tagsubdir="$tagsubdir/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Find location of tag file
|
||||||
|
if test -f "$tagsubdir$tag/$tag.tag" ; then
|
||||||
|
file="$tagsubdir$tag/$tag.tag"
|
||||||
|
loc="$tagsubdir$tag/html"
|
||||||
|
else
|
||||||
|
# This checks for dox built with_out_ --no-modulename
|
||||||
|
# in the same build dir as this dox run was started in.
|
||||||
|
file=`ls -1 ../*-apidocs/"$tagsubdir$tag/$tag.tag" 2> /dev/null`
|
||||||
|
|
||||||
|
if test -n "$file" ; then
|
||||||
|
loc=`echo "$file" | sed -e "s/$tag.tag\$/html/"`
|
||||||
|
else
|
||||||
|
# If the tag file doesn't exist yet, but should
|
||||||
|
# because we have the right dirs here, queue
|
||||||
|
# this directory for re-processing later.
|
||||||
|
if test -d "$top_srcdir/$tagsubdir$tag" ; then
|
||||||
|
echo "* Need to re-process $subdir for tag $i"
|
||||||
|
echo "$subdir" >> "subdirs.later"
|
||||||
|
else
|
||||||
|
# Re-check in $PREFIX if needed.
|
||||||
|
test -n "$PREFIX" && \
|
||||||
|
file=`cd "$PREFIX" && \
|
||||||
|
ls -1 *-apidocs/"$tagsubdir$tag/$tag.tag" 2> /dev/null`
|
||||||
|
|
||||||
|
# If something is found, patch it up. The location must be
|
||||||
|
# relative to the installed location of the dox and the
|
||||||
|
# file must be absolute.
|
||||||
|
if test -n "$file" ; then
|
||||||
|
loc=`echo "../$file" | sed -e "s/$tag.tag\$/html/"`
|
||||||
|
file="$PREFIX/$file"
|
||||||
|
echo "* Tags for $tagsubdir$tag will only work when installed."
|
||||||
|
not_found="YES"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test "$tag" = "qt" ; then
|
||||||
|
if test -z "$QTDOCDIR" ; then
|
||||||
|
echo " $file" >> "$subdir/Doxyfile"
|
||||||
|
else
|
||||||
|
if test -z "$file" ; then
|
||||||
|
# Really no Qt tags
|
||||||
|
echo "" >> "$subdir/Doxyfile"
|
||||||
|
else
|
||||||
|
echo " $file=$QTDOCDIR" >> "$subdir/Doxyfile"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if test -n "$file" ; then
|
||||||
|
test -z "$not_found" && echo "* Found tag $file"
|
||||||
|
echo " $file=../$top_builddir$loc \\" >> "$subdir/Doxyfile"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
apidox_local
|
||||||
|
|
||||||
|
if grep '^DOXYGEN_EMPTY' "$srcdir/Makefile.am" > /dev/null 2>&1 ; then
|
||||||
|
# This directory is empty, so don't process it, but
|
||||||
|
# *do* handle subdirs that might have dox.
|
||||||
|
:
|
||||||
|
else
|
||||||
|
# Regular processing
|
||||||
|
doxygen "$subdir/Doxyfile"
|
||||||
|
doxyndex
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
### Run a given subdir by setting up global variables first.
|
||||||
|
do_subdir()
|
||||||
|
{
|
||||||
|
subdir=`echo "$1" | sed -e 's+/$++'`
|
||||||
|
srcdir="$top_srcdir/$subdir"
|
||||||
|
subdirname=`basename "$subdir"`
|
||||||
|
mkdir -p "$subdir" 2> /dev/null
|
||||||
|
if test ! -d "$subdir" ; then
|
||||||
|
echo "Can't create dox subdirectory $subdir"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
top_builddir=`echo "/$subdir" | sed -e 's+/[^/]*+../+g'`
|
||||||
|
apidox_subdir
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
### Create installdox-slow in the toplevel
|
||||||
|
create_installdox()
|
||||||
|
{
|
||||||
|
# Fix up the installdox script so it accepts empty args
|
||||||
|
#
|
||||||
|
# This code is copied from the installdox generated by Doxygen,
|
||||||
|
# copyright by Dimitri van Heesch and released under the GPL.
|
||||||
|
# This does a _slow_ update of the dox, because it loops
|
||||||
|
# over the given substitutions instead of assuming all the
|
||||||
|
# needed ones are given.
|
||||||
|
#
|
||||||
|
cat <<\EOF
|
||||||
|
#! /usr/bin/env perl
|
||||||
|
|
||||||
|
%subst = () ;
|
||||||
|
$quiet = 0;
|
||||||
|
|
||||||
|
if (open(F,"search.cfg"))
|
||||||
|
{
|
||||||
|
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_;
|
||||||
|
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
while ( @ARGV ) {
|
||||||
|
$_ = shift @ARGV;
|
||||||
|
if ( s/^-// ) {
|
||||||
|
if ( /^l(.*)/ ) {
|
||||||
|
$v = ($1 eq "") ? shift @ARGV : $1;
|
||||||
|
($v =~ /\/$/) || ($v .= "/");
|
||||||
|
$_ = $v;
|
||||||
|
if ( /(.+)\@(.+)/ ) {
|
||||||
|
$subst{$1} = $2;
|
||||||
|
} else {
|
||||||
|
print STDERR "Argument $_ is invalid for option -l\n";
|
||||||
|
&usage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ( /^q/ ) {
|
||||||
|
$quiet = 1;
|
||||||
|
}
|
||||||
|
elsif ( /^\?|^h/ ) {
|
||||||
|
&usage();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
print STDERR "Illegal option -$_\n";
|
||||||
|
&usage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
push (@files, $_ );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ( ! @files ) {
|
||||||
|
if (opendir(D,".")) {
|
||||||
|
foreach $file ( readdir(D) ) {
|
||||||
|
$match = ".html";
|
||||||
|
next if ( $file =~ /^\.\.?$/ );
|
||||||
|
($file =~ /$match/) && (push @files, $file);
|
||||||
|
($file =~ "tree.js") && (push @files, $file);
|
||||||
|
}
|
||||||
|
closedir(D);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! @files ) {
|
||||||
|
print STDERR "Warning: No input files given and none found!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach $f (@files)
|
||||||
|
{
|
||||||
|
if ( ! $quiet ) {
|
||||||
|
print "Editing: $f...\n";
|
||||||
|
}
|
||||||
|
$oldf = $f;
|
||||||
|
$f .= ".bak";
|
||||||
|
unless (rename $oldf,$f) {
|
||||||
|
print STDERR "Error: cannot rename file $oldf\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
if (open(F,"<$f")) {
|
||||||
|
unless (open(G,">$oldf")) {
|
||||||
|
print STDERR "Error: opening file $oldf for writing\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
if ($oldf ne "tree.js") {
|
||||||
|
while (<F>) {
|
||||||
|
foreach $sub (keys %subst) {
|
||||||
|
s/doxygen\=\"$sub\:([^ \"\t\>\<]*)\" (href|src)=\"\1/doxygen\=\"$sub:$subst{$sub}\" \2=\"$subst{$sub}/g;
|
||||||
|
print G "$_";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
while (<F>) {
|
||||||
|
foreach $sub (keys %subst) {
|
||||||
|
s/\"$sub\:([^ \"\t\>\<]*)\", \"\1/\"$sub:$subst{$sub}\" ,\"$subst{$sub}/g;
|
||||||
|
print G "$_";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
print STDERR "Warning file $f does not exist\n";
|
||||||
|
}
|
||||||
|
unlink $f;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub usage {
|
||||||
|
print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
|
||||||
|
print STDERR "Options:\n";
|
||||||
|
print STDERR " -l tagfile\@linkName tag file + URL or directory \n";
|
||||||
|
print STDERR " -q Quiet mode\n\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Do only the subdirs that match the RE passed in as $1
|
||||||
|
do_subdirs_re()
|
||||||
|
{
|
||||||
|
RE=`echo "$1" | sed -e 's+/$++'`
|
||||||
|
|
||||||
|
# Here's a queue of dirs to re-process later when
|
||||||
|
# all the rest have been done already.
|
||||||
|
> subdirs.later
|
||||||
|
|
||||||
|
# subdirs.top lists _all_ subdirs of top in the order they
|
||||||
|
# should be handled; subdirs.in lists those dirs that contain
|
||||||
|
# dox. So the intersection of the two is the ordered list
|
||||||
|
# of top-level subdirs that contain dox.
|
||||||
|
#
|
||||||
|
# subdirs.top also doesn't contain ".", so that special
|
||||||
|
# case can be ignored in the loop.
|
||||||
|
|
||||||
|
|
||||||
|
(
|
||||||
|
for i in `grep "^$RE" subdirs.top`
|
||||||
|
do
|
||||||
|
if test "x$i" = "x." ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
# Calculate intersection of this element and the
|
||||||
|
# set of dox dirs.
|
||||||
|
if grep "^$i\$" subdirs.in > /dev/null 2>&1 ; then
|
||||||
|
echo "$i"
|
||||||
|
mkdir -p "$i" 2> /dev/null
|
||||||
|
|
||||||
|
# Handle the subdirs of this one
|
||||||
|
for j in `grep "$i/" subdirs.in`
|
||||||
|
do
|
||||||
|
echo "$j"
|
||||||
|
mkdir -p "$j" 2> /dev/null
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we still need to handle whatever is left
|
||||||
|
for i in `cat subdirs.in`
|
||||||
|
do
|
||||||
|
test -d "$i" || echo "$i"
|
||||||
|
mkdir -p "$i" 2> /dev/null
|
||||||
|
done
|
||||||
|
) > subdirs.sort
|
||||||
|
for i in `cat subdirs.sort`
|
||||||
|
do
|
||||||
|
do_subdir "$i"
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -s "subdirs.later" ; then
|
||||||
|
sort subdirs.later | uniq > subdirs.sort
|
||||||
|
for i in `cat subdirs.sort`
|
||||||
|
do
|
||||||
|
: > subdirs.later
|
||||||
|
echo "*** Reprocessing $i"
|
||||||
|
do_subdir "$i"
|
||||||
|
test -s "subdirs.later" && echo "* Some tag files were still not found."
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if test "x." = "x$top_builddir" ; then
|
||||||
|
apidox_toplevel
|
||||||
|
create_subdirs
|
||||||
|
create_installdox > installdox-slow
|
||||||
|
if test "x$recurse" = "x1" ; then
|
||||||
|
if test "x$module_name" = "xkdelibs" ; then
|
||||||
|
if test -z "$QTDOCTAG" && test -d "$QTDOCDIR" && \
|
||||||
|
test ! -f "qt/qt.tag" ; then
|
||||||
|
# Special case: create a qt tag file.
|
||||||
|
echo "*** Creating a tag file for the Qt library:"
|
||||||
|
mkdir qt
|
||||||
|
doxytag -t qt/qt.tag "$QTDOCDIR" > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test -n "$QTDOCTAG" && test -r "$QTDOCTAG" ; then
|
||||||
|
echo "*** Copying tag file for the Qt library:"
|
||||||
|
mkdir qt
|
||||||
|
cp "$QTDOCTAG" qt/qt.tag
|
||||||
|
fi
|
||||||
|
|
||||||
|
do_subdirs_re "."
|
||||||
|
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if test "x$recurse" = "x1" ; then
|
||||||
|
do_subdirs_re "$subdir"
|
||||||
|
else
|
||||||
|
do_subdir "$subdir"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# At the end of a run, clean up stuff.
|
||||||
|
if test "YES" = "$cleanup" ; then
|
||||||
|
rm -f subdirs.in subdirs.later subdirs.sort subdirs.top Doxyfile.in
|
||||||
|
rm -f `find . -name Doxyfile`
|
||||||
|
rm -f qt/qt.tag
|
||||||
|
rmdir qt > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
@ -0,0 +1,401 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# install - install a program, script, or datafile
|
||||||
|
|
||||||
|
scriptversion=2005-11-07.23
|
||||||
|
|
||||||
|
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||||
|
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||||
|
# following copyright and license.
|
||||||
|
#
|
||||||
|
# Copyright (C) 1994 X Consortium
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to
|
||||||
|
# deal in the Software without restriction, including without limitation the
|
||||||
|
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
# sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||||
|
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||||
|
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
#
|
||||||
|
# Except as contained in this notice, the name of the X Consortium shall not
|
||||||
|
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||||
|
# ings in this Software without prior written authorization from the X Consor-
|
||||||
|
# tium.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# FSF changes to this file are in the public domain.
|
||||||
|
#
|
||||||
|
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||||
|
# `make' implicit rules from creating a file called install from it
|
||||||
|
# when there is no Makefile.
|
||||||
|
#
|
||||||
|
# This script is compatible with the BSD install script, but was written
|
||||||
|
# from scratch. It can only install one file at a time, a restriction
|
||||||
|
# shared with many OS's install programs.
|
||||||
|
|
||||||
|
# set DOITPROG to echo to test this script
|
||||||
|
|
||||||
|
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||||
|
doit="${DOITPROG-}"
|
||||||
|
|
||||||
|
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||||
|
|
||||||
|
mvprog="${MVPROG-mv}"
|
||||||
|
cpprog="${CPPROG-cp}"
|
||||||
|
chmodprog="${CHMODPROG-chmod}"
|
||||||
|
chownprog="${CHOWNPROG-chown}"
|
||||||
|
chgrpprog="${CHGRPPROG-chgrp}"
|
||||||
|
stripprog="${STRIPPROG-strip}"
|
||||||
|
rmprog="${RMPROG-rm}"
|
||||||
|
mkdirprog="${MKDIRPROG-mkdir}"
|
||||||
|
|
||||||
|
posix_glob=
|
||||||
|
posix_mkdir=
|
||||||
|
|
||||||
|
# Symbolic mode for testing mkdir with directories.
|
||||||
|
# It is the same as 755, but also tests that "u+" works.
|
||||||
|
test_mode=u=rwx,g=rx,o=rx,u+wx
|
||||||
|
|
||||||
|
# Desired mode of installed file.
|
||||||
|
mode=0755
|
||||||
|
|
||||||
|
# Desired mode of newly created intermediate directories.
|
||||||
|
# It is empty if not known yet.
|
||||||
|
intermediate_mode=
|
||||||
|
|
||||||
|
chmodcmd=$chmodprog
|
||||||
|
chowncmd=
|
||||||
|
chgrpcmd=
|
||||||
|
stripcmd=
|
||||||
|
rmcmd="$rmprog -f"
|
||||||
|
mvcmd="$mvprog"
|
||||||
|
src=
|
||||||
|
dst=
|
||||||
|
dir_arg=
|
||||||
|
dstarg=
|
||||||
|
no_target_directory=
|
||||||
|
|
||||||
|
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||||
|
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||||
|
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||||
|
or: $0 [OPTION]... -d DIRECTORIES...
|
||||||
|
|
||||||
|
In the 1st form, copy SRCFILE to DSTFILE.
|
||||||
|
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||||
|
In the 4th, create DIRECTORIES.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-c (ignored)
|
||||||
|
-d create directories instead of installing files.
|
||||||
|
-g GROUP $chgrpprog installed files to GROUP.
|
||||||
|
-m MODE $chmodprog installed files to MODE.
|
||||||
|
-o USER $chownprog installed files to USER.
|
||||||
|
-s $stripprog installed files.
|
||||||
|
-t DIRECTORY install into DIRECTORY.
|
||||||
|
-T report an error if DSTFILE is a directory.
|
||||||
|
--help display this help and exit.
|
||||||
|
--version display version info and exit.
|
||||||
|
|
||||||
|
Environment variables override the default commands:
|
||||||
|
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||||
|
"
|
||||||
|
|
||||||
|
while test -n "$1"; do
|
||||||
|
case $1 in
|
||||||
|
-c) shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-d) dir_arg=true
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-g) chgrpcmd="$chgrpprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
--help) echo "$usage"; exit $?;;
|
||||||
|
|
||||||
|
-m) mode=$2
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-o) chowncmd="$chownprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-s) stripcmd=$stripprog
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-t) dstarg=$2
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-T) no_target_directory=true
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
--version) echo "$0 $scriptversion"; exit $?;;
|
||||||
|
|
||||||
|
*) # When -d is used, all remaining arguments are directories to create.
|
||||||
|
# When -t is used, the destination is already specified.
|
||||||
|
test -n "$dir_arg$dstarg" && break
|
||||||
|
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$dstarg"; then
|
||||||
|
# $@ is not empty: it contains at least $arg.
|
||||||
|
set fnord "$@" "$dstarg"
|
||||||
|
shift # fnord
|
||||||
|
fi
|
||||||
|
shift # arg
|
||||||
|
dstarg=$arg
|
||||||
|
done
|
||||||
|
break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$1"; then
|
||||||
|
if test -z "$dir_arg"; then
|
||||||
|
echo "$0: no input file specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# It's OK to call `install-sh -d' without argument.
|
||||||
|
# This can happen when creating conditional directories.
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
test -n "$dir_arg" || trap '(exit $?); exit' 1 2 13 15
|
||||||
|
|
||||||
|
for src
|
||||||
|
do
|
||||||
|
# Protect names starting with `-'.
|
||||||
|
case $src in
|
||||||
|
-*) src=./$src ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
dst=$src
|
||||||
|
dstdir=$dst
|
||||||
|
test -d "$dstdir"
|
||||||
|
dstdir_status=$?
|
||||||
|
else
|
||||||
|
|
||||||
|
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||||
|
# might cause directories to be created, which would be especially bad
|
||||||
|
# if $src (and thus $dsttmp) contains '*'.
|
||||||
|
if test ! -f "$src" && test ! -d "$src"; then
|
||||||
|
echo "$0: $src does not exist." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$dstarg"; then
|
||||||
|
echo "$0: no destination specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
dst=$dstarg
|
||||||
|
# Protect names starting with `-'.
|
||||||
|
case $dst in
|
||||||
|
-*) dst=./$dst ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If destination is a directory, append the input filename; won't work
|
||||||
|
# if double slashes aren't ignored.
|
||||||
|
if test -d "$dst"; then
|
||||||
|
if test -n "$no_target_directory"; then
|
||||||
|
echo "$0: $dstarg: Is a directory" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
dstdir=$dst
|
||||||
|
dst=$dstdir/`basename "$src"`
|
||||||
|
dstdir_status=0
|
||||||
|
else
|
||||||
|
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||||
|
dstdir=`
|
||||||
|
(dirname "$dst") 2>/dev/null ||
|
||||||
|
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||||
|
X"$dst" : 'X\(//\)[^/]' \| \
|
||||||
|
X"$dst" : 'X\(//\)$' \| \
|
||||||
|
X"$dst" : 'X\(/\)' \| \
|
||||||
|
. : '\(.\)' 2>/dev/null ||
|
||||||
|
echo X"$dst" |
|
||||||
|
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||||
|
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||||
|
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||||
|
/^X\(\/\).*/{ s//\1/; q; }
|
||||||
|
s/.*/./; q'
|
||||||
|
`
|
||||||
|
|
||||||
|
test -d "$dstdir"
|
||||||
|
dstdir_status=$?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
obsolete_mkdir_used=false
|
||||||
|
|
||||||
|
if test $dstdir_status != 0; then
|
||||||
|
case $posix_mkdir in
|
||||||
|
'')
|
||||||
|
posix_mkdir=false
|
||||||
|
if $mkdirprog -m $test_mode -p -- / >/dev/null 2>&1; then
|
||||||
|
posix_mkdir=true
|
||||||
|
else
|
||||||
|
# Remove any dirs left behind by ancient mkdir implementations.
|
||||||
|
rmdir ./-m "$test_mode" ./-p ./-- 2>/dev/null
|
||||||
|
fi ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if
|
||||||
|
$posix_mkdir && {
|
||||||
|
|
||||||
|
# With -d, create the new directory with the user-specified mode.
|
||||||
|
# Otherwise, create it using the same intermediate mode that
|
||||||
|
# mkdir -p would use when creating intermediate directories.
|
||||||
|
# POSIX says that this mode is "$(umask -S),u+wx", so use that
|
||||||
|
# if umask -S works.
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
mkdir_mode=$mode
|
||||||
|
else
|
||||||
|
case $intermediate_mode in
|
||||||
|
'')
|
||||||
|
if umask_S=`(umask -S) 2>/dev/null`; then
|
||||||
|
intermediate_mode=$umask_S,u+wx
|
||||||
|
else
|
||||||
|
intermediate_mode=$test_mode
|
||||||
|
fi ;;
|
||||||
|
esac
|
||||||
|
mkdir_mode=$intermediate_mode
|
||||||
|
fi
|
||||||
|
|
||||||
|
$mkdirprog -m "$mkdir_mode" -p -- "$dstdir"
|
||||||
|
}
|
||||||
|
then :
|
||||||
|
else
|
||||||
|
|
||||||
|
# mkdir does not conform to POSIX, or it failed possibly due to
|
||||||
|
# a race condition. Create the directory the slow way, step by
|
||||||
|
# step, checking for races as we go.
|
||||||
|
|
||||||
|
case $dstdir in
|
||||||
|
/*) pathcomp=/ ;;
|
||||||
|
-*) pathcomp=./ ;;
|
||||||
|
*) pathcomp= ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $posix_glob in
|
||||||
|
'')
|
||||||
|
if (set -f) 2>/dev/null; then
|
||||||
|
posix_glob=true
|
||||||
|
else
|
||||||
|
posix_glob=false
|
||||||
|
fi ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
oIFS=$IFS
|
||||||
|
IFS=/
|
||||||
|
$posix_glob && set -f
|
||||||
|
set fnord $dstdir
|
||||||
|
shift
|
||||||
|
$posix_glob && set +f
|
||||||
|
IFS=$oIFS
|
||||||
|
|
||||||
|
for d
|
||||||
|
do
|
||||||
|
test "x$d" = x && continue
|
||||||
|
|
||||||
|
pathcomp=$pathcomp$d
|
||||||
|
if test ! -d "$pathcomp"; then
|
||||||
|
$mkdirprog "$pathcomp"
|
||||||
|
# Don't fail if two instances are running concurrently.
|
||||||
|
test -d "$pathcomp" || exit 1
|
||||||
|
fi
|
||||||
|
pathcomp=$pathcomp/
|
||||||
|
done
|
||||||
|
obsolete_mkdir_used=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||||
|
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||||
|
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||||
|
test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dst"; } || exit 1
|
||||||
|
else
|
||||||
|
|
||||||
|
# Make a couple of temp file names in the proper directory.
|
||||||
|
dsttmp=$dstdir/_inst.$$_
|
||||||
|
rmtmp=$dstdir/_rm.$$_
|
||||||
|
|
||||||
|
# Trap to clean up those temp files at exit.
|
||||||
|
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||||
|
|
||||||
|
# Copy the file name to the temp name.
|
||||||
|
$doit $cpprog "$src" "$dsttmp" &&
|
||||||
|
|
||||||
|
# and set any options; do chmod last to preserve setuid bits.
|
||||||
|
#
|
||||||
|
# If any of these fail, we abort the whole thing. If we want to
|
||||||
|
# ignore errors from any of these, just make sure not to ignore
|
||||||
|
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||||
|
#
|
||||||
|
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
||||||
|
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
||||||
|
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
|
||||||
|
&& { test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dsttmp"; } &&
|
||||||
|
|
||||||
|
# Now rename the file to the real destination.
|
||||||
|
{ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
|
||||||
|
|| {
|
||||||
|
# The rename failed, perhaps because mv can't rename something else
|
||||||
|
# to itself, or perhaps because mv is so ancient that it does not
|
||||||
|
# support -f.
|
||||||
|
|
||||||
|
# Now remove or move aside any old file at destination location.
|
||||||
|
# We try this two ways since rm can't unlink itself on some
|
||||||
|
# systems and the destination file might be busy for other
|
||||||
|
# reasons. In this case, the final cleanup might fail but the new
|
||||||
|
# file should still install successfully.
|
||||||
|
{
|
||||||
|
if test -f "$dst"; then
|
||||||
|
$doit $rmcmd -f "$dst" 2>/dev/null \
|
||||||
|
|| { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
|
||||||
|
&& { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
|
||||||
|
|| {
|
||||||
|
echo "$0: cannot unlink or rename $dst" >&2
|
||||||
|
(exit 1); exit 1
|
||||||
|
}
|
||||||
|
else
|
||||||
|
:
|
||||||
|
fi
|
||||||
|
} &&
|
||||||
|
|
||||||
|
# Now rename the file to the real destination.
|
||||||
|
$doit $mvcmd "$dsttmp" "$dst"
|
||||||
|
}
|
||||||
|
} || exit 1
|
||||||
|
|
||||||
|
trap '' 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,353 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Common stub for a few missing GNU programs while installing.
|
||||||
|
|
||||||
|
scriptversion=2004-09-07.08
|
||||||
|
|
||||||
|
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
if test $# -eq 0; then
|
||||||
|
echo 1>&2 "Try \`$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
run=:
|
||||||
|
|
||||||
|
# In the cases where this matters, `missing' is being run in the
|
||||||
|
# srcdir already.
|
||||||
|
if test -f configure.ac; then
|
||||||
|
configure_ac=configure.ac
|
||||||
|
else
|
||||||
|
configure_ac=configure.in
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg="missing on your system"
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
--run)
|
||||||
|
# Try to run requested program, and just exit if it succeeds.
|
||||||
|
run=
|
||||||
|
shift
|
||||||
|
"$@" && exit 0
|
||||||
|
# Exit code 63 means version mismatch. This often happens
|
||||||
|
# when the user try to use an ancient version of a tool on
|
||||||
|
# a file that requires a minimum version. In this case we
|
||||||
|
# we should proceed has if the program had been absent, or
|
||||||
|
# if --run hadn't been passed.
|
||||||
|
if test $? = 63; then
|
||||||
|
run=:
|
||||||
|
msg="probably too old"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
-h|--h|--he|--hel|--help)
|
||||||
|
echo "\
|
||||||
|
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||||
|
|
||||||
|
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||||
|
error status if there is no known handling for PROGRAM.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --help display this help and exit
|
||||||
|
-v, --version output version information and exit
|
||||||
|
--run try to run the given command, and emulate it if it fails
|
||||||
|
|
||||||
|
Supported PROGRAM values:
|
||||||
|
aclocal touch file \`aclocal.m4'
|
||||||
|
autoconf touch file \`configure'
|
||||||
|
autoheader touch file \`config.h.in'
|
||||||
|
automake touch all \`Makefile.in' files
|
||||||
|
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||||
|
flex create \`lex.yy.c', if possible, from existing .c
|
||||||
|
help2man touch the output file
|
||||||
|
lex create \`lex.yy.c', if possible, from existing .c
|
||||||
|
makeinfo touch the output file
|
||||||
|
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||||
|
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||||
|
|
||||||
|
Send bug reports to <bug-automake@gnu.org>."
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||||
|
echo "missing $scriptversion (GNU Automake)"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
-*)
|
||||||
|
echo 1>&2 "$0: Unknown \`$1' option"
|
||||||
|
echo 1>&2 "Try \`$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Now exit if we have it, but it failed. Also exit now if we
|
||||||
|
# don't have it and --version was passed (most likely to detect
|
||||||
|
# the program).
|
||||||
|
case "$1" in
|
||||||
|
lex|yacc)
|
||||||
|
# Not GNU programs, they don't have --version.
|
||||||
|
;;
|
||||||
|
|
||||||
|
tar)
|
||||||
|
if test -n "$run"; then
|
||||||
|
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||||
|
exit 1
|
||||||
|
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
|
# We have it, but it failed.
|
||||||
|
exit 1
|
||||||
|
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||||
|
# Could not run --version or --help. This is probably someone
|
||||||
|
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||||
|
# $TOOL exists and not knowing $TOOL uses missing.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If it does not exist, or fails to run (possibly an outdated version),
|
||||||
|
# try to emulate it.
|
||||||
|
case "$1" in
|
||||||
|
aclocal*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||||
|
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||||
|
any GNU archive site."
|
||||||
|
touch aclocal.m4
|
||||||
|
;;
|
||||||
|
|
||||||
|
autoconf)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`${configure_ac}'. You might want to install the
|
||||||
|
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||||
|
archive site."
|
||||||
|
touch configure
|
||||||
|
;;
|
||||||
|
|
||||||
|
autoheader)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||||
|
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||||
|
from any GNU archive site."
|
||||||
|
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||||
|
test -z "$files" && files="config.h"
|
||||||
|
touch_files=
|
||||||
|
for f in $files; do
|
||||||
|
case "$f" in
|
||||||
|
*:*) touch_files="$touch_files "`echo "$f" |
|
||||||
|
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||||
|
*) touch_files="$touch_files $f.in";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
touch $touch_files
|
||||||
|
;;
|
||||||
|
|
||||||
|
automake*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||||
|
You might want to install the \`Automake' and \`Perl' packages.
|
||||||
|
Grab them from any GNU archive site."
|
||||||
|
find . -type f -name Makefile.am -print |
|
||||||
|
sed 's/\.am$/.in/' |
|
||||||
|
while read f; do touch "$f"; done
|
||||||
|
;;
|
||||||
|
|
||||||
|
autom4te)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is needed, but is $msg.
|
||||||
|
You might have modified some files without having the
|
||||||
|
proper tools for further handling them.
|
||||||
|
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||||
|
archive site."
|
||||||
|
|
||||||
|
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
||||||
|
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
||||||
|
if test -f "$file"; then
|
||||||
|
touch $file
|
||||||
|
else
|
||||||
|
test -z "$file" || exec >$file
|
||||||
|
echo "#! /bin/sh"
|
||||||
|
echo "# Created by GNU Automake missing as a replacement of"
|
||||||
|
echo "# $ $@"
|
||||||
|
echo "exit 0"
|
||||||
|
chmod +x $file
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
bison|yacc)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' $msg. You should only need it if
|
||||||
|
you modified a \`.y' file. You may need the \`Bison' package
|
||||||
|
in order for those modifications to take effect. You can get
|
||||||
|
\`Bison' from any GNU archive site."
|
||||||
|
rm -f y.tab.c y.tab.h
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
eval LASTARG="\${$#}"
|
||||||
|
case "$LASTARG" in
|
||||||
|
*.y)
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" y.tab.c
|
||||||
|
fi
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" y.tab.h
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if [ ! -f y.tab.h ]; then
|
||||||
|
echo >y.tab.h
|
||||||
|
fi
|
||||||
|
if [ ! -f y.tab.c ]; then
|
||||||
|
echo 'main() { return 0; }' >y.tab.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
lex|flex)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified a \`.l' file. You may need the \`Flex' package
|
||||||
|
in order for those modifications to take effect. You can get
|
||||||
|
\`Flex' from any GNU archive site."
|
||||||
|
rm -f lex.yy.c
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
eval LASTARG="\${$#}"
|
||||||
|
case "$LASTARG" in
|
||||||
|
*.l)
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" lex.yy.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if [ ! -f lex.yy.c ]; then
|
||||||
|
echo 'main() { return 0; }' >lex.yy.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
help2man)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified a dependency of a manual page. You may need the
|
||||||
|
\`Help2man' package in order for those modifications to take
|
||||||
|
effect. You can get \`Help2man' from any GNU archive site."
|
||||||
|
|
||||||
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||||
|
if test -z "$file"; then
|
||||||
|
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
||||||
|
fi
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
touch $file
|
||||||
|
else
|
||||||
|
test -z "$file" || exec >$file
|
||||||
|
echo ".ab help2man is required to generate this page"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
makeinfo)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||||
|
indirectly affecting the aspect of the manual. The spurious
|
||||||
|
call might also be the consequence of using a buggy \`make' (AIX,
|
||||||
|
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||||
|
the \`GNU make' package. Grab either from any GNU archive site."
|
||||||
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||||
|
if test -z "$file"; then
|
||||||
|
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||||
|
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
|
||||||
|
fi
|
||||||
|
touch $file
|
||||||
|
;;
|
||||||
|
|
||||||
|
tar)
|
||||||
|
shift
|
||||||
|
|
||||||
|
# We have already tried tar in the generic part.
|
||||||
|
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||||
|
# messages.
|
||||||
|
if (gnutar --version > /dev/null 2>&1); then
|
||||||
|
gnutar "$@" && exit 0
|
||||||
|
fi
|
||||||
|
if (gtar --version > /dev/null 2>&1); then
|
||||||
|
gtar "$@" && exit 0
|
||||||
|
fi
|
||||||
|
firstarg="$1"
|
||||||
|
if shift; then
|
||||||
|
case "$firstarg" in
|
||||||
|
*o*)
|
||||||
|
firstarg=`echo "$firstarg" | sed s/o//`
|
||||||
|
tar "$firstarg" "$@" && exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "$firstarg" in
|
||||||
|
*h*)
|
||||||
|
firstarg=`echo "$firstarg" | sed s/h//`
|
||||||
|
tar "$firstarg" "$@" && exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||||
|
You may want to install GNU tar or Free paxutils, or check the
|
||||||
|
command line arguments."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is needed, and is $msg.
|
||||||
|
You might have modified some files without having the
|
||||||
|
proper tools for further handling them. Check the \`README' file,
|
||||||
|
it often tells you about the needed prerequisites for installing
|
||||||
|
this package. You may also peek at any GNU archive site, in case
|
||||||
|
some other package would contain this missing \`$1' program."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
@ -0,0 +1,158 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# mkinstalldirs --- make directory hierarchy
|
||||||
|
|
||||||
|
scriptversion=2005-06-29.22
|
||||||
|
|
||||||
|
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||||
|
# Created: 1993-05-16
|
||||||
|
# Public domain.
|
||||||
|
#
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
errstatus=0
|
||||||
|
dirmode=
|
||||||
|
|
||||||
|
usage="\
|
||||||
|
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
|
||||||
|
|
||||||
|
Create each directory DIR (with mode MODE, if specified), including all
|
||||||
|
leading file name components.
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>."
|
||||||
|
|
||||||
|
# process command line arguments
|
||||||
|
while test $# -gt 0 ; do
|
||||||
|
case $1 in
|
||||||
|
-h | --help | --h*) # -h for help
|
||||||
|
echo "$usage"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-m) # -m PERM arg
|
||||||
|
shift
|
||||||
|
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
|
||||||
|
dirmode=$1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--version)
|
||||||
|
echo "$0 $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
--) # stop option processing
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
-*) # unknown option
|
||||||
|
echo "$usage" 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*) # first non-opt arg
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
for file
|
||||||
|
do
|
||||||
|
if test -d "$file"; then
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
case $# in
|
||||||
|
0) exit 0 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
|
||||||
|
# mkdir -p a/c at the same time, both will detect that a is missing,
|
||||||
|
# one will create a, then the other will try to create a and die with
|
||||||
|
# a "File exists" error. This is a problem when calling mkinstalldirs
|
||||||
|
# from a parallel make. We use --version in the probe to restrict
|
||||||
|
# ourselves to GNU mkdir, which is thread-safe.
|
||||||
|
case $dirmode in
|
||||||
|
'')
|
||||||
|
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
||||||
|
echo "mkdir -p -- $*"
|
||||||
|
exec mkdir -p -- "$@"
|
||||||
|
else
|
||||||
|
# On NextStep and OpenStep, the `mkdir' command does not
|
||||||
|
# recognize any option. It will interpret all options as
|
||||||
|
# directories to create, and then abort because `.' already
|
||||||
|
# exists.
|
||||||
|
test -d ./-p && rmdir ./-p
|
||||||
|
test -d ./--version && rmdir ./--version
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
|
||||||
|
test ! -d ./--version; then
|
||||||
|
echo "mkdir -m $dirmode -p -- $*"
|
||||||
|
exec mkdir -m "$dirmode" -p -- "$@"
|
||||||
|
else
|
||||||
|
# Clean up after NextStep and OpenStep mkdir.
|
||||||
|
for d in ./-m ./-p ./--version "./$dirmode";
|
||||||
|
do
|
||||||
|
test -d $d && rmdir $d
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
for file
|
||||||
|
do
|
||||||
|
case $file in
|
||||||
|
/*) pathcomp=/ ;;
|
||||||
|
*) pathcomp= ;;
|
||||||
|
esac
|
||||||
|
oIFS=$IFS
|
||||||
|
IFS=/
|
||||||
|
set fnord $file
|
||||||
|
shift
|
||||||
|
IFS=$oIFS
|
||||||
|
|
||||||
|
for d
|
||||||
|
do
|
||||||
|
test "x$d" = x && continue
|
||||||
|
|
||||||
|
pathcomp=$pathcomp$d
|
||||||
|
case $pathcomp in
|
||||||
|
-*) pathcomp=./$pathcomp ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test ! -d "$pathcomp"; then
|
||||||
|
echo "mkdir $pathcomp"
|
||||||
|
|
||||||
|
mkdir "$pathcomp" || lasterr=$?
|
||||||
|
|
||||||
|
if test ! -d "$pathcomp"; then
|
||||||
|
errstatus=$lasterr
|
||||||
|
else
|
||||||
|
if test ! -z "$dirmode"; then
|
||||||
|
echo "chmod $dirmode $pathcomp"
|
||||||
|
lasterr=
|
||||||
|
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
||||||
|
|
||||||
|
if test ! -z "$lasterr"; then
|
||||||
|
errstatus=$lasterr
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
pathcomp=$pathcomp/
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
exit $errstatus
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
@ -0,0 +1,371 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
|
# Check namespace cleanness of a library.
|
||||||
|
# Allowed symbols are passed as arguments.
|
||||||
|
# They may have trailing * = wildcard.
|
||||||
|
# Wildcards may be also specified as *::* (e.g. K*::* for all KDE classes)
|
||||||
|
# Symbols are listed as full function unmangled names without arguments,
|
||||||
|
# e.g. 'foo bar* nspace::*' allows foo(), foo(int), bar(), barbar()
|
||||||
|
# and all symbols in namespace/class nspace.
|
||||||
|
# If an argument has comma in it, it's a filename of a file containing
|
||||||
|
# allowed symbols, one per line.
|
||||||
|
|
||||||
|
|
||||||
|
$thisProg = "$0"; # This programs name
|
||||||
|
|
||||||
|
$library = "";
|
||||||
|
$allowed_symbols = "";
|
||||||
|
$debug = 0;
|
||||||
|
$allowed_weak = "";
|
||||||
|
$weak_specified = 0;
|
||||||
|
|
||||||
|
while( defined( $ARGV[ 0 ] ))
|
||||||
|
{
|
||||||
|
$_ = shift;
|
||||||
|
if( /^--verbose$|^-v$/ )
|
||||||
|
{
|
||||||
|
$debug = 1;
|
||||||
|
}
|
||||||
|
elsif( /^--help$|^-h$/ )
|
||||||
|
{
|
||||||
|
print STDOUT "Usage $thisProg [OPTION] ... library [allowed symbols] ...\n",
|
||||||
|
"\n",
|
||||||
|
"Check if the given library has only allowed public symbols.\n",
|
||||||
|
"\n",
|
||||||
|
" --allowweak=[symbol] allow only these weak symbols\n",
|
||||||
|
" -v, --verbose verbosely list files processed\n",
|
||||||
|
" -h, --help print this help, then exit\n";
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
elsif( /^--allowweak=(.*)$/ )
|
||||||
|
{
|
||||||
|
$allowed_weak .= " " . $1;
|
||||||
|
$weak_specified = 1;
|
||||||
|
}
|
||||||
|
elsif( /^--allowweak$/ ) # simply list all weak
|
||||||
|
{
|
||||||
|
$allowed_weak .= " ";
|
||||||
|
$weak_specified = 1;
|
||||||
|
}
|
||||||
|
elsif( /^--*/ )
|
||||||
|
{
|
||||||
|
die "Invalid argument!\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if( ! $library )
|
||||||
|
{
|
||||||
|
$library = $_;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$allowed_symbols .= " " . $_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ! $weak_specified )
|
||||||
|
{
|
||||||
|
$allowed_weak = "*";
|
||||||
|
# allow all weak symbols by default
|
||||||
|
# instances of templates and similar stuff - unfortunately includes also things from other libraries,
|
||||||
|
# so it cannot be on by default
|
||||||
|
}
|
||||||
|
|
||||||
|
print STDERR "library:" . $library . "\n" if $debug;
|
||||||
|
print STDERR "allowed_symbols:" . $allowed_symbols . "\n" if $debug;
|
||||||
|
print STDERR "allowed_weak:" . $allowed_weak . "\n" if $debug;
|
||||||
|
|
||||||
|
$default_symbols = "_fini _init"; # system symbols
|
||||||
|
# on my system, every .so has :
|
||||||
|
# A _DYNAMIC
|
||||||
|
# A _GLOBAL_OFFSET_TABLE_
|
||||||
|
# A __bss_start
|
||||||
|
# A _edata
|
||||||
|
# A _end
|
||||||
|
# T _fini
|
||||||
|
# T _init
|
||||||
|
# no need to list A symbols in $default_symbols
|
||||||
|
|
||||||
|
print STDERR "default_symbols: " . $default_symbols . "\n" if $debug;
|
||||||
|
|
||||||
|
print STDOUT "Namespace cleanness check for " . $library . " :\n";
|
||||||
|
|
||||||
|
$lib_file = "";
|
||||||
|
if( $library =~ /\.la$/ )
|
||||||
|
{
|
||||||
|
# get the real library file from .la
|
||||||
|
open( FILEIN, $library ) || die "Couldn't open $! !\n";
|
||||||
|
while( $line = <FILEIN> )
|
||||||
|
{
|
||||||
|
if( $line =~ /library_names=\'([^ ]*).*/o )
|
||||||
|
{
|
||||||
|
$lib_file = $1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close( FILEIN );
|
||||||
|
if( ! $lib_file )
|
||||||
|
{
|
||||||
|
print STDERR "Library file not found in .la file!\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
my $libpath = $library;
|
||||||
|
$libpath =~ s%[^/]*$%%;
|
||||||
|
if( -e $libpath . ".libs/" . $lib_file )
|
||||||
|
{
|
||||||
|
$lib_file = $libpath . ".libs/" . $lib_file;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$lib_file = $libpath . $lib_file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$lib_file = $library;
|
||||||
|
}
|
||||||
|
|
||||||
|
print STDERR "libfile: ". $lib_file . "\n" if $debug;
|
||||||
|
|
||||||
|
$allowed_symbols .= " " . $default_symbols;
|
||||||
|
|
||||||
|
sub process_symbols($\@\%\@);
|
||||||
|
|
||||||
|
@wildcards = ();
|
||||||
|
%exacts = ();
|
||||||
|
@regwildcards = ();
|
||||||
|
process_symbols( $allowed_symbols, @wildcards, %exacts, @regwildcards );
|
||||||
|
@weak_wildcards = ();
|
||||||
|
%weak_exacts = ();
|
||||||
|
@weak_regwildcards = ();
|
||||||
|
process_symbols( $allowed_weak, @weak_wildcards, %weak_exacts, @weak_regwildcards );
|
||||||
|
|
||||||
|
# grep is for stripping not exported symbols, which don't have address (=first column)
|
||||||
|
$nm_command = "nm -BDCg " . $lib_file . " | grep -v '^ ' |";
|
||||||
|
|
||||||
|
# TODO how portable is this nmcheck stuff?
|
||||||
|
|
||||||
|
print STDERR "nm command:" . $nm_command . "\n" if $debug;
|
||||||
|
|
||||||
|
open( FILEIN, $nm_command ) || die "nm command failed\n";
|
||||||
|
|
||||||
|
my $exit_code = 0;
|
||||||
|
|
||||||
|
while( $line = <FILEIN> )
|
||||||
|
{
|
||||||
|
my $type;
|
||||||
|
my $symbol;
|
||||||
|
if( $line =~ /^[^ ]* (.) (.*)$/o )
|
||||||
|
{
|
||||||
|
$type = $1;
|
||||||
|
$symbol = $2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
die "Invalid line: " . $line . "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
print STDERR "Type: " . $type . " , symbol: " . $symbol . "\n" if $debug;
|
||||||
|
if( $type eq "A" )
|
||||||
|
{ # these should be system symbols, so ignore them
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
my $orig_symbol = $symbol;
|
||||||
|
|
||||||
|
if( $symbol =~ /\(anonymous namespace\)/o )
|
||||||
|
{ # TODO tell to prefer named namespaces? (shorter symbols)
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
# strip prefixes
|
||||||
|
# the :: appending is to make "CLASS::*" work also for "vtable for CLASS"
|
||||||
|
$symbol =~ s/^typeinfo for (.*)$/$1::/o;
|
||||||
|
$symbol =~ s/^typeinfo fn for (.*)$/$1::/o;
|
||||||
|
$symbol =~ s/^typeinfo name for (.*)$/$1::/o;
|
||||||
|
$symbol =~ s/^vtable for (.*)$/$1::/o;
|
||||||
|
$symbol =~ s/^guard variable for (.*)$/$1::/o;
|
||||||
|
$symbol =~ s/^reference temporary for (.*)$/$1::/o;
|
||||||
|
$symbol =~ s/^VTT for (.*)$/$1::/o;
|
||||||
|
$symbol =~ s/^virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
|
||||||
|
$symbol =~ s/^non-virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
|
||||||
|
$symbol =~ s/^covariant return thunk \[[^\]]*\] to (.*)$/$1::/o;
|
||||||
|
$symbol =~ s/^construction vtable thunk for (.*)$/$1::/o;
|
||||||
|
$symbol =~ s/^construction vtable for .*-in-(.*) [0-9]*$/$1::/o;
|
||||||
|
|
||||||
|
# templates seem to have also return types mangled in their name, and nm prints it too
|
||||||
|
# they have also template arguments in the symbol
|
||||||
|
# get rid of both of those
|
||||||
|
while( $symbol =~ /<.*>/o )
|
||||||
|
{
|
||||||
|
$symbol =~ s/<[^<>]*>//o; # strip innermost <>
|
||||||
|
}
|
||||||
|
if( $symbol !~ /operator\(\)/o )
|
||||||
|
{
|
||||||
|
$symbol =~ s/ ?\(.*\).*$//o; # strip () and all after it
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$symbol =~ s/(^|:| )operator\(\) ?\(.*\).*$//o; # strip () and all after it
|
||||||
|
}
|
||||||
|
$symbol =~ s/\[.*\] *$//o; # strip [in-charge] etc.
|
||||||
|
if( $symbol =~ /(^|:| )operator /o )
|
||||||
|
{
|
||||||
|
$symbol =~ s/.* ([^\s]*)operator /$1/o; # strip everything before 'X::operator blah'
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$symbol =~ s/.* ([^\s]+) *$/$1/o; # get last word (strip return type)
|
||||||
|
}
|
||||||
|
|
||||||
|
# print STDERR "Processed symbol: " . $symbol . "\n" if $debug;
|
||||||
|
|
||||||
|
my $found = 0;
|
||||||
|
if( $exacts{ $symbol } )
|
||||||
|
{
|
||||||
|
$found = 1;
|
||||||
|
}
|
||||||
|
if( ! $found )
|
||||||
|
{
|
||||||
|
for my $wild ( @wildcards )
|
||||||
|
{
|
||||||
|
if( index( $symbol, $wild ) == 0 )
|
||||||
|
{
|
||||||
|
$found = 1;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( ! $found )
|
||||||
|
{
|
||||||
|
for my $wild ( @regwildcards )
|
||||||
|
{
|
||||||
|
if( $symbol =~ /^$wild$/ )
|
||||||
|
{
|
||||||
|
$found = 1;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( ( ! $found ) && ( $type eq "W" || $type eq "V" ))
|
||||||
|
{
|
||||||
|
if( $weak_exacts{ $symbol } )
|
||||||
|
{
|
||||||
|
$found = 1;
|
||||||
|
}
|
||||||
|
if( ! $found )
|
||||||
|
{
|
||||||
|
for my $wild ( @weak_wildcards )
|
||||||
|
{
|
||||||
|
if( index( $symbol, $wild ) == 0 )
|
||||||
|
{
|
||||||
|
$found = 1;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( ! $found )
|
||||||
|
{
|
||||||
|
for my $wild ( @weak_regwildcards )
|
||||||
|
{
|
||||||
|
if( $symbol =~ /^$wild$/ )
|
||||||
|
{
|
||||||
|
$found = 1;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ! $found )
|
||||||
|
{
|
||||||
|
print STDERR "Public symbol " . $orig_symbol . " is not allowed!\n";
|
||||||
|
$exit_code = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
close( FILEIN );
|
||||||
|
|
||||||
|
print STDOUT $exit_code == 0 ? "OK\n" : "FAILED\n";
|
||||||
|
|
||||||
|
exit $exit_code;
|
||||||
|
|
||||||
|
sub process_symbols($\@\%\@)
|
||||||
|
{
|
||||||
|
my $allowed_symbols = $_[ 0 ];
|
||||||
|
my $wildcards_ref = $_[ 1 ];
|
||||||
|
my $exacts_ref = $_[ 2 ];
|
||||||
|
my $regwildcards_ref = $_[ 3 ];
|
||||||
|
|
||||||
|
$allowed_symbols =~ s/^ *//o; # strip whitespace
|
||||||
|
$allowed_symbols =~ s/ *$//o;
|
||||||
|
|
||||||
|
if( $allowed_symbols eq "NONE" )
|
||||||
|
{
|
||||||
|
$allowed_symbols = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
my @symbols1 = split( ' ', $allowed_symbols );
|
||||||
|
my $i = 0;
|
||||||
|
my @symbols2 = ();
|
||||||
|
while( defined( $symbols1[ $i ] ))
|
||||||
|
{
|
||||||
|
my $symbol = $symbols1[ $i ];
|
||||||
|
if( $symbol =~ /\./ ) # dot in name -> file
|
||||||
|
{
|
||||||
|
open( SYMIN, $symbol ) || die ( "Cannot open file " . $symbol . "!" );
|
||||||
|
while( $line = <SYMIN> )
|
||||||
|
{
|
||||||
|
$line =~ s/^\s*//o; # strip whitespace
|
||||||
|
$line =~ s/\s*$//o;
|
||||||
|
if( $line !~ /^$/o # empty line
|
||||||
|
&& $line !~ /^\s*#/ ) # comment line starting with #
|
||||||
|
{
|
||||||
|
$symbols2[ $#symbols2 + 1 ] = $line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close( SYMIN );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$symbols2[ $#symbols2 + 1 ] = $symbol;
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$i = 0;
|
||||||
|
while( defined( $symbols2[ $i ] ))
|
||||||
|
{
|
||||||
|
my $symbol = $symbols2[ $i ];
|
||||||
|
if( $symbol =~ /__/
|
||||||
|
|| $symbol =~ /^_[A-Z]/ )
|
||||||
|
{ # ISO C++ 2.10.2
|
||||||
|
die "Symbols containing a double underscore or beginning with an underscore and an upper-case letter are reserved!\n";
|
||||||
|
}
|
||||||
|
elsif( $symbol eq "main"
|
||||||
|
|| $symbol eq "main*" )
|
||||||
|
{
|
||||||
|
die "Symbol main is not allowed!\n";
|
||||||
|
}
|
||||||
|
if( $symbol =~ /^([^\*]*)\*$/o # trailing * without any * before it
|
||||||
|
&& $symbol !~ /operator\*$/o )
|
||||||
|
{
|
||||||
|
print STDERR "wildcard:" . $symbol . "\n" if $debug;
|
||||||
|
$wildcards_ref->[ $#{$wildcards_ref} + 1 ] = $1;
|
||||||
|
}
|
||||||
|
elsif( $symbol =~ /\*$/o
|
||||||
|
&& ( $symbol =~ /\*::/o || $symbol =~ /::\*/o )
|
||||||
|
&& $symbol !~ /^\*/o
|
||||||
|
&& $symbol !~ /operator\*$/o )
|
||||||
|
{
|
||||||
|
print STDERR "regwildcard:" . $symbol . "\n" if $debug;
|
||||||
|
$symbol =~ s/\*/\.\*/go; # change * to .* (regexp)
|
||||||
|
$regwildcards_ref->[ $#{$regwildcards_ref} + 1 ] = $symbol;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print STDERR "exact:" . $symbol . "\n" if $debug;
|
||||||
|
$exacts_ref->{ $symbol } = 1;
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,192 @@
|
|||||||
|
### -*- autoconf -*-
|
||||||
|
|
||||||
|
dnl This file is part of the KDE libraries/packages
|
||||||
|
dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu)
|
||||||
|
dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org)
|
||||||
|
|
||||||
|
dnl This file is free software; you can redistribute it and/or
|
||||||
|
dnl modify it under the terms of the GNU Library General Public
|
||||||
|
dnl License as published by the Free Software Foundation; either
|
||||||
|
dnl version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
dnl This library is distributed in the hope that it will be useful,
|
||||||
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
dnl Library General Public License for more details.
|
||||||
|
|
||||||
|
dnl You should have received a copy of the GNU Library General Public License
|
||||||
|
dnl along with this library; see the file COPYING.LIB. If not, write to
|
||||||
|
dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
dnl Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
AC_DEFUN([KDE_CHECK_MICO],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([KDE_CHECK_LIBDL])
|
||||||
|
AC_REQUIRE([KDE_MISC_TESTS])
|
||||||
|
AC_MSG_CHECKING(for MICO)
|
||||||
|
|
||||||
|
if test -z "$MICODIR"; then
|
||||||
|
kde_micodir=/usr/local
|
||||||
|
else
|
||||||
|
kde_micodir="$MICODIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_ARG_WITH(micodir,
|
||||||
|
[ --with-micodir=micodir where mico is installed ],
|
||||||
|
kde_micodir=$withval,
|
||||||
|
kde_micodir=$kde_micodir
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_CACHE_VAL(kde_cv_mico_incdir,
|
||||||
|
[
|
||||||
|
mico_incdirs="$kde_micodir/include /usr/include /usr/local/include /usr/local/include /opt/local/include $kde_extra_includes"
|
||||||
|
AC_FIND_FILE(CORBA.h, $mico_incdirs, kde_cv_mico_incdir)
|
||||||
|
|
||||||
|
])
|
||||||
|
kde_micodir=`echo $kde_cv_mico_incdir | sed -e 's#/include##'`
|
||||||
|
|
||||||
|
if test ! -r $kde_micodir/include/CORBA.h; then
|
||||||
|
AC_MSG_ERROR([No CORBA.h found, specify another micodir])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_RESULT($kde_micodir)
|
||||||
|
|
||||||
|
MICO_INCLUDES=-I$kde_micodir/include
|
||||||
|
AC_SUBST(MICO_INCLUDES)
|
||||||
|
MICO_LDFLAGS=-L$kde_micodir/lib
|
||||||
|
AC_SUBST(MICO_LDFLAGS)
|
||||||
|
micodir=$kde_micodir
|
||||||
|
AC_SUBST(micodir)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for MICO version])
|
||||||
|
AC_CACHE_VAL(kde_cv_mico_version,
|
||||||
|
[
|
||||||
|
AC_LANG_C
|
||||||
|
cat >conftest.$ac_ext <<EOF
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <mico/version.h>
|
||||||
|
int main() {
|
||||||
|
|
||||||
|
printf("MICO_VERSION=%s\n",MICO_VERSION);
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
ac_compile='${CC-gcc} $CFLAGS $MICO_INCLUDES conftest.$ac_ext -o conftest'
|
||||||
|
if AC_TRY_EVAL(ac_compile); then
|
||||||
|
if eval `./conftest 2>&5`; then
|
||||||
|
kde_cv_mico_version=$MICO_VERSION
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([your system is not able to execute a small application to
|
||||||
|
find MICO version! Check $kde_micodir/include/mico/version.h])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([your system is not able to compile a small application to
|
||||||
|
find MICO version! Check $kde_micodir/include/mico/version.h])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl installed MICO version
|
||||||
|
mico_v_maj=`echo $kde_cv_mico_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
|
||||||
|
mico_v_mid=`echo $kde_cv_mico_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
|
||||||
|
mico_v_min=`echo $kde_cv_mico_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
|
||||||
|
|
||||||
|
if test "x$1" = "x"; then
|
||||||
|
req_version="2.3.0"
|
||||||
|
else
|
||||||
|
req_version=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl required MICO version
|
||||||
|
req_v_maj=`echo $req_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
|
||||||
|
req_v_mid=`echo $req_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
|
||||||
|
req_v_min=`echo $req_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
|
||||||
|
|
||||||
|
if test "$mico_v_maj" -lt "$req_v_maj" || \
|
||||||
|
( test "$mico_v_maj" -eq "$req_v_maj" && \
|
||||||
|
test "$mico_v_mid" -lt "$req_v_mid" ) || \
|
||||||
|
( test "$mico_v_mid" -eq "$req_v_mid" && \
|
||||||
|
test "$mico_v_min" -lt "$req_v_min" )
|
||||||
|
|
||||||
|
then
|
||||||
|
AC_MSG_ERROR([found MICO version $kde_cv_mico_version but version $req_version \
|
||||||
|
at least is required. You should upgrade MICO.])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([$kde_cv_mico_version (minimum version $req_version, ok)])
|
||||||
|
fi
|
||||||
|
|
||||||
|
LIBMICO="-lmico$kde_cv_mico_version $LIBCRYPT $LIBSOCKET $LIBDL"
|
||||||
|
AC_SUBST(LIBMICO)
|
||||||
|
if test -z "$IDL"; then
|
||||||
|
IDL='$(kde_bindir)/cuteidl'
|
||||||
|
fi
|
||||||
|
AC_SUBST(IDL)
|
||||||
|
IDL_DEPENDENCIES='$(kde_includes)/CUTE.h'
|
||||||
|
AC_SUBST(IDL_DEPENDENCIES)
|
||||||
|
|
||||||
|
idldir="\$(includedir)/idl"
|
||||||
|
AC_SUBST(idldir)
|
||||||
|
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([KDE_CHECK_MINI_STL],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([KDE_CHECK_MICO])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(if we use mico's mini-STL)
|
||||||
|
AC_CACHE_VAL(kde_cv_have_mini_stl,
|
||||||
|
[
|
||||||
|
AC_LANG_SAVE
|
||||||
|
AC_LANG_CPLUSPLUS
|
||||||
|
kde_save_cxxflags="$CXXFLAGS"
|
||||||
|
CXXFLAGS="$CXXFLAGS $MICO_INCLUDES"
|
||||||
|
AC_TRY_COMPILE(
|
||||||
|
[
|
||||||
|
#include <mico/config.h>
|
||||||
|
],
|
||||||
|
[
|
||||||
|
#ifdef HAVE_MINI_STL
|
||||||
|
#error "nothing"
|
||||||
|
#endif
|
||||||
|
],
|
||||||
|
kde_cv_have_mini_stl=no,
|
||||||
|
kde_cv_have_mini_stl=yes)
|
||||||
|
CXXFLAGS="$kde_save_cxxflags"
|
||||||
|
AC_LANG_RESTORE
|
||||||
|
])
|
||||||
|
|
||||||
|
if test "x$kde_cv_have_mini_stl" = "xyes"; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
$1
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
$2
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([KDE_CHECK_ANSI],
|
||||||
|
[
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([KDE_CHECK_INSURE],
|
||||||
|
[
|
||||||
|
AC_ARG_ENABLE(insure, [ --enable-insure use insure++ for debugging [default=no]],
|
||||||
|
[
|
||||||
|
if test $enableval = "no"; dnl
|
||||||
|
then ac_use_insure="no"
|
||||||
|
else ac_use_insure="yes"
|
||||||
|
fi
|
||||||
|
], [ac_use_insure="no"])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(if we will use Insure++ to debug)
|
||||||
|
AC_MSG_RESULT($ac_use_insure)
|
||||||
|
if test "$ac_use_insure" = "yes"; dnl
|
||||||
|
then CC="insure"; CXX="insure"; dnl CFLAGS="$CLAGS -fno-rtti -fno-exceptions "????
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([KDE_CHECK_NEWLIBS],
|
||||||
|
[
|
||||||
|
|
||||||
|
])
|
@ -0,0 +1,57 @@
|
|||||||
|
|
||||||
|
dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
|
||||||
|
dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
|
||||||
|
dnl also defines GSTUFF_PKG_ERRORS on error
|
||||||
|
AC_DEFUN([PKG_CHECK_MODULES], [
|
||||||
|
succeeded=no
|
||||||
|
|
||||||
|
if test -z "$PKG_CONFIG"; then
|
||||||
|
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$PKG_CONFIG" = "no" ; then
|
||||||
|
echo "*** The pkg-config script could not be found. Make sure it is"
|
||||||
|
echo "*** in your path, or set the PKG_CONFIG environment variable"
|
||||||
|
echo "*** to the full path to pkg-config."
|
||||||
|
echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
|
||||||
|
else
|
||||||
|
PKG_CONFIG_MIN_VERSION=0.9.0
|
||||||
|
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
|
||||||
|
AC_MSG_CHECKING(for $2)
|
||||||
|
|
||||||
|
if $PKG_CONFIG --exists "$2" ; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
succeeded=yes
|
||||||
|
|
||||||
|
AC_MSG_CHECKING($1_CFLAGS)
|
||||||
|
$1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
|
||||||
|
AC_MSG_RESULT($$1_CFLAGS)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING($1_LIBS)
|
||||||
|
$1_LIBS=`$PKG_CONFIG --libs "$2"`
|
||||||
|
AC_MSG_RESULT($$1_LIBS)
|
||||||
|
else
|
||||||
|
$1_CFLAGS=""
|
||||||
|
$1_LIBS=""
|
||||||
|
## If we have a custom action on failure, don't print errors, but
|
||||||
|
## do set a variable so people can do so.
|
||||||
|
$1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
|
||||||
|
ifelse([$4], ,echo $$1_PKG_ERRORS,)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST($1_CFLAGS)
|
||||||
|
AC_SUBST($1_LIBS)
|
||||||
|
else
|
||||||
|
echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
|
||||||
|
echo "*** See http://www.freedesktop.org/software/pkgconfig"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $succeeded = yes; then
|
||||||
|
ifelse([$3], , :, [$3])
|
||||||
|
else
|
||||||
|
ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
|
@ -0,0 +1,223 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# ylwrap - wrapper for lex/yacc invocations.
|
||||||
|
|
||||||
|
scriptversion=2005-05-14.22
|
||||||
|
|
||||||
|
# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 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
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# 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., 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.
|
||||||
|
|
||||||
|
# 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 files given. Try \`$0 --help' for more information." 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
--basedir)
|
||||||
|
basedir=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-h|--h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
|
||||||
|
|
||||||
|
Wrapper for lex/yacc invocations, renaming files as desired.
|
||||||
|
|
||||||
|
INPUT is the input file
|
||||||
|
OUTPUT is one file PROG generates
|
||||||
|
DESIRED is the file we actually want instead of OUTPUT
|
||||||
|
PROGRAM is program to run
|
||||||
|
ARGS are passed to PROG
|
||||||
|
|
||||||
|
Any number of OUTPUT,DESIRED pairs may be used.
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v|--v*)
|
||||||
|
echo "ylwrap $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
# The input.
|
||||||
|
input="$1"
|
||||||
|
shift
|
||||||
|
case "$input" in
|
||||||
|
[\\/]* | ?:[\\/]*)
|
||||||
|
# Absolute path; do nothing.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Relative path. Make it absolute.
|
||||||
|
input="`pwd`/$input"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
pairlist=
|
||||||
|
while test "$#" -ne 0; do
|
||||||
|
if test "$1" = "--"; then
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
pairlist="$pairlist $1"
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# The program to run.
|
||||||
|
prog="$1"
|
||||||
|
shift
|
||||||
|
# Make any relative path in $prog absolute.
|
||||||
|
case "$prog" in
|
||||||
|
[\\/]* | ?:[\\/]*) ;;
|
||||||
|
*[\\/]*) prog="`pwd`/$prog" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# FIXME: add hostname here for parallel makes that run commands on
|
||||||
|
# other machines. But that might take us over the 14-char limit.
|
||||||
|
dirname=ylwrap$$
|
||||||
|
trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
|
||||||
|
mkdir $dirname || exit 1
|
||||||
|
|
||||||
|
cd $dirname
|
||||||
|
|
||||||
|
case $# in
|
||||||
|
0) $prog "$input" ;;
|
||||||
|
*) $prog "$@" "$input" ;;
|
||||||
|
esac
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if test $ret -eq 0; then
|
||||||
|
set X $pairlist
|
||||||
|
shift
|
||||||
|
first=yes
|
||||||
|
# Since DOS filename conventions don't allow two dots,
|
||||||
|
# the DOS version of Bison writes out y_tab.c instead of y.tab.c
|
||||||
|
# and y_tab.h instead of y.tab.h. Test to see if this is the case.
|
||||||
|
y_tab_nodot="no"
|
||||||
|
if test -f y_tab.c || test -f y_tab.h; then
|
||||||
|
y_tab_nodot="yes"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The directory holding the input.
|
||||||
|
input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
|
||||||
|
# Quote $INPUT_DIR so we can use it in a regexp.
|
||||||
|
# FIXME: really we should care about more than `.' and `\'.
|
||||||
|
input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
|
||||||
|
|
||||||
|
while test "$#" -ne 0; do
|
||||||
|
from="$1"
|
||||||
|
# Handle y_tab.c and y_tab.h output by DOS
|
||||||
|
if test $y_tab_nodot = "yes"; then
|
||||||
|
if test $from = "y.tab.c"; then
|
||||||
|
from="y_tab.c"
|
||||||
|
else
|
||||||
|
if test $from = "y.tab.h"; then
|
||||||
|
from="y_tab.h"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test -f "$from"; then
|
||||||
|
# If $2 is an absolute path name, then just use that,
|
||||||
|
# otherwise prepend `../'.
|
||||||
|
case "$2" in
|
||||||
|
[\\/]* | ?:[\\/]*) target="$2";;
|
||||||
|
*) target="../$2";;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# We do not want to overwrite a header file if it hasn't
|
||||||
|
# changed. This avoid useless recompilations. However the
|
||||||
|
# parser itself (the first file) should always be updated,
|
||||||
|
# because it is the destination of the .y.c rule in the
|
||||||
|
# Makefile. Divert the output of all other files to a temporary
|
||||||
|
# file so we can compare them to existing versions.
|
||||||
|
if test $first = no; then
|
||||||
|
realtarget="$target"
|
||||||
|
target="tmp-`echo $target | sed s/.*[\\/]//g`"
|
||||||
|
fi
|
||||||
|
# Edit out `#line' or `#' directives.
|
||||||
|
#
|
||||||
|
# We don't want the resulting debug information to point at
|
||||||
|
# an absolute srcdir; it is better for it to just mention the
|
||||||
|
# .y file with no path.
|
||||||
|
#
|
||||||
|
# We want to use the real output file name, not yy.lex.c for
|
||||||
|
# instance.
|
||||||
|
#
|
||||||
|
# We want the include guards to be adjusted too.
|
||||||
|
FROM=`echo "$from" | sed \
|
||||||
|
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
|
||||||
|
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
|
||||||
|
TARGET=`echo "$2" | sed \
|
||||||
|
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
|
||||||
|
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
|
||||||
|
|
||||||
|
sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
|
||||||
|
-e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
|
||||||
|
|
||||||
|
# Check whether header files must be updated.
|
||||||
|
if test $first = no; then
|
||||||
|
if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
|
||||||
|
echo "$2" is unchanged
|
||||||
|
rm -f "$target"
|
||||||
|
else
|
||||||
|
echo updating "$2"
|
||||||
|
mv -f "$target" "$realtarget"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# A missing file is only an error for the first file. This
|
||||||
|
# is a blatant hack to let us support using "yacc -d". If -d
|
||||||
|
# is not specified, we don't want an error when the header
|
||||||
|
# file is "missing".
|
||||||
|
if test $first = yes; then
|
||||||
|
ret=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
first=no
|
||||||
|
done
|
||||||
|
else
|
||||||
|
ret=$?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove the directory.
|
||||||
|
cd ..
|
||||||
|
rm -rf $dirname
|
||||||
|
|
||||||
|
exit $ret
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
Loading…
Reference in new issue