David,
   Attached are the 4ti2.info and 4ti2.patch files which allow 4ti2
to build against clang (at least from Xcode 4.5). I've also added them
to a fink tracker entry at...

https://sourceforge.net/tracker/?func=detail&aid=3571942&group_id=17203&atid=414256

The 4ti2-1.3.2-102 packaging also adds the missing InfoTest which confirms
that clang builds a fully functional copy of 4ti2. Thanks in advance for
eliminating this last remaining dependency on llvm-gcc in sci.
         Jack
Package: 4ti2
Version: 1.3.2
Revision: 102
BuildDepends: gmp5 (>= 5.0.2-1), glpk-dev (>= 4.44-1)
Depends: gmp5-shlibs (>= 5.0.2-1), libgmpxx5-shlibs (>= 5.0.2-1), glpk-shlibs 
(>= 4.44-1)
Source: http://4ti2.de/version_%v/4ti2-%v.tar.gz
Source-MD5: 93367e63944d8bb18192c4984544ed0d
PatchFile: %n.patch
PatchFile-MD5: 1bdba6baffb3a5c0b76dc853dd4c5117 
License: GPL2+
GCC: 4.0
DocFiles: COPYING NEWS README TODO
InfoTest: TestScript: make check || :
SplitOff: <<
 Package: %N-dev
 Conflicts: %N (<= 1.3.2-1), libecat
 Replaces: %N (<= 1.3.2-1), libecat
 Files: include lib
 DocFiles: COPYING NEWS README TODO
<<
Maintainer: Dave Morrison <d...@finkproject.org>
Description: Software for algebra, geometry, combinatorics
DescDetail: <<
 4ti2 -- A software package for algebraic, geometric, and combinatorial
 problems on linear spaces.

 Documentation at http://www.4ti2.de/
<<
DescPackaging: <<
 For the moment, we do not build shared libraries (although this could easily
 be done with "ConfigureParams: --enable-shared") because upstream does not
 appear to be versioning them.  If they ever become needed for something
 else, this package could be modified appropriately, creating a -shlibs
 splitoff.

 As of rev. 2, we do create a -dev splitoff, so that conflicts between
 4ti2's include files and those of other packages can be easily resolved.
<<
diff -uNr 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp 
4ti2-1.3.2.clang/src/groebner/CircuitMatrixAlgorithm.tpp
--- 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp  2008-11-14 
21:08:37.000000000 -0500
+++ 4ti2-1.3.2.clang/src/groebner/CircuitMatrixAlgorithm.tpp    2012-09-26 
10:08:32.000000000 -0400
@@ -152,23 +152,23 @@
         )
 
         // Find the next column.
-        Index next_col = next_column(vs, remaining);
+        Index next_col = this->next_column(vs, remaining);
 
         int start = 0; int end = vs.get_number(); int middle;
         // We sort the vectors into nonzeros and then zeros.
-        sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, 
next_col, middle);
+        this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, 
next_col, middle);
         int nonzero_start = start, nonzero_end = middle;
         //int zero_start = middle, zero_end = end;
         // We sort the nonzeros into rays and circuits.
-        sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, 
neg_supps, middle);
+        this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, 
pos_supps, neg_supps, middle);
         int ray_start = nonzero_start, ray_end = middle;
         int cir_start = middle, cir_end = nonzero_end;
         // We sort the rays into positives and then negatives.
-        sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, 
next_col, middle);
+        this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, 
neg_supps, next_col, middle);
         int pos_ray_start = ray_start, pos_ray_end = middle;
         int neg_ray_start = middle, neg_ray_end = ray_end;
         // We sort the circuits into positives and then negatives.
-        sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, 
next_col, middle);
+        this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, 
neg_supps, next_col, middle);
         int pos_cir_start = cir_start, pos_cir_end = middle;
         int neg_cir_start = middle, neg_cir_end = cir_end;
 
@@ -185,8 +185,8 @@
 
         // Switch the positive and negative supports, so that it is as if all
         // vectors have a positive entry in the next column.
-        switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
-        switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
+        this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, 
neg_supps);
+        this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, 
neg_supps);
 
         matrix = orig_matrix;
         int remaining_row = upper_triangle(matrix, remaining, 0);
@@ -212,15 +212,15 @@
         rays.insert(rays.end(), vs.get_number()-previous_size, false);
 
         // Switch back the positive and negative supports.
-        switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
-        switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
+        this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, 
neg_supps);
+        this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, 
neg_supps);
 
         // Update the supp vectors for the next_col.
-        update_supports(supps, next_col, nonzero_start, nonzero_end);
-        update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end);
-        update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end);
-        update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end);
-        update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end);
+        this->update_supports(supps, next_col, nonzero_start, nonzero_end);
+        this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end);
+        this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end);
+        this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end);
+        this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end);
 
         *out << "\r";
         *out << "  Left = " << std::setw(3) << num_remaining;
diff -uNr 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp 
4ti2-1.3.2.clang/src/groebner/CircuitSupportAlgorithm.tpp
--- 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp 2008-11-14 
21:08:37.000000000 -0500
+++ 4ti2-1.3.2.clang/src/groebner/CircuitSupportAlgorithm.tpp   2012-09-26 
10:08:32.000000000 -0400
@@ -188,23 +188,23 @@
         )
  
         // Find the next column.
-        Index next_col = next_column(vs, remaining);
+        Index next_col = this->next_column(vs, remaining);
 
         int start = 0; int end = vs.get_number(); int middle;
         // We sort the vectors into nonzeros and then zeros.
-        sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, 
next_col, middle);
+        this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, 
next_col, middle);
         int nonzero_start = start, nonzero_end = middle;
         //int zero_start = middle, zero_end = end;
         // We sort the nonzeros into rays and circuits.
-        sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, 
neg_supps, middle);
+        this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, 
pos_supps, neg_supps, middle);
         int ray_start = nonzero_start, ray_end = middle;
         int cir_start = middle, cir_end = nonzero_end;
         // We sort the rays into positives and then negatives.
-        sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, 
next_col, middle);
+        this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, 
neg_supps, next_col, middle);
         int pos_ray_start = ray_start, pos_ray_end = middle;
         int neg_ray_start = middle, neg_ray_end = ray_end;
         // We sort the circuits into positives and the negatives.
-        sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, 
next_col, middle);
+        this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, 
neg_supps, next_col, middle);
         int pos_cir_start = cir_start, pos_cir_end = middle;
         int neg_cir_start = middle, neg_cir_end = cir_end;
 
@@ -233,8 +233,8 @@
 
         // Switch the positive and negative supports, so that it is as if all
         // vectors have a positive entry in the next column.
-        switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
-        switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
+        this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, 
neg_supps);
+        this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, 
neg_supps);
 
         //DEBUG_4ti2(*out << "Remaining row " << remaining_row << "\n";)
         int previous_size = vs.get_number();
@@ -258,19 +258,19 @@
         rays.insert(rays.end(), vs.get_number()-previous_size, false);
 
         // Switch back the positive and negative supports.
-        switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
-        switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
+        this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, 
neg_supps);
+        this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, 
neg_supps);
 
         // Update the supp vectors for the next_col.
-        update_supports(supps, next_col, nonzero_start, nonzero_end);
-        update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end);
-        update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end);
-        update_supports(pos_supps, col_map[next_col], neg_ray_start, 
neg_ray_end);
-        update_supports(pos_supps, col_map[next_col], neg_cir_start, 
neg_cir_end);
-        update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end);
-        update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end);
-        update_supports(neg_supps, col_map[next_col], pos_ray_start, 
pos_ray_end);
-        update_supports(neg_supps, col_map[next_col], pos_cir_start, 
pos_cir_end);
+        this->update_supports(supps, next_col, nonzero_start, nonzero_end);
+        this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end);
+        this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end);
+        this->update_supports(pos_supps, col_map[next_col], neg_ray_start, 
neg_ray_end);
+        this->update_supports(pos_supps, col_map[next_col], neg_cir_start, 
neg_cir_end);
+        this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end);
+        this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end);
+        this->update_supports(neg_supps, col_map[next_col], pos_ray_start, 
pos_ray_end);
+        this->update_supports(neg_supps, col_map[next_col], pos_cir_start, 
pos_cir_end);
 
         *out << "\r";
         *out << "  Left = " << std::setw(3) << num_remaining;
diff -uNr 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp 
4ti2-1.3.2.clang/src/groebner/RayMatrixAlgorithm.tpp
--- 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp      2008-11-14 
21:08:37.000000000 -0500
+++ 4ti2-1.3.2.clang/src/groebner/RayMatrixAlgorithm.tpp        2012-09-26 
10:08:32.000000000 -0400
@@ -865,7 +865,7 @@
         DEBUG_4ti2(unsigned long long int num_checks = 0;)
         // Find the next column.
         int next_positive_count, next_negative_count, next_zero_count;
-        Index next_col = next_column(vs, remaining,
+        Index next_col = this->next_column(vs, remaining,
                                         next_positive_count,
                                         next_negative_count,
                                         next_zero_count);
@@ -880,7 +880,7 @@
         )
 
         // We sort the vectors into zeros, positives, then negatives.
-        sort(vs, supports, next_col, next_zero_count, next_positive_count,
+        this->sort(vs, supports, next_col, next_zero_count, 
next_positive_count,
                         next_negative_count);
 
         DEBUG_4ti2(*out << "Rays:\n" << vs << "\n";)
@@ -944,7 +944,7 @@
                     IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
                     if (temp_diff.power_of_2())
                     {
-                        create_new_vector(vs, supports, r1, r2, next_col,
+                        this->create_new_vector(vs, supports, r1, r2, next_col,
                                             next_positive_count, 
next_negative_count,
                                             temp, temp_supp);
                         DEBUG_4ti2(++num_one_diff_added;)
@@ -959,7 +959,7 @@
                     IndexSet::set_difference(r1_supp, supports[r2], temp_diff);
                     if (temp_diff.power_of_2())
                     {
-                        create_new_vector(vs, supports, r1, r2, next_col,
+                        this->create_new_vector(vs, supports, r1, r2, next_col,
                                             next_positive_count, 
next_negative_count,
                                             temp, temp_supp);
                         DEBUG_4ti2(++num_one_diff_added;)
@@ -984,7 +984,7 @@
                             IndexSet::set_difference(r1_supp, supports[r2], 
temp_diff2);
                             if (temp_diff2.power_of_2())
                             {
-                                create_new_vector(vs, supports, r1, r2, 
next_col,
+                                this->create_new_vector(vs, supports, r1, r2, 
next_col,
                                     next_positive_count, next_negative_count,
                                     temp, temp_supp);
                                 DEBUG_4ti2(++num_one_diff_added;)
@@ -996,7 +996,7 @@
                             DEBUG_4ti2(++num_checks;)
                             if (rank_check(matrix, temp_matrix, temp_diff, 
r1_rows))
                             {
-                                create_new_vector(vs, supports, r1, r2, 
next_col,
+                                this->create_new_vector(vs, supports, r1, r2, 
next_col,
                                                 next_positive_count, 
next_negative_count,
                                                 temp, temp_supp);
                                 DEBUG_4ti2(++num_added;)
@@ -1012,7 +1012,7 @@
                         IndexSet::set_difference(supports[r2], r1_supp, 
temp_diff);
                         if (temp_diff.power_of_2())
                         {
-                            create_new_vector(vs, supports, r1, r2, next_col,
+                            this->create_new_vector(vs, supports, r1, r2, 
next_col,
                                 next_positive_count, next_negative_count,
                                 temp, temp_supp);
                             DEBUG_4ti2(++num_one_diff_added;)
diff -uNr 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp 
4ti2-1.3.2.clang/src/groebner/RaySupportAlgorithm.tpp
--- 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp     2008-11-14 
21:08:37.000000000 -0500
+++ 4ti2-1.3.2.clang/src/groebner/RaySupportAlgorithm.tpp       2012-09-26 
10:08:32.000000000 -0400
@@ -773,7 +773,7 @@
 
         // Find the next column.
         int next_positive_count, next_negative_count, next_zero_count;
-        Index next_col = next_column(vs, remaining,
+        Index next_col = this->next_column(vs, remaining,
                                         next_positive_count,
                                         next_negative_count,
                                         next_zero_count);
@@ -788,7 +788,7 @@
         )
 
         // We sort the vectors into zeros, positives, then negatives.
-        sort(vs, supports, next_col, next_zero_count, next_positive_count,
+        this->sort(vs, supports, next_col, next_zero_count, 
next_positive_count,
                         next_negative_count);
 
         int original_size = vs.get_number();
@@ -852,7 +852,7 @@
                     IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
                     if (temp_diff.power_of_2())
                     {
-                        create_new_vector(vs, supports, r1, r2, next_col,
+                        this->create_new_vector(vs, supports, r1, r2, next_col,
                                             next_positive_count, 
next_negative_count,
                                             temp, temp_supp);
                         DEBUG_4ti2(++num_added;)
@@ -866,7 +866,7 @@
                     IndexSet::set_difference(r1_supp, supports[r2], temp_diff);
                     if (temp_diff.power_of_2())
                     {
-                        create_new_vector(vs, supports, r1, r2, next_col,
+                        this->create_new_vector(vs, supports, r1, r2, next_col,
                                             next_positive_count, 
next_negative_count,
                                             temp, temp_supp);
                         DEBUG_4ti2(++num_one_diff_added;)
@@ -885,7 +885,7 @@
                     zero_supp.set_union(supports[index]);
                     if (index >= r2_index && index < r2_finish)
                     {
-                        create_new_vector(vs, supports, r1, index, next_col,
+                        this->create_new_vector(vs, supports, r1, index, 
next_col,
                             next_positive_count, next_negative_count,
                             temp, temp_supp);
                         DEBUG_4ti2(++num_added;)
@@ -905,7 +905,7 @@
                         IndexSet::set_difference(r1_supp, supports[r2], 
temp_diff2);
                         if (temp_diff2.power_of_2())
                         {
-                            create_new_vector(vs, supports, r1, r2, next_col,
+                            this->create_new_vector(vs, supports, r1, r2, 
next_col,
                                     next_positive_count, next_negative_count,
                                     temp, temp_supp);
                             DEBUG_4ti2(++num_one_diff_added;)
@@ -918,7 +918,7 @@
                         DEBUG_4ti2(++num_checks;)
                         if (!tree.dominated(temp_supp, r1, r2))
                         {
-                            create_new_vector(vs, supports, r1, r2, next_col,
+                            this->create_new_vector(vs, supports, r1, r2, 
next_col,
                                             next_positive_count, 
next_negative_count,
                                             temp, temp_supp);
                             DEBUG_4ti2(++num_added;)
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
List archive:
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to