Initial import.

This commit is contained in:
Jerry James 2016-04-21 16:40:59 -06:00
parent 7774d0076b
commit e308704525
11 changed files with 4782 additions and 0 deletions

1
.gitignore vendored
View File

@ -0,0 +1 @@
/nauty26r5.tar.gz

1506
nauty-autotoolization.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
Description: explicit extern declaration for gt_numorbits
Origin: debian
Author: Jerome Benoit <calculus@rezozer.net>
Last-Update: 2013-11-22
--- a/labelg.c
+++ b/labelg.c
@@ -88,7 +88,6 @@
static nauty_counter orbtotal;
static double unorbtotal;
-extern int gt_numorbits;
/**************************************************************************/
--- a/gtools-h.in
+++ b/gtools-h.in
@@ -273,6 +273,7 @@
extern TLS_ATTR char *readg_line;
extern TLS_ATTR size_t ogf_linelen;
extern TLS_ATTR boolean is_pipe;
+extern TLS_ATTR int gt_numorbits;
#ifdef __cplusplus
}
--- a/gtnauty.c
+++ b/gtnauty.c
@@ -18,7 +18,7 @@
static int fuzz2[] = {006532,070236,035523,062437};
#define FUZZ2(x) ((x) ^ fuzz2[(x)&3])
-int gt_numorbits;
+TLS_ATTR int gt_numorbits;
#ifdef REFINE
void REFINE(graph*,int*,int*,int,int*,int*,set*,int*,int,int);

View File

@ -0,0 +1,18 @@
Description: explicit extern declaration in naurng.h
Origin: debian
Author: Jerome Benoit <calculus@rezozer.net>
Last-Update: 2013-11-22
--- a/naurng.h
+++ b/naurng.h
@@ -18,8 +18,8 @@
extern "C" {
#endif
-void ran_init(long seed);
-long ran_nextran(void);
+extern void ran_init(long seed);
+extern long ran_nextran(void);
#ifdef __cplusplus
}

389
nauty-help2man.patch Normal file
View File

@ -0,0 +1,389 @@
Description: format usages and helps
Attempt to format usages and helps of the invited
programs wrt to the original gtools.
Origin: debian
Author: Jerome Benoit <calculus@rezozer.net>
Last-Update: 2016-03-19
--- a/watercluster2.c
+++ b/watercluster2.c
@@ -1,54 +1,58 @@
// cc -O4 -o water2 -DWORDSIZE=32 -DMAXN=WORDSIZE nauty.c naugraph.c nautil.c gtools.c schreier.c naurng.c watercluster2.c
-/*
-Reads graphs in g6 code or multicode (optional) from stdin and directs them
-
-options:
-
-ix means: the indegree of every vertex may be at most x.
-
-oy means: the outdegree of every vertex may be at most y.
-
- S means: allow that for every pair of vertices x,y at most one of the edges x-->y
- and y-->x may be present. By default both of them may be present in the same graph.
-
-
- T means: Output directed graphs in T-code. This is a simple ASCII output format. Every line
- contains one graph. First the number of vertices, then the number of
- directed edges and then the list of directed edges with the start first
- and the end then. E.g.: 3 2 0 1 2 1 means 3 vertices, 2 directed edges:
- 0-->1 and 2-->1
-
- B means: Output the directed graphs in a binary code. Every item of the code is an unsigned
- char. The first unsigned char is the number nv of vertices. The vertices are numbered 1..nv
- Then the list of vertices x for which there is a directed edge 1->x follow. This list is
- ended by a 0. Then the list of outgoing neighbours of 2 follows -- again ended with a 0, etc.
- The code is complete with the 0 ending the list of outgoing neighbours of nv.
-
- C means: Do really construct all the directed graphs in memory, but don't output them. This is not
- a big difference in case of restricted in- and outdegrees, because all that is done extra is that
- edges are directed instead of just keeping track of in- and out-degrees. This option is intended only
- for testing purposes to test also routines that are normally not used when counting. Things that would
- speed up the counting also in some cases of restricted in- and out-degrees -- like multiplying the
- possibilities of assigning directions to edges that can be assigned directions independent
- of each other (depending on the degrees of the endvertices and overlaps) -- are not included.
- In case of not restrictive bounds on the in- and out-degree it not really constructing the graphs
- can be considerably faster. In cases of restricted in- and out-degrees the only difference is that
- the graph isn't modified...
- The fact that in case of no output the graph is not modified is mainly to save time for the one
- case of waterclusters, where large numbers were determined. If large numbers (without output)
- for other cases shall be determined, one should think about adding the multiplication routines.
-
- m read multicode
-
-This program uses different labelling routines -- all based on the ideas of
-
-G. Brinkmann, Generating water clusters and other directed graphs,
-Journal of Mathematical Chemistry 46, 1112--1121 (2009)
+#define GTOOL_USAGEHELP_COMPATIBILITY
-October 10, 2011: corrected error caused by overflow of 32bit int used as hashvalue.
+#define USAGE "watercluster2 [ix] [oy] [S] [T] [B] [C] [m]"
-Sep, 2012: PROCESS feature added by BDM.
+#define HELPTEXT \
+" Reads graphs in g6 code or multicode (optional) from stdin and directs them\n\
+\n\
+ ix : the indegree of every vertex may be at most x.\n\
+ The default maximum indegree is unlimited.\n\
+\n\
+ oy : the outdegree of every vertex may be at most y.\n\
+ The default maximum outdegree is unlimited.\n\
+\n\
+ S : allow that for every pair of vertices x,y at most one of the edges x-->y\n\
+ and y-->x may be present. By default both of them may be present in the same graph.\n\
+\n\
+\n\
+ T : Output directed graphs in T-code. This is a simple ASCII output format. Every line\n\
+ contains one graph. First the number of vertices, then the number of\n\
+ directed edges and then the list of directed edges with the start first\n\
+ and the end then. E.g.: 3 2 0 1 2 1 means 3 vertices, 2 directed edges:\n\
+ 0-->1 and 2-->1\n\
+\n\
+ B : Output the directed graphs in a binary code. Every item of the code is an unsigned\n\
+ char. The first unsigned char is the number nv of vertices. The vertices are numbered 1..nv\n\
+ Then the list of vertices x for which there is a directed edge 1->x follow. This list is\n\
+ ended by a 0. Then the list of outgoing neighbours of 2 follows -- again ended with a 0, etc.\n\
+ The code is complete with the 0 ending the list of outgoing neighbours of nv.\n\
+\n\
+ C : Do really construct all the directed graphs in memory, but don't output them. This is not\n\
+ a big difference in case of restricted in- and outdegrees, because all that is done extra is that\n\
+ edges are directed instead of just keeping track of in- and out-degrees. This option is intended only\n\
+ for testing purposes to test also routines that are normally not used when counting. Things that would\n\
+ speed up the counting also in some cases of restricted in- and out-degrees -- like multiplying the\n\
+ possibilities of assigning directions to edges that can be assigned directions independent\n\
+ of each other (depending on the degrees of the endvertices and overlaps) -- are not included.\n\
+ In case of not restrictive bounds on the in- and out-degree it not really constructing the graphs\n\
+ can be considerably faster. In cases of restricted in- and out-degrees the only difference is that\n\
+ the graph isn't modified...\n\
+ The fact that in case of no output the graph is not modified is mainly to save time for the one\n\
+ case of waterclusters, where large numbers were determined. If large numbers (without output)\n\
+ for other cases shall be determined, one should think about adding the multiplication routines.\n\
+\n\
+ m : read multicode instead of g6 code\n\
+\n\
+This program uses different labelling routines -- all based on the ideas of\n\
+\n\
+G. Brinkmann, Generating water clusters and other directed graphs,\n\
+Journal of Mathematical Chemistry 46, 1112--1121 (2009)\n"
+/*
+ * October 10, 2011: corrected error caused by overflow of 32bit int used as hashvalue.
+ *
+ * Sep, 2012: PROCESS feature added by BDM.
*/
/* PROCESS feature
@@ -67,7 +71,7 @@
*
* If SUMMARY is defined, it must expand as the name of a procedure
* with prototype void SUMMARY(void). It is called at the end after
- * the normal summary.
+ * the normal summary.
*/
//#include<stdio.h>
@@ -500,7 +504,7 @@
return 1;
}
-
+#ifndef GTOOL_USAGEHELP_COMPATIBILITY
void usage(char name[])
{
@@ -518,6 +522,7 @@
exit(1);
}
+#endif
/**********DECODE_TO_NAUTY****************************************************/
@@ -4013,6 +4018,15 @@
int multicode=0, g6code=1;
long long int last=0LL;
+#ifdef GTOOL_USAGEHELP_COMPATIBILITY
+ if (argc > 1 && (strcmp(argv[1],"-help") == 0
+ || (strcmp(argv[1],"--help") == 0)))
+ {
+ printf("Usage: %s\n\n%s",USAGE,HELPTEXT);
+ exit(0);
+ }
+#endif
+
if (sizeof(long long int)<8)
{
fprintf(stderr,"This may cause problems with the hashing function for large degree -- exit().\n");
@@ -4028,7 +4042,15 @@
else if (argv[i][0]=='B') direct_output=3;
else if (argv[i][0]=='S') double_allowed=0;
else if (argv[i][0]=='m') { g6code=0; multicode=1; }
- else usage(argv[0]);
+ else {
+#ifdef GTOOL_USAGEHELP_COMPATIBILITY
+ fprintf(stderr,">E Usage: %s\n",USAGE);
+ fprintf(stderr,"Use watercluster2 -help to see a list of the options.\n");
+ exit(1);
+#else
+ usage(argv[0]);
+#endif
+ }
}
#ifdef PROCESS
--- a/genbg.c
+++ b/genbg.c
@@ -3,8 +3,7 @@
/* TODO: consider colour swaps */
#define USAGE \
-"genbg [-c -ugs -vq -lzF] [-Z#] [-D#] [-A] [-d#|-d#:#] [-D#|-D#:#] n1 n2 \n\
- [mine[:maxe]] [res/mod] [file]"
+"genbg [-c -ugs -vq -lzF] [-Z#] [-D#] [-A] [-d#|-d#:#] [-D#|-D#:#] n1 n2 [mine[:maxe]] [res/mod] [file]"
#define HELPTEXT \
" Find all bicoloured graphs of a specified class.\n\
--- a/geng.c
+++ b/geng.c
@@ -6,8 +6,7 @@
/* geng.c version 2.9; B D McKay, Jan 2016. */
#define USAGE \
-"geng [-cCmtfbd#D#] [-uygsnh] [-lvq] \n\
- [-x#X#] n [mine[:maxe]] [res/mod] [file]"
+"geng [-cCmtfbd#D#] [-uygsnh] [-lvq] [-x#X#] n [mine[:maxe]] [res/mod] [file]"
#define HELPTEXT \
" Generate all graphs of a specified class.\n\
--- a/genrang.c
+++ b/genrang.c
@@ -2,8 +2,7 @@
/* TODO: Check allocs for no edges */
#define USAGE \
-"genrang [-P#|-P#/#|-e#|-r#|-R#|-d#] [-l#] [-m#] [-t] [-T] [-a] \n" \
-" [-s|-g|-z] [-S#] [-q] n|n1,n2 num [outfile]"
+"genrang [-P#|-P#/#|-e#|-r#|-R#|-d#] [-l#] [-m#] [-t] [-T] [-a] [-s|-g|-z] [-S#] [-q] n|n1,n2 num [outfile]"
#define HELPTEXT \
" Generate random graphs.\n\
--- a/vcolg.c
+++ b/vcolg.c
@@ -1,8 +1,7 @@
/* vcolg.c version 1.0; B D McKay, Aug 31, 2013 */
#define USAGE \
-"vcolg [-q] [-u|-T|-G|-A|-B] [-e#|-e#:#] \n" \
-" [-m#] [-f#] [-D#|-r#|-l#] [infile [outfile]]"
+"vcolg [-q] [-u|-T|-G|-A|-B] [-e#|-e#:#] [-m#] [-f#] [-D#|-r#|-l#] [infile [outfile]]"
#define HELPTEXT \
" Read undirected loop-free graphs and colour their vertices in\n\
--- a/genspecialg.c
+++ b/genspecialg.c
@@ -1,20 +1,22 @@
/* genspecialg.c version 1.1; B D McKay, Feb 12, 2016 */
-#define USAGE "genspecialg \n\
-[-s|-g|-z|-d] [-q] \
-[-p#|-c#|-e#|-k#|-b#,#|-Q#|-f#|-J#,#|-P#,#|C#,#...|G#,#...|T#,#...] [outfile]"
+#define USAGE "genspecialg [-s|-g|-z|-d] [-q] [-p#|-c#|-e#|-k#|-b#,#|-Q#|-f#|-J#,#|-P#,#|C#[,#]|G#[,#]|T#[,#]] [outfile]"
#define HELPTEXT \
" Generate one particular graph.\n\
- # : size parameter called n in the descriptions\n\
\n\
+Options:\n\
+General Options:\n\
-s : Write in sparse6 format (default)\n\
-g : Write in graph6 format\n\
-z : Make digraph versions and write in digraph6 format\n\
-d : Write in dreadnaut format (can be used with -z)\n\
-q : Suppress summary\n\
\n\
- If defined, the digraph version is shown in parentheses:\n\
+Special Options:\n\
+ If defined, the digraph version is shown in parentheses;\n\
+ # size parameter called n in the descriptions.\n\
+\n\
-p# : path (directed path) on n vertices.\n\
-c# : cycle (directed cycle) on n vertices.\n\
-e# : empty graph (digraph with loops only) on n vertices.\n\
@@ -24,9 +26,9 @@
-P#,# : generalized Petersen graph; usual one is -P5,2\n\
-Q# : hypercube on 2^n vertices and degree n.\n\
-J#,# : Johnson graph J(n,k), args are n and k.\n\
- -C#,#... : circulant (di)graph.\n\
- -T#,#... : theta (di)graph Theta(#,#,...), give path lengths.\n\
- -G#,#... : (directed) grid, use negative values for open directions\n"
+ -C#[,#] : circulant (di)graph.\n\
+ -T#[,#] : theta (di)graph Theta(#[,#]), give path lengths.\n\
+ -G#[,#] : (directed) grid, use negative values for open directions\n"
/* Ideas: multipartite, knesser, full trees */
--- a/cubhamg.c
+++ b/cubhamg.c
@@ -1,54 +1,53 @@
-/* cubhamg.c : pick those inputs that are nonhamiltonian and
- have max degree <= 3.
+/* cubhamg.c : pick those inputs that are nonhamiltonian and have max degree <= 3. */
- Usage:
-cubhamg [-#] [-v|-V] [-n#-#|-y#-#|-i|-I|-o|-x|-e|-E] [-b|-t] [infile [outfile]]
+#define USAGE "cubhamg [-#] [-v|-V] [-n#-#|-y#-#|-i|-I|-o|-x|-e|-E] [-b|-t] [infile [outfile]]"
- infile is the name of the input file in graph6/sparse6 format
- outfile is the name of the output file in the same format
+#define HELPTEXT \
+" Pick those inputs that are nonhamiltonian and have max degree <= 3.\n\
+\n\
+ infile is the name of the input file in graph6/sparse6 format (default: stdin)\n\
+\n\
+ outfile is the name of the output file in the same format (default: stdout)\n\
+\n\
+ The output file will have a header >>graph6<< or >>sparse6<< if the input file does.\n\
+\n\
+Options:\n\
+ -# A parameter useful for tuning (default 100)\n\
+ -v Report nonhamiltonian graphs and noncubic graphs\n\
+ -V .. in addition give a cycle for the hamiltonian ones\n\
+ -n#-# If the two numbers are v and i, then the i-th edge\n\
+ out of vertex v is required to be not in the cycle.\n\
+ It must be that i=1..3 and v=0..n-1.\n\
+ -y#-# If the two numbers are v and i, then the i-th edge\n\
+ out of vertex v is required to be in the cycle.\n\
+ It must be that i=1..3 and v=0..n-1.\n\
+ You can use any number of -n/-y switches to force\n\
+ edges. Out of range first arguments are ignored.\n\
+ If -y and -n give same edge, -y wins.\n\
+ -i Test + property: for each edge e, there is a hamiltonian cycle using e.\n\
+ -I Test ++ property: for each pair of edges e,e', there is\n\
+ a hamiltonian cycle which uses both e and e'.\n\
+ -o Test - property: for each edge e, there is a hamiltonian cycle avoiding e.\n\
+ -x Test +- property: for each pair of edges e,e', there is\n\
+ a hamiltonian cycle which uses e but avoids e'.\n\
+ -e Test 3/4 property: for each edge e, at least 3 of the 4\n\
+ paths of length 3 passing through e lie on hamiltonian cycles.\n\
+ -E Test 3/4+ property: for each edge e failing the 3/4 property,\n\
+ all three ways of joining e to the rest of the graph are\n\
+ hamiltonian avoiding e.\n\
+ -T# Specify a timeout, being a limit on how many search tree\n\
+ nodes are made. If the timeout occurs, the graph is\n\
+ written to the output as if it is nonhamiltonian.\n\
+ -R# Specify the number of repeat attempts for each stage.\n\
+ -F Analyze covering paths from 2 or 4 vertices of degree 2.\n\
+\n\
+ -b Require biconnectivity\n\
+ -t Require triconnectivity (note: quadratic algorithm)\n\
+\n\
+Comments:\n\
+ -y, -n, -#, -R and -T are ignored for -i, -I, -x, -o, -e, -E, -F\n"
- stdin and stdout are the defaults for infile and outfile
-
- The output file will have a header >>graph6<< or >>sparse6<<
- if and only if the input file does.
-
- Optional switches:
-
- -# A parameter useful for tuning (default 100)
- -v Report nonhamiltonian graphs and noncubic graphs
- -V .. in addition give a cycle for the hamiltonian ones
- -n#-# If the two numbers are v and i, then the i-th edge
- out of vertex v is required to be not in the cycle.
- It must be that i=1..3 and v=0..n-1.
- -y#-# If the two numbers are v and i, then the i-th edge
- out of vertex v is required to be in the cycle.
- It must be that i=1..3 and v=0..n-1.
- You can use any number of -n/-y switches to force
- edges. Out of range first arguments are ignored.
- If -y and -n give same edge, -y wins.
- -i Test + property: for each edge e, there is a hamiltonian
- cycle using e.
- -I Test ++ property: for each pair of edges e,e', there is
- a hamiltonian cycle which uses both e and e'.
- -o Test - property: for each edge e, there is a hamiltonian
- cycle avoiding e.
- -x Test +- property: for each pair of edges e,e', there is
- a hamiltonian cycle which uses e but avoids e'.
- -e Test 3/4 property: for each edge e, at least 3 of the 4
- paths of length 3 passing through e lie on hamiltonian cycles.
- -E Test 3/4+ property: for each edge e failing the 3/4 property,
- all three ways of joining e to the rest of the graph are
- hamiltonian avoiding e.
- -T# Specify a timeout, being a limit on how many search tree
- nodes are made. If the timeout occurs, the graph is
- written to the output as if it is nonhamiltonian.
- -R# Specify the number of repeat attempts for each stage.
- -F Analyze covering paths from 2 or 4 vertices of degree 2.
-
- -b Require biconnectivity
- -t Require triconnectivity (note: quadratic algorithm)
-
- -y, -n, -#, -R and -T are ignored for -i, -I, -x, -o, -e, -E, -F
+/**************************************************************************
B. D. McKay, Nov 1995 + Aug 1996 + Feb 2002 + Jul 2008 + Nov 2015
@@ -1611,6 +1610,8 @@
char *arg;
int codetype;
+ HELP;
+
infilename = outfilename = NULL;
badargs = FALSE;
e34plus = e34 = in = out = inin = inout = FALSE;
@@ -1729,8 +1730,8 @@
if (badargs)
{
- fprintf(stderr,
- ">E Usage: cubhamg [-#] [-v | -V] [-n#-#] [-y#-#] [infile [outfile]]\n");
+ fprintf(stderr, ">E Usage: " USAGE "\n" );
+ GETHELP;
exit(1);
}

117
nauty-includes.patch Normal file
View File

@ -0,0 +1,117 @@
Description: system preprocessing directive #include for examples
Origin: debian
Author: Jerome Benoit <calculus@rezozer.net>
Last-Update: 2013-11-24
--- a/nautyex1.c
+++ b/nautyex1.c
@@ -5,7 +5,7 @@
*/
#define MAXN 1000 /* Define this before including nauty.h */
-#include "nauty.h" /* which includes <stdio.h> and other system files */
+#include <nauty/nauty.h> /* which includes <stdio.h> and other system files */
int
main(int argc, char *argv[])
--- a/nautyex10.c
+++ b/nautyex10.c
@@ -6,7 +6,7 @@
those here, it can be faster for some very difficult graphs.
*/
-#include "traces.h"
+#include <nauty/traces.h>
int
main(int argc, char *argv[])
--- a/nautyex2.c
+++ b/nautyex2.c
@@ -4,7 +4,7 @@
This version uses dynamic allocation.
*/
-#include "nauty.h"
+#include <nauty/nauty.h>
/* MAXN=0 is defined by nauty.h, which implies dynamic allocation */
int
--- a/nautyex3.c
+++ b/nautyex3.c
@@ -2,8 +2,8 @@
polygon, where n is a number supplied by the user.
*/
-#include "nauty.h" /* which includes <stdio.h> */
-#include "naugroup.h"
+#include <nauty/nauty.h> /* which includes <stdio.h> */
+#include <nauty/naugroup.h>
/**************************************************************************/
--- a/nautyex4.c
+++ b/nautyex4.c
@@ -3,7 +3,7 @@
This version uses sparse form with dynamic allocation.
*/
-#include "nausparse.h" /* which includes nauty.h */
+#include <nauty/nausparse.h> /* which includes nauty.h */
int
main(int argc, char *argv[])
--- a/nautyex5.c
+++ b/nautyex5.c
@@ -3,7 +3,7 @@
This version uses sparse form with dynamic allocation.
*/
-#include "nausparse.h" /* which includes nauty.h */
+#include <nauty/nausparse.h> /* which includes nauty.h */
int
main(int argc, char *argv[])
--- a/nautyex6.c
+++ b/nautyex6.c
@@ -4,7 +4,7 @@
This version uses dense form with dynamic allocation.
*/
-#include "nauty.h"
+#include <nauty/nauty.h>
int
main(int argc, char *argv[])
--- a/nautyex7.c
+++ b/nautyex7.c
@@ -3,7 +3,7 @@
This version uses Traces.
*/
-#include "traces.h"
+#include <nauty/traces.h>
int
main(int argc, char *argv[])
--- a/nautyex8.c
+++ b/nautyex8.c
@@ -3,7 +3,7 @@
This version uses dense form with dynamic allocation.
*/
-#include "nauty.h"
+#include <nauty/nauty.h>
int
main(int argc, char *argv[])
--- a/nautyex9.c
+++ b/nautyex9.c
@@ -7,7 +7,7 @@
that p is a prime.)
*/
-#include "traces.h"
+#include <nauty/traces.h>
int
main(int argc, char *argv[])

1803
nauty-popcnt.patch Normal file

File diff suppressed because it is too large Load Diff

568
nauty-tool-prefix.patch Normal file
View File

@ -0,0 +1,568 @@
Description: debianization: nauty tools suite prefix
Prepend nauty- to the names of the nauty tools, named gtools.
Author: Jerome Benoit <calculus@rezozer.net>
Last-Update: 2016-03-19
--- a/Makefile.am
+++ b/Makefile.am
@@ -21,94 +21,94 @@
bin_PROGRAMS = \
dreadnaut \
\
- addedgeg \
- amtog \
- biplabg \
- catg \
- complg \
- converseg \
- copyg \
- countg \
- cubhamg \
- deledgeg \
- delptg \
- directg \
- dretodot \
- dretog \
- genbg \
- genbgL \
- geng \
- genquarticg \
- genrang \
- genspecialg \
- gentourng \
- gentreeg \
- hamheuristic \
- labelg \
- linegraphg \
- listg \
- multig \
- newedgeg \
- NRswitchg \
- pickg \
- planarg \
- ranlabg \
- shortg \
- showg \
- subdivideg \
- twohamg \
- vcolg \
- watercluster2 \
+ nauty-addedgeg \
+ nauty-amtog \
+ nauty-biplabg \
+ nauty-catg \
+ nauty-complg \
+ nauty-converseg \
+ nauty-copyg \
+ nauty-countg \
+ nauty-cubhamg \
+ nauty-deledgeg \
+ nauty-delptg \
+ nauty-directg \
+ nauty-dretodot \
+ nauty-dretog \
+ nauty-genbg \
+ nauty-genbgL \
+ nauty-geng \
+ nauty-genquarticg \
+ nauty-genrang \
+ nauty-genspecialg \
+ nauty-gentourng \
+ nauty-gentreeg \
+ nauty-hamheuristic \
+ nauty-labelg \
+ nauty-linegraphg \
+ nauty-listg \
+ nauty-multig \
+ nauty-newedgeg \
+ nauty-NRswitchg \
+ nauty-pickg \
+ nauty-planarg \
+ nauty-ranlabg \
+ nauty-shortg \
+ nauty-showg \
+ nauty-subdivideg \
+ nauty-twohamg \
+ nauty-vcolg \
+ nauty-watercluster2 \
\
- blisstog \
- checks6 \
- sumlines
+ nauty-blisstog \
+ nauty-checks6 \
+ nauty-sumlines
man_MANS = \
dreadnaut.1 \
\
- addedgeg.1 \
- amtog.1 \
- biplabg.1 \
- catg.1 \
- complg.1 \
- converseg.1 \
- copyg.1 \
- countg.1 \
- cubhamg.1 \
- deledgeg.1 \
- delptg.1 \
- directg.1 \
- dretodot.1 \
- dretog.1 \
- genbg.1 \
- genbgL.1 \
- geng.1 \
- genquarticg.1 \
- genrang.1 \
- genspecialg.1 \
- gentourng.1 \
- gentreeg.1 \
- hamheuristic.1 \
- labelg.1 \
- linegraphg.1 \
- listg.1 \
- multig.1 \
- newedgeg.1 \
- NRswitchg.1 \
- pickg.1 \
- planarg.1 \
- ranlabg.1 \
- shortg.1 \
- showg.1 \
- subdivideg.1 \
- twohamg.1 \
- vcolg.1 \
- watercluster2.1 \
+ nauty-addedgeg.1 \
+ nauty-amtog.1 \
+ nauty-biplabg.1 \
+ nauty-catg.1 \
+ nauty-complg.1 \
+ nauty-converseg.1 \
+ nauty-copyg.1 \
+ nauty-countg.1 \
+ nauty-cubhamg.1 \
+ nauty-deledgeg.1 \
+ nauty-delptg.1 \
+ nauty-directg.1 \
+ nauty-dretodot.1 \
+ nauty-dretog.1 \
+ nauty-genbg.1 \
+ nauty-genbgL.1 \
+ nauty-geng.1 \
+ nauty-genquarticg.1 \
+ nauty-genrang.1 \
+ nauty-genspecialg.1 \
+ nauty-gentourng.1 \
+ nauty-gentreeg.1 \
+ nauty-hamheuristic.1 \
+ nauty-labelg.1 \
+ nauty-linegraphg.1 \
+ nauty-listg.1 \
+ nauty-multig.1 \
+ nauty-newedgeg.1 \
+ nauty-NRswitchg.1 \
+ nauty-pickg.1 \
+ nauty-planarg.1 \
+ nauty-ranlabg.1 \
+ nauty-shortg.1 \
+ nauty-showg.1 \
+ nauty-subdivideg.1 \
+ nauty-twohamg.1 \
+ nauty-vcolg.1 \
+ nauty-watercluster2.1 \
\
- blisstog.1 \
- checks6.1 \
- sumlines.1
+ nauty-blisstog.1 \
+ nauty-checks6.1 \
+ nauty-sumlines.1
lib_LTLIBRARIES = \
libnauty.la \
@@ -153,8 +153,8 @@
$(HELP2MAN) \
-s 1 \
$(AM_H2MFLAGS) \
- -I $(top_srcdir)/man/$*.h2m \
- -n $(if $($*_DESCRIPTION), $($*_DESCRIPTION), "manual page for $*") \
+ -I $(top_srcdir)/man/$(subst nauty-,,$*).h2m \
+ -n $(if $($(subst -,_,$*)_DESCRIPTION), $($(subst -,_,$*)_DESCRIPTION), "manual page for $*") \
-o $@ \
$(top_builddir)/$<
@@ -175,176 +175,176 @@
## short descriptions inspired from the basic functions of the programs as described
## in section `Utilities' (15) of the `Nauty and Traces User's Guide' (version 2.6)
dreadnaut_DESCRIPTION = "command line interface to nauty graph isomorphism library"
-addedgeg_DESCRIPTION = "add an edge in each possible way"
-amtog_DESCRIPTION = "read graphs in matrix format"
-biplabg_DESCRIPTION = "label bipartite graphs so the colour classes are contiguous"
-catg_DESCRIPTION = "concatenate files of graphs"
-complg_DESCRIPTION = "complement graphs"
-converseg_DESCRIPTION = "converse digraphs"
-copyg_DESCRIPTION = "convert format and select subset"
-countg_DESCRIPTION = "count graphs according to a variety of properties"
-cubhamg_DESCRIPTION = "find hamiltonian cycles in subcubic graphs"
-deledgeg_DESCRIPTION = "delete an edge in each possible way"
-delptg_DESCRIPTION = "delete vertices"
-directg_DESCRIPTION = "generate small digraphs with given underlying graph"
-dretodot_DESCRIPTION = "read graphs and initial coloring in dreadnaut format and write in dot format"
-dretog_DESCRIPTION = "read graphs in dreadnaut format"
-genbg_DESCRIPTION = "generate small bicoloured graphs"
-genbgL_DESCRIPTION = "$(shell printf "%s %s" $(genbg_DESCRIPTION) "(L1 flavour)")"
-geng_DESCRIPTION = "generate small graphs"
-genquarticg_DESCRIPTION = "generate quartic graphs"
-genrang_DESCRIPTION = "generate random graphs"
-genspecialg_DESCRIPTION = "generate special graphs"
-gentourng_DESCRIPTION = "generate small tournaments"
-gentreeg_DESCRIPTION = "generate trees"
-hamheuristic_DESCRIPTION = "try to find hamiltonian cycles in any graphs"
-labelg_DESCRIPTION = "canonically label graphs"
-linegraphg_DESCRIPTION = "compute the linegraphs of a file of graphs"
-listg_DESCRIPTION = "display graphs in a variety of forms"
-multig_DESCRIPTION = "generate small multigraphs with given underlying graph"
-newedgeg_DESCRIPTION = "create new edges from pairs of non-adjacent edges in each possible way"
-NRswitchg_DESCRIPTION = "complement vertex edges"
-pickg_DESCRIPTION = "select graphs according to a variety of properties"
-planarg_DESCRIPTION = "test graphs for planarity and find embeddings or obstructions"
-ranlabg_DESCRIPTION = "randomly relabel graphs"
-shortg_DESCRIPTION = "remove isomorphs from a file of graphs"
-showg_DESCRIPTION = "$(shell printf "%s %s" $(listg_DESCRIPTION) "(stand-alone subset of listg)")"
-subdivideg_DESCRIPTION = "compute the subdivision graphs of a file of graphs"
-twohamg_DESCRIPTION = "split quartic graphs into two hamiltonian cycles"
-vcolg_DESCRIPTION = "colour the vertices of graphs in all distinct ways"
-watercluster2_DESCRIPTION = "$(shell printf "%s %s" $(directg_DESCRIPTION) "(faster alternative to directg)")"
-blisstog_DESCRIPTION = "convert files of graphs in bliss format to stdout in sparse6 format"
-checks6_DESCRIPTION = "check a file of graphs and optionally perform corrections"
-sumlines_DESCRIPTION = "sum lines matching specified graph formats"
+nauty_addedgeg_DESCRIPTION = "add an edge in each possible way"
+nauty_amtog_DESCRIPTION = "read graphs in matrix format"
+nauty_biplabg_DESCRIPTION = "label bipartite graphs so the colour classes are contiguous"
+nauty_catg_DESCRIPTION = "concatenate files of graphs"
+nauty_complg_DESCRIPTION = "complement graphs"
+nauty_converseg_DESCRIPTION = "converse digraphs"
+nauty_copyg_DESCRIPTION = "convert format and select subset"
+nauty_countg_DESCRIPTION = "count graphs according to a variety of properties"
+nauty_cubhamg_DESCRIPTION = "find hamiltonian cycles in subcubic graphs"
+nauty_deledgeg_DESCRIPTION = "delete an edge in each possible way"
+nauty_delptg_DESCRIPTION = "delete vertices"
+nauty_directg_DESCRIPTION = "generate small digraphs with given underlying graph"
+nauty_dretodot_DESCRIPTION = "read graphs and initial coloring in dreadnaut format and write in dot format"
+nauty_dretog_DESCRIPTION = "read graphs in dreadnaut format"
+nauty_genbg_DESCRIPTION = "generate small bicoloured graphs"
+nauty_genbgL_DESCRIPTION = "$(shell printf "%s %s" $(nauty_genbg_DESCRIPTION) "(L1 flavour)")"
+nauty_geng_DESCRIPTION = "generate small graphs"
+nauty_genquarticg_DESCRIPTION = "generate quartic graphs"
+nauty_genrang_DESCRIPTION = "generate random graphs"
+nauty_genspecialg_DESCRIPTION = "generate special graphs"
+nauty_gentourng_DESCRIPTION = "generate small tournaments"
+nauty_gentreeg_DESCRIPTION = "generate trees"
+nauty_hamheuristic_DESCRIPTION = "try to find hamiltonian cycles in any graphs"
+nauty_labelg_DESCRIPTION = "canonically label graphs"
+nauty_linegraphg_DESCRIPTION = "compute the linegraphs of a file of graphs"
+nauty_listg_DESCRIPTION = "display graphs in a variety of forms"
+nauty_multig_DESCRIPTION = "generate small multigraphs with given underlying graph"
+nauty_newedgeg_DESCRIPTION = "create new edges from pairs of non-adjacent edges in each possible way"
+nauty_NRswitchg_DESCRIPTION = "complement vertex edges"
+nauty_pickg_DESCRIPTION = "select graphs according to a variety of properties"
+nauty_planarg_DESCRIPTION = "test graphs for planarity and find embeddings or obstructions"
+nauty_ranlabg_DESCRIPTION = "randomly relabel graphs"
+nauty_shortg_DESCRIPTION = "remove isomorphs from a file of graphs"
+nauty_showg_DESCRIPTION = "$(shell printf "%s %s" $(nauty_listg_DESCRIPTION) "(stand-alone subset of listg)")"
+nauty_subdivideg_DESCRIPTION = "compute the subdivision graphs of a file of graphs"
+nauty_twohamg_DESCRIPTION = "split quartic graphs into two hamiltonian cycles"
+nauty_vcolg_DESCRIPTION = "colour the vertices of graphs in all distinct ways"
+nauty_watercluster2_DESCRIPTION = "$(shell printf "%s %s" $(nauty_directg_DESCRIPTION) "(faster alternative to directg)")"
+nauty_blisstog_DESCRIPTION = "convert files of graphs in bliss format to stdout in sparse6 format"
+nauty_checks6_DESCRIPTION = "check a file of graphs and optionally perform corrections"
+nauty_sumlines_DESCRIPTION = "sum lines matching specified graph formats"
dreadnaut_CPPFLAGS =
-addedgeg_CPPFLAGS =
-amtog_CPPFLAGS =
-biplabg_CPPFLAGS =
-catg_CPPFLAGS =
-complg_CPPFLAGS =
-converseg_CPPFLAGS =
-copyg_CPPFLAGS =
-countg_CPPFLAGS =
-cubhamg_CPPFLAGS =
-deledgeg_CPPFLAGS =
-delptg_CPPFLAGS =
-directg_CPPFLAGS =
-dretodot_CPPFLAGS =
-dretog_CPPFLAGS =
-genbg_CPPFLAGS = $(nautyW1_flavour_CPPFLAGS)
-genbgL_CPPFLAGS = $(nautyL1_flavour_CPPFLAGS) -DMAXN1=30
-geng_CPPFLAGS = $(nautyW1_flavour_CPPFLAGS)
-genquarticg_CPPFLAGS = $(nautyL1_flavour_CPPFLAGS)
-genrang_CPPFLAGS =
-genspecialg_CPPFLAGS =
-gentourng_CPPFLAGS = -DMAXN=24
-gentreeg_CPPFLAGS =
-hamheuristic_CPPFLAGS =
-labelg_CPPFLAGS =
-linegraphg_CPPFLAGS =
-listg_CPPFLAGS =
-multig_CPPFLAGS =
-newedgeg_CPPFLAGS =
-NRswitchg_CPPFLAGS =
-pickg_CPPFLAGS =
-planarg_CPPFLAGS =
-ranlabg_CPPFLAGS =
-shortg_CPPFLAGS =
-showg_CPPFLAGS =
-subdivideg_CPPFLAGS =
-twohamg_CPPFLAGS =
-vcolg_CPPFLAGS =
-watercluster2_CPPFLAGS = -DMAXN=32
-blisstog_CPPFLAGS = $(ZLIB_CFLAGS)
-checks6_CPPFLAGS =
-sumlines_CPPFLAGS = $(GMP_CFLAGS)
+nauty_addedgeg_CPPFLAGS =
+nauty_amtog_CPPFLAGS =
+nauty_biplabg_CPPFLAGS =
+nauty_catg_CPPFLAGS =
+nauty_complg_CPPFLAGS =
+nauty_converseg_CPPFLAGS =
+nauty_copyg_CPPFLAGS =
+nauty_countg_CPPFLAGS =
+nauty_cubhamg_CPPFLAGS =
+nauty_deledgeg_CPPFLAGS =
+nauty_delptg_CPPFLAGS =
+nauty_directg_CPPFLAGS =
+nauty_dretodot_CPPFLAGS =
+nauty_dretog_CPPFLAGS =
+nauty_genbg_CPPFLAGS = $(nautyW1_flavour_CPPFLAGS)
+nauty_genbgL_CPPFLAGS = $(nautyL1_flavour_CPPFLAGS) -DMAXN1=30
+nauty_geng_CPPFLAGS = $(nautyW1_flavour_CPPFLAGS)
+nauty_genquarticg_CPPFLAGS = $(nautyL1_flavour_CPPFLAGS)
+nauty_genrang_CPPFLAGS =
+nauty_genspecialg_CPPFLAGS =
+nauty_gentourng_CPPFLAGS = -DMAXN=24
+nauty_gentreeg_CPPFLAGS =
+nauty_hamheuristic_CPPFLAGS =
+nauty_labelg_CPPFLAGS =
+nauty_linegraphg_CPPFLAGS =
+nauty_listg_CPPFLAGS =
+nauty_multig_CPPFLAGS =
+nauty_newedgeg_CPPFLAGS =
+nauty_NRswitchg_CPPFLAGS =
+nauty_pickg_CPPFLAGS =
+nauty_planarg_CPPFLAGS =
+nauty_ranlabg_CPPFLAGS =
+nauty_shortg_CPPFLAGS =
+nauty_showg_CPPFLAGS =
+nauty_subdivideg_CPPFLAGS =
+nauty_twohamg_CPPFLAGS =
+nauty_vcolg_CPPFLAGS =
+nauty_watercluster2_CPPFLAGS = -DMAXN=32
+nauty_blisstog_CPPFLAGS = $(ZLIB_CFLAGS)
+nauty_checks6_CPPFLAGS =
+nauty_sumlines_CPPFLAGS = $(GMP_CFLAGS)
dreadnaut_SOURCES = dreadnaut.c
-addedgeg_SOURCES = addedgeg.c
-amtog_SOURCES = amtog.c
-biplabg_SOURCES = biplabg.c
-catg_SOURCES = catg.c
-complg_SOURCES = complg.c
-converseg_SOURCES = converseg.c
-copyg_SOURCES = copyg.c
-countg_SOURCES = testg.c
-cubhamg_SOURCES = cubhamg.c
-deledgeg_SOURCES = deledgeg.c
-delptg_SOURCES = delptg.c
-directg_SOURCES = directg.c
-dretodot_SOURCES = dretodot.c
-dretog_SOURCES = dretog.c
-genbg_SOURCES = genbg.c
-genbgL_SOURCES = genbg.c
-geng_SOURCES = geng.c
-genquarticg_SOURCES = genquarticg.c
-genrang_SOURCES = genrang.c
-genspecialg_SOURCES = genspecialg.c
-gentourng_SOURCES = gentourng.c
-gentreeg_SOURCES = gentreeg.c
-hamheuristic_SOURCES = hamheuristic.c
-labelg_SOURCES = labelg.c
-linegraphg_SOURCES = linegraphg.c
-listg_SOURCES = listg.c
-multig_SOURCES = multig.c
-newedgeg_SOURCES = newedgeg.c
-NRswitchg_SOURCES = NRswitchg.c
-pickg_SOURCES = testg.c
-planarg_SOURCES = planarg.c planarity.c
-ranlabg_SOURCES = ranlabg.c
-shortg_SOURCES = shortg.c
-showg_SOURCES = showg.c
-subdivideg_SOURCES = subdivideg.c
-twohamg_SOURCES = twohamg.c
-vcolg_SOURCES = vcolg.c
-watercluster2_SOURCES = watercluster2.c
-blisstog_SOURCES = blisstog.c
-checks6_SOURCES = checks6.c
-sumlines_SOURCES = sumlines.c
+nauty_addedgeg_SOURCES = addedgeg.c
+nauty_amtog_SOURCES = amtog.c
+nauty_biplabg_SOURCES = biplabg.c
+nauty_catg_SOURCES = catg.c
+nauty_complg_SOURCES = complg.c
+nauty_converseg_SOURCES = converseg.c
+nauty_copyg_SOURCES = copyg.c
+nauty_countg_SOURCES = testg.c
+nauty_cubhamg_SOURCES = cubhamg.c
+nauty_deledgeg_SOURCES = deledgeg.c
+nauty_delptg_SOURCES = delptg.c
+nauty_directg_SOURCES = directg.c
+nauty_dretodot_SOURCES = dretodot.c
+nauty_dretog_SOURCES = dretog.c
+nauty_genbg_SOURCES = genbg.c
+nauty_genbgL_SOURCES = genbg.c
+nauty_geng_SOURCES = geng.c
+nauty_genquarticg_SOURCES = genquarticg.c
+nauty_genrang_SOURCES = genrang.c
+nauty_genspecialg_SOURCES = genspecialg.c
+nauty_gentourng_SOURCES = gentourng.c
+nauty_gentreeg_SOURCES = gentreeg.c
+nauty_hamheuristic_SOURCES = hamheuristic.c
+nauty_labelg_SOURCES = labelg.c
+nauty_linegraphg_SOURCES = linegraphg.c
+nauty_listg_SOURCES = listg.c
+nauty_multig_SOURCES = multig.c
+nauty_newedgeg_SOURCES = newedgeg.c
+nauty_NRswitchg_SOURCES = NRswitchg.c
+nauty_pickg_SOURCES = testg.c
+nauty_planarg_SOURCES = planarg.c planarity.c
+nauty_ranlabg_SOURCES = ranlabg.c
+nauty_shortg_SOURCES = shortg.c
+nauty_showg_SOURCES = showg.c
+nauty_subdivideg_SOURCES = subdivideg.c
+nauty_twohamg_SOURCES = twohamg.c
+nauty_vcolg_SOURCES = vcolg.c
+nauty_watercluster2_SOURCES = watercluster2.c
+nauty_blisstog_SOURCES = blisstog.c
+nauty_checks6_SOURCES = checks6.c
+nauty_sumlines_SOURCES = sumlines.c
dreadnaut_LDADD = $(NAUTY_LDADD)
-addedgeg_LDADD = $(NAUTY_LDADD)
-amtog_LDADD = $(NAUTY_LDADD)
-biplabg_LDADD = $(NAUTY_LDADD)
-catg_LDADD = $(NAUTY_LDADD)
-complg_LDADD = $(NAUTY_LDADD)
-converseg_LDADD = $(NAUTY_LDADD)
-copyg_LDADD = $(NAUTY_LDADD)
-countg_LDADD = $(NAUTY_LDADD)
-cubhamg_LDADD = $(NAUTY_LDADD)
-deledgeg_LDADD = $(NAUTY_LDADD)
-delptg_LDADD = $(NAUTY_LDADD)
-directg_LDADD = $(NAUTY_LDADD)
-dretodot_LDADD = $(NAUTY_LDADD) $(LIBM)
-dretog_LDADD = $(NAUTY_LDADD)
-genbg_LDADD = $(NAUTYW1_LDADD)
-genbgL_LDADD = $(NAUTYL1_LDADD)
-geng_LDADD = $(NAUTYW1_LDADD)
-genquarticg_LDADD = $(NAUTYL1_LDADD)
-genrang_LDADD = $(NAUTY_LDADD)
-genspecialg_LDADD = $(NAUTY_LDADD)
-gentourng_LDADD = $(NAUTY_LDADD)
-gentreeg_LDADD = $(NAUTY_LDADD)
-hamheuristic_LDADD = $(NAUTY_LDADD)
-labelg_LDADD = $(NAUTY_LDADD)
-linegraphg_LDADD = $(NAUTY_LDADD)
-listg_LDADD = $(NAUTY_LDADD)
-multig_LDADD = $(NAUTY_LDADD)
-newedgeg_LDADD = $(NAUTY_LDADD)
-NRswitchg_LDADD = $(NAUTY_LDADD)
-pickg_LDADD = $(NAUTY_LDADD)
-planarg_LDADD = $(NAUTY_LDADD)
-ranlabg_LDADD = $(NAUTY_LDADD)
-shortg_LDADD = $(NAUTY_LDADD)
-showg_LDADD =
-subdivideg_LDADD = $(NAUTY_LDADD)
-twohamg_LDADD = $(NAUTY_LDADD)
-vcolg_LDADD = $(NAUTY_LDADD)
-watercluster2_LDADD = $(NAUTY_LDADD)
-blisstog_LDADD = $(NAUTY_LDADD) $(ZLIB_LIBS)
-checks6_LDADD = $(NAUTY_LDADD)
-sumlines_LDADD = $(GMP_LIBS)
+nauty_addedgeg_LDADD = $(NAUTY_LDADD)
+nauty_amtog_LDADD = $(NAUTY_LDADD)
+nauty_biplabg_LDADD = $(NAUTY_LDADD)
+nauty_catg_LDADD = $(NAUTY_LDADD)
+nauty_complg_LDADD = $(NAUTY_LDADD)
+nauty_converseg_LDADD = $(NAUTY_LDADD)
+nauty_copyg_LDADD = $(NAUTY_LDADD)
+nauty_countg_LDADD = $(NAUTY_LDADD)
+nauty_cubhamg_LDADD = $(NAUTY_LDADD)
+nauty_deledgeg_LDADD = $(NAUTY_LDADD)
+nauty_delptg_LDADD = $(NAUTY_LDADD)
+nauty_directg_LDADD = $(NAUTY_LDADD)
+nauty_dretodot_LDADD = $(NAUTY_LDADD) $(LIBM)
+nauty_dretog_LDADD = $(NAUTY_LDADD)
+nauty_genbg_LDADD = $(NAUTYW1_LDADD)
+nauty_genbgL_LDADD = $(NAUTYL1_LDADD)
+nauty_geng_LDADD = $(NAUTYW1_LDADD)
+nauty_genquarticg_LDADD = $(NAUTYL1_LDADD)
+nauty_genrang_LDADD = $(NAUTY_LDADD)
+nauty_genspecialg_LDADD = $(NAUTY_LDADD)
+nauty_gentourng_LDADD = $(NAUTY_LDADD)
+nauty_gentreeg_LDADD = $(NAUTY_LDADD)
+nauty_hamheuristic_LDADD = $(NAUTY_LDADD)
+nauty_labelg_LDADD = $(NAUTY_LDADD)
+nauty_linegraphg_LDADD = $(NAUTY_LDADD)
+nauty_listg_LDADD = $(NAUTY_LDADD)
+nauty_multig_LDADD = $(NAUTY_LDADD)
+nauty_newedgeg_LDADD = $(NAUTY_LDADD)
+nauty_NRswitchg_LDADD = $(NAUTY_LDADD)
+nauty_pickg_LDADD = $(NAUTY_LDADD)
+nauty_planarg_LDADD = $(NAUTY_LDADD)
+nauty_ranlabg_LDADD = $(NAUTY_LDADD)
+nauty_shortg_LDADD = $(NAUTY_LDADD)
+nauty_showg_LDADD =
+nauty_subdivideg_LDADD = $(NAUTY_LDADD)
+nauty_twohamg_LDADD = $(NAUTY_LDADD)
+nauty_vcolg_LDADD = $(NAUTY_LDADD)
+nauty_watercluster2_LDADD = $(NAUTY_LDADD)
+nauty_blisstog_LDADD = $(NAUTY_LDADD) $(ZLIB_LIBS)
+nauty_checks6_LDADD = $(NAUTY_LDADD)
+nauty_sumlines_LDADD = $(GMP_LIBS)
libnauty_la_LD_VERSION_SCRIPT =
libnautyA1_la_MAP =
--- a/runalltests
+++ b/runalltests
@@ -30,7 +30,7 @@
eval $cmd <"$in" 2>$out2 >$out1
if [ -d $top_workingdir/.libs ]; then
- sed -i 's@'$top_workingdir'/.libs/lt-@./@' $out2
+ sed -i 's@'$top_workingdir'/.libs/lt-nauty-@./@' $out2
fi
LC_COLLATE=C sort $out2 >>$out1
@@ -82,13 +82,13 @@
runonetest ./dreadtest4K nautest2.dre nautest2a.ans
runonetest "./dreadtest4K -o As" nautest2.dre nautest2b.ans
-runonetest "./geng -ud1D7t 11" "" nautesta.ans
-runonetest "./geng -cd1f 10 | ./labelg -q" "" nautestb.ans
-runonetest "./genrang -r3 114 100 | ./countg --nedDr -q" "" nautestc.ans
-runonetest "./gentourng -q -z 8 | ./pickg -T3" "" nautestd.ans
-runonetest "./gentreeg -q -s 18 | ./countg -z6 --o" "" nauteste.ans
-runonetest "./geng -c -q 8 8 | ./directg -q -o | ./converseg -q | ./labelg -q" "" nautestf.ans
-runonetest "./genbg -q 4 3 10 | ./vcolg -m6 -T" "" nautestg.ans
+runonetest "./nauty-geng -ud1D7t 11" "" nautesta.ans
+runonetest "./nauty-geng -cd1f 10 | ./nauty-labelg -q" "" nautestb.ans
+runonetest "./nauty-genrang -r3 114 100 | ./nauty-countg --nedDr -q" "" nautestc.ans
+runonetest "./nauty-gentourng -q -z 8 | ./nauty-pickg -T3" "" nautestd.ans
+runonetest "./nauty-gentreeg -q -s 18 | ./nauty-countg -z6 --o" "" nauteste.ans
+runonetest "./nauty-geng -c -q 8 8 | ./nauty-directg -q -o | ./nauty-converseg -q | ./nauty-labelg -q" "" nautestf.ans
+runonetest "./nauty-genbg -q 4 3 10 | ./nauty-vcolg -m6 -T" "" nautestg.ans
echo " "

211
nauty-zlib-blisstog.patch Normal file
View File

@ -0,0 +1,211 @@
Description: implement zlib support to blisstog utility
zlib is implemented to handle directly flate and compress files
for the blisstog nauty tool.
Origin: debian
Author: Jerome Benoit <calculus@rezozer.net>
Last-Update: 2016-03-18
--- a/blisstog.c
+++ b/blisstog.c
@@ -9,45 +9,37 @@
-n#:# Specify a range of n values for output\n\
Input files with name *.gz are ungzipped\n"
-#define ZCAT "gunzip -c" /* name of zcat command (might be "gunzip -c") */
-
/*************************************************************************/
+#include <zlib.h>
#include "gtools.h"
+#define BUFSIZE 256
+
typedef struct
{
int v,w;
} vpair;
-static int
-nextchar(FILE *f)
-{
- char s[2];
-
- if (fscanf(f,"%1s",s) != 1) return EOF;
- else return s[0];
-}
-
static boolean
-readblissgraph(FILE *f, sparsegraph *g)
+readblissgraph(gzFile f, sparsegraph *g)
/* Reads a graph from Bliss format into a sparse graph */
{
- int n,c;
+ int n;
unsigned long ne,j;
int haven;
int i,v,w;
- int haveptn;
DYNALLSTAT(vpair,elist,elist_sz);
+ char buffer[BUFSIZE];
+ memset(buffer, '\0', BUFSIZE);
haven = 0;
j = 0;
- while ((c = nextchar(f)) >= 0)
+ while (gzgets(f, buffer, BUFSIZE) != NULL && strlen(buffer) < BUFSIZE - 1)
{
- switch (c)
+ switch (*buffer)
{
case 'c':
- while ((c = getc(f)) != '\n' && c != EOF) {}
break;
case 'p':
@@ -56,7 +48,7 @@
fprintf(stderr,"Duplicate p line\n");
exit(1);
}
- if (fscanf(f," edge %d %lu",&n,&ne) != 2)
+ if (sscanf(buffer,"p edge %d %lu",&n,&ne) != 2)
{
fprintf(stderr,"Bad p line\n");
return FALSE;
@@ -71,7 +63,7 @@
fprintf(stderr,"Missing p line\n");
return FALSE;
}
- if (fscanf(f,"%d%d",&w,&v) != 2 || w < 1 || w > n)
+ if (sscanf(buffer,"n %d%d",&w,&v) != 2 || w < 1 || w > n)
{
fprintf(stderr,"Bad n line\n");
return FALSE;
@@ -84,7 +76,7 @@
fprintf(stderr,"Missing p line or too many e lines\n");
return FALSE;
}
- if (fscanf(f,"%d%d",&v,&w) != 2 || v < 1 || w < 1 || v > n || w > n)
+ if (sscanf(buffer,"e %d%d",&v,&w) != 2 || v < 1 || w < 1 || v > n || w > n)
{
fprintf(stderr,"Bad e line\n");
return FALSE;
@@ -94,11 +86,22 @@
break;
default:
- fprintf(stderr,"Unknown line %c\n",c);
+ fprintf(stderr,"Unknown line\n");
return FALSE;
}
}
+ if (errno)
+ {
+ fputs("Corrupted data file\n", stderr);
+ return FALSE;
+ }
+ else if (strlen(buffer) == BUFSIZE - 1)
+ {
+ fputs("Corruped data line\n", stderr);
+ return FALSE;
+ }
+
if (j != ne)
{
fprintf(stderr,"Wrong number of e lines\n");
@@ -135,13 +138,10 @@
int
main(int argc, char *argv[])
{
- FILE *infile;
+ gzFile infile;
int j,firstarg;
SG_DECL(g);
- size_t flen;
- boolean ispipe;
int nmin,nmax;
- char zcmd[515];
HELP; PUTVERSION;
@@ -160,53 +160,46 @@
if (argc == firstarg)
{
- if (!readblissgraph(stdin,&g))
+ if ((infile = gzdopen(STDIN_FILENO,"r")) == NULL)
{
- fprintf(stderr,">E Bliss error in file %s\n","stdin");
+ fputs(">E Can't open stdin\n", stderr);
gt_abort(NULL);
}
else
- writes6_sg(stdout,&g);
+ {
+ if (!readblissgraph(stdin,&g))
+ {
+ fprintf(stderr,">E Bliss error in file %s\n","stdin");
+ gt_abort(NULL);
+ }
+ else
+ writes6_sg(stdout,&g);
+ gzclose(infile);
+ }
}
else
{
for (j = firstarg; j < argc; ++j)
{
- flen = strlen(argv[j]);
- if (flen >= 3 && strcmp(argv[j]+flen-3,".gz") == 0)
- {
- sprintf(zcmd,"%s \"%s\"",ZCAT,argv[j]);
- if ((infile = popen(zcmd,"r")) == NULL)
- {
- fprintf(stderr,
- ">E blisstog: cannot open zcat pipe for \"%s\"\n",
- argv[j]);
- gt_abort(NULL);
- }
- ispipe = TRUE;
- }
- else
- {
- if ((infile = fopen(argv[j],"r")) == NULL)
- {
- fprintf(stderr,">E Can't open file %s\n",argv[j]);
- gt_abort(NULL);
- }
- ispipe = FALSE;
- }
-
- if (!readblissgraph(infile,&g))
+ if ((infile = gzopen(argv[j],"r")) == NULL)
{
- fprintf(stderr,">E Bliss error in file %s\n",argv[j]);
+ fprintf(stderr,">E Can't open file %s\n",argv[j]);
gt_abort(NULL);
}
- else if (nmax < 0 || (g.nv >= nmin && g.nv <= nmax))
- {
- sortlists_sg(&g);
- writes6_sg(stdout,&g);
+ else
+ {
+ if (!readblissgraph(infile,&g))
+ {
+ fprintf(stderr,">E Bliss error in file %s\n",argv[j]);
+ gt_abort(NULL);
+ }
+ else if (nmax < 0 || (g.nv >= nmin && g.nv <= nmax))
+ {
+ sortlists_sg(&g);
+ writes6_sg(stdout,&g);
+ }
+ gzclose(infile);
}
-
- if (ispipe) pclose(infile); else fclose(infile);
}
}

132
nauty.spec Normal file
View File

@ -0,0 +1,132 @@
%global nautybasever 2.6r5
%global nautytarver %(tr -d . <<< %{nautybasever})
Name: nauty
Version: %(tr r . <<< %{nautybasever})
Release: 1%{?dist}
Summary: Graph canonical labeling and automorphism group computation
License: ASL 2.0
URL: http://pallini.di.uniroma1.it/
Source0: http://pallini.di.uniroma1.it/%{name}%{nautytarver}.tar.gz
# Debian patch to fix the gt_numorbits declaration
Patch0: %{name}-fix-gt_numorbits.patch
# Debian patch to add explicit extern declarations where needed
Patch1: %{name}-fix-include-extern.patch
# Debian patch to use zlib instead of invoking zcat through a pipe
Patch2: %{name}-zlib-blisstog.patch
# Debian patch to improve usage and help information
Patch3: %{name}-help2man.patch
# Debian patch to add libtool support for building a shared library
Patch4: %{name}-autotoolization.patch
# Debian patch to canonicalize header file usage
Patch5: %{name}-includes.patch
# Debian patch to prefix "nauty-" to the names of the generic tools
Patch6: %{name}-tool-prefix.patch
# Detect availability of the popcnt instruction at runtime
Patch7: %{name}-popcnt.patch
BuildRequires: gcc
BuildRequires: gmp-devel
BuildRequires: help2man
BuildRequires: libtool
BuildRequires: zlib-devel
# The shortg program invokes sort.
Requires: coreutils
Requires: lib%{name}%{?_isa} = %{version}-%{release}
%description
Nauty and Traces are programs for computing automorphism groups of
graphs and digraphs. (At present, Traces does not accept digraphs.)
They can also produce a canonical label. They are written in a portable
subset of C, and run on a considerable number of different systems.
There is a small suite of programs called gtools included in the
package. For example, geng can generate non-isomorphic graphs very
quickly. There are also generators for bipartite graphs, digraphs, and
multigraphs, and programs for manipulating files of graphs in a compact
format.
%package -n libnauty
Summary: Library for graph automorphism
%description -n libnauty
Nauty (No AUTomorphisms, Yes?) is a set of procedures for computing
automorphism groups of graphs and digraphs. This package contains a
library of nauty procedures.
%package -n libnauty-devel
Summary: Development files for libnauty
Requires: lib%{name}%{?_isa} = %{version}-%{release}
%description -n libnauty-devel
This package contains files needed to develop programs that use libnauty.
%prep
%setup -q -n %{name}%{nautytarver}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
# Remove the pregenerated makefile
rm -f makefile
# Inject the version number
sed -i 's/@INJECTVER@/%{version}/' configure.ac
# Regenerate the configure script with libtool support
autoreconf -fi
%build
export CFLAGS="%{optflags} -fwrapv"
%configure --disable-static \
%ifarch %ix86 x86_64
--enable-runtime-popcnt \
%endif
--enable-tls
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
# We do not want the libtool archives
rm %{buildroot}%{_libdir}/*.la
%check
make check
%post -n libnauty -p /sbin/ldconfig
%postun -n libnauty -p /sbin/ldconfig
%files
%doc README nug26.pdf
%{_bindir}/dreadnaut
%{_bindir}/nauty-*
%{_mandir}/man1/dreadnaut.1*
%{_mandir}/man1/nauty-*.1*
%files -n libnauty
%doc changes24-26.txt formats.txt
%license COPYRIGHT
%{_libdir}/libnauty*.so.*
%files -n libnauty-devel
%doc schreier.txt
%{_includedir}/nauty/
%{_libdir}/libnauty*.so
%{_libdir}/pkgconfig/%{name}.pc
%changelog
* Thu Apr 21 2016 Jerry James <loganjerry@gmail.com> - 2.6.5-1
- New upstream version
* Fri Apr 15 2016 Jerry James <loganjerry@gmail.com> - 2.6.4-1
- Initial RPM

View File

@ -0,0 +1 @@
91b03a7b069962e94fc9aac8831ce8d2 nauty26r5.tar.gz