[med-svn] [Git][med-team/libarb][master] 8 commits: try to use main Makefile
Andreas Tille
gitlab at salsa.debian.org
Thu Jun 6 13:13:42 BST 2019
Andreas Tille pushed to branch master at Debian Med / libarb
Commits:
718d4d6e by Andreas Tille at 2019-06-06T10:18:57Z
try to use main Makefile
- - - - -
69657fae by Andreas Tille at 2019-06-06T10:25:42Z
Keep two more files to simplify building
- - - - -
0535f5d6 by Andreas Tille at 2019-06-06T10:27:44Z
New upstream version 6.0.6
- - - - -
3db32e79 by Andreas Tille at 2019-06-06T10:27:46Z
Update upstream source from tag 'upstream/6.0.6'
Update to upstream version '6.0.6'
with Debian dir 4c8456896276dc3078891ce76b090566f06d9c98
- - - - -
6097eb98 by Andreas Tille at 2019-06-06T12:12:03Z
Do not remove binuptodate.pl
- - - - -
c731a79d by Andreas Tille at 2019-06-06T12:12:13Z
More enhancements to build from main Makefile
- - - - -
5637dc90 by Andreas Tille at 2019-06-06T12:12:58Z
New upstream version 6.0.6
- - - - -
b197188f by Andreas Tille at 2019-06-06T12:13:00Z
Update upstream source from tag 'upstream/6.0.6'
Update to upstream version '6.0.6'
with Debian dir 642c8d259050841f57e410b34abb5d3c016bb0f1
- - - - -
9 changed files:
- + BUGEX/bugex.h
- + SOURCE_TOOLS/build_info.pl
- + SOURCE_TOOLS/generate_all_links.sh
- + TEMPLATES/Makefile
- + TEMPLATES/bytestring.h
- debian/copyright
- + debian/patches/fix_main_makefile.patch
- debian/patches/series
- debian/rules
Changes:
=====================================
BUGEX/bugex.h
=====================================
@@ -0,0 +1,208 @@
+// ==================================================================== //
+// //
+// File : bugex.h //
+// Purpose : Debugging code //
+// //
+// //
+// Coded by Ralf Westram (coder at reallysoft.de) in April 2003 //
+// Copyright Department of Microbiology (Technical University Munich) //
+// //
+// Visit our web site at: http://www.arb-home.de/ //
+// //
+// //
+// ==================================================================== //
+
+// Description :
+//
+// when using the macros XXX_DUMP_VAL and XXX_DUMP_STR the program prints
+// out information about the specified variables.
+//
+// This information is prefixed by 'FILE:LINENO: '
+//
+// The intention is to use the program as compile-command in emacs and follow
+// the program flow with next-error / previous-error
+//
+// Note : When finished with debugging you should remove the #include "bugex.h"
+// because it adds unneeded code to EVERY object file!
+
+// --------------------------------------------------------------------------------
+// This section is used by Ralf
+// If you want to use the DUMP-Macros copy this section and personalize it!
+
+#if defined(DEVEL_RALF)
+
+#define BUGEX_DUMPS
+#define BUGEX_MAX_STRING_PRINT 40
+
+#define RALF_DUMP_EXPR(type,var) ALL_DUMP_EXPR(type,var)
+#define RALF_DUMP_VAL(var) ALL_DUMP_VAL(var)
+#define RALF_DUMP_STR(var) ALL_DUMP_STR(var)
+#define RALF_DUMP_PTR(var) ALL_DUMP_PTR(var)
+#define RALF_DUMP_MARK() ALL_DUMP_MARK()
+
+#else
+
+#define RALF_DUMP_VAL(var)
+#define RALF_DUMP_STR(var)
+#define RALF_DUMP_MARK()
+
+#endif
+
+// --------------------------------------------------------------------------------
+// This section is used by Yadhu
+
+#if defined(DEVEL_YADHU)
+
+#define BUGEX_DUMPS
+#define BUGEX_MAX_STRING_PRINT 40
+#define YADHU_DUMP_VAL(var) ALL_DUMP_VAL(var)
+#define YADHU_DUMP_STR(var) ALL_DUMP_STR(var)
+#define YADHU_DUMP_PTR(var) ALL_DUMP_PTR(var)
+#define YADHU_DUMP_MARK() ALL_DUMP_MARK()
+
+#else
+
+#define YADHU_DUMP_VAL(var)
+#define YADHU_DUMP_STR(var)
+#define YADHU_DUMP_MARK()
+
+#endif
+
+// --------------------------------------------------------------------------------
+// Definition of needed macros/functions :
+
+#if defined(BUGEX_DUMPS)
+
+#ifndef _GLIBCXX_CCTYPE
+#include <cctype>
+#endif
+
+// Do NOT use the following macros!!!
+
+#define ALL_DUMP_EXPR(type,expr) \
+ do { \
+ type tmp_var = (expr); \
+ bugex_dump_value(&tmp_var, "[" #expr "]", sizeof(tmp_var), __FILE__, __LINE__); \
+ } while (0)
+
+#define ALL_DUMP_VAL(var) bugex_dump_value(&var, #var, sizeof(var), __FILE__, __LINE__)
+#define ALL_DUMP_STR(var) bugex_dump_string(&var, #var, __FILE__, __LINE__)
+#define ALL_DUMP_PTR(var) bugex_dump_pointer(&var, #var, __FILE__, __LINE__)
+#define ALL_DUMP_MARK() bugex_dump_mark(__FILE__, __LINE__)
+
+static void bugex_dump_mark(const char *file, size_t lineno) {
+ fprintf(stderr, "%s:%zu: ------------------------------ MARK\n", file, lineno);
+ fflush(stderr);
+}
+
+static void bugex_printString(const char *str, size_t len) {
+ while (len--) {
+ unsigned char c = (unsigned char)*str++;
+ if (isprint(c)) {
+ fputc(c, stderr);
+ }
+ else {
+ switch (c) {
+ case '\n': fputs("\\n", stderr); break;
+ case '\t': fputs("\\t", stderr); break;
+ default: fprintf(stderr, "\\%i", (int)c); break;
+ }
+ }
+ }
+}
+
+static void bugex_dump_pointer(void *somePtr, const char *someName, const char *file, size_t lineno) {
+ fprintf(stderr, "%s:%zu: %s: %p -> %p\n", file, lineno, someName, somePtr, *(void**)somePtr);
+ fflush(stderr);
+}
+
+static void bugex_dump_string(void *strPtr, const char *strName, const char *file, size_t lineno) {
+ const char *s = *((const char **)strPtr);
+
+ fprintf(stderr, "%s:%zu: ", file, lineno);
+
+ if (s == 0) { // NULL pointer
+ fprintf(stderr, "%s is NULL (&=%p)\n", strName, strPtr);
+ }
+ else {
+ size_t len = strlen(s);
+
+ fprintf(stderr, "%s = \"", strName);
+ if (len <= BUGEX_MAX_STRING_PRINT) { // short strings
+ bugex_printString(s, len);
+ }
+ else {
+ bugex_printString(s, BUGEX_MAX_STRING_PRINT/2);
+ fprintf(stderr, "\" .. \"");
+ bugex_printString(s+len-BUGEX_MAX_STRING_PRINT/2, BUGEX_MAX_STRING_PRINT/2);
+ }
+ fprintf(stderr, "\" (len=%zu, &=%p -> %p)\n", len, strPtr, s);
+ }
+ fflush(stderr);
+}
+
+
+#define BUGEX_VALSIZES 4
+static unsigned short bugex_valsize[] = { sizeof(char), sizeof(short), sizeof(int), sizeof(long), 0 };
+enum bugex_valtype { BUGEX_CHAR, BUGEX_SHORT, BUGEX_INT, BUGEX_LONG, BUGEX_UNKNOWN };
+
+static void bugex_dump_value(void *valuePtr, const char *valueName, size_t size, const char *file, size_t lineno) {
+ int vs;
+ enum bugex_valtype type = BUGEX_UNKNOWN;
+
+ if (size == bugex_valsize[BUGEX_INT]) {
+ type = BUGEX_INT; // prefer int
+ }
+ else {
+ for (vs = 0; vs < BUGEX_VALSIZES; ++vs) {
+ if (size == bugex_valsize[vs]) {
+ type = (enum bugex_valtype)vs;
+ }
+ }
+ }
+
+ fprintf(stderr, "%s:%zu: ", file, lineno);
+
+ switch (type) {
+ case BUGEX_CHAR: {
+ unsigned char c = *(unsigned char*)valuePtr;
+ int i = (int)(signed char)c;
+
+ fprintf(stderr, "(char) %s = '%c' = %i", valueName, c, i);
+ if (i<0) fprintf(stderr, " = %u", (unsigned int)c);
+ fprintf(stderr, " (&=%p)", valuePtr);
+ break;
+ }
+ case BUGEX_SHORT: {
+ unsigned short s = *(unsigned short *)valuePtr;
+ signed short ss = (signed short)s;
+
+ fprintf(stderr, "(short) %s = %hi", valueName, (int)ss);
+ if (ss<0) fprintf(stderr, " = %hu", s);
+ fprintf(stderr, " = 0x%hx (&=%p)", s, valuePtr);
+ break;
+ }
+ case BUGEX_INT: {
+ unsigned int u = *(unsigned int *)valuePtr;
+ int i = (int)u;
+
+ fprintf(stderr, "(int) %s = %i", valueName, i);
+ if (i<0) fprintf(stderr, " = %u", u);
+ fprintf(stderr, " = 0x%x (&=%p)", u, valuePtr);
+ break;
+ }
+ case BUGEX_LONG: {
+ unsigned long l = *(unsigned long *)valuePtr;
+ fprintf(stderr, "(long) %s = %li = %lu = 0x%lx (&=%p)", valueName, (signed long)l, (unsigned long)l, (unsigned long)l, valuePtr);
+ break;
+ }
+ default: {
+ fprintf(stderr, "value '%s' has unknown size (use cast operator!)", valueName);
+ break;
+ }
+ }
+ fprintf(stderr, "\n");
+ fflush(stderr);
+}
+
+#endif // BUGEX_DUMPS
=====================================
SOURCE_TOOLS/build_info.pl
=====================================
@@ -0,0 +1,481 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+# create/update build info into
+# ../TEMPLATES/arb_build.h
+# and
+# ../TEMPLATES/svn_revision.h
+
+# --------------------------------------------------------------------------------
+
+my $dumpFiles = 1;
+
+my $RC_BRANCH = 'rc';
+my $STABLE_BRANCH = 'stable';
+
+# --------------------------------------------------------------------------------
+
+my $ARBHOME = $ENV{ARBHOME};
+if (not defined $ARBHOME) { die "ARBHOME undefined"; }
+if ((not -d $ARBHOME) or (not -f $ARBHOME.'/arb_LICENSE.txt')) {
+ die "ARBHOME ('$ARBHOME') must point to ARB build directory";
+}
+
+my $TEMPLATES = $ARBHOME.'/TEMPLATES'; if (not -d $TEMPLATES) { die "no such directory '$TEMPLATES'"; }
+my $SOURCE_TOOLS = $ARBHOME.'/SOURCE_TOOLS'; if (not -d $SOURCE_TOOLS) { die "no such directory '$SOURCE_TOOLS'"; }
+my $mv_if_diff = $SOURCE_TOOLS.'/mv_if_diff'; if (not -x $mv_if_diff) { die "no such script '$mv_if_diff'"; }
+
+# upgrade version?
+my $inc_major = $SOURCE_TOOLS.'/inc_major.stamp';
+my $inc_minor = $SOURCE_TOOLS.'/inc_minor.stamp';
+my $inc_candi = $SOURCE_TOOLS.'/inc_candi.stamp';
+my $inc_patch = $SOURCE_TOOLS.'/inc_patch.stamp';
+
+# --------------------------------------------------------------------------------
+
+sub execAndGetFirstNonemptyLine($) {
+ my ($infocmd) = @_;
+ # returns first nonempty line from infocmd-output
+ # or undef (if output is empty)
+ # or dies (if command fails)
+
+ my $content = undef;
+ print "[executing '$infocmd']\n";
+ open(INFO,$infocmd.'|') || die "failed to fork '$infocmd' (Reason: $!)";
+ LINE: foreach (<INFO>) {
+ if ($_ ne '') {
+ chomp;
+ $content = $_;
+ last LINE;
+ }
+ }
+ close(INFO) || die "failed to execute '$infocmd' (Reason: $!)";;
+ if (defined $content) { print "output='$content'\n"; }
+ else { print "no output :-(\n"; }
+ return $content;
+}
+
+sub getHost() {
+ my $arbbuildhost = $ENV{ARBBUILDHOST};
+ my @hosts = ();
+ if (defined $arbbuildhost) { push @hosts, $arbbuildhost; }
+ else {
+ my $host = $ENV{HOST};
+ my $hostname = $ENV{HOSTNAME};
+
+ if (defined $host) { push @hosts, $host; }
+ if (defined $hostname) { push @hosts, $hostname; }
+ }
+ if (scalar(@hosts)==0) {
+ my $hostnameout = undef;
+ eval { $hostnameout = execAndGetFirstNonemptyLine('hostname'); };
+ if ($@) { print "Warning: buildhost is unknown ($@)\n"; }
+ if (not defined $hostnameout) { $hostnameout = 'unknown'; }
+
+ my $domainname = undef;
+ eval { $domainname = execAndGetFirstNonemptyLine('domainname'); };
+ if ($@) { print "Warning: domain is unknown ($@)\n"; $domainname = undef; }
+ if ((not defined $domainname) or ($domainname eq '(none)')) { $domainname = 'somewhere'; }
+
+ push @hosts, $hostnameout.'.'.$domainname;
+ }
+
+ @hosts = sort { length($b) <=> length($a); } @hosts; # sort longest first
+ return $hosts[0];
+}
+
+sub getUser() {
+ my $user = $ENV{ARBBUILDUSER};
+ if (not defined $user) { $user = $ENV{USER}; }
+ if (not defined $user) {
+ eval { $user = execAndGetFirstNonemptyLine('whoami'); };
+ if ($@) { print "Warning: user is unknown ($@)\n"; $user = undef; }
+ }
+ if (not defined $user) { $user = 'unknownUser'; }
+ return $user;
+}
+
+sub guessSvnBranchInsideJenkins() {
+ my $root = undef;
+ my $url = $ENV{SVN_URL}; # is set inside jenkins
+
+ if (defined $url) {
+ if ($url eq '') { $url = undef; }
+ else {
+ my $suffix = undef;
+ if ($url =~ /^(http:\/\/vc\.arb-home\.de\/(svn|readonly))\//o) {
+ $suffix = $';
+ $root = $1;
+ }
+ elsif ($url =~ /^(svn\+ssh:\/\/.*vc\.arb-home\.de\/home\/vc\/repos\/ARB)\//o) {
+ $suffix = $';
+ $root = $1;
+ }
+ if (not defined $suffix) { die "Unexpected value in SVN_URL ('$url')"; }
+ die "root unset (url='$url')" if not defined $root;
+ }
+ }
+ return ($root,$url);
+}
+
+sub getRevision() {
+ my $jrevision = $ENV{SVN_REVISION}; # is set inside jenkins
+ if (defined $jrevision and $jrevision eq '') { $jrevision = undef; }
+
+ my $revision = undef;
+ eval {
+ $revision = execAndGetFirstNonemptyLine("svnversion -c -n '$ARBHOME'");
+ if (defined $revision and $revision =~ /^2:/) { $revision = $'; }
+ };
+ if ($@) {
+ if (defined $jrevision) {
+ print "Accepting svn failure (apparently running inside jenkins)\n";
+ $revision = $jrevision;
+ }
+ else { die $@."\n"; }
+ }
+
+ if (not defined $revision) { die "Failed to detect revision number"; }
+ if (defined $jrevision) {
+ if ($jrevision ne $revision) {
+ if ($revision =~ /M/) {
+ print "------------------------------------------------------------ [svn diff]\n";
+ system('cd $ARBHOME;svn diff');
+ print "------------------------------------------------------------\n";
+ }
+ die "Conflicting revision numbers (jrevision='$jrevision', revision='$revision')";
+ }
+ }
+ return $revision;
+}
+
+sub getBranchOrTag() {
+ # returns any of
+ # (0,trunk)
+ # (0,branchname)
+ # (1,tagname)
+ # or dies
+
+ my ($jroot,$jurl) = guessSvnBranchInsideJenkins();
+ my ($root,$url) = (undef,undef);
+ eval {
+ my $infocmd = "svn info '$ARBHOME'";
+ print "[executing '$infocmd']\n";
+ open(INFO,$infocmd.'|') || die "failed to fork '$infocmd' (Reason: $!)";
+ foreach (<INFO>) {
+ chomp;
+ print "info[b]='$_'\n";
+ if (/^Repository\sRoot:\s+/o) { $root = $'; }
+ elsif (/^URL:\s+/o) { $url = $'; }
+ }
+ close(INFO) || die "failed to execute '$infocmd' (Reason: $!)";;
+ };
+ if ($@) {
+ if (defined $jroot and defined $jurl) {
+ print "Accepting svn failure (apparently running inside jenkins)\n";
+ ($root,$url) = ($jroot,$jurl);
+ }
+ else { die $@."\n"; }
+ }
+
+ if (not defined $root) { die "Failed to detect repository root"; }
+ if (not defined $url) { die "Failed to detect repository URL"; }
+
+ if (defined $jroot) {
+ if (not defined $jurl) { die "\$jroot defined, \$jurl undefined (bug in guessSvnBranchInsideJenkins?)"; }
+ if ($jroot ne $root) { die "Conflicting SVN root detection:\n1='$root'\n2='$jroot'"; }
+ if ($jurl ne $url) { die "Conflicting SVN url detection:\n1='$url'\n2='$jurl'"; }
+ }
+ elsif (defined $jurl) { die "\$jurl defined, \$jroot undefined (bug in guessSvnBranchInsideJenkins?)"; }
+
+ my $rootlen = length($root);
+ my $url_prefix = substr($url,0,$rootlen);
+ if ($url_prefix ne $root) { die "Expected '$url_prefix' to match '$root'"; }
+
+ my $rest = substr($url,$rootlen+1);
+ my $is_tag = 0;
+ if ($rest =~ /^branches\//) {
+ $rest = $';
+ }
+ elsif ($rest =~ /^tags\//) {
+ $rest = $';
+ $is_tag = 1;
+ }
+ return ($is_tag,$rest);
+}
+
+sub getBranchOrTagFromHeader($) {
+ my ($header) = @_;
+ open(HEADER,'<'.$header) || die "Failed to read '$header' (Reason: $!)";
+ my ($revision,$is_tag,$branch) = (undef,undef);
+ foreach (<HEADER>) {
+ chomp;
+ if (/^\#define\s+ARB_SVN_BRANCH\s+\"([^\"]+)\"/o) { $branch = $1; }
+ elsif (/^\#define\s+ARB_SVN_BRANCH_IS_TAG\s+([01])/o) { $is_tag = $1; }
+ elsif (/^\#define\s+ARB_SVN_REVISION\s+\"([^\"]+)\"/o) { $revision = $1; }
+ }
+ close(HEADER);
+
+ if (not defined $branch) { die "Failed to parse branch from $header"; }
+ if (not defined $is_tag) { die "Failed to parse is_tag from $header"; }
+ if (not defined $revision) { die "Failed to parse revision from $header"; }
+ if ($is_tag != 0 and $is_tag != 1) { die "Invalid value is_tag='$is_tag'"; }
+ return ($revision,$is_tag,$branch);
+}
+
+sub dumpFile($) {
+ my ($file) = @_;
+ print "---------------------------------------- [start $file]\n";
+ system("cat $file");
+ print "---------------------------------------- [end $file]\n";
+}
+
+sub update($\@) {
+ my ($file,$content_r) = @_;
+ my $tmp = $file.'.tmp';
+
+ open(TMP,'>'.$tmp) || die "can't write to '$tmp' (Reason: $!)";
+ foreach (@$content_r) { print TMP $_."\n"; }
+ close(TMP);
+ `$mv_if_diff '$tmp' '$file'`;
+ if ($dumpFiles) { dumpFile($file); }
+}
+
+sub file2hash($\%$) {
+ my ($file,$hash_r,$expectFile) = @_;
+ if (open(FILE,'<'.$file)) {
+ foreach (<FILE>) {
+ chomp;
+ if (/^([^=]+)=(.*)$/o) { $$hash_r{$1}=$2; }
+ }
+ close(FILE);
+ }
+ elsif ($expectFile==1) {
+ die "can't read '$file' (Reason: $!)";
+ }
+}
+
+sub hash2file(\%$) {
+ my ($hash_r,$file) = @_;
+ open(FILE,'>'.$file) or die "can't write '$file' (Reason: $!)";
+ foreach (sort keys %$hash_r) {
+ print FILE "$_=".$$hash_r{$_}."\n";
+ }
+ close(FILE);
+}
+
+# --------------------------------------------------------------------------------
+
+my $arb_build_h = $TEMPLATES.'/arb_build.h';
+my $svn_revision_h = $TEMPLATES.'/svn_revision.h';
+
+my $in_SVN = (-d $ARBHOME.'/.svn');
+
+# update revision info?
+my ($revision,$is_tag,$branch) = (undef,undef,undef);
+if ($in_SVN) {
+ # in SVN checkout -> update revision info
+ $revision = getRevision();
+ ($is_tag,$branch) = getBranchOrTag();
+
+ # $branch = $RC_BRANCH; # @@@ fake
+ # $branch = $STABLE_BRANCH; # @@@ fake
+ # $branch = 'gtk_only'; # @@@ fake
+ # ($is_tag,$branch) = (1, 'arb-5.20.1'); # @@@ fake
+ # ($is_tag,$branch) = (1, 'arb-5.19'); # @@@ fake
+ # ($is_tag,$branch) = (1, 'evalSomething'); # @@@ fake
+ # ($is_tag,$branch) = (1, 'arb-5.20'); # @@@ fake
+ # ($is_tag,$branch) = (1, 'arb-5.20-rc1'); # @@@ fake
+ # ($is_tag,$branch) = (1, 'arb-5.20-rc2'); # @@@ fake
+
+ my @svn_revision = (
+ '#define ARB_SVN_REVISION "'.$revision.'"',
+ '#define ARB_SVN_BRANCH "'.$branch.'"',
+ '#define ARB_SVN_BRANCH_IS_TAG '.$is_tag,
+ );
+
+ update($svn_revision_h, at svn_revision);
+}
+else {
+ if (not -f $svn_revision_h) {
+ die "Missing file '$svn_revision_h'";
+ }
+ # use revision info as in source tarball
+ ($revision,$is_tag,$branch) = getBranchOrTagFromHeader($svn_revision_h);
+}
+
+my $date = `date '+%d.%b.%Y'`;
+chomp($date);
+my $year = undef;
+if ($date =~ /\.([^\.]+)$/o) {
+ $year = $1;
+}
+else {
+ die "error parsing year from '$date'";
+}
+
+# read version info
+my $version_info = $SOURCE_TOOLS.'/version_info';
+my %version_info = ();
+file2hash($version_info,%version_info,1);
+
+if (not defined $version_info{CANDIDATE}) { $version_info{CANDIDATE} = 1; }
+if (not defined $version_info{PATCHLEVEL}) { $version_info{PATCHLEVEL} = 0; }
+
+if (-f $inc_major or -f $inc_minor or -f $inc_candi or -f $inc_patch) { # version/rc-candidate/patchlevel upgrade requested?
+ eval {
+ print "\n";
+ if ($in_SVN) {
+ if ($is_tag==1) {
+ die "Upgrading version information not possible in tag-checkout! (tag of this WC = '$branch')";
+ }
+ if (-f $inc_candi) {
+ if ($branch ne $RC_BRANCH) {
+ die "Upgrading RC-candidate number only possible in branch '$RC_BRANCH' (you are in '$branch')";
+ }
+ my $oldRC = $version_info{CANDIDATE};
+ if (not defined $oldRC) { die "No CANDIDATE defined"; }
+ $version_info{CANDIDATE}++;
+ my $newRC = $version_info{CANDIDATE};
+ print "RC-candidate number upgraded from $oldRC to $newRC\n";
+ }
+ elsif (-f $inc_patch) {
+ if ($branch ne $STABLE_BRANCH) {
+ die "Upgrading patchlevel only possible in branch '$STABLE_BRANCH' (you are in '$branch')";
+ }
+ my $oldPL = $version_info{PATCHLEVEL};
+ if (not defined $oldPL) { die "No PATCHLEVEL defined"; }
+ $version_info{PATCHLEVEL}++;
+ my $newPL = $version_info{PATCHLEVEL};
+ print "patchlevel upgraded from $oldPL to $newPL\n";
+ }
+ else {
+ if ($is_tag==1 or $branch ne 'trunk') {
+ die "Upgrading version only possible in 'trunk' (you are in '$branch')";
+ }
+ my $oldVersion = $version_info{MAJOR}.'.'.$version_info{MINOR};
+ if (-f $inc_major) {
+ $version_info{MAJOR}++;
+ $version_info{MINOR} = 0;
+ }
+ else {
+ $version_info{MINOR}++;
+ }
+ $version_info{CANDIDATE} = 1; # first release candidate will be rc1
+ $version_info{PATCHLEVEL} = 0; # no patchlevel (yet)
+ my $newVersion = $version_info{MAJOR}.'.'.$version_info{MINOR};
+ print "Version upgraded from $oldVersion to $newVersion\n";
+ }
+
+ $version_info{last_upgrade}=time; # upgrade timestamp
+ hash2file(%version_info,$version_info);
+ }
+ else {
+ die "Upgrading version only possible in SVN WC";
+ }
+ print "\n";
+ };
+ my $failed = $@;
+
+ # always remove requests
+ -f $inc_major && unlink($inc_major);
+ -f $inc_minor && unlink($inc_minor);
+ -f $inc_candi && unlink($inc_candi);
+ -f $inc_patch && unlink($inc_patch);
+
+ if ($failed) { die "$failed\n"; }
+}
+
+# create valid svn-tag for this version
+
+my $svn_tag = undef;
+my $short_version = undef;
+my $always_show_revision = 1;
+
+my $orgbranch = $branch; # real branch or branch estimated from tag
+if ($is_tag==1) {
+ if ($branch =~ /^arb-[0-9]+\.[0-9]+/o) {
+ if ($branch =~ /-rc[0-9]+$/o) { $orgbranch = $RC_BRANCH; }
+ else { $orgbranch = $STABLE_BRANCH; }
+ }
+ else {
+ $orgbranch = 'unknown';
+ }
+}
+
+if ($orgbranch eq $STABLE_BRANCH or $orgbranch eq $RC_BRANCH) {
+ $always_show_revision = 0;
+ $svn_tag = 'arb-'.$version_info{MAJOR}.'.'.$version_info{MINOR};
+ if ($orgbranch eq $RC_BRANCH) {
+ $svn_tag .= '-rc'.$version_info{CANDIDATE};
+ }
+ else {
+ if ($version_info{PATCHLEVEL} > 0) { $svn_tag .= '.'.$version_info{PATCHLEVEL}; }
+ }
+ $short_version = $svn_tag;
+
+ if ($is_tag==1) {
+ # check real SVN-tag vs generated SVN-tag
+ if ($branch ne $svn_tag) {
+ die "Version info and SVN-branch-tag mismatch:\n".
+ "(version suggests svn-tag = '$svn_tag'\n".
+ " real svn-tag = '$branch')";
+ }
+ }
+ print "SVN_URL='$ENV{SVN_URL}'\n";
+ print "SVN_REVISION='$ENV{SVN_REVISION}'\n";
+}
+elsif ($is_tag==1) {
+ $short_version = 'arb-special-'.$branch; # use custom tag
+}
+else {
+ $short_version = 'arb-devel';
+ if ($branch ne 'trunk') { $short_version .= '-'.$branch; }
+ $short_version .= '-'.$version_info{MAJOR}.'.'.$version_info{MINOR};
+}
+
+defined $short_version || die "expected known short_version!";
+defined $revision || die "expected known revision!";
+my $long_version = $short_version.'.rev'.$revision;
+
+if ($always_show_revision==1) {
+ $short_version = $long_version;
+}
+
+my $ARB_64 = $ENV{ARB_64};
+if (not defined $ARB_64) {
+ my $config_makefile = $ARBHOME.'/config.makefile';
+ if (open(CONFIG, '<'.$config_makefile)) {
+ $ARB_64 = 1; # default to 64 bit -- see ../Makefile at 64bit
+ foreach (<CONFIG>) {
+ if (/^\s*ARB_64\s*:=\s*([01]).*/) {
+ $ARB_64 = $1;
+ }
+ }
+ close(CONFIG);
+ }
+ else {
+ die "Either environment variable ARB_64 has to be defined or $config_makefile has to exist!";
+ }
+}
+
+if (not $ARB_64) {
+ $short_version .= '-32bit';
+ $long_version .= '-32bit';
+}
+
+my @arb_build = (
+ '#define ARB_VERSION "'.$short_version.'"',
+ '#define ARB_VERSION_DETAILED "'.$long_version.'"',
+
+ '#define ARB_BUILD_DATE "'.$date.'"',
+ '#define ARB_BUILD_YEAR "'.$year.'"',
+
+ '#define ARB_BUILD_HOST "'.getHost().'"',
+ '#define ARB_BUILD_USER "'.getUser().'"',
+ );
+
+update($arb_build_h, at arb_build);
+
=====================================
SOURCE_TOOLS/generate_all_links.sh
=====================================
@@ -0,0 +1,362 @@
+#!/bin/bash
+
+SELF=$ARBHOME/SOURCE_TOOLS/generate_all_links.sh
+READLINK=${ARBHOME}/SH/arb_readlink
+
+
+finderr() {
+ FOUND=`grep -Hn "$1" $SELF | perl -ne '/^[^:]+:[^:]+:/; print $&."[here]\n";'`
+ if [ -z "$FOUND" ]; then
+ echo "$SELF:8: $2 ($1 not located -- search manually)"
+ else
+ echo "$FOUND $2"
+ fi
+ false
+}
+
+may_create_link() {
+ # $1 is the link to create
+ # $2 ==1 -> warn about links to nowhere
+ if [ -h $1 ]; then
+ if [ -e $1 ]; then
+ # points to sth existing, assume link already present and valid
+ true
+ else
+ # points to nothing
+ if [ $2 = 1 ]; then
+ finderr $1 "Note: Symlink '$1' pointed to nowhere -- removing wrong link"
+ ls -al $1
+ fi
+ rm $1 # remove wrong link
+ true # allow regeneration
+ fi
+ else
+ if [ -e $1 ]; then
+ finderr $1 "$1 is in the way (and is not a link)"
+ else
+ true # link simply missing, allow creation
+ fi
+ fi
+}
+
+assert_links_to_target() {
+ # $1 target
+ # $2 link
+ local LINKTARGET=`$READLINK -f $2`
+ local LINKDIR=`dirname $2`
+ local TARGET=`$READLINK -f $LINKDIR/$1`
+
+ [ "$LINKTARGET" = "$TARGET" ] || (finderr $2 "$2 links not to $TARGET")
+}
+
+create_symlink_unverified() {
+ # $1 target
+ # $2 link
+ test -h $2 || ln -sf $1 $2 || finderr $2 "Failed to link '$1->$2'"
+}
+
+create_symlink() {
+ # $1 target
+ # $2 link
+ create_symlink_unverified $1 $2 && assert_links_to_target $1 $2
+}
+
+symlink_maybe_no_target() {
+ may_create_link $2 0 && create_symlink_unverified $1 $2
+}
+
+symlink_typed() {
+ # $1 is target
+ # $2 is the created link
+ # $3 is the expected target type (e.g. -d or -f)
+ if [ -z $2 ]; then
+ if [ -z $1 ]; then
+ echo "$SELF:25: Missing arguments in call to symlink_typed()"
+ exit 1
+ else
+ finderr $1 "Second argument missing in call to symlink_typed()"
+ exit 1
+ fi
+ fi
+
+ DIR=`dirname $2`
+ if [ -z $DIR ]; then
+ DIR=.
+ fi
+
+ (test -e $DIR/$1 || finderr $2 "Target '$DIR/$1 does not exists (anymore)" ) &&
+ (test $3 $DIR/$1 || finderr $2 "Target '$DIR/$1 has wrong type (expected $3)" ) &&
+
+ may_create_link $2 1 && create_symlink $1 $2
+}
+
+symlink_dir() {
+ # $1 is target (a directory)
+ # $2 is the created link
+ symlink_typed $1 $2 -d
+}
+
+symlink_file() {
+ # $1 is target (a file)
+ # $2 is the created link
+ symlink_typed $1 $2 -f
+}
+
+makedir() {
+ mkdir -p $1 || finderr $1 "Failed to create directory '$1'"
+}
+
+# Generates some directories as well:
+makedir INCLUDE &&
+makedir INCLUDE/GL &&
+
+makedir NAMES_COM/GENC &&
+makedir NAMES_COM/GENH &&
+makedir NAMES_COM/O &&
+
+makedir PROBE_COM/GENC &&
+makedir PROBE_COM/GENH &&
+makedir PROBE_COM/O &&
+
+makedir lib/help &&
+
+(test -d lib/pts || makedir lib/pts) &&
+
+# Motif stuff
+(test -z $MOTIF_LIBPATH || symlink_file $MOTIF_LIBPATH lib/libXm.so.3) &&
+
+# Links in bin directory
+( cd bin ; make all; cd .. ) &&
+
+# ...COMS
+
+symlink_dir ../AISC_COM/AISC NAMES_COM/AISC &&
+symlink_dir ../AISC_COM/C NAMES_COM/C &&
+
+symlink_maybe_no_target GENH/aisc_com.h NAMES_COM/names_client.h &&
+symlink_maybe_no_target GENH/aisc_server_proto.h NAMES_COM/names_prototypes.h &&
+symlink_maybe_no_target GENH/aisc.h NAMES_COM/names_server.h &&
+
+symlink_dir ../AISC_COM/AISC PROBE_COM/AISC &&
+symlink_dir ../AISC_COM/C PROBE_COM/C &&
+
+symlink_maybe_no_target GENH/aisc_com.h PROBE_COM/PT_com.h &&
+symlink_maybe_no_target GENH/aisc_server_proto.h PROBE_COM/PT_server_prototypes.h &&
+symlink_maybe_no_target GENH/aisc.h PROBE_COM/PT_server.h &&
+
+# TEMPLATES directory
+
+symlink_file ../TEMPLATES/arb_algo.h INCLUDE/arb_algo.h &&
+symlink_file ../TEMPLATES/arb_backtrace.h INCLUDE/arb_backtrace.h &&
+symlink_file ../TEMPLATES/arb_debug.h INCLUDE/arb_debug.h &&
+symlink_file ../TEMPLATES/arb_defs.h INCLUDE/arb_defs.h &&
+symlink_file ../TEMPLATES/arb_early_check.h INCLUDE/arb_early_check.h &&
+symlink_file ../TEMPLATES/arb_error.h INCLUDE/arb_error.h &&
+symlink_file ../TEMPLATES/arb_forward_list.h INCLUDE/arb_forward_list.h &&
+symlink_file ../TEMPLATES/arb_global_defs.h INCLUDE/arb_global_defs.h &&
+symlink_file ../TEMPLATES/arb_simple_assert.h INCLUDE/arb_simple_assert.h &&
+symlink_file ../TEMPLATES/arb_sleep.h INCLUDE/arb_sleep.h &&
+symlink_file ../TEMPLATES/arb_stdstr.h INCLUDE/arb_stdstr.h &&
+symlink_file ../TEMPLATES/arb_str.h INCLUDE/arb_str.h &&
+symlink_file ../TEMPLATES/arb_unit_test.h INCLUDE/arb_unit_test.h &&
+symlink_file ../TEMPLATES/arb_unordered_map.h INCLUDE/arb_unordered_map.h &&
+symlink_file ../TEMPLATES/arb_version.h INCLUDE/arb_version.h &&
+symlink_file ../TEMPLATES/arbtools.h INCLUDE/arbtools.h &&
+symlink_file ../TEMPLATES/attributes.h INCLUDE/attributes.h &&
+symlink_file ../TEMPLATES/bytestring.h INCLUDE/bytestring.h &&
+symlink_file ../TEMPLATES/cache.h INCLUDE/cache.h &&
+symlink_file ../TEMPLATES/ChecksumCollector.h INCLUDE/ChecksumCollector.h &&
+symlink_file ../TEMPLATES/command_output.h INCLUDE/command_output.h &&
+symlink_file ../TEMPLATES/config_parser.h INCLUDE/config_parser.h &&
+symlink_file ../TEMPLATES/cxxforward.h INCLUDE/cxxforward.h &&
+symlink_file ../TEMPLATES/downcast.h INCLUDE/downcast.h &&
+symlink_file ../TEMPLATES/dupstr.h INCLUDE/dupstr.h &&
+symlink_file ../TEMPLATES/gccver.h INCLUDE/gccver.h &&
+symlink_file ../TEMPLATES/malloc.h INCLUDE/malloc.h &&
+symlink_file ../TEMPLATES/mode_text.h INCLUDE/mode_text.h &&
+symlink_file ../TEMPLATES/output.h INCLUDE/output.h &&
+symlink_file ../TEMPLATES/perf_timer.h INCLUDE/perf_timer.h &&
+symlink_file ../TEMPLATES/SigHandler.h INCLUDE/SigHandler.h &&
+symlink_file ../TEMPLATES/smartptr.h INCLUDE/smartptr.h &&
+symlink_file ../TEMPLATES/static_assert.h INCLUDE/static_assert.h &&
+symlink_file ../TEMPLATES/SuppressOutput.h INCLUDE/SuppressOutput.h &&
+symlink_file ../TEMPLATES/ttypes.h INCLUDE/ttypes.h &&
+symlink_file ../TEMPLATES/ut_valgrinded.h INCLUDE/ut_valgrinded.h &&
+symlink_file ../TEMPLATES/valgrind.h INCLUDE/valgrind.h &&
+
+symlink_maybe_no_target ../TEMPLATES/arb_build.h INCLUDE/arb_build.h &&
+symlink_maybe_no_target ../TEMPLATES/svn_revision.h INCLUDE/svn_revision.h &&
+
+# INCLUDE directory
+
+symlink_maybe_no_target ../NAMES_COM/names_client.h INCLUDE/names_client.h &&
+symlink_maybe_no_target ../NAMES_COM/names_prototypes.h INCLUDE/names_prototypes.h &&
+symlink_maybe_no_target ../NAMES_COM/names_server.h INCLUDE/names_server.h &&
+
+symlink_maybe_no_target ../PROBE_COM/PT_com.h INCLUDE/PT_com.h &&
+symlink_maybe_no_target ../PROBE_COM/PT_server.h INCLUDE/PT_server.h &&
+symlink_maybe_no_target ../PROBE_COM/PT_server_prototypes.h INCLUDE/PT_server_prototypes.h &&
+
+symlink_file ../AISC_COM/C/aisc_func_types.h INCLUDE/aisc_func_types.h &&
+symlink_file ../AISC_COM/C/aisc_global.h INCLUDE/aisc_global.h &&
+symlink_file ../AISC_COM/C/client.h INCLUDE/client.h &&
+symlink_file ../AISC_COM/C/client_types.h INCLUDE/client_types.h &&
+symlink_file ../AISC_COM/C/client_privat.h INCLUDE/client_privat.h &&
+symlink_file ../AISC_COM/C/server.h INCLUDE/server.h &&
+symlink_file ../AISC_COM/C/struct_man.h INCLUDE/struct_man.h &&
+symlink_file ../ARBDB/ad_cb.h INCLUDE/ad_cb.h &&
+symlink_file ../ARBDB/ad_cb_prot.h INCLUDE/ad_cb_prot.h &&
+symlink_file ../ARBDB/ad_config.h INCLUDE/ad_config.h &&
+symlink_file ../ARBDB/ad_p_prot.h INCLUDE/ad_p_prot.h &&
+symlink_file ../ARBDB/ad_prot.h INCLUDE/ad_prot.h &&
+symlink_file ../ARBDB/ad_remote.h INCLUDE/ad_remote.h &&
+symlink_file ../ARBDB/ad_t_prot.h INCLUDE/ad_t_prot.h &&
+symlink_file ../ARBDB/adGene.h INCLUDE/adGene.h &&
+symlink_file ../ARBDB/adperl.h INCLUDE/adperl.h &&
+symlink_file ../ARBDB/arbdb.h INCLUDE/arbdb.h &&
+symlink_file ../ARBDB/arbdb_base.h INCLUDE/arbdb_base.h &&
+symlink_file ../ARBDB/arbdbt.h INCLUDE/arbdbt.h &&
+symlink_file ../ARBDB/dbitem_set.h INCLUDE/dbitem_set.h &&
+symlink_file ../ARB_GDE/gde.hxx INCLUDE/gde.hxx &&
+symlink_file ../AWT/awt.hxx INCLUDE/awt.hxx &&
+symlink_file ../AWT/awt_asciiprint.hxx INCLUDE/awt_asciiprint.hxx &&
+symlink_file ../AWT/awt_attributes.hxx INCLUDE/awt_attributes.hxx &&
+symlink_file ../AWT/awt_canvas.hxx INCLUDE/awt_canvas.hxx &&
+symlink_file ../AWT/awt_config_manager.hxx INCLUDE/awt_config_manager.hxx &&
+symlink_file ../AWT/awt_hotkeys.hxx INCLUDE/awt_hotkeys.hxx &&
+symlink_file ../AWT/awt_input_mask.hxx INCLUDE/awt_input_mask.hxx &&
+symlink_file ../AWT/awt_map_key.hxx INCLUDE/awt_map_key.hxx &&
+symlink_file ../AWT/awt_modules.hxx INCLUDE/awt_modules.hxx &&
+symlink_file ../AWT/awt_sel_boxes.hxx INCLUDE/awt_sel_boxes.hxx &&
+symlink_file ../AWT/awt_seq_colors.hxx INCLUDE/awt_seq_colors.hxx &&
+symlink_file ../AWT/awt_TreeAwars.hxx INCLUDE/awt_TreeAwars.hxx &&
+symlink_file ../AWT/awt_www.hxx INCLUDE/awt_www.hxx &&
+symlink_file ../AWT/awtlocal.hxx INCLUDE/awtlocal.hxx &&
+symlink_file ../AWTC/awtc_next_neighbours.hxx INCLUDE/awtc_next_neighbours.hxx &&
+symlink_file ../AWTC/awtc_submission.hxx INCLUDE/awtc_submission.hxx &&
+symlink_file ../AWTI/awti_export.hxx INCLUDE/awti_export.hxx &&
+symlink_file ../AWTI/awti_import.hxx INCLUDE/awti_import.hxx &&
+symlink_file ../BUGEX/bugex.h INCLUDE/bugex.h &&
+symlink_file ../CONSENSUS_TREE/CT_ctree.hxx INCLUDE/CT_ctree.hxx &&
+symlink_file ../CORE/arb_assert.h INCLUDE/arb_assert.h &&
+symlink_file ../CORE/arb_core.h INCLUDE/arb_core.h &&
+symlink_file ../CORE/arb_cs.h INCLUDE/arb_cs.h &&
+symlink_file ../CORE/arb_diff.h INCLUDE/arb_diff.h &&
+symlink_file ../CORE/arb_file.h INCLUDE/arb_file.h &&
+symlink_file ../CORE/arb_handlers.h INCLUDE/arb_handlers.h &&
+symlink_file ../CORE/arb_match.h INCLUDE/arb_match.h &&
+symlink_file ../CORE/arb_misc.h INCLUDE/arb_misc.h &&
+symlink_file ../CORE/arb_msg.h INCLUDE/arb_msg.h &&
+symlink_file ../CORE/arb_msg_fwd.h INCLUDE/arb_msg_fwd.h &&
+symlink_file ../CORE/arb_pathlen.h INCLUDE/arb_pathlen.h &&
+symlink_file ../CORE/arb_progress.h INCLUDE/arb_progress.h &&
+symlink_file ../CORE/arb_signal.h INCLUDE/arb_signal.h &&
+symlink_file ../CORE/arb_sort.h INCLUDE/arb_sort.h &&
+symlink_file ../CORE/arb_strarray.h INCLUDE/arb_strarray.h &&
+symlink_file ../CORE/arb_strbuf.h INCLUDE/arb_strbuf.h &&
+symlink_file ../CORE/arb_string.h INCLUDE/arb_string.h &&
+symlink_file ../CORE/BufferedFileReader.h INCLUDE/BufferedFileReader.h &&
+symlink_file ../CORE/MultiFileReader.h INCLUDE/MultiFileReader.h &&
+symlink_file ../CORE/FileContent.h INCLUDE/FileContent.h &&
+symlink_file ../CORE/pos_range.h INCLUDE/pos_range.h &&
+symlink_file ../DIST/dist.hxx INCLUDE/dist.hxx &&
+symlink_file ../EDIT4/ed4_extern.hxx INCLUDE/ed4_extern.hxx &&
+symlink_file ../EDIT4/ed4_plugins.hxx INCLUDE/ed4_plugins.hxx &&
+symlink_file ../GENOM/EXP.hxx INCLUDE/EXP.hxx &&
+symlink_file ../GENOM/GEN.hxx INCLUDE/GEN.hxx &&
+symlink_file ../GENOM_IMPORT/GenomeImport.h INCLUDE/GenomeImport.h &&
+symlink_file ../ISLAND_HOPPING/island_hopping.h INCLUDE/island_hopping.h &&
+symlink_file ../MERGE/mg_merge.hxx INCLUDE/mg_merge.hxx &&
+symlink_file ../MULTI_PROBE/multi_probe.hxx INCLUDE/multi_probe.hxx &&
+symlink_file ../PRIMER_DESIGN/primer_design.hxx INCLUDE/primer_design.hxx &&
+symlink_file ../PROBE_DESIGN/probe_design.hxx INCLUDE/probe_design.hxx &&
+symlink_file ../PROBE/PT_global_defs.h INCLUDE/PT_global_defs.h &&
+symlink_file ../SECEDIT/secedit_extern.hxx INCLUDE/secedit_extern.hxx &&
+symlink_file ../RNA3D/rna3d_extern.hxx INCLUDE/rna3d_extern.hxx &&
+symlink_file ../SEQ_QUALITY/seq_quality.h INCLUDE/seq_quality.h &&
+symlink_file ../SERVERCNTRL/servercntrl.h INCLUDE/servercntrl.h &&
+symlink_file ../SL/ALIVIEW/AliView.hxx INCLUDE/AliView.hxx &&
+symlink_file ../SL/AP_TREE/AP_Tree.hxx INCLUDE/AP_Tree.hxx &&
+symlink_file ../SL/ARB_TREE/ARB_Tree.hxx INCLUDE/ARB_Tree.hxx &&
+symlink_file ../SL/AW_HELIX/AW_helix.hxx INCLUDE/AW_helix.hxx &&
+symlink_file ../SL/AW_NAME/AW_rename.hxx INCLUDE/AW_rename.hxx &&
+symlink_file ../SL/CB/cb.h INCLUDE/cb.h &&
+symlink_file ../SL/CB/cb_base.h INCLUDE/cb_base.h &&
+symlink_file ../SL/CB/cb_base.h INCLUDE/cb_base.h &&
+symlink_file ../SL/CB/cbtypes.h INCLUDE/cbtypes.h &&
+symlink_file ../SL/CB/rootAsWin.h INCLUDE/rootAsWin.h &&
+symlink_file ../SL/DB_QUERY/db_query.h INCLUDE/db_query.h &&
+symlink_file ../SL/DB_SCANNER/db_scanner.hxx INCLUDE/db_scanner.hxx &&
+symlink_file ../SL/DB_UI/dbui.h INCLUDE/dbui.h &&
+symlink_file ../SL/DB_UI/info_window.h INCLUDE/info_window.h &&
+symlink_file ../SL/FAST_ALIGNER/fast_aligner.hxx INCLUDE/fast_aligner.hxx &&
+symlink_file ../SL/FILTER/AP_filter.hxx INCLUDE/AP_filter.hxx &&
+symlink_file ../SL/FILTER/RangeList.h INCLUDE/RangeList.h &&
+symlink_file ../SL/GUI_ALIVIEW/awt_filter.hxx INCLUDE/awt_filter.hxx &&
+symlink_file ../SL/GUI_ALIVIEW/ColumnStat.hxx INCLUDE/ColumnStat.hxx &&
+symlink_file ../SL/GUI_ALIVIEW/gui_aliview.hxx INCLUDE/gui_aliview.hxx &&
+symlink_file ../SL/HELIX/BI_basepos.hxx INCLUDE/BI_basepos.hxx &&
+symlink_file ../SL/HELIX/BI_helix.hxx INCLUDE/BI_helix.hxx &&
+symlink_file ../SL/INSDEL/insdel.h INCLUDE/insdel.h &&
+symlink_file ../SL/ITEMS/item_sel_list.h INCLUDE/item_sel_list.h &&
+symlink_file ../SL/ITEMS/items.h INCLUDE/items.h &&
+symlink_file ../SL/LOCATION/Location.h INCLUDE/Location.h &&
+symlink_file ../SL/MACROS/macros.hxx INCLUDE/macros.hxx &&
+symlink_file ../SL/MATRIX/AP_matrix.hxx INCLUDE/AP_matrix.hxx &&
+symlink_file ../SL/NDS/nds.h INCLUDE/nds.h &&
+symlink_file ../SL/NEIGHBOURJOIN/neighbourjoin.hxx INCLUDE/neighbourjoin.hxx &&
+symlink_file ../SL/PRONUC/AP_codon_table.hxx INCLUDE/AP_codon_table.hxx &&
+symlink_file ../SL/PRONUC/AP_pro_a_nucs.hxx INCLUDE/AP_pro_a_nucs.hxx &&
+symlink_file ../SL/PRONUC/iupac.h INCLUDE/iupac.h &&
+symlink_file ../SL/PTCLEAN/ptclean.h INCLUDE/ptclean.h &&
+symlink_file ../SL/REFENTRIES/refentries.h INCLUDE/refentries.h &&
+symlink_file ../SL/REGEXPR/RegExpr.hxx INCLUDE/RegExpr.hxx &&
+symlink_file ../SL/ROOTED_TREE/RootedTree.h INCLUDE/RootedTree.h &&
+symlink_file ../SL/SEQIO/seqio.hxx INCLUDE/seqio.hxx &&
+symlink_file ../SL/SEQUENCE/AP_seq_dna.hxx INCLUDE/AP_seq_dna.hxx &&
+symlink_file ../SL/SEQUENCE/AP_seq_protein.hxx INCLUDE/AP_seq_protein.hxx &&
+symlink_file ../SL/SEQUENCE/AP_seq_simple_pro.hxx INCLUDE/AP_seq_simple_pro.hxx &&
+symlink_file ../SL/SEQUENCE/AP_sequence.hxx INCLUDE/AP_sequence.hxx &&
+symlink_file ../SL/TRANSLATE/Translate.hxx INCLUDE/Translate.hxx &&
+symlink_file ../SL/TREE_ADMIN/TreeAdmin.h INCLUDE/TreeAdmin.h &&
+symlink_file ../SL/TREE_READ/TreeRead.h INCLUDE/TreeRead.h &&
+symlink_file ../SL/TREE_WRITE/TreeWrite.h INCLUDE/TreeWrite.h &&
+symlink_file ../SL/TREEDISP/TreeCallbacks.hxx INCLUDE/TreeCallbacks.hxx &&
+symlink_file ../SL/TREEDISP/TreeDisplay.hxx INCLUDE/TreeDisplay.hxx &&
+symlink_file ../STAT/st_window.hxx INCLUDE/st_window.hxx &&
+symlink_file ../UNIT_TESTER/test_unit.h INCLUDE/test_unit.h &&
+symlink_file ../UNIT_TESTER/test_global.h INCLUDE/test_global.h &&
+symlink_file ../UNIT_TESTER/test_helpers.h INCLUDE/test_helpers.h &&
+symlink_file ../WINDOW/aw_advice.hxx INCLUDE/aw_advice.hxx &&
+symlink_file ../WINDOW/aw_awar.hxx INCLUDE/aw_awar.hxx &&
+symlink_file ../WINDOW/aw_awar_defs.hxx INCLUDE/aw_awar_defs.hxx &&
+symlink_file ../WINDOW/aw_awars.hxx INCLUDE/aw_awars.hxx &&
+symlink_file ../WINDOW/aw_base.hxx INCLUDE/aw_base.hxx &&
+symlink_file ../WINDOW/aw_color_groups.hxx INCLUDE/aw_color_groups.hxx &&
+symlink_file ../WINDOW/aw_device.hxx INCLUDE/aw_device.hxx &&
+symlink_file ../WINDOW/aw_device_click.hxx INCLUDE/aw_device_click.hxx &&
+symlink_file ../WINDOW/aw_edit.hxx INCLUDE/aw_edit.hxx &&
+symlink_file ../WINDOW/aw_file.hxx INCLUDE/aw_file.hxx &&
+symlink_file ../WINDOW/aw_font_group.hxx INCLUDE/aw_font_group.hxx &&
+symlink_file ../WINDOW/aw_global.hxx INCLUDE/aw_global.hxx &&
+symlink_file ../WINDOW/aw_global_awars.hxx INCLUDE/aw_global_awars.hxx &&
+symlink_file ../WINDOW/aw_keysym.hxx INCLUDE/aw_keysym.hxx &&
+symlink_file ../WINDOW/aw_msg.hxx INCLUDE/aw_msg.hxx &&
+symlink_file ../WINDOW/aw_position.hxx INCLUDE/aw_position.hxx &&
+symlink_file ../WINDOW/aw_preset.hxx INCLUDE/aw_preset.hxx &&
+symlink_file ../WINDOW/aw_question.hxx INCLUDE/aw_question.hxx &&
+symlink_file ../WINDOW/aw_root.hxx INCLUDE/aw_root.hxx &&
+symlink_file ../WINDOW/aw_scalar.hxx INCLUDE/aw_scalar.hxx &&
+symlink_file ../WINDOW/aw_select.hxx INCLUDE/aw_select.hxx &&
+symlink_file ../WINDOW/aw_window.hxx INCLUDE/aw_window.hxx &&
+symlink_file ../WINDOW/aw_window_Xm_interface.hxx INCLUDE/aw_window_Xm_interface.hxx &&
+symlink_file ../XML/xml.hxx INCLUDE/xml.hxx &&
+
+# gl stuff
+symlink_file ../../GL/glpng/glpng.h INCLUDE/GL/glpng.h &&
+symlink_file ../../GL/glAW/aw_window_ogl.hxx INCLUDE/GL/aw_window_ogl.hxx &&
+
+# help files (make sure the file is present in user distribution!)
+symlink_maybe_no_target ../help/input_mask_format.hlp lib/inputMasks/format.readme &&
+
+echo "generate_all_links.sh done."
=====================================
TEMPLATES/Makefile
=====================================
@@ -0,0 +1,7 @@
+
+# generate svn_revision.h and arb_build.h
+$(MAIN):
+ ../SOURCE_TOOLS/build_info.pl
+
+clean:
+ # rm -f svn_revision.h arb_build.h # do not remove these - will let tarball-build fail after 'make clean'
=====================================
TEMPLATES/bytestring.h
=====================================
@@ -0,0 +1,22 @@
+// ============================================================== //
+// //
+// File : bytestring.h //
+// Purpose : //
+// //
+// Coded by Ralf Westram (coder at reallysoft.de) in August 2010 //
+// Institute of Microbiology (Technical University Munich) //
+// http://www.arb-home.de/ //
+// //
+// ============================================================== //
+
+#ifndef BYTESTRING_H
+#define BYTESTRING_H
+
+struct bytestring {
+ char *data;
+ int size;
+};
+
+#else
+#error bytestring.h included twice
+#endif // BYTESTRING_H
=====================================
debian/copyright
=====================================
@@ -44,12 +44,14 @@ Files-Excluded: arbsrc*/AISC*
arbsrc*/SOURCE_TOOLS/arb_create_patch.sh
arbsrc*/SOURCE_TOOLS/arb_main*
arbsrc*/SOURCE_TOOLS/arb_valgrind*
+ arbsrc*/SOURCE_TOOLS/binuptodate.pl
arbsrc*/SOURCE_TOOLS/c*
arbsrc*/SOURCE_TOOLS/dep*
arbsrc*/SOURCE_TOOLS/deadcode.pl
arbsrc*/SOURCE_TOOLS/diff2grep.pl
arbsrc*/SOURCE_TOOLS/f*
- arbsrc*/SOURCE_TOOLS/g*
+ arbsrc*/SOURCE_TOOLS/gen_dep.pl
+ arbsrc*/SOURCE_TOOLS/grepx.pl
arbsrc*/SOURCE_TOOLS/m*
arbsrc*/SOURCE_TOOLS/n*
arbsrc*/SOURCE_TOOLS/p*
@@ -59,7 +61,6 @@ Files-Excluded: arbsrc*/AISC*
arbsrc*/SOURCE_TOOLS/v*
arbsrc*/ST*
arbsrc*/TEMPLATES/C*
- arbsrc*/TEMPLATES/M*
arbsrc*/TEMPLATES/arb_debug.h
arbsrc*/TEMPLATES/arb_early_check.h
arbsrc*/TEMPLATES/arb_forward_list.h
@@ -90,7 +91,7 @@ Files-Excluded: arbsrc*/AISC*
arbsrc*/UNIT_TESTER/test_helpers.h
arbsrc*/W*
arbsrc*/X*
- arbsrc*/b*
+ arbsrc*/bin
arbsrc*/doc
arbsrc*/demo.arb
arbsrc*/etc
=====================================
debian/patches/fix_main_makefile.patch
=====================================
@@ -0,0 +1,136 @@
+--- a/Makefile
++++ b/Makefile
+@@ -805,7 +805,7 @@ check_TOOLS:
+ "$(LINK_SHARED_LIB)" \
+
+
+-check_ENVIRONMENT : check_PATH check_TOOLS
++check_ENVIRONMENT :
+ @echo "-------------------- Environment [start]"
+ @echo "ARBHOME='$(ARBHOME)'"
+ @echo "PATH='$(PATH)'"
+@@ -824,7 +824,7 @@ force_tab_check:
+
+ # ---------------------
+
+-check_setup: check_ENVIRONMENT check_DEBUG check_ARB_64 check_DEVELOPER check_GCC_VERSION
++check_setup: check_ENVIRONMENT check_DEBUG check_ARB_64 check_DEVELOPER
+ @echo Your setup seems to be ok.
+
+ checks: check_setup check_tabs
+@@ -843,64 +843,16 @@ checks: check_setup check_tabs
+ # when adding new libs here, also add a dependency vs 'links' or 'links_non_perl' in . at DD_links_non_perl
+
+ ARCHS = \
+- $(ARCHS_PT_SERVER) \
+- AISC/AISC.a \
+- AISC_MKPTPS/AISC_MKPTPS.a \
+ ARBDB/libARBDB.a \
+ CORE/libCORE.a \
+- ARB_GDE/ARB_GDE.a \
+- AWT/libAWT.a \
+- AWTC/AWTC.a \
+- AWTI/AWTI.a \
+- CONSENSUS_TREE/CONSENSUS_TREE.a \
+- CONVERTALN/CONVERTALN.a \
+- DBSERVER/DBSERVER.a \
+- DIST/DIST.a \
+- EDIT4/EDIT4.a \
+- EISPACK/EISPACK.a \
+- GDE/GDE.a \
+- GENOM/GENOM.a \
+- GENOM_IMPORT/GENOM_IMPORT.a \
+- GL/GL.a \
+- ISLAND_HOPPING/ISLAND_HOPPING.a \
+- MERGE/MERGE.a \
+- MULTI_PROBE/MULTI_PROBE.a \
+- NALIGNER/NALIGNER.a \
+- NAMES/NAMES.a \
+- NAMES_COM/server.a \
+- NTREE/NTREE.a \
+- PARSIMONY/PARSIMONY.a \
+- PERLTOOLS/PERLTOOLS.a \
+- PHYLO/PHYLO.a \
+- PRIMER_DESIGN/PRIMER_DESIGN.a \
+ PROBE_COM/server.a \
+- PROBE_DESIGN/PROBE_DESIGN.a \
+- PROBE_SET/PROBE_SET.a \
+- READSEQ/READSEQ.a \
+- RNA3D/RNA3D.a \
+- RNACMA/RNACMA.a \
+- SECEDIT/SECEDIT.a \
+- SEQ_QUALITY/SEQ_QUALITY.a \
+- SERVERCNTRL/SERVERCNTRL.a \
+- SL/SL.a \
+- STAT/STAT.a \
+- TOOLS/TOOLS.a \
+- TREEGEN/TREEGEN.a \
+- UNIT_TESTER/UNIT_TESTER.a \
+- WETC/WETC.a \
+- WINDOW/libWINDOW.a \
+- XML/XML.a \
+
+ # -----------------------
+ # library packets
+
+ ARCHS_CLIENT_PROBE = PROBE_COM/client.a PROBE_COM/common.a
+-ARCHS_CLIENT_NAMES = NAMES_COM/client.a NAMES_COM/common.a
+
+ ARCHS_SERVER_PROBE = PROBE_COM/server.a $(ARCHS_CLIENT_PROBE)
+-ARCHS_SERVER_NAMES = NAMES_COM/server.a $(ARCHS_CLIENT_NAMES)
+-
+-ARCHS_MAKEBIN = AISC_MKPTPS/AISC_MKPTPS.a AISC/AISC.a
+
+ # communication libs need aisc and aisc_mkpts:
+
+@@ -1290,10 +1242,9 @@ WINDOW/WINDOW.dummy: target_is_missing_l
+
+ # Additional dependencies for subtargets:
+
+-PROBE_COM/PROBE_COM.dummy : comtools
+-NAMES_COM/NAMES_COM.dummy : comtools
++PROBE_COM/PROBE_COM.dummy :
+
+-com: PROBE_COM/PROBE_COM.dummy NAMES_COM/NAMES_COM.dummy
++com: PROBE_COM/PROBE_COM.dummy
+
+ PROBE_COM/server.dummy:
+ @echo Unwanted request to make target $<
+@@ -1557,8 +1508,8 @@ clrdotdepends:
+
+ comdepends: comtools clrdotdepends
+ @echo "$(SEP) Partially build com interface"
+- $(MAKE) PROBE_COM/PROBE_COM.depends NAMES_COM/NAMES_COM.depends
+- $(MAKE) PROBE_COM/server.depends NAMES_COM/server.depends
++ $(MAKE) PROBE_COM/PROBE_COM.depends # NAMES_COM/NAMES_COM.depends
++ $(MAKE) PROBE_COM/server.depends # NAMES_COM/server.depends
+
+ depends: genheaders comdepends
+ @echo "$(SEP) Updating other dependencies"
+@@ -1652,7 +1603,7 @@ tags: $(TAG_SOURCE_LISTS)
+
+ LINKSTAMP=SOURCE_TOOLS/stamp.generate_all_links
+
+-links: checks $(LINKSTAMP) arbmainwrapper
++links: checks # $(LINKSTAMP) arbmainwrapper
+ links_no_checks: $(LINKSTAMP) arbmainwrapper
+
+ forcelinks:
+@@ -1847,7 +1798,7 @@ clean2: $(ARCHS:.a=.clean) \
+ rm -f *.last_gcc *.last_compiler config.makefile.bak
+
+ # links are needed for cleanup
+-clean: redo_links motif_xpm_hack_clean
++clean: redo_links
+ $(MAKE) clean2
+ $(MAKE) clean_cov_all clean_links
+
+@@ -1981,7 +1932,7 @@ arb_external: convert tools gde readseq
+
+ arb_no_perl: arbapplications help arb_external
+
+-arb: motif_xpm_hack
++arb:
+ $(MAKE) "WITHPERL=1" perl arb_no_perl
+
+ motif_xpm_hack:
=====================================
debian/patches/series
=====================================
@@ -1 +1,2 @@
-fix_makefiles.patch
+# fix_makefiles.patch
+fix_main_makefile.patch
=====================================
debian/rules
=====================================
@@ -39,8 +39,9 @@ override_dh_auto_build:
ln -s TEMPLATES INCLUDE
for header in UNIT_TESTER/*.h ; do ln -s ../$${header} INCLUDE/`basename $${header}` ; done
ln -s /usr/include/valgrind/valgrind.h INCLUDE/valgrind.h
+ mkdir bin
mkdir lib
- dh_auto_build --sourcedirectory=CORE
+ dh_auto_build -- all # --sourcedirectory=CORE
override_dh_auto_configure: config.makefile
@@ -48,6 +49,8 @@ override_dh_auto_clean: config.makefile
# config.makefile is required to run make clean, hence the dependency
# on ..._auto_configure.
$(MAKE) clean || true
+ rm -rf bin
+ rm -rf lib
rm config.makefile
# ARB does not have "distclean" or "realclean". Remove some leftovers:
rm -f UNIT_TESTER/Makefile.setup.local
View it on GitLab: https://salsa.debian.org/med-team/libarb/compare/9587ddb733bc4fb136aef5d5c452c75316195d12...b197188f3f5852876ad0dd09fdcc263adb7dd501
--
View it on GitLab: https://salsa.debian.org/med-team/libarb/compare/9587ddb733bc4fb136aef5d5c452c75316195d12...b197188f3f5852876ad0dd09fdcc263adb7dd501
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20190606/c18fdb40/attachment-0001.html>
More information about the debian-med-commit
mailing list