tomka       15/03/09 12:51:38

  Added:                bliss-0.72-fedora.patch bliss-0.72-autotools.patch
  Log:
  Move in from science overlay
  
  (Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key 
565C32BC)

Revision  Changes    Path
1.1                  sci-libs/bliss/files/bliss-0.72-fedora.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-libs/bliss/files/bliss-0.72-fedora.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-libs/bliss/files/bliss-0.72-fedora.patch?rev=1.1&content-type=text/plain

Index: bliss-0.72-fedora.patch
===================================================================
Pulled on 28-04-13 from
http://pkgs.fedoraproject.org/cgit/bliss.git/tree/

- Man page written by Jerry James using text borrowed from the sources.
  The man page therefore has the same copyright and license as the sources.
- Don't call exit() in library code.
- Patch from Thomas Rehn, also sent upstream.  Fix one bug and add one
   performance enhancement.

diff -Naur bliss-0.72.orig/bliss.1 bliss-0.72/bliss.1
--- bliss-0.72.orig/bliss.1     1969-12-31 17:00:00.000000000 -0700
+++ bliss-0.72/bliss.1  2013-04-28 14:35:37.000000000 -0600
@@ -0,0 +1,55 @@
+.TH "BLISS" "1" "@VERSION@" "Tommi Junttila & Petteri Kaski" "User Commands"
+.SH "NAME"
+bliss \- Compute automorphism groups and canonical labelings of graphs
+.SH "SYNOPSIS"
+.B bliss
+[\fIOPTIONS\fR] [<\fIGRAPH FILE\fR>]
+.SH "DESCRIPTION"
+.PP
+Bliss is an open source tool for computing automorphism groups and
+canonical forms of graphs.  The graphs are specified in DIMACS format.
+.TP
+\fB\-directed\fR
+the input graph is directed
+.TP
+\fB\-can\fR
+compute canonical form
+.TP
+\fB\-ocan\fR=\fIf\fR
+compute canonical form and output it in file \fIf\fR
+.TP
+\fB\-v\fR=\fIN\fR
+set verbosity level to N [N >= 0, default: 1]
+.TP
+\fB\-sh\fR=\fIX\fR
+select splitting heuristics, where X is:
+.TS
+tab(;);
+R L.
+f;first non-singleton cell
+fl;first largest non-singleton cell
+fs;first smallest non-singleton cell
+fm;first maximally non-trivially connected non-singleton cell
+flm;first largest maximally non-trivially connected
+;non-singleton cell
+fsm;first smallest maximally non-trivially connected
+;non-singleton cell (default)
+.TE
+.TP
+\fB\-fr\fR=\fIX\fR
+use failure recording? [X=y/n, default: y]
+.TP
+\fB\-cr\fR=\fIX\fR
+use component recursion? [X=y/n, default: y]
+.TP
+\fB\-version\fR
+print the version number and exit
+.TP
+\fB\-help\fR
+print this help and exit
+.SH "AUTHORS"
+Bliss was written by Tommi Junttila <tommi.juntt...@tkk.fi> and
+Petteri Kaski <petteri.ka...@aalto.fi>.
+.PP
+This man page was written by Jerry James <loganje...@gmail.com>.
+It is distributed under the same terms as bliss.
diff -Naur bliss-0.72.orig/bliss.cc bliss-0.72/bliss.cc
--- bliss-0.72.orig/bliss.cc    2013-04-28 14:35:20.582085167 -0600
+++ bliss-0.72/bliss.cc 2013-04-28 14:36:28.792330603 -0600
@@ -276,13 +276,16 @@
   if(opt_canonize == false)
     {
       /* No canonical labeling, only automorphism group */
-      g->find_automorphisms(stats, &report_aut, stdout);
+      if (!g->find_automorphisms(stats, &report_aut, stdout))
+       exit(1);
     }
   else
     {
       /* Canonical labeling and automorphism group */
       const unsigned int* cl = g->canonical_form(stats, &report_aut, stdout);
 
+      if (!cl)
+       exit(1);
       fprintf(stdout, "Canonical labeling: ");
       bliss::print_permutation(stdout, g->get_nof_vertices(), cl, 1);
       fprintf(stdout, "\n");
@@ -290,6 +293,8 @@
       if(opt_output_can_file)
        {
          bliss::AbstractGraph* cf = g->permute(cl);
+         if (!cf)
+           exit(1);
          FILE* const fp = fopen(opt_output_can_file, "w");
          if(!fp)
            _fatal("Cannot open '%s' for outputting the canonical form, 
aborting", opt_output_can_file);
diff -Naur bliss-0.72.orig/bliss_C.cc bliss-0.72/bliss_C.cc
--- bliss-0.72.orig/bliss_C.cc  2013-04-28 14:35:20.582085167 -0600
+++ bliss-0.72/bliss_C.cc       2013-04-28 14:36:28.792330603 -0600
@@ -131,7 +131,7 @@
 }
 
 extern "C"
-void
+int
 bliss_find_automorphisms(BlissGraph *graph,
                         void (*hook)(void *user_param,
                                      unsigned int n,
@@ -142,7 +142,8 @@
   bliss::Stats s;
   assert(graph);
   assert(graph->g);
-  graph->g->find_automorphisms(s, hook, hook_user_param);
+  if (!graph->g->find_automorphisms(s, hook, hook_user_param))
+    return 0;
 
   if(stats)
     {
@@ -154,6 +155,7 @@
       stats->nof_generators = s.get_nof_generators();
       stats->max_level = s.get_max_level();
     }
+  return 1;
 }
 
 
@@ -173,7 +175,7 @@
   
   canonical_labeling = graph->g->canonical_form(s, hook, hook_user_param);
 
-  if(stats)
+  if(canonical_labeling && stats)
     {
       stats->group_size_approx = s.get_group_size_approx();
       stats->nof_nodes = s.get_nof_nodes();
diff -Naur bliss-0.72.orig/bliss_C.h bliss-0.72/bliss_C.h
--- bliss-0.72.orig/bliss_C.h   2013-04-28 14:35:20.582085167 -0600
+++ bliss-0.72/bliss_C.h        2013-04-28 14:36:28.792330603 -0600
@@ -156,6 +156,7 @@
  * The argument \a perm should be an array of
  * N=bliss::bliss_get_nof_vertices(\a graph) elements describing
  * a bijection on {0,...,N-1}.
+ * Returns NULL if insufficient memory or internal error.
  */
 BlissGraph *bliss_permute(BlissGraph *graph, const unsigned int *perm);
 
@@ -174,8 +175,9 @@
  * if you want to use the automorphism later, you have to take a copy of it.
  * Do not call bliss_* functions in the hook.
  * If \a stats is non-null, then some search statistics are copied there.
+ * \return nonzero if successful, zero if insufficient memory or internal error
  */
-void
+int
 bliss_find_automorphisms(BlissGraph *graph,
                         void (*hook)(void *user_param,
                                      unsigned int N,
@@ -194,6 +196,7 @@
  * then bliss_permute() with the returned canonical labeling.
  * Note that the computed canonical version may depend on the applied version
  * of bliss.
+ * Returns NULL if insufficient memory or internal error.
  */
 const unsigned int *
 bliss_find_canonical_labeling(BlissGraph *graph,
diff -Naur bliss-0.72.orig/defs.cc bliss-0.72/defs.cc
--- bliss-0.72.orig/defs.cc     2013-04-28 14:35:20.582085167 -0600
+++ bliss-0.72/defs.cc  2013-04-28 14:36:28.792330603 -0600
@@ -33,7 +33,6 @@
   vfprintf(stderr, fmt, ap);
   fprintf(stderr, "\nAborting!\n");
   va_end(ap);
-  exit(1);
 }
 
 }
diff -Naur bliss-0.72.orig/graph.cc bliss-0.72/graph.cc
--- bliss-0.72.orig/graph.cc    2013-04-28 14:35:20.582085167 -0600
+++ bliss-0.72/graph.cc 2013-04-28 14:37:16.162501050 -0600
@@ -34,7 +34,10 @@
 namespace bliss {
 
 #define _INTERNAL_ERROR() fatal_error("%s:%d: internal 
error",__FILE__,__LINE__)
-#define _OUT_OF_MEMORY() fatal_error("%s:%d: out of memory",__FILE__,__LINE__)
+#define _OUT_OF_MEMORY(label) do {                             \
+    fatal_error("%s:%d: out of memory",__FILE__,__LINE__);     \
+    goto label;                                                        \
+  } while (0)
 
 /*-------------------------------------------------------------------------
  *
@@ -279,20 +282,6 @@
     *perm = i;
 }
 
-bool
-AbstractGraph::is_automorphism(unsigned int* const perm)
-{
-  _INTERNAL_ERROR();
-  return false;
-}
-
-bool
-AbstractGraph::is_automorphism(const std::vector<unsigned int>& perm) const
-{
-  _INTERNAL_ERROR();
-  return false;
-}
-
 
 
 
@@ -608,17 +597,7 @@
 };
 
 
-
-
-typedef struct {
-  unsigned int splitting_element;
-  unsigned int certificate_index;
-  unsigned int subcertificate_length;
-  UintSeqHash eqref_hash;
-} PathInfo;
-
-
-void
+bool
 AbstractGraph::search(const bool canonical, Stats& stats)
 {
   const unsigned int N = get_nof_vertices();
@@ -658,7 +637,7 @@
   if(N == 0)
     {
       /* Nothing to do, return... */
-      return;
+      return true;
     }
 
   /* Initialize the partition ... */
@@ -696,10 +675,10 @@
    */
   if(first_path_labeling) free(first_path_labeling);
   first_path_labeling = (unsigned int*)calloc(N, sizeof(unsigned int));
-  if(!first_path_labeling) _OUT_OF_MEMORY();
+  if(!first_path_labeling) _OUT_OF_MEMORY(oom1);
   if(best_path_labeling) free(best_path_labeling);
   best_path_labeling = (unsigned int*)calloc(N, sizeof(unsigned int));
-  if(!best_path_labeling) _OUT_OF_MEMORY();
+  if(!best_path_labeling) _OUT_OF_MEMORY(oom2);
 
   /*
    * Is the initial partition discrete?
@@ -710,7 +689,7 @@
       update_labeling(best_path_labeling);
       /* Update statistics */
       stats.nof_leaf_nodes = 1;
-      return;
+      return true;
     }
 
   /*
@@ -718,20 +697,39 @@
    */
   if(first_path_labeling_inv) free(first_path_labeling_inv);
   first_path_labeling_inv = (unsigned int*)calloc(N, sizeof(unsigned int));
-  if(!first_path_labeling_inv) _OUT_OF_MEMORY();
+  if(!first_path_labeling_inv) _OUT_OF_MEMORY(oom3);
   if(best_path_labeling_inv) free(best_path_labeling_inv);
   best_path_labeling_inv = (unsigned int*)calloc(N, sizeof(unsigned int));
-  if(!best_path_labeling_inv) _OUT_OF_MEMORY();
+  if(!best_path_labeling_inv) _OUT_OF_MEMORY(oom4);
 
   /*
    * Allocate space for the automorphisms
    */
   if(first_path_automorphism) free(first_path_automorphism);
   first_path_automorphism = (unsigned int*)malloc(N * sizeof(unsigned int));
-  if(!first_path_automorphism) _OUT_OF_MEMORY();
+  if(!first_path_automorphism) _OUT_OF_MEMORY(oom5);
   if(best_path_automorphism) free(best_path_automorphism);
   best_path_automorphism = (unsigned int*)malloc(N * sizeof(unsigned int));
-  if(!best_path_automorphism) _OUT_OF_MEMORY();
+  if(!best_path_automorphism) {
+    _OUT_OF_MEMORY(oom6);
+  oom6:
+    free(first_path_automorphism);
+    first_path_automorphism = NULL;
+  oom5:
+    free(best_path_labeling_inv);
+    best_path_labeling_inv = NULL;
+  oom4:
+    free(first_path_labeling_inv);
+    first_path_labeling_inv = NULL;
+  oom3:
+    free(best_path_labeling);
+    best_path_labeling = NULL;
+  oom2:
+    free(first_path_labeling);
+    first_path_labeling = NULL;
+  oom1:
+    return false;
+  }
 
   /*
    * Initialize orbit information so that all vertices are in their own orbits
@@ -745,7 +743,6 @@
   initialize_certificate();
 
   std::vector<TreeNode> search_stack;
-  std::vector<PathInfo> first_path_info;
   std::vector<PathInfo> best_path_info;
 
   search_stack.clear();
@@ -974,7 +971,6 @@
        */
       {
        unsigned int  next_split_element = UINT_MAX;
-       unsigned int* next_split_element_pos = 0;
        unsigned int* ep = p.elements + cell->first;
        if(current_node.fp_on)
          {
@@ -985,7 +981,6 @@
                 *ep < next_split_element and
                 first_path_orbits.is_minimal_representative(*ep)) {
                next_split_element = *ep;
-               next_split_element_pos = ep;
              }
            }
          }
@@ -1001,7 +996,6 @@
                  current_node.long_prune_redundant.find(*ep) ==
                  current_node.long_prune_redundant.end())) {
                next_split_element = *ep;
-               next_split_element_pos = ep;
              }
            }
          }
@@ -1015,7 +1009,6 @@
                  current_node.long_prune_redundant.find(*ep) ==
                  current_node.long_prune_redundant.end())) {
                next_split_element = *ep;
-               next_split_element_pos = ep;
              }
            }
          }
@@ -1203,8 +1196,10 @@
 
 #if defined(BLISS_VERIFY_EQUITABLEDNESS)
       /* The new partition should be equitable */
-      if(!is_equitable())
+      if(!is_equitable()) {
        fatal_error("consistency check failed - partition after refinement is 
not equitable");
+       return false;
+      }
 #endif
 
       /*
@@ -1366,6 +1361,7 @@
                          goto handle_first_path_automorphism;
                        /* Should never get here because of CR:FP */
                        _INTERNAL_ERROR();
+                       return false;
                      }
                  }
 
@@ -1598,8 +1594,10 @@
        
 #if defined(BLISS_VERIFY_AUTOMORPHISMS)
        /* Verify that it really is an automorphism */
-       if(!is_automorphism(best_path_automorphism))
+       if(!is_automorphism(best_path_automorphism)) {
          fatal_error("Best path automorhism validation check failed");
+         return false;
+       }
 #endif
        
        unsigned int gca_level_with_first = 0;
@@ -1666,6 +1664,7 @@
 
 
       _INTERNAL_ERROR();
+      return false;
 
       
     handle_first_path_automorphism:
@@ -1701,8 +1700,10 @@
 
 #if defined(BLISS_VERIFY_AUTOMORPHISMS)
       /* Verify that it really is an automorphism */
-      if(!is_automorphism(first_path_automorphism))
+      if(!is_automorphism(first_path_automorphism)) {
        fatal_error("First path automorphism validation check failed");
+       return false;
+      }
 #endif
       
       if(opt_use_long_prune)
@@ -1749,12 +1750,13 @@
   /* Release component recursion data in partition */
   if(opt_use_comprec)
     p.cr_free();
+  return true;
 }
 
 
 
 
-void
+bool
 AbstractGraph::find_automorphisms(Stats& stats,
                                  void (*hook)(void *user_param,
                                               unsigned int n,
@@ -1764,7 +1766,8 @@
   report_hook = hook;
   report_user_param = user_param;
 
-  search(false, stats);
+  if (!search(false, stats))
+    return false;
 
   if(first_path_labeling)
     {
@@ -1776,6 +1779,7 @@
       free(best_path_labeling);
       best_path_labeling = 0;
     }
+  return true;
 }
 
 
@@ -1790,7 +1794,8 @@
   report_hook = hook;
   report_user_param = user_param;
 
-  search(true, stats);
+  if (!search(true, stats))
+    return NULL;
 
   return best_path_labeling;
 }
@@ -3480,15 +3485,17 @@
  * Check whether perm is an automorphism.
  * Slow, mainly for debugging and validation purposes.
  */
-bool
+int
 Digraph::is_automorphism(unsigned int* const perm)
 {
   std::set<unsigned int, std::less<unsigned int> > edges1;
   std::set<unsigned int, std::less<unsigned int> > edges2;
 
 #if defined(BLISS_CONSISTENCY_CHECKS)
-  if(!is_permutation(get_nof_vertices(), perm))
+  if(!is_permutation(get_nof_vertices(), perm)) {
     _INTERNAL_ERROR();
+    return -1;
+  }
 #endif
 
   for(unsigned int i = 0; i < get_nof_vertices(); i++)
@@ -3507,7 +3514,7 @@
          ei++)
        edges2.insert(*ei);
       if(!(edges1 == edges2))
-       return false;
+       return 0;
 
       edges1.clear();
       for(std::vector<unsigned int>::iterator ei = v1.edges_out.begin();
@@ -3520,10 +3527,10 @@
          ei++)
        edges2.insert(*ei);
       if(!(edges1 == edges2))
-       return false;
+       return 0;
     }
 
-  return true;
+  return 1;
 }
 
 bool
@@ -4330,8 +4337,10 @@
 Graph::permute(const unsigned int* perm) const
 {
 #if defined(BLISS_CONSISTENCY_CHECKS)
-  if(!is_permutation(get_nof_vertices(), perm))
+  if(!is_permutation(get_nof_vertices(), perm)) {
     _INTERNAL_ERROR();
+    return NULL;
+  }
 #endif
 
   Graph* const g = new Graph(get_nof_vertices());
@@ -5270,15 +5279,17 @@
  *
  *-------------------------------------------------------------------------*/
 
-bool
+int
 Graph::is_automorphism(unsigned int* const perm)
 {
   std::set<unsigned int, std::less<unsigned int> > edges1;
   std::set<unsigned int, std::less<unsigned int> > edges2;
 
 #if defined(BLISS_CONSISTENCY_CHECKS)
-  if(!is_permutation(get_nof_vertices(), perm))
+  if(!is_permutation(get_nof_vertices(), perm)) {
     _INTERNAL_ERROR();
+    return -1;
+  }
 #endif
 
   for(unsigned int i = 0; i < get_nof_vertices(); i++)
@@ -5298,10 +5309,10 @@
        edges2.insert(*ei);
 
       if(!(edges1 == edges2))
-       return false;
+       return 0;
     }
 
-  return true;
+  return 1;
 }
 
 
@@ -5444,7 +5455,7 @@
   component.clear();
   component_elements = 0;
   sh_return = 0;
-  unsigned int sh_first  = 0;
+  unsigned int sh_first  = 1 << 31;
   unsigned int sh_size   = 0;
   unsigned int sh_nuconn = 0;
 
diff -Naur bliss-0.72.orig/graph.hh bliss-0.72/graph.hh
--- bliss-0.72.orig/graph.hh    2013-04-28 14:35:20.582085167 -0600
+++ bliss-0.72/graph.hh 2013-04-28 14:37:16.162501050 -0600
@@ -109,9 +109,12 @@
   unsigned long int get_max_level() const {return max_level;}
 };
 
-
-
-
+typedef struct {
+  unsigned int splitting_element;
+  unsigned int certificate_index;
+  unsigned int subcertificate_length;
+  UintSeqHash eqref_hash;
+} PathInfo;
 
 
 /**
@@ -270,7 +273,7 @@
   void reset_permutation(unsigned int *perm);
 
   /* Mainly for debugging purposes */
-  virtual bool is_automorphism(unsigned int* const perm);
+  virtual int is_automorphism(unsigned int* const perm) = 0;
 
   std::vector<unsigned int> certificate_current_path;
   std::vector<unsigned int> certificate_first_path;
@@ -284,7 +287,11 @@
   virtual Partition::Cell* find_next_cell_to_be_splitted(Partition::Cell 
*cell) = 0;
 
 
-  void search(const bool canonical, Stats &stats);
+  /**
+   * \return true if successful, false if insufficient memory to complete or
+   * other internal error
+   */
+  bool search(const bool canonical, Stats &stats);
 
 
   void (*report_hook)(void *user_param,
@@ -351,7 +358,7 @@
    */
   unsigned int cr_component_elements;
 
-
+  std::vector<PathInfo> first_path_info;
 
 
 public:
@@ -362,7 +369,7 @@
    * Check whether \a perm is an automorphism of this graph.
    * Unoptimized, mainly for debugging purposes.
    */
-  virtual bool is_automorphism(const std::vector<unsigned int>& perm) const;
+  virtual bool is_automorphism(const std::vector<unsigned int>& perm) const = 
0;
 
 
 
@@ -427,8 +434,10 @@
    * if you want to use the automorphism later, you have to take a copy of it.
    * Do not call any member functions in the hook.
    * The search statistics are copied in \a stats.
+   * \return true if successful, false if insufficient memory to search or
+   * other internal error.
    */
-  void find_automorphisms(Stats& stats,
+  bool find_automorphisms(Stats& stats,
                          void (*hook)(void* user_param,
                                       unsigned int n,
                                       const unsigned int* aut),
@@ -448,6 +457,8 @@
    * Note that the computed canonical version may depend on the applied version
    * of bliss as well as on some other options (for instance, the splitting
    * heuristic selected with bliss::Graph::set_splitting_heuristic()).
+   * This function returns NULL if there is insufficient memory, or another
+   * internal error occurs.
    */
   const unsigned int* canonical_form(Stats& stats,
                                     void (*hook)(void* user_param,
@@ -500,6 +511,10 @@
     opt_use_long_prune = active;
   }
 
+  /**
+   * Get an information vector about the first path.
+   */
+  std::vector<PathInfo> get_first_path_info() { return first_path_info; }
 };
 
 
@@ -615,7 +630,7 @@
 
   void initialize_certificate();
   
-  bool is_automorphism(unsigned int* const perm);
+  int is_automorphism(unsigned int* const perm);
 
 
   bool nucr_find_first_component(const unsigned int level);
@@ -856,7 +871,7 @@
 
   void initialize_certificate();
 
-  bool is_automorphism(unsigned int* const perm);
+  int is_automorphism(unsigned int* const perm);
 
   void sort_edges();
 



1.1                  sci-libs/bliss/files/bliss-0.72-autotools.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-libs/bliss/files/bliss-0.72-autotools.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-libs/bliss/files/bliss-0.72-autotools.patch?rev=1.1&content-type=text/plain

Index: bliss-0.72-autotools.patch
===================================================================
Replace simple Makefile by autotools
- allow shared library
- parallel build
- added pkg-config support

Author: Christoph Junghans <ott...@gentoo.org>

diff -Naur bliss-0.72-fedora/config/.dummy bliss-0.72/config/.dummy
--- bliss-0.72-fedora/config/.dummy     1969-12-31 17:00:00.000000000 -0700
+++ bliss-0.72/config/.dummy    2013-04-28 14:43:06.143760368 -0600
@@ -0,0 +1 @@
+Dummy file to make patch create config dir, which is needed for autotools
diff -Naur bliss-0.72-fedora/configure.ac bliss-0.72/configure.ac
--- bliss-0.72-fedora/configure.ac      1969-12-31 17:00:00.000000000 -0700
+++ bliss-0.72/configure.ac     2013-04-28 14:40:42.283242722 -0600
@@ -0,0 +1,31 @@
+AC_PREREQ([2.65])
+AC_INIT([bliss], [0.72], [tommi.junt...@kk.fi])
+
+AC_CONFIG_AUX_DIR(config)
+AC_CONFIG_MACRO_DIR(config)
+
+AM_INIT_AUTOMAKE([1.8 foreign])
+
+SHARED_VERSION_INFO="1:0:0"
+AC_SUBST(SHARED_VERSION_INFO)
+
+# Checks for programs.
+AC_PROG_CXX
+
+LT_INIT
+# Checks for libraries.
+AC_ARG_WITH([gmp],
+  [AS_HELP_STRING([--with-gmp], [enable support for GNU Multiple Precision 
Arithmetic Library @<:@default=check@:>@])],
+  [], [with_readline=no])
+AS_IF([test "x$with_readline" != xno],
+  [AC_CHECK_HEADERS([gmp.h],,AC_MSG_ERROR([Cannot find gmp.h header]))
+    AC_CHECK_LIB([gmp],_init,,AC_MSG_ERROR([Cannot find gmp library]))
+    AC_SUBST([GMP],[-lgmp])
+    [CPPFLAGS="$CPPFLAGS -DBLISS_USE_GMP"]])
+
+AC_CHECK_PROG(DOXYGEN,doxygen,doxygen,no)
+AM_CONDITIONAL(HAVE_DOXYGEN,[test .$DOXYGEN != .no])
+
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([bliss.pc])
+AC_OUTPUT
diff -Naur bliss-0.72-fedora/bliss.pc.in bliss-0.72/bliss.pc.in
--- bliss-0.72-fedora/bliss.pc.in       1969-12-31 17:00:00.000000000 -0700
+++ bliss-0.72/bliss.pc.in      2013-04-28 14:40:54.223285686 -0600
@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: bliss
+Description: Library for Computing Automorphism Groups and Canonical Labelings 
of Graphs 
+URL: http://www.tcs.hut.fi/Software/bliss/index.shtml
+Version: @VERSION@
+Requires: 
+Libs: -L${libdir} -lbliss @GMP@
+Libs.private: -lm
+Cflags: -I${includedir}
diff -Naur bliss-0.72-fedora/Makefile bliss-0.72/Makefile
--- bliss-0.72-fedora/Makefile  2013-04-28 14:40:10.543128514 -0600
+++ bliss-0.72/Makefile 1969-12-31 17:00:00.000000000 -0700
@@ -1,57 +0,0 @@
-CFLAGS = -I.
-CFLAGS += -g
-#CFLAGS += -pg
-CFLAGS += -Wall
-CFLAGS += --pedantic
-CFLAGS += -O9
-#CFLAGS += -DBLISS_DEBUG
-CFLAGS += -fPIC
-
-SRCS = defs.cc graph.cc partition.cc orbit.cc uintseqhash.cc heap.cc
-SRCS += timer.cc utils.cc bliss_C.cc
-
-OBJS = $(addsuffix .o, $(basename $(SRCS)))
-
-GMPOBJS = $(addsuffix g,  $(OBJS))
-
-LIB =
-#LIB += /usr/lib/ccmalloc.o -ldl
-
-CC = g++
-RANLIB = ranlib
-AR = ar
-BLISSLIB = libbliss.a
-
-gmp:   LIB += -lgmp
-gmp:   CFLAGS += -DBLISS_USE_GMP
-
-normal:        bliss
-gmp:   bliss_gmp
-
-
-all:: lib bliss
-
-%.o %.og:      %.cc
-       $(CC) $(CFLAGS) -c -o $@ $<
-
-lib: $(OBJS)
-       rm -f $(BLISSLIB)
-       $(AR) cr $(BLISSLIB) $(OBJS)
-       $(RANLIB) $(BLISSLIB)
-
-lib_gmp: $(GMPOBJS)
-       rm -f $(BLISSLIB)
-       $(AR) cr $(BLISSLIB) $(GMPOBJS)
-       $(RANLIB) $(BLISSLIB)
-
-bliss: bliss.o lib $(OBJS)
-       $(CC) $(CFLAGS) -o bliss bliss.o $(OBJS) $(LIB)
-
-bliss_gmp: bliss.og lib_gmp $(GMPOBJS)
-       $(CC) $(CFLAGS) -o bliss bliss.og $(GMPOBJS) $(LIB)
-
-
-clean:
-       rm -f bliss $(BLISSLIB) $(OBJS) bliss.o $(GMPOBJS) bliss.og
-
-# DO NOT DELETE
diff -Naur bliss-0.72-fedora/Makefile.am bliss-0.72/Makefile.am
--- bliss-0.72-fedora/Makefile.am       1969-12-31 17:00:00.000000000 -0700
+++ bliss-0.72/Makefile.am      2013-04-28 14:47:26.944698789 -0600
@@ -0,0 +1,30 @@
+ACLOCAL_AMFLAGS = -I config
+
+lib_LTLIBRARIES = libbliss.la
+
+libbliss_la_LDFLAGS = -no-undefined -version-info @SHARED_VERSION_INFO@
+libbliss_la_SOURCES = \
+       defs.cc graph.cc partition.cc orbit.cc uintseqhash.cc heap.cc \
+       timer.cc utils.cc bliss_C.cc
+
+pkginclude_HEADERS = \
+       bignum.hh bliss_C.h defs.hh graph.hh heap.hh kqueue.hh kstack.hh \
+       orbit.hh partition.hh timer.hh uintseqhash.hh utils.hh
+
+bin_PROGRAMS = bliss
+bliss_SOURCES = bliss.cc
+bliss_LDADD = libbliss.la
+dist_man1_MANS = bliss.1
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = bliss.pc
+
+html-local: Doxyfile
+if HAVE_DOXYGEN
+       $(DOXYGEN) $(srcdir)/Doxyfile
+else
+       @echo "doxygen was not found, please re-run configure"
+endif
+
+clean-local:
+       -rm -rf html




Reply via email to