gecoder-with-gecode 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +81 -0
- data/COPYING +17 -0
- data/LGPL-LICENSE +458 -0
- data/README +45 -0
- data/Rakefile +13 -0
- data/example/example_helper.rb +1 -0
- data/example/magic_sequence.rb +43 -0
- data/example/queens.rb +43 -0
- data/example/raw_bindings.rb +42 -0
- data/example/send_more_money.rb +43 -0
- data/example/send_most_money.rb +58 -0
- data/example/square_tiling.rb +84 -0
- data/example/sudoku-set.rb +110 -0
- data/example/sudoku.rb +61 -0
- data/ext/extconf.rb +29 -0
- data/ext/gecode-1.3.1/LICENSE +34 -0
- data/ext/gecode-1.3.1/Makefile.contribs +71 -0
- data/ext/gecode-1.3.1/Makefile.dep +3928 -0
- data/ext/gecode-1.3.1/Makefile.in +966 -0
- data/ext/gecode-1.3.1/changelog.in +1065 -0
- data/ext/gecode-1.3.1/configure +8590 -0
- data/ext/gecode-1.3.1/configure.ac +179 -0
- data/ext/gecode-1.3.1/configure.ac.in +175 -0
- data/ext/gecode-1.3.1/contribs/README +26 -0
- data/ext/gecode-1.3.1/contribs/graph/INSTALL +53 -0
- data/ext/gecode-1.3.1/contribs/graph/LICENSE +11 -0
- data/ext/gecode-1.3.1/contribs/graph/Makefile +167 -0
- data/ext/gecode-1.3.1/contribs/graph/Makefile.in.in +169 -0
- data/ext/gecode-1.3.1/contribs/graph/TODO +28 -0
- data/ext/gecode-1.3.1/contribs/graph/binarysimple.hh +82 -0
- data/ext/gecode-1.3.1/contribs/graph/binarysimple.icc +186 -0
- data/ext/gecode-1.3.1/contribs/graph/branch/branch.icc +257 -0
- data/ext/gecode-1.3.1/contribs/graph/configure +2160 -0
- data/ext/gecode-1.3.1/contribs/graph/configure.ac +33 -0
- data/ext/gecode-1.3.1/contribs/graph/doxygen.conf +1226 -0
- data/ext/gecode-1.3.1/contribs/graph/doxygen.hh +132 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-basic.cc +94 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-complement.cc +104 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-instUB.cc +105 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-path.cc +92 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-path2.cc +273 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-pathcost.cc +311 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/g1.txt +1 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/g2.txt +1 -0
- data/ext/gecode-1.3.1/contribs/graph/graph.hh +51 -0
- data/ext/gecode-1.3.1/contribs/graph/graphutils.h +46 -0
- data/ext/gecode-1.3.1/contribs/graph/graphutils.icc +140 -0
- data/ext/gecode-1.3.1/contribs/graph/misc/doxygen/footer.html +1 -0
- data/ext/gecode-1.3.1/contribs/graph/path.hh +116 -0
- data/ext/gecode-1.3.1/contribs/graph/path.icc +64 -0
- data/ext/gecode-1.3.1/contribs/graph/path/path.icc +139 -0
- data/ext/gecode-1.3.1/contribs/graph/path/pathdegree.icc +133 -0
- data/ext/gecode-1.3.1/contribs/graph/path/pathgraphs.icc +341 -0
- data/ext/gecode-1.3.1/contribs/graph/shortdesc.ac +1 -0
- data/ext/gecode-1.3.1/contribs/graph/stlutility.icc +105 -0
- data/ext/gecode-1.3.1/contribs/graph/var.icc +106 -0
- data/ext/gecode-1.3.1/contribs/graph/view.icc +373 -0
- data/ext/gecode-1.3.1/contribs/graph/view/arcnode.cc +162 -0
- data/ext/gecode-1.3.1/contribs/graph/view/arcnode.hh +78 -0
- data/ext/gecode-1.3.1/contribs/graph/view/boundsgraphs.icc +349 -0
- data/ext/gecode-1.3.1/contribs/graph/view/constant.icc +148 -0
- data/ext/gecode-1.3.1/contribs/graph/view/iter.icc +337 -0
- data/ext/gecode-1.3.1/contribs/graph/view/nodearcsets.icc +493 -0
- data/ext/gecode-1.3.1/contribs/graph/view/nodeset.icc +60 -0
- data/ext/gecode-1.3.1/contribs/graph/view/outadjsets.icc +600 -0
- data/ext/gecode-1.3.1/contribs/graph/view/prop.icc +135 -0
- data/ext/gecode-1.3.1/contribs/map/COMPILING +68 -0
- data/ext/gecode-1.3.1/contribs/map/LICENSE +11 -0
- data/ext/gecode-1.3.1/contribs/map/Makefile.in.in +173 -0
- data/ext/gecode-1.3.1/contribs/map/configure +2285 -0
- data/ext/gecode-1.3.1/contribs/map/configure.ac +32 -0
- data/ext/gecode-1.3.1/contribs/map/constraints.hh +46 -0
- data/ext/gecode-1.3.1/contribs/map/constraints.icc +84 -0
- data/ext/gecode-1.3.1/contribs/map/doxygen.conf +1229 -0
- data/ext/gecode-1.3.1/contribs/map/doxygen.hh +33 -0
- data/ext/gecode-1.3.1/contribs/map/examples/approximateMatching.cc +199 -0
- data/ext/gecode-1.3.1/contribs/map/examples/g1.txt +1 -0
- data/ext/gecode-1.3.1/contribs/map/examples/g2.txt +1 -0
- data/ext/gecode-1.3.1/contribs/map/examples/graph-examples.tgz +0 -0
- data/ext/gecode-1.3.1/contribs/map/examples/isomorphism.cc +148 -0
- data/ext/gecode-1.3.1/contribs/map/examples/map +0 -0
- data/ext/gecode-1.3.1/contribs/map/examples/map.cc +80 -0
- data/ext/gecode-1.3.1/contribs/map/examples/subgraphmonomorphism.cc +155 -0
- data/ext/gecode-1.3.1/contribs/map/map.hh +65 -0
- data/ext/gecode-1.3.1/contribs/map/matching/mono.hh +235 -0
- data/ext/gecode-1.3.1/contribs/map/matching/mono.icc +771 -0
- data/ext/gecode-1.3.1/contribs/map/shortdesc.ac +2 -0
- data/ext/gecode-1.3.1/contribs/map/var.icc +346 -0
- data/ext/gecode-1.3.1/contribs/map/var/imp.cc +42 -0
- data/ext/gecode-1.3.1/contribs/map/var/imp.icc +436 -0
- data/ext/gecode-1.3.1/doxygen.conf.in +1225 -0
- data/ext/gecode-1.3.1/doxygen.hh.in +877 -0
- data/ext/gecode-1.3.1/examples/all-interval-sort.cc +201 -0
- data/ext/gecode-1.3.1/examples/all-interval.cc +114 -0
- data/ext/gecode-1.3.1/examples/alpha.cc +112 -0
- data/ext/gecode-1.3.1/examples/baseline.cc +71 -0
- data/ext/gecode-1.3.1/examples/bibd.cc +173 -0
- data/ext/gecode-1.3.1/examples/black-hole.cc +281 -0
- data/ext/gecode-1.3.1/examples/cars.cc +165 -0
- data/ext/gecode-1.3.1/examples/crew.cc +220 -0
- data/ext/gecode-1.3.1/examples/crowded-chess.cc +312 -0
- data/ext/gecode-1.3.1/examples/donald.cc +93 -0
- data/ext/gecode-1.3.1/examples/eq20.cc +111 -0
- data/ext/gecode-1.3.1/examples/golf.cc +242 -0
- data/ext/gecode-1.3.1/examples/golomb.cc +141 -0
- data/ext/gecode-1.3.1/examples/graph-color.cc +371 -0
- data/ext/gecode-1.3.1/examples/grocery.cc +107 -0
- data/ext/gecode-1.3.1/examples/hamming.cc +107 -0
- data/ext/gecode-1.3.1/examples/ind-set.cc +130 -0
- data/ext/gecode-1.3.1/examples/knights.cc +146 -0
- data/ext/gecode-1.3.1/examples/langfordnum.cc +244 -0
- data/ext/gecode-1.3.1/examples/magic-sequence-gcc.cc +93 -0
- data/ext/gecode-1.3.1/examples/magic-sequence.cc +108 -0
- data/ext/gecode-1.3.1/examples/magic-square.cc +120 -0
- data/ext/gecode-1.3.1/examples/money.cc +92 -0
- data/ext/gecode-1.3.1/examples/ortho-latin.cc +156 -0
- data/ext/gecode-1.3.1/examples/packing.cc +211 -0
- data/ext/gecode-1.3.1/examples/partition.cc +126 -0
- data/ext/gecode-1.3.1/examples/photo.cc +155 -0
- data/ext/gecode-1.3.1/examples/picture-puzzle.cc +481 -0
- data/ext/gecode-1.3.1/examples/queen-armies.cc +240 -0
- data/ext/gecode-1.3.1/examples/queens.cc +99 -0
- data/ext/gecode-1.3.1/examples/sports-league.cc +454 -0
- data/ext/gecode-1.3.1/examples/steiner.cc +148 -0
- data/ext/gecode-1.3.1/examples/stress-domain.cc +86 -0
- data/ext/gecode-1.3.1/examples/stress-element.cc +95 -0
- data/ext/gecode-1.3.1/examples/stress-exec.cc +74 -0
- data/ext/gecode-1.3.1/examples/stress-min.cc +84 -0
- data/ext/gecode-1.3.1/examples/stress-search.cc +72 -0
- data/ext/gecode-1.3.1/examples/sudoku-mixed.cc +282 -0
- data/ext/gecode-1.3.1/examples/sudoku-set.cc +162 -0
- data/ext/gecode-1.3.1/examples/sudoku.cc +188 -0
- data/ext/gecode-1.3.1/examples/sudoku.icc +703 -0
- data/ext/gecode-1.3.1/examples/support.cc +160 -0
- data/ext/gecode-1.3.1/examples/support.hh +98 -0
- data/ext/gecode-1.3.1/examples/support.icc +187 -0
- data/ext/gecode-1.3.1/examples/timer.cc +47 -0
- data/ext/gecode-1.3.1/examples/timer.hh +72 -0
- data/ext/gecode-1.3.1/examples/warehouses.cc +176 -0
- data/ext/gecode-1.3.1/extconf.rb +8 -0
- data/ext/gecode-1.3.1/gecode.m4 +736 -0
- data/ext/gecode-1.3.1/gecode/config.icc.in +50 -0
- data/ext/gecode-1.3.1/gecode/int.hh +1426 -0
- data/ext/gecode-1.3.1/gecode/int/arithmetic.cc +87 -0
- data/ext/gecode-1.3.1/gecode/int/arithmetic.hh +292 -0
- data/ext/gecode-1.3.1/gecode/int/arithmetic/abs.icc +213 -0
- data/ext/gecode-1.3.1/gecode/int/arithmetic/max.icc +196 -0
- data/ext/gecode-1.3.1/gecode/int/arithmetic/mult.icc +478 -0
- data/ext/gecode-1.3.1/gecode/int/array.cc +61 -0
- data/ext/gecode-1.3.1/gecode/int/array.icc +264 -0
- data/ext/gecode-1.3.1/gecode/int/bool.cc +187 -0
- data/ext/gecode-1.3.1/gecode/int/bool.hh +255 -0
- data/ext/gecode-1.3.1/gecode/int/bool/base.icc +123 -0
- data/ext/gecode-1.3.1/gecode/int/bool/eq.icc +89 -0
- data/ext/gecode-1.3.1/gecode/int/bool/eqv.icc +132 -0
- data/ext/gecode-1.3.1/gecode/int/bool/or.icc +380 -0
- data/ext/gecode-1.3.1/gecode/int/branch.cc +81 -0
- data/ext/gecode-1.3.1/gecode/int/branch.hh +444 -0
- data/ext/gecode-1.3.1/gecode/int/branch/assign.cc +83 -0
- data/ext/gecode-1.3.1/gecode/int/branch/assign.icc +76 -0
- data/ext/gecode-1.3.1/gecode/int/branch/select-val.icc +104 -0
- data/ext/gecode-1.3.1/gecode/int/branch/select-view.icc +219 -0
- data/ext/gecode-1.3.1/gecode/int/channel.cc +62 -0
- data/ext/gecode-1.3.1/gecode/int/channel.hh +144 -0
- data/ext/gecode-1.3.1/gecode/int/channel/base.icc +60 -0
- data/ext/gecode-1.3.1/gecode/int/channel/dom.icc +313 -0
- data/ext/gecode-1.3.1/gecode/int/channel/stack.icc +59 -0
- data/ext/gecode-1.3.1/gecode/int/channel/val.icc +239 -0
- data/ext/gecode-1.3.1/gecode/int/count.cc +174 -0
- data/ext/gecode-1.3.1/gecode/int/count.hh +401 -0
- data/ext/gecode-1.3.1/gecode/int/count/int.icc +495 -0
- data/ext/gecode-1.3.1/gecode/int/count/rel.icc +100 -0
- data/ext/gecode-1.3.1/gecode/int/count/view.icc +332 -0
- data/ext/gecode-1.3.1/gecode/int/cumulatives.cc +210 -0
- data/ext/gecode-1.3.1/gecode/int/cumulatives.hh +118 -0
- data/ext/gecode-1.3.1/gecode/int/cumulatives/val.icc +377 -0
- data/ext/gecode-1.3.1/gecode/int/distinct.cc +77 -0
- data/ext/gecode-1.3.1/gecode/int/distinct.hh +272 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/bilink.icc +73 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/bnd.icc +335 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/combptr.icc +62 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/dom.icc +740 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/edge.icc +96 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/node.icc +107 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/ter-dom.icc +97 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/val.icc +171 -0
- data/ext/gecode-1.3.1/gecode/int/dom.cc +81 -0
- data/ext/gecode-1.3.1/gecode/int/dom.hh +101 -0
- data/ext/gecode-1.3.1/gecode/int/dom/range.icc +85 -0
- data/ext/gecode-1.3.1/gecode/int/dom/spec.icc +85 -0
- data/ext/gecode-1.3.1/gecode/int/element.cc +58 -0
- data/ext/gecode-1.3.1/gecode/int/element.hh +203 -0
- data/ext/gecode-1.3.1/gecode/int/element/int.icc +396 -0
- data/ext/gecode-1.3.1/gecode/int/element/view.icc +443 -0
- data/ext/gecode-1.3.1/gecode/int/exception.icc +137 -0
- data/ext/gecode-1.3.1/gecode/int/gcc.cc +708 -0
- data/ext/gecode-1.3.1/gecode/int/gcc.hh +338 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/bnd.icc +629 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/dom.icc +504 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/gccbndsup.icc +760 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/graphsup.icc +2375 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/lbc.icc +375 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/occur.icc +687 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/ubc.icc +236 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/val.icc +373 -0
- data/ext/gecode-1.3.1/gecode/int/int-set.cc +115 -0
- data/ext/gecode-1.3.1/gecode/int/int-set.icc +151 -0
- data/ext/gecode-1.3.1/gecode/int/linear.cc +247 -0
- data/ext/gecode-1.3.1/gecode/int/linear.hh +1056 -0
- data/ext/gecode-1.3.1/gecode/int/linear/binary.icc +439 -0
- data/ext/gecode-1.3.1/gecode/int/linear/bool-int.icc +422 -0
- data/ext/gecode-1.3.1/gecode/int/linear/bool-view.icc +311 -0
- data/ext/gecode-1.3.1/gecode/int/linear/dom.icc +503 -0
- data/ext/gecode-1.3.1/gecode/int/linear/nary.icc +857 -0
- data/ext/gecode-1.3.1/gecode/int/linear/noview.icc +264 -0
- data/ext/gecode-1.3.1/gecode/int/linear/post.cc +542 -0
- data/ext/gecode-1.3.1/gecode/int/linear/ternary.icc +255 -0
- data/ext/gecode-1.3.1/gecode/int/propagator.icc +194 -0
- data/ext/gecode-1.3.1/gecode/int/regular.cc +40 -0
- data/ext/gecode-1.3.1/gecode/int/regular.hh +83 -0
- data/ext/gecode-1.3.1/gecode/int/regular/dfa.cc +466 -0
- data/ext/gecode-1.3.1/gecode/int/regular/dfa.icc +172 -0
- data/ext/gecode-1.3.1/gecode/int/regular/dom.icc +480 -0
- data/ext/gecode-1.3.1/gecode/int/regular/reg.cc +738 -0
- data/ext/gecode-1.3.1/gecode/int/rel.cc +293 -0
- data/ext/gecode-1.3.1/gecode/int/rel.hh +526 -0
- data/ext/gecode-1.3.1/gecode/int/rel/eq.icc +640 -0
- data/ext/gecode-1.3.1/gecode/int/rel/lex.icc +212 -0
- data/ext/gecode-1.3.1/gecode/int/rel/lq-le.icc +246 -0
- data/ext/gecode-1.3.1/gecode/int/rel/nq.icc +188 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness.cc +124 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness.hh +108 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness/matching.icc +177 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness/narrowing.icc +243 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness/order.icc +232 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness/sortedness.icc +727 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness/sortsup.icc +666 -0
- data/ext/gecode-1.3.1/gecode/int/var-imp.vis +198 -0
- data/ext/gecode-1.3.1/gecode/int/var.icc +590 -0
- data/ext/gecode-1.3.1/gecode/int/var/bool.icc +52 -0
- data/ext/gecode-1.3.1/gecode/int/var/imp-body.icc +65 -0
- data/ext/gecode-1.3.1/gecode/int/var/imp-hdr.icc +191 -0
- data/ext/gecode-1.3.1/gecode/int/var/imp.cc +361 -0
- data/ext/gecode-1.3.1/gecode/int/var/imp.icc +579 -0
- data/ext/gecode-1.3.1/gecode/int/var/int.cc +63 -0
- data/ext/gecode-1.3.1/gecode/int/var/int.icc +135 -0
- data/ext/gecode-1.3.1/gecode/int/view.icc +1219 -0
- data/ext/gecode-1.3.1/gecode/int/view/bool.icc +270 -0
- data/ext/gecode-1.3.1/gecode/int/view/constint.icc +306 -0
- data/ext/gecode-1.3.1/gecode/int/view/int.icc +221 -0
- data/ext/gecode-1.3.1/gecode/int/view/iter.icc +49 -0
- data/ext/gecode-1.3.1/gecode/int/view/minus.icc +285 -0
- data/ext/gecode-1.3.1/gecode/int/view/offset.icc +274 -0
- data/ext/gecode-1.3.1/gecode/int/view/print.cc +109 -0
- data/ext/gecode-1.3.1/gecode/int/view/rtest.icc +215 -0
- data/ext/gecode-1.3.1/gecode/int/view/scale.icc +373 -0
- data/ext/gecode-1.3.1/gecode/iter.hh +65 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-add.icc +130 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-append.icc +208 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-array.icc +123 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-cache.icc +143 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-compl.icc +206 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-diff.icc +127 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-empty.icc +96 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-inter.icc +202 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-minmax.icc +103 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-minus.icc +138 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-offset.icc +112 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-operations.icc +142 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-scale.icc +224 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-singleton.icc +71 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-size.icc +131 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-union.icc +211 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-values.icc +125 -0
- data/ext/gecode-1.3.1/gecode/iter/values-ranges.icc +91 -0
- data/ext/gecode-1.3.1/gecode/iter/virtual-ranges-compl.icc +247 -0
- data/ext/gecode-1.3.1/gecode/iter/virtual-ranges-inter.icc +227 -0
- data/ext/gecode-1.3.1/gecode/iter/virtual-ranges-union.icc +236 -0
- data/ext/gecode-1.3.1/gecode/iter/virtual-ranges.icc +126 -0
- data/ext/gecode-1.3.1/gecode/kernel.hh +141 -0
- data/ext/gecode-1.3.1/gecode/kernel/array.icc +954 -0
- data/ext/gecode-1.3.1/gecode/kernel/branching.icc +233 -0
- data/ext/gecode-1.3.1/gecode/kernel/core.cc +417 -0
- data/ext/gecode-1.3.1/gecode/kernel/core.icc +1681 -0
- data/ext/gecode-1.3.1/gecode/kernel/exception.cc +49 -0
- data/ext/gecode-1.3.1/gecode/kernel/exception.icc +104 -0
- data/ext/gecode-1.3.1/gecode/kernel/macros.icc +98 -0
- data/ext/gecode-1.3.1/gecode/kernel/memory-manager.cc +41 -0
- data/ext/gecode-1.3.1/gecode/kernel/memory-manager.icc +438 -0
- data/ext/gecode-1.3.1/gecode/kernel/memory.icc +205 -0
- data/ext/gecode-1.3.1/gecode/kernel/modevent.icc +53 -0
- data/ext/gecode-1.3.1/gecode/kernel/propagator.icc +680 -0
- data/ext/gecode-1.3.1/gecode/kernel/view.icc +583 -0
- data/ext/gecode-1.3.1/gecode/limits.hh +87 -0
- data/ext/gecode-1.3.1/gecode/minimodel.hh +942 -0
- data/ext/gecode-1.3.1/gecode/minimodel/arithmetic.cc +137 -0
- data/ext/gecode-1.3.1/gecode/minimodel/bool-expr.cc +207 -0
- data/ext/gecode-1.3.1/gecode/minimodel/bool-expr.icc +191 -0
- data/ext/gecode-1.3.1/gecode/minimodel/bool-rel.icc +66 -0
- data/ext/gecode-1.3.1/gecode/minimodel/exception.icc +59 -0
- data/ext/gecode-1.3.1/gecode/minimodel/lin-expr.cc +103 -0
- data/ext/gecode-1.3.1/gecode/minimodel/lin-expr.icc +192 -0
- data/ext/gecode-1.3.1/gecode/minimodel/lin-rel.icc +200 -0
- data/ext/gecode-1.3.1/gecode/minimodel/matrix.icc +118 -0
- data/ext/gecode-1.3.1/gecode/minimodel/scheduling.cc +241 -0
- data/ext/gecode-1.3.1/gecode/search.hh +745 -0
- data/ext/gecode-1.3.1/gecode/search/bab.cc +153 -0
- data/ext/gecode-1.3.1/gecode/search/bab.icc +101 -0
- data/ext/gecode-1.3.1/gecode/search/dfs.cc +63 -0
- data/ext/gecode-1.3.1/gecode/search/dfs.icc +144 -0
- data/ext/gecode-1.3.1/gecode/search/engine-ctrl.icc +109 -0
- data/ext/gecode-1.3.1/gecode/search/lds.cc +237 -0
- data/ext/gecode-1.3.1/gecode/search/lds.icc +57 -0
- data/ext/gecode-1.3.1/gecode/search/reco-stack.icc +219 -0
- data/ext/gecode-1.3.1/gecode/search/restart.icc +76 -0
- data/ext/gecode-1.3.1/gecode/search/statistics.icc +30 -0
- data/ext/gecode-1.3.1/gecode/search/stop.cc +58 -0
- data/ext/gecode-1.3.1/gecode/search/stop.icc +100 -0
- data/ext/gecode-1.3.1/gecode/set.hh +419 -0
- data/ext/gecode-1.3.1/gecode/set/array.cc +114 -0
- data/ext/gecode-1.3.1/gecode/set/array.icc +134 -0
- data/ext/gecode-1.3.1/gecode/set/branch.cc +57 -0
- data/ext/gecode-1.3.1/gecode/set/branch.hh +176 -0
- data/ext/gecode-1.3.1/gecode/set/branch/select-val.icc +72 -0
- data/ext/gecode-1.3.1/gecode/set/branch/select-view.icc +112 -0
- data/ext/gecode-1.3.1/gecode/set/cardinality.cc +49 -0
- data/ext/gecode-1.3.1/gecode/set/convex.cc +43 -0
- data/ext/gecode-1.3.1/gecode/set/convex.hh +92 -0
- data/ext/gecode-1.3.1/gecode/set/convex/conv.cc +81 -0
- data/ext/gecode-1.3.1/gecode/set/convex/conv.icc +51 -0
- data/ext/gecode-1.3.1/gecode/set/convex/hull.cc +100 -0
- data/ext/gecode-1.3.1/gecode/set/convex/hull.icc +52 -0
- data/ext/gecode-1.3.1/gecode/set/distinct.cc +48 -0
- data/ext/gecode-1.3.1/gecode/set/distinct.hh +97 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/atmostOne.cc +151 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/atmostOne.icc +50 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/binomial.cc +46 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/binomial.icc +157 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/distinct.cc +124 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/distinct.icc +58 -0
- data/ext/gecode-1.3.1/gecode/set/dom.cc +224 -0
- data/ext/gecode-1.3.1/gecode/set/exception.icc +132 -0
- data/ext/gecode-1.3.1/gecode/set/int.cc +139 -0
- data/ext/gecode-1.3.1/gecode/set/int.hh +226 -0
- data/ext/gecode-1.3.1/gecode/set/int/card.cc +61 -0
- data/ext/gecode-1.3.1/gecode/set/int/card.icc +54 -0
- data/ext/gecode-1.3.1/gecode/set/int/channel.cc +100 -0
- data/ext/gecode-1.3.1/gecode/set/int/channel.icc +75 -0
- data/ext/gecode-1.3.1/gecode/set/int/match.cc +148 -0
- data/ext/gecode-1.3.1/gecode/set/int/match.icc +67 -0
- data/ext/gecode-1.3.1/gecode/set/int/minmax.cc +109 -0
- data/ext/gecode-1.3.1/gecode/set/int/minmax.icc +63 -0
- data/ext/gecode-1.3.1/gecode/set/int/weights.cc +182 -0
- data/ext/gecode-1.3.1/gecode/set/int/weights.icc +174 -0
- data/ext/gecode-1.3.1/gecode/set/projectors-compiler.hh +148 -0
- data/ext/gecode-1.3.1/gecode/set/projectors.cc +109 -0
- data/ext/gecode-1.3.1/gecode/set/projectors.hh +319 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/compiler.cc +841 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/projector-set.cc +69 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/projector-set.icc +66 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/projector.cc +125 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/projector.icc +79 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/propagator.hh +127 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/propagator/card.icc +96 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/propagator/nary.icc +106 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/propagator/re-nary.cc +76 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/propagator/re-nary.icc +53 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/set-expr.cc +306 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/set-expr.icc +192 -0
- data/ext/gecode-1.3.1/gecode/set/propagator.icc +96 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op-const.cc +233 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op.cc +96 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op.hh +267 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/common.icc +528 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/inter.icc +312 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/partition.icc +131 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/post.icc +198 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/subofunion.icc +150 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/superofinter.icc +151 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/union.icc +292 -0
- data/ext/gecode-1.3.1/gecode/set/rel.cc +201 -0
- data/ext/gecode-1.3.1/gecode/set/rel.hh +250 -0
- data/ext/gecode-1.3.1/gecode/set/rel/common.icc +109 -0
- data/ext/gecode-1.3.1/gecode/set/rel/eq.icc +101 -0
- data/ext/gecode-1.3.1/gecode/set/rel/nosubset.icc +88 -0
- data/ext/gecode-1.3.1/gecode/set/rel/nq.icc +132 -0
- data/ext/gecode-1.3.1/gecode/set/rel/re-eq.icc +142 -0
- data/ext/gecode-1.3.1/gecode/set/rel/re-subset.icc +121 -0
- data/ext/gecode-1.3.1/gecode/set/rel/subset.icc +80 -0
- data/ext/gecode-1.3.1/gecode/set/select.cc +88 -0
- data/ext/gecode-1.3.1/gecode/set/select.hh +113 -0
- data/ext/gecode-1.3.1/gecode/set/select/disjoint.cc +267 -0
- data/ext/gecode-1.3.1/gecode/set/select/disjoint.icc +59 -0
- data/ext/gecode-1.3.1/gecode/set/select/idxarray.hh +91 -0
- data/ext/gecode-1.3.1/gecode/set/select/idxarray.icc +112 -0
- data/ext/gecode-1.3.1/gecode/set/select/inter.icc +300 -0
- data/ext/gecode-1.3.1/gecode/set/sequence.cc +48 -0
- data/ext/gecode-1.3.1/gecode/set/sequence.hh +97 -0
- data/ext/gecode-1.3.1/gecode/set/sequence/common.icc +79 -0
- data/ext/gecode-1.3.1/gecode/set/sequence/seq-u.cc +83 -0
- data/ext/gecode-1.3.1/gecode/set/sequence/seq-u.icc +63 -0
- data/ext/gecode-1.3.1/gecode/set/sequence/seq.cc +61 -0
- data/ext/gecode-1.3.1/gecode/set/sequence/seq.icc +53 -0
- data/ext/gecode-1.3.1/gecode/set/var-imp.vis +205 -0
- data/ext/gecode-1.3.1/gecode/set/var.icc +1090 -0
- data/ext/gecode-1.3.1/gecode/set/var/imp-body.icc +192 -0
- data/ext/gecode-1.3.1/gecode/set/var/imp-hdr.icc +235 -0
- data/ext/gecode-1.3.1/gecode/set/var/imp.cc +127 -0
- data/ext/gecode-1.3.1/gecode/set/var/imp.icc +356 -0
- data/ext/gecode-1.3.1/gecode/set/var/integerset.cc +256 -0
- data/ext/gecode-1.3.1/gecode/set/var/integerset.icc +512 -0
- data/ext/gecode-1.3.1/gecode/set/var/iter.icc +47 -0
- data/ext/gecode-1.3.1/gecode/set/var/set.cc +99 -0
- data/ext/gecode-1.3.1/gecode/set/var/set.icc +282 -0
- data/ext/gecode-1.3.1/gecode/set/view.icc +1075 -0
- data/ext/gecode-1.3.1/gecode/set/view/complement.icc +525 -0
- data/ext/gecode-1.3.1/gecode/set/view/const.icc +651 -0
- data/ext/gecode-1.3.1/gecode/set/view/print.cc +120 -0
- data/ext/gecode-1.3.1/gecode/set/view/set.icc +217 -0
- data/ext/gecode-1.3.1/gecode/set/view/singleton.icc +348 -0
- data/ext/gecode-1.3.1/gecode/support/block-allocator.hh +152 -0
- data/ext/gecode-1.3.1/gecode/support/dynamic-array.hh +131 -0
- data/ext/gecode-1.3.1/gecode/support/dynamic-stack.hh +157 -0
- data/ext/gecode-1.3.1/gecode/support/random.hh +100 -0
- data/ext/gecode-1.3.1/gecode/support/shared-array.hh +255 -0
- data/ext/gecode-1.3.1/gecode/support/sort.hh +193 -0
- data/ext/gecode-1.3.1/gecode/support/static-pqueue.hh +240 -0
- data/ext/gecode-1.3.1/gecode/support/static-stack.hh +117 -0
- data/ext/gecode-1.3.1/install-sh +323 -0
- data/ext/gecode-1.3.1/misc/debian/Makefile.am +8 -0
- data/ext/gecode-1.3.1/misc/debian/changelog +6 -0
- data/ext/gecode-1.3.1/misc/debian/control +11 -0
- data/ext/gecode-1.3.1/misc/debian/copyright +44 -0
- data/ext/gecode-1.3.1/misc/debian/gecode.info +9 -0
- data/ext/gecode-1.3.1/misc/debian/gecode.install +2 -0
- data/ext/gecode-1.3.1/misc/debian/gecode.spec +58 -0
- data/ext/gecode-1.3.1/misc/debian/rules +81 -0
- data/ext/gecode-1.3.1/misc/doxygen/back.png +0 -0
- data/ext/gecode-1.3.1/misc/doxygen/footer.html +3 -0
- data/ext/gecode-1.3.1/misc/doxygen/gecode-logo-100.png +0 -0
- data/ext/gecode-1.3.1/misc/doxygen/header.html +46 -0
- data/ext/gecode-1.3.1/misc/doxygen/stylesheet.css +460 -0
- data/ext/gecode-1.3.1/misc/fixproperties.sh +32 -0
- data/ext/gecode-1.3.1/misc/gecode-minimodel.pc.in +12 -0
- data/ext/gecode-1.3.1/misc/gecode-search.pc.in +12 -0
- data/ext/gecode-1.3.1/misc/gecode.pc.in +12 -0
- data/ext/gecode-1.3.1/misc/genchangelog.perl +190 -0
- data/ext/gecode-1.3.1/misc/genlicense.perl +113 -0
- data/ext/gecode-1.3.1/misc/genstatistics.perl +155 -0
- data/ext/gecode-1.3.1/misc/gentxtchangelog.perl +170 -0
- data/ext/gecode-1.3.1/misc/genvarimp.perl +666 -0
- data/ext/gecode-1.3.1/misc/getrevision.perl +32 -0
- data/ext/gecode-1.3.1/misc/makedepend.perl +66 -0
- data/ext/gecode-1.3.1/test/int.cc +497 -0
- data/ext/gecode-1.3.1/test/int.hh +119 -0
- data/ext/gecode-1.3.1/test/int/arithmetic.cc +262 -0
- data/ext/gecode-1.3.1/test/int/basic.cc +42 -0
- data/ext/gecode-1.3.1/test/int/bool.cc +189 -0
- data/ext/gecode-1.3.1/test/int/channel.cc +79 -0
- data/ext/gecode-1.3.1/test/int/count.cc +264 -0
- data/ext/gecode-1.3.1/test/int/distinct.cc +121 -0
- data/ext/gecode-1.3.1/test/int/dom.cc +69 -0
- data/ext/gecode-1.3.1/test/int/element.cc +132 -0
- data/ext/gecode-1.3.1/test/int/gcc.cc +592 -0
- data/ext/gecode-1.3.1/test/int/linear.cc +315 -0
- data/ext/gecode-1.3.1/test/int/minimodel.cc +451 -0
- data/ext/gecode-1.3.1/test/int/regular.cc +105 -0
- data/ext/gecode-1.3.1/test/int/rel.cc +283 -0
- data/ext/gecode-1.3.1/test/int/scheduling.cc +259 -0
- data/ext/gecode-1.3.1/test/int/sortedness.cc +272 -0
- data/ext/gecode-1.3.1/test/intset.cc +40 -0
- data/ext/gecode-1.3.1/test/log.cc +515 -0
- data/ext/gecode-1.3.1/test/log.hh +68 -0
- data/ext/gecode-1.3.1/test/set.cc +542 -0
- data/ext/gecode-1.3.1/test/set.hh +152 -0
- data/ext/gecode-1.3.1/test/set/convex.cc +94 -0
- data/ext/gecode-1.3.1/test/set/distinct.cc +148 -0
- data/ext/gecode-1.3.1/test/set/dom.cc +67 -0
- data/ext/gecode-1.3.1/test/set/int.cc +249 -0
- data/ext/gecode-1.3.1/test/set/projection.cc +333 -0
- data/ext/gecode-1.3.1/test/set/rel-op.cc +662 -0
- data/ext/gecode-1.3.1/test/set/rel.cc +198 -0
- data/ext/gecode-1.3.1/test/set/select.cc +108 -0
- data/ext/gecode-1.3.1/test/set/sequence.cc +83 -0
- data/ext/gecode-1.3.1/test/stress.cc +93 -0
- data/ext/gecode-1.3.1/test/stress.hh +74 -0
- data/ext/gecode-1.3.1/test/stress/distinct.cc +70 -0
- data/ext/gecode-1.3.1/test/stress/domain.cc +69 -0
- data/ext/gecode-1.3.1/test/stress/exec.cc +60 -0
- data/ext/gecode-1.3.1/test/stress/minsort.cc +63 -0
- data/ext/gecode-1.3.1/test/stress/regular.cc +112 -0
- data/ext/gecode-1.3.1/test/test.cc +215 -0
- data/ext/gecode-1.3.1/test/test.hh +107 -0
- data/ext/missing.cpp +328 -0
- data/ext/missing.h +120 -0
- data/ext/vararray.cpp +330 -0
- data/ext/vararray.h +149 -0
- data/lib/gecoder.rb +5 -0
- data/lib/gecoder/bindings.rb +34 -0
- data/lib/gecoder/bindings/bindings.rb +2209 -0
- data/lib/gecoder/interface.rb +8 -0
- data/lib/gecoder/interface/binding_changes.rb +313 -0
- data/lib/gecoder/interface/branch.rb +152 -0
- data/lib/gecoder/interface/constraints.rb +397 -0
- data/lib/gecoder/interface/constraints/bool/boolean.rb +246 -0
- data/lib/gecoder/interface/constraints/bool/linear.rb +29 -0
- data/lib/gecoder/interface/constraints/bool_enum/boolean.rb +84 -0
- data/lib/gecoder/interface/constraints/bool_enum_constraints.rb +8 -0
- data/lib/gecoder/interface/constraints/bool_var_constraints.rb +75 -0
- data/lib/gecoder/interface/constraints/int/arithmetic.rb +71 -0
- data/lib/gecoder/interface/constraints/int/domain.rb +78 -0
- data/lib/gecoder/interface/constraints/int/linear.rb +295 -0
- data/lib/gecoder/interface/constraints/int_enum/arithmetic.rb +72 -0
- data/lib/gecoder/interface/constraints/int_enum/channel.rb +100 -0
- data/lib/gecoder/interface/constraints/int_enum/count.rb +92 -0
- data/lib/gecoder/interface/constraints/int_enum/distinct.rb +69 -0
- data/lib/gecoder/interface/constraints/int_enum/element.rb +82 -0
- data/lib/gecoder/interface/constraints/int_enum/equality.rb +38 -0
- data/lib/gecoder/interface/constraints/int_enum/sort.rb +126 -0
- data/lib/gecoder/interface/constraints/int_enum_constraints.rb +37 -0
- data/lib/gecoder/interface/constraints/int_var_constraints.rb +58 -0
- data/lib/gecoder/interface/constraints/reifiable_constraints.rb +78 -0
- data/lib/gecoder/interface/constraints/set/cardinality.rb +75 -0
- data/lib/gecoder/interface/constraints/set/connection.rb +193 -0
- data/lib/gecoder/interface/constraints/set/domain.rb +109 -0
- data/lib/gecoder/interface/constraints/set/operation.rb +132 -0
- data/lib/gecoder/interface/constraints/set/relation.rb +178 -0
- data/lib/gecoder/interface/constraints/set_enum/channel.rb +18 -0
- data/lib/gecoder/interface/constraints/set_enum/distinct.rb +80 -0
- data/lib/gecoder/interface/constraints/set_enum/operation.rb +60 -0
- data/lib/gecoder/interface/constraints/set_enum/selection.rb +217 -0
- data/lib/gecoder/interface/constraints/set_enum_constraints.rb +34 -0
- data/lib/gecoder/interface/constraints/set_var_constraints.rb +72 -0
- data/lib/gecoder/interface/enum_matrix.rb +64 -0
- data/lib/gecoder/interface/enum_wrapper.rb +153 -0
- data/lib/gecoder/interface/model.rb +251 -0
- data/lib/gecoder/interface/search.rb +123 -0
- data/lib/gecoder/interface/variables.rb +254 -0
- data/lib/gecoder/version.rb +4 -0
- data/specs/binding_changes.rb +76 -0
- data/specs/bool_var.rb +74 -0
- data/specs/branch.rb +170 -0
- data/specs/constraints/arithmetic.rb +266 -0
- data/specs/constraints/bool_enum.rb +140 -0
- data/specs/constraints/boolean.rb +232 -0
- data/specs/constraints/cardinality.rb +154 -0
- data/specs/constraints/channel.rb +126 -0
- data/specs/constraints/connection.rb +373 -0
- data/specs/constraints/constraint_helper.rb +180 -0
- data/specs/constraints/constraints.rb +74 -0
- data/specs/constraints/count.rb +139 -0
- data/specs/constraints/distinct.rb +218 -0
- data/specs/constraints/element.rb +106 -0
- data/specs/constraints/equality.rb +31 -0
- data/specs/constraints/int_domain.rb +69 -0
- data/specs/constraints/int_relation.rb +78 -0
- data/specs/constraints/linear.rb +332 -0
- data/specs/constraints/reification_sugar.rb +96 -0
- data/specs/constraints/selection.rb +292 -0
- data/specs/constraints/set_domain.rb +181 -0
- data/specs/constraints/set_operation.rb +285 -0
- data/specs/constraints/set_relation.rb +201 -0
- data/specs/constraints/sort.rb +175 -0
- data/specs/enum_matrix.rb +43 -0
- data/specs/enum_wrapper.rb +122 -0
- data/specs/int_var.rb +144 -0
- data/specs/logging.rb +24 -0
- data/specs/model.rb +190 -0
- data/specs/search.rb +246 -0
- data/specs/set_var.rb +68 -0
- data/specs/spec_helper.rb +93 -0
- data/tasks/all_tasks.rb +1 -0
- data/tasks/distribution.rake +129 -0
- data/tasks/rcov.rake +17 -0
- data/tasks/specs.rake +15 -0
- data/tasks/svn.rake +11 -0
- data/tasks/website.rake +51 -0
- data/vendor/rust/README +28 -0
- data/vendor/rust/bin/cxxgenerator.rb +93 -0
- data/vendor/rust/include/rust_checks.hh +115 -0
- data/vendor/rust/include/rust_conversions.hh +102 -0
- data/vendor/rust/rust.rb +67 -0
- data/vendor/rust/rust/attribute.rb +51 -0
- data/vendor/rust/rust/bindings.rb +172 -0
- data/vendor/rust/rust/class.rb +339 -0
- data/vendor/rust/rust/constants.rb +48 -0
- data/vendor/rust/rust/container.rb +110 -0
- data/vendor/rust/rust/cppifaceparser.rb +129 -0
- data/vendor/rust/rust/cwrapper.rb +72 -0
- data/vendor/rust/rust/cxxclass.rb +98 -0
- data/vendor/rust/rust/element.rb +81 -0
- data/vendor/rust/rust/enum.rb +63 -0
- data/vendor/rust/rust/function.rb +407 -0
- data/vendor/rust/rust/namespace.rb +61 -0
- data/vendor/rust/rust/templates/AttributeDefinition.rusttpl +17 -0
- data/vendor/rust/rust/templates/AttributeInitBinding.rusttpl +9 -0
- data/vendor/rust/rust/templates/BindingsHeader.rusttpl +24 -0
- data/vendor/rust/rust/templates/BindingsUnit.rusttpl +46 -0
- data/vendor/rust/rust/templates/CWrapperClassDefinitions.rusttpl +64 -0
- data/vendor/rust/rust/templates/ClassDeclarations.rusttpl +7 -0
- data/vendor/rust/rust/templates/ClassInitialize.rusttpl +6 -0
- data/vendor/rust/rust/templates/ConstructorStub.rusttpl +21 -0
- data/vendor/rust/rust/templates/CxxClassDefinitions.rusttpl +91 -0
- data/vendor/rust/rust/templates/CxxMethodStub.rusttpl +12 -0
- data/vendor/rust/rust/templates/CxxStandaloneClassDefinitions.rusttpl +26 -0
- data/vendor/rust/rust/templates/EnumDeclarations.rusttpl +3 -0
- data/vendor/rust/rust/templates/EnumDefinitions.rusttpl +29 -0
- data/vendor/rust/rust/templates/FunctionDefinition.rusttpl +9 -0
- data/vendor/rust/rust/templates/FunctionInitAlias.rusttpl +5 -0
- data/vendor/rust/rust/templates/FunctionInitBinding.rusttpl +9 -0
- data/vendor/rust/rust/templates/MethodInitBinding.rusttpl +9 -0
- data/vendor/rust/rust/templates/ModuleDeclarations.rusttpl +3 -0
- data/vendor/rust/rust/templates/ModuleDefinitions.rusttpl +3 -0
- data/vendor/rust/rust/templates/StandaloneClassDeclarations.rusttpl +7 -0
- data/vendor/rust/rust/templates/VariableFunctionCall.rusttpl +14 -0
- data/vendor/rust/rust/type.rb +98 -0
- data/vendor/rust/test/Makefile +4 -0
- data/vendor/rust/test/constants.rb +36 -0
- data/vendor/rust/test/cppclass.cc +45 -0
- data/vendor/rust/test/cppclass.hh +67 -0
- data/vendor/rust/test/cppclass.rb +59 -0
- data/vendor/rust/test/cwrapper.c +74 -0
- data/vendor/rust/test/cwrapper.h +41 -0
- data/vendor/rust/test/cwrapper.rb +56 -0
- data/vendor/rust/test/dummyclass.hh +31 -0
- data/vendor/rust/test/lib/extension-test.rb +98 -0
- data/vendor/rust/test/operators.cc +41 -0
- data/vendor/rust/test/operators.hh +39 -0
- data/vendor/rust/test/operators.rb +39 -0
- data/vendor/rust/test/test-constants.rb +43 -0
- data/vendor/rust/test/test-cppclass.rb +82 -0
- data/vendor/rust/test/test-cwrapper.rb +80 -0
- data/vendor/rust/test/test-operators.rb +42 -0
- metadata +826 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Christian Schulte <schulte@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Christian Schulte, 2004
|
|
7
|
+
*
|
|
8
|
+
* Bugfixes provided by:
|
|
9
|
+
* Javier Andr�s Mena Zapata <javimena@gmail.com>
|
|
10
|
+
*
|
|
11
|
+
* Last modified:
|
|
12
|
+
* $Date: 2006-04-11 15:58:37 +0200 (Tue, 11 Apr 2006) $ by $Author: tack $
|
|
13
|
+
* $Revision: 3188 $
|
|
14
|
+
*
|
|
15
|
+
* This file is part of Gecode, the generic constraint
|
|
16
|
+
* development environment:
|
|
17
|
+
* http://www.gecode.org
|
|
18
|
+
*
|
|
19
|
+
* See the file "LICENSE" for information on usage and
|
|
20
|
+
* redistribution of this file, and for a
|
|
21
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
#ifndef __GECODE_EXAMPLES_TIMER_HH__
|
|
26
|
+
#define __GECODE_EXAMPLES_TIMER_HH__
|
|
27
|
+
|
|
28
|
+
#include <ctime>
|
|
29
|
+
#include <cmath>
|
|
30
|
+
|
|
31
|
+
#include "gecode/config.icc"
|
|
32
|
+
|
|
33
|
+
/*
|
|
34
|
+
* Support for measuring time
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/// Timer interface used for examples
|
|
39
|
+
class Timer {
|
|
40
|
+
private:
|
|
41
|
+
clock_t t0;
|
|
42
|
+
public:
|
|
43
|
+
void start(void);
|
|
44
|
+
double stop(void);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
forceinline void
|
|
48
|
+
Timer::start(void) {
|
|
49
|
+
t0 = clock();
|
|
50
|
+
}
|
|
51
|
+
forceinline double
|
|
52
|
+
Timer::stop(void) {
|
|
53
|
+
return (static_cast<double>(clock()-t0) / CLOCKS_PER_SEC) * 1000.0;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* \brief Compute arithmetic mean of \a n elements in \a t
|
|
59
|
+
* \relates Timer
|
|
60
|
+
*/
|
|
61
|
+
double
|
|
62
|
+
am(double t[], int n);
|
|
63
|
+
/**
|
|
64
|
+
* \brief Compute deviation of \a n elements in \a t
|
|
65
|
+
* \relates Timer
|
|
66
|
+
*/
|
|
67
|
+
double
|
|
68
|
+
dev(double t[], int n);
|
|
69
|
+
|
|
70
|
+
#endif
|
|
71
|
+
|
|
72
|
+
// STATISTICS: example-any
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Christian Schulte <schulte@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Christian Schulte, 2005
|
|
7
|
+
*
|
|
8
|
+
* Last modified:
|
|
9
|
+
* $Date: 2006-08-04 16:06:52 +0200 (Fri, 04 Aug 2006) $ by $Author: schulte $
|
|
10
|
+
* $Revision: 3517 $
|
|
11
|
+
*
|
|
12
|
+
* This file is part of Gecode, the generic constraint
|
|
13
|
+
* development environment:
|
|
14
|
+
* http://www.gecode.org
|
|
15
|
+
*
|
|
16
|
+
* See the file "LICENSE" for information on usage and
|
|
17
|
+
* redistribution of this file, and for a
|
|
18
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
#include "examples/support.hh"
|
|
23
|
+
#include "gecode/minimodel.hh"
|
|
24
|
+
|
|
25
|
+
/// Number of warehouses
|
|
26
|
+
static const int n_suppliers = 5;
|
|
27
|
+
/// Number of stores
|
|
28
|
+
static const int n_stores = 10;
|
|
29
|
+
|
|
30
|
+
/// Cost of building one warehouse
|
|
31
|
+
static const int building_cost = 30;
|
|
32
|
+
|
|
33
|
+
/// Capacity of a single warehouse
|
|
34
|
+
static const int capacity[n_suppliers] = {
|
|
35
|
+
1, 4, 2, 1, 3
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/// Cost for store to warehouse
|
|
39
|
+
static const int cost_matrix[n_stores][n_suppliers] = {
|
|
40
|
+
{20, 24, 11, 25, 30},
|
|
41
|
+
{28, 27, 82, 83, 74},
|
|
42
|
+
{74, 97, 71, 96, 70},
|
|
43
|
+
{ 2, 55, 73, 69, 61},
|
|
44
|
+
{46, 96, 59, 83, 4},
|
|
45
|
+
{42, 22, 29, 67, 59},
|
|
46
|
+
{ 1, 5, 73, 59, 56},
|
|
47
|
+
{10, 73, 13, 43, 96},
|
|
48
|
+
{93, 35, 63, 85, 46},
|
|
49
|
+
{47, 65, 55, 71, 95}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* \brief %Example: Locating warehouses
|
|
56
|
+
*
|
|
57
|
+
* A company needs to construct warehouses to supply stores with
|
|
58
|
+
* goods. Each warehouse possibly to be constructed has a certain
|
|
59
|
+
* capacity defining how many stores it can supply. Constructing a
|
|
60
|
+
* warehouse incurs a fixed cost. Costs for transportation from
|
|
61
|
+
* warehouses to stores depend on the locations of warehouses and
|
|
62
|
+
* stores.
|
|
63
|
+
*
|
|
64
|
+
* Determine which warehouses should be constructed and which
|
|
65
|
+
* warehouse should supply which store such that overall cost
|
|
66
|
+
* (transportation cost plus construction cost) is smallest.
|
|
67
|
+
*
|
|
68
|
+
* \ingroup Example
|
|
69
|
+
*
|
|
70
|
+
*/
|
|
71
|
+
class Warehouses : public Example {
|
|
72
|
+
protected:
|
|
73
|
+
/// Map store to the supplier
|
|
74
|
+
IntVarArray supplier;
|
|
75
|
+
/// Is a supplier open (warehouse needed)
|
|
76
|
+
BoolVarArray open;
|
|
77
|
+
/// Cost of a store
|
|
78
|
+
IntVarArray cost;
|
|
79
|
+
/// Total cost
|
|
80
|
+
IntVar total;
|
|
81
|
+
public:
|
|
82
|
+
/// Actual model
|
|
83
|
+
Warehouses(const Options& opt)
|
|
84
|
+
: supplier(this, n_stores, 0, n_suppliers-1),
|
|
85
|
+
open(this, n_suppliers, 0, 1),
|
|
86
|
+
cost(this, n_stores, 0, Limits::Int::int_max),
|
|
87
|
+
total(this, 0, Limits::Int::int_max) {
|
|
88
|
+
// Compute total cost
|
|
89
|
+
{
|
|
90
|
+
IntArgs c(n_stores + n_suppliers);
|
|
91
|
+
IntVarArgs x(n_stores + n_suppliers);
|
|
92
|
+
for (int i=0; i<n_stores; i++) {
|
|
93
|
+
c[i]=1; x[i]=cost[i];
|
|
94
|
+
}
|
|
95
|
+
for (int i=0; i<n_suppliers; i++) {
|
|
96
|
+
c[n_stores+i]=building_cost;
|
|
97
|
+
x[n_stores+i]=open[i];
|
|
98
|
+
}
|
|
99
|
+
linear(this, c, x, IRT_EQ, total);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Compute cost for store
|
|
103
|
+
for (int i=0; i<n_stores; i++) {
|
|
104
|
+
IntArgs c(n_suppliers);
|
|
105
|
+
for (int j=0; j<n_suppliers; j++)
|
|
106
|
+
c[j] = cost_matrix[i][j];
|
|
107
|
+
element(this, c, supplier[i], cost[i]);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Do not exceed capacity
|
|
111
|
+
for (int i=0; i<n_suppliers; i++)
|
|
112
|
+
count(this, supplier, i, IRT_LQ, capacity[i]);
|
|
113
|
+
|
|
114
|
+
// A warehouse is open, if it supplies to a shop
|
|
115
|
+
for (int i=0; i<n_suppliers; i++) {
|
|
116
|
+
BoolVarArgs store_by_supplier(n_stores);
|
|
117
|
+
for (int j=0; j<n_stores; j++)
|
|
118
|
+
store_by_supplier[j] = post(this, ~(supplier[j] == i));
|
|
119
|
+
BoolVar b(this, 0, 1);
|
|
120
|
+
rel(this, open[i], IRT_EQ, 1, b);
|
|
121
|
+
linear(this, store_by_supplier, IRT_GR, 0, b);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
branch(this, cost, BVAR_REGRET_MIN_MAX, BVAL_MIN);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/// Add constraint for next better solution
|
|
128
|
+
void
|
|
129
|
+
constrain(Space* s) {
|
|
130
|
+
rel(this, total, IRT_LE, static_cast<Warehouses*>(s)->total.val());
|
|
131
|
+
}
|
|
132
|
+
/// Constructor for cloning \a s
|
|
133
|
+
Warehouses(bool share, Warehouses& s) : Example(share,s) {
|
|
134
|
+
supplier.update(this, share, s.supplier);
|
|
135
|
+
open.update(this, share, s.open);
|
|
136
|
+
cost.update(this, share, s.cost);
|
|
137
|
+
total.update(this, share, s.total);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/// Copy during cloning
|
|
141
|
+
virtual Space*
|
|
142
|
+
copy(bool share) {
|
|
143
|
+
return new Warehouses(share,*this);
|
|
144
|
+
}
|
|
145
|
+
/// Print solution
|
|
146
|
+
virtual void
|
|
147
|
+
print(void) {
|
|
148
|
+
std::cout << "\tSupplier: {";
|
|
149
|
+
for (int i=0; i<n_stores; i++) {
|
|
150
|
+
std::cout << supplier[i] << ((i<n_stores-1)?", ":"};\n");
|
|
151
|
+
}
|
|
152
|
+
std::cout << "\tCost: {";
|
|
153
|
+
for (int i=0; i<n_stores; i++) {
|
|
154
|
+
std::cout << cost[i] << ((i<n_stores-1)?", ":"};\n");
|
|
155
|
+
}
|
|
156
|
+
std::cout << "\tTotal cost: " << total << std::endl;
|
|
157
|
+
std::cout << std::endl;
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
/** \brief Main-function
|
|
162
|
+
* \relates Warehouses
|
|
163
|
+
*/
|
|
164
|
+
int
|
|
165
|
+
main(int argc, char** argv) {
|
|
166
|
+
Options opt("Warehouses");
|
|
167
|
+
opt.solutions = 0;
|
|
168
|
+
opt.iterations = 10;
|
|
169
|
+
opt.naive = true;
|
|
170
|
+
opt.parse(argc,argv);
|
|
171
|
+
Example::run<Warehouses,BAB>(opt);
|
|
172
|
+
return 0;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// STATISTICS: example-any
|
|
176
|
+
|
|
@@ -0,0 +1,736 @@
|
|
|
1
|
+
dnl
|
|
2
|
+
dnl Main authors:
|
|
3
|
+
dnl Guido Tack <tack@gecode.org>
|
|
4
|
+
dnl
|
|
5
|
+
dnl Copyright:
|
|
6
|
+
dnl Guido Tack, 2004, 2005
|
|
7
|
+
dnl
|
|
8
|
+
dnl Last modified:
|
|
9
|
+
dnl $Date: 2005-10-27 21:01:30 +0200 (Thu, 27 Oct 2005) $
|
|
10
|
+
dnl by $Author: schulte $
|
|
11
|
+
dnl $Revision: 2420 $
|
|
12
|
+
dnl
|
|
13
|
+
dnl This file is part of Gecode, the generic constraint
|
|
14
|
+
dnl development environment:
|
|
15
|
+
dnl http://www.gecode.org
|
|
16
|
+
dnl
|
|
17
|
+
dnl See the file "LICENSE" for information on usage and
|
|
18
|
+
dnl redistribution of this file, and for a
|
|
19
|
+
dnl DISCLAIMER OF ALL WARRANTIES.
|
|
20
|
+
dnl
|
|
21
|
+
dnl
|
|
22
|
+
|
|
23
|
+
dnl check whether we have pkgconfig and should generate config files for it
|
|
24
|
+
AC_DEFUN([AC_GECODE_PKGCONFIG],
|
|
25
|
+
[AC_CHECK_TOOL(PKGCONFIG, pkg-config)
|
|
26
|
+
AC_MSG_CHECKING(whether to generate pkg-config files)
|
|
27
|
+
if test "${PKGCONFIG}x" = "x"; then
|
|
28
|
+
AC_MSG_RESULT(no)
|
|
29
|
+
AC_SUBST(HAVE_PKGCONFIG, "no")
|
|
30
|
+
else
|
|
31
|
+
AC_MSG_RESULT(yes)
|
|
32
|
+
AC_SUBST(HAVE_PKGCONFIG, "yes")
|
|
33
|
+
fi])
|
|
34
|
+
|
|
35
|
+
AC_DEFUN([AC_GECODE_GET_OS],
|
|
36
|
+
[AC_ARG_WITH([host-os],
|
|
37
|
+
AC_HELP_STRING([--with-host-os],
|
|
38
|
+
[Override operating system test. Valid values are Linux, Darwin, and Windows.]))
|
|
39
|
+
AC_MSG_CHECKING([for the host operating system])
|
|
40
|
+
if test "${with_host_os:-no}" = "no"; then
|
|
41
|
+
guess_host_os=$(uname -s 2>/dev/null)
|
|
42
|
+
else
|
|
43
|
+
guess_host_os=${with_host_os}
|
|
44
|
+
fi
|
|
45
|
+
dnl Try to find out operating system
|
|
46
|
+
case ${guess_host_os} in
|
|
47
|
+
GNU/kFreeBSD|*inux*)
|
|
48
|
+
host_os=linux
|
|
49
|
+
AC_MSG_RESULT([Linux])
|
|
50
|
+
;;
|
|
51
|
+
*arwin*)
|
|
52
|
+
host_os=darwin
|
|
53
|
+
AC_MSG_RESULT([Darwin])
|
|
54
|
+
;;
|
|
55
|
+
CYGWIN*|*indows*)
|
|
56
|
+
host_os=windows
|
|
57
|
+
AC_MSG_RESULT([Windows])
|
|
58
|
+
;;
|
|
59
|
+
*)
|
|
60
|
+
AC_MSG_ERROR([Host OS not supported.])
|
|
61
|
+
;;
|
|
62
|
+
esac])
|
|
63
|
+
|
|
64
|
+
dnl Macros:
|
|
65
|
+
dnl AC_GECODE_ADD_TO_CXXFLAGS ([FLAG...])
|
|
66
|
+
dnl AC_GECODE_ADD_TO_LDFLAGS ([FLAG...])
|
|
67
|
+
dnl
|
|
68
|
+
dnl Description:
|
|
69
|
+
dnl Add the flags to the corresponding variables
|
|
70
|
+
dnl
|
|
71
|
+
dnl Author:
|
|
72
|
+
dnl Marco Kuhlmann <kuhlmann@ps.uni-sb.de>
|
|
73
|
+
dnl
|
|
74
|
+
AC_DEFUN([AC_GECODE_ADD_TO_CXXFLAGS],
|
|
75
|
+
[CXXFLAGS="${CXXFLAGS}${CXXFLAGS:+ }$1"])
|
|
76
|
+
AC_DEFUN([AC_GECODE_ADD_TO_LDFLAGS],
|
|
77
|
+
[LDFLAGS="${LDFLAGS}${LDFLAGS:+ }$1"])
|
|
78
|
+
AC_DEFUN([AC_GECODE_ADD_TO_PKG_CXXFLAGS],
|
|
79
|
+
[ac_gecode_pkg_cxxflags="${ac_gecode_pkg_cxxflags}${ac_gecode_pkg_cxxflags:+ }$1"])
|
|
80
|
+
AC_DEFUN([AC_GECODE_ADD_TO_DLLFLAGS],
|
|
81
|
+
[DLLFLAGS="${DLLFLAGS}${DLLFLAGS:+ }$1"])
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
dnl Macro:
|
|
85
|
+
dnl AC_GECODE_CHECK_CXXFLAG (FLAG, [ACTION-IF-TRUE,
|
|
86
|
+
dnl [ACTION-IF-FALSE]])
|
|
87
|
+
dnl
|
|
88
|
+
dnl Description:
|
|
89
|
+
dnl Check whether FLAG is supported by the C++ compiler. Run
|
|
90
|
+
dnl the shell commands ACTION-IF-TRUE if it is, ACTION-IF-FALSE
|
|
91
|
+
dnl otherwise. If ACTION-IF-TRUE is not given, append FLAG to
|
|
92
|
+
dnl the contents of $CXXFLAGS.
|
|
93
|
+
dnl
|
|
94
|
+
dnl Authors:
|
|
95
|
+
dnl Leif Kornstaedt <kornstae@ps.uni-sb.de>
|
|
96
|
+
dnl Marco Kuhlmann <kuhlmann@ps.uni-sb.de>
|
|
97
|
+
dnl
|
|
98
|
+
AC_DEFUN([AC_GECODE_CHECK_CXXFLAG],
|
|
99
|
+
[AC_MSG_CHECKING(whether ${CXX} accepts [$1])
|
|
100
|
+
ac_gecode_save_CXXFLAGS="${CXXFLAGS}"
|
|
101
|
+
CXXFLAGS="${CXXFLAGS}${CXXFLAGS:+ }$1 -Werror"
|
|
102
|
+
AC_LANG_PUSH(C++)
|
|
103
|
+
AC_COMPILE_IFELSE(AC_LANG_PROGRAM(),
|
|
104
|
+
[AC_MSG_RESULT(yes)
|
|
105
|
+
CXXFLAGS="${ac_gecode_save_CXXFLAGS}"
|
|
106
|
+
ifelse([$2], , [CXXFLAGS="${CXXFLAGS}${CXXFLAGS:+ }$1"], [$2])],
|
|
107
|
+
[AC_MSG_RESULT(no)
|
|
108
|
+
CXXFLAGS="${ac_gecode_save_CXXFLAGS}"
|
|
109
|
+
ifelse([$3], , :, [$3])])
|
|
110
|
+
AC_LANG_POP])dnl
|
|
111
|
+
|
|
112
|
+
dnl Macro:
|
|
113
|
+
dnl AC_GECODE_CHECK_LDFLAG (FLAG, [ACTION-IF-TRUE,
|
|
114
|
+
dnl [ACTION-IF-FALSE]])
|
|
115
|
+
dnl
|
|
116
|
+
dnl Description:
|
|
117
|
+
dnl Check whether FLAG is supported by the linker. Run the
|
|
118
|
+
dnl shell commands ACTION-IF-TRUE if it is, ACTION-IF-FALSE
|
|
119
|
+
dnl otherwise. If ACTION-IF-TRUE is not given, append FLAG to
|
|
120
|
+
dnl the contents of $LDFLAGS.
|
|
121
|
+
dnl
|
|
122
|
+
dnl Authors:
|
|
123
|
+
dnl Leif Kornstaedt <kornstae@ps.uni-sb.de>
|
|
124
|
+
dnl Marco Kuhlmann <kuhlmann@ps.uni-sb.de>
|
|
125
|
+
dnl
|
|
126
|
+
AC_DEFUN([AC_GECODE_CHECK_LDFLAG],
|
|
127
|
+
[AC_REQUIRE([AC_PROG_CXX])
|
|
128
|
+
AC_MSG_CHECKING(whether the linker accepts [$1])
|
|
129
|
+
ac_gecode_save_LDFLAGS="${LDFLAGS}"
|
|
130
|
+
LDFLAGS="${LDFLAGS}${LDFLAGS:+ }$1"
|
|
131
|
+
AC_LINK_IFELSE(AC_LANG_PROGRAM(),
|
|
132
|
+
[AC_MSG_RESULT(yes)
|
|
133
|
+
LDFLAGS="$ac_gecode_save_LDFLAGS"
|
|
134
|
+
ifelse([$2], , [LDFLAGS="${LDFLAGS}${LDFLAGS:+ }$1"], [$2])],
|
|
135
|
+
[AC_MSG_RESULT(no)
|
|
136
|
+
LDFLAGS="$ac_gecode_save_LDFLAGS"
|
|
137
|
+
ifelse([$3], , :, [$3])])])dnl
|
|
138
|
+
|
|
139
|
+
dnl @synopsis _AC_C_IFDEF(MACRO-NAME, ACTION-IF-DEF, ACTION-IF-NOT-DEF)
|
|
140
|
+
dnl
|
|
141
|
+
dnl Check for the definition of macro MACRO-NAME using the current
|
|
142
|
+
dnl language's compiler.
|
|
143
|
+
dnl
|
|
144
|
+
dnl @category Misc
|
|
145
|
+
dnl @author Ludovic Court�s <ludo@chbouib.org>
|
|
146
|
+
dnl @version 2004-09-07
|
|
147
|
+
dnl @license AllPermissive
|
|
148
|
+
AC_DEFUN([_AC_C_IFDEF],
|
|
149
|
+
[AC_COMPILE_IFELSE([#ifndef $1
|
|
150
|
+
# error "Macro $1 is undefined!"
|
|
151
|
+
/* For some compilers (eg. SGI's CC), #error is not
|
|
152
|
+
enough... */
|
|
153
|
+
please, do fail
|
|
154
|
+
#endif],
|
|
155
|
+
[$2], [$3])])
|
|
156
|
+
|
|
157
|
+
dnl @synopsis AC_CXX_COMPILER_VENDOR(VENDOR-NAME)
|
|
158
|
+
dnl
|
|
159
|
+
dnl Set VENDOR-NAME to the lower-case name of the compiler vendor or `unknown'
|
|
160
|
+
dnl if the compiler's vendor is unknown.
|
|
161
|
+
dnl
|
|
162
|
+
dnl @version 20040907
|
|
163
|
+
dnl @author Ludovic Court�s <ludo@chbouib.org>
|
|
164
|
+
dnl Modified by G. Tack to recognize only those compilers we need.
|
|
165
|
+
AC_DEFUN([AC_CXX_COMPILER_VENDOR],
|
|
166
|
+
[AC_ARG_WITH([compiler-vendor],
|
|
167
|
+
AC_HELP_STRING([--with-compiler-vendor],
|
|
168
|
+
[Override compiler test. Valid values are gnu, intel, and microsoft.]))
|
|
169
|
+
AC_REQUIRE([AC_PROG_CXX])
|
|
170
|
+
AC_REQUIRE([AC_PROG_CXXCPP])
|
|
171
|
+
AC_CACHE_CHECK([the C++ compiler vendor],
|
|
172
|
+
[ac_cv_cxx_compiler_vendor],
|
|
173
|
+
|
|
174
|
+
[if test "${with_compiler_vendor:-no}" = "no"; then
|
|
175
|
+
|
|
176
|
+
AC_LANG_PUSH([C++])
|
|
177
|
+
|
|
178
|
+
dnl GNU C++
|
|
179
|
+
_AC_C_IFDEF([__GNUG__],
|
|
180
|
+
[ac_cv_cxx_compiler_vendor=gnu],
|
|
181
|
+
[_AC_C_IFDEF([__INTEL_COMPILER],
|
|
182
|
+
[ac_cv_cxx_compiler_vendor=intel],
|
|
183
|
+
[dnl Note: We are using the C compiler because VC++ doesn't
|
|
184
|
+
dnl recognize `.cc'(which is used by `configure') as a C++ file
|
|
185
|
+
dnl extension and requires `/TP' to be passed.
|
|
186
|
+
AC_LANG_PUSH([C])
|
|
187
|
+
_AC_C_IFDEF([_MSC_VER],
|
|
188
|
+
[ac_cv_cxx_compiler_vendor=microsoft],
|
|
189
|
+
[ac_cv_cxx_compiler_vendor=unknown])
|
|
190
|
+
AC_LANG_POP()])])
|
|
191
|
+
|
|
192
|
+
AC_LANG_POP()
|
|
193
|
+
else
|
|
194
|
+
ac_cv_cxx_compiler_vendor=${with_compiler_vendor}
|
|
195
|
+
fi
|
|
196
|
+
$1="$ac_cv_cxx_compiler_vendor"])])dnl
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
dnl Macro:
|
|
200
|
+
dnl AC_GECODE_VTI (vartype, help-string, default,
|
|
201
|
+
dnl [ACTION-IF-ENABLED])
|
|
202
|
+
dnl
|
|
203
|
+
dnl Description:
|
|
204
|
+
dnl Introduce --enable-vartype-vars configure switch. The help-string
|
|
205
|
+
dnl is used for the configure --help output. VAR is the name of the
|
|
206
|
+
dnl variable type, it is used to create the VTI_VAR constant in vti.icc.
|
|
207
|
+
dnl default is either yes or no and says whether this option should be
|
|
208
|
+
dnl enabled by default. ACTION-IF-ENABLED can be used to perform additional
|
|
209
|
+
dnl actions in case this variable type is enabled.
|
|
210
|
+
dnl
|
|
211
|
+
dnl Authors:
|
|
212
|
+
dnl Guido Tack <tack@gecode.org>
|
|
213
|
+
AC_DEFUN([AC_GECODE_ADD_VTI],
|
|
214
|
+
[ac_gecode_vtis="VTI_$1 ${ac_gecode_vtis}";])
|
|
215
|
+
|
|
216
|
+
AC_DEFUN([AC_GECODE_VTI],
|
|
217
|
+
[
|
|
218
|
+
AC_ARG_ENABLE([$1-vars],
|
|
219
|
+
AC_HELP_STRING([--enable-$1-vars],[build $2 @<:@default=$3@:>@]))
|
|
220
|
+
AC_MSG_CHECKING(whether to build the $1 variables library)
|
|
221
|
+
if test "${enable_$1_vars:-$3}" = "yes"; then
|
|
222
|
+
AC_MSG_RESULT(yes)
|
|
223
|
+
enable_$1_vars="yes";
|
|
224
|
+
AC_GECODE_ADD_VTI(translit($1,`a-z', `A-Z'))
|
|
225
|
+
$4
|
|
226
|
+
else
|
|
227
|
+
enable_$1_vars="no";
|
|
228
|
+
AC_MSG_RESULT(no)
|
|
229
|
+
fi
|
|
230
|
+
AC_SUBST(enable_$1_vars, ${enable_$1_vars})
|
|
231
|
+
])
|
|
232
|
+
|
|
233
|
+
dnl Description:
|
|
234
|
+
dnl Make config.status create the vti.icc file.
|
|
235
|
+
dnl
|
|
236
|
+
dnl Authors:
|
|
237
|
+
dnl Guido Tack <tack@gecode.org>
|
|
238
|
+
|
|
239
|
+
AC_CONFIG_COMMANDS(vti.icc,
|
|
240
|
+
[rm -f gecode/vti.icc.new
|
|
241
|
+
echo "// This file was generated by config.status." > \
|
|
242
|
+
gecode/vti.icc.new
|
|
243
|
+
echo "// Do not edit. Modifications will get lost!" >> \
|
|
244
|
+
gecode/vti.icc.new
|
|
245
|
+
for v in ${ac_gecode_vtis}
|
|
246
|
+
do
|
|
247
|
+
echo "$v, ///< Generated by configure" >> gecode/vti.icc.new
|
|
248
|
+
done
|
|
249
|
+
if test ! -f gecode/vti.icc; then
|
|
250
|
+
touch gecode/vti.icc;
|
|
251
|
+
fi
|
|
252
|
+
if (diff gecode/vti.icc gecode/vti.icc.new >/dev/null); then
|
|
253
|
+
rm -f gecode/vti.icc.new;
|
|
254
|
+
else
|
|
255
|
+
rm -f gecode/vti.icc;
|
|
256
|
+
mv gecode/vti.icc.new gecode/vti.icc;
|
|
257
|
+
fi],
|
|
258
|
+
[ac_gecode_vtis="${ac_gecode_vtis}"])
|
|
259
|
+
|
|
260
|
+
dnl Macro:
|
|
261
|
+
dnl AC_GECODE_ENABLE_MODULE (module, default, help-string,
|
|
262
|
+
dnl [ACTION-IF-ENABLED])
|
|
263
|
+
dnl
|
|
264
|
+
dnl Description:
|
|
265
|
+
dnl Produces a configure switch --enable-<module>.
|
|
266
|
+
dnl
|
|
267
|
+
dnl Authors:
|
|
268
|
+
dnl Guido Tack <tack@gecode.org>
|
|
269
|
+
AC_DEFUN([AC_GECODE_ENABLE_MODULE],
|
|
270
|
+
[
|
|
271
|
+
AC_ARG_ENABLE([$1],
|
|
272
|
+
AC_HELP_STRING([--enable-$1],
|
|
273
|
+
[$3 @<:@default=$2@:>@]))
|
|
274
|
+
AC_MSG_CHECKING(whether to build $1)
|
|
275
|
+
if test "${enable_$1:-$2}" = "yes"; then
|
|
276
|
+
enable_$1="yes";
|
|
277
|
+
AC_MSG_RESULT(yes)
|
|
278
|
+
$4
|
|
279
|
+
else
|
|
280
|
+
enable_$1="no";
|
|
281
|
+
AC_MSG_RESULT(no)
|
|
282
|
+
fi
|
|
283
|
+
AC_SUBST(enable_$1, ${enable_$1})])
|
|
284
|
+
|
|
285
|
+
dnl Description:
|
|
286
|
+
dnl Makes an enable check for a contrib
|
|
287
|
+
dnl The third argument can be used for dependency checking
|
|
288
|
+
dnl
|
|
289
|
+
dnl Authors:
|
|
290
|
+
dnl Gr�goire Dooms <dooms@info.ucl.ac.be>
|
|
291
|
+
AC_DEFUN([AC_GECODE_ENABLE_CONTRIB],
|
|
292
|
+
[
|
|
293
|
+
AC_ARG_ENABLE([$1],
|
|
294
|
+
AC_HELP_STRING([--enable-$1],[build $2 @<:@default=yes@:>@]))
|
|
295
|
+
AC_MSG_CHECKING(whether to build the $1 contrib library)
|
|
296
|
+
if test "${enable_$1:-yes}" = "yes"; then
|
|
297
|
+
AC_MSG_RESULT(yes)
|
|
298
|
+
enable_$1="yes";
|
|
299
|
+
$3
|
|
300
|
+
else
|
|
301
|
+
enable_$1="no";
|
|
302
|
+
AC_MSG_RESULT(no)
|
|
303
|
+
fi
|
|
304
|
+
AC_SUBST(enable_$1, ${enable_$1})])
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
AC_DEFUN([AC_GECODE_STATICLIBS],
|
|
308
|
+
[AC_ARG_ENABLE([static],
|
|
309
|
+
AC_HELP_STRING([--enable-static],
|
|
310
|
+
[build static libraries @<:@default=no@:>@]))
|
|
311
|
+
AC_MSG_CHECKING(whether to build static libraries)
|
|
312
|
+
if test "${enable_static:-no}" = "yes"; then
|
|
313
|
+
AC_DEFINE(GECODE_STATIC_LIBS)
|
|
314
|
+
AC_SUBST(BUILDSTATIC, "yes")
|
|
315
|
+
AC_MSG_RESULT(yes)
|
|
316
|
+
else
|
|
317
|
+
AC_SUBST(BUILDSTATIC, "no")
|
|
318
|
+
AC_MSG_RESULT(no)
|
|
319
|
+
fi
|
|
320
|
+
AC_ARG_ENABLE([shared],
|
|
321
|
+
AC_HELP_STRING([--enable-shared],
|
|
322
|
+
[build shared libraries @<:@default=yes@:>@]))
|
|
323
|
+
AC_MSG_CHECKING(whether to build shared libraries)
|
|
324
|
+
if test "${enable_shared:-yes}" = "yes"; then
|
|
325
|
+
AC_SUBST(BUILDDLL, "yes")
|
|
326
|
+
AC_MSG_RESULT(yes)
|
|
327
|
+
else
|
|
328
|
+
AC_SUBST(BUILDDLL, "no")
|
|
329
|
+
if test "${enable_static:-no}" = "no"; then
|
|
330
|
+
AC_MSG_ERROR([One of --enable-static or --enable-shared must be given])
|
|
331
|
+
fi
|
|
332
|
+
AC_MSG_RESULT(no)
|
|
333
|
+
fi
|
|
334
|
+
])
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
AC_DEFUN([AC_GECODE_DEBUG],
|
|
338
|
+
[AC_ARG_ENABLE([debug],
|
|
339
|
+
AC_HELP_STRING([--enable-debug],
|
|
340
|
+
[build with assertions @<:@default=no@:>@]))
|
|
341
|
+
AC_MSG_CHECKING(whether to build with debug symbols and assertions)
|
|
342
|
+
if test "${enable_debug:-no}" = "yes"; then
|
|
343
|
+
AC_MSG_RESULT(yes)
|
|
344
|
+
else
|
|
345
|
+
AC_MSG_RESULT(no)
|
|
346
|
+
AC_GECODE_ADD_TO_CXXFLAGS(-DNDEBUG)
|
|
347
|
+
fi])
|
|
348
|
+
|
|
349
|
+
AC_DEFUN([AC_GECODE_LEAK_DEBUG],
|
|
350
|
+
[AC_ARG_ENABLE([leak-debug],
|
|
351
|
+
AC_HELP_STRING([--enable-leak-debug],
|
|
352
|
+
[build with support for finding memory leaks @<:@default=no@:>@]))
|
|
353
|
+
AC_MSG_CHECKING(whether to build with support for finding memory leaks)
|
|
354
|
+
if test "${enable_leak_debug:-no}" = "yes"; then
|
|
355
|
+
AC_MSG_RESULT(yes)
|
|
356
|
+
AC_CHECK_DECL(mtrace,
|
|
357
|
+
[AC_DEFINE(GECODE_HAVE_MTRACE)],
|
|
358
|
+
[AC_MSG_ERROR(mtrace not available.)],
|
|
359
|
+
[[#include <mcheck.h>]])
|
|
360
|
+
else
|
|
361
|
+
AC_MSG_RESULT(no)
|
|
362
|
+
fi])
|
|
363
|
+
|
|
364
|
+
AC_DEFUN([AC_GECODE_AUDIT],
|
|
365
|
+
[AC_ARG_ENABLE([audit],
|
|
366
|
+
AC_HELP_STRING([--enable-audit],
|
|
367
|
+
[build with auditing code @<:@default=no@:>@]))
|
|
368
|
+
AC_MSG_CHECKING(whether to build with auditing code)
|
|
369
|
+
if test "${enable_audit:-no}" = "yes"; then
|
|
370
|
+
AC_DEFINE(GECODE_AUDIT, 1)
|
|
371
|
+
AC_MSG_RESULT(yes)
|
|
372
|
+
else
|
|
373
|
+
AC_DEFINE(GECODE_AUDIT, 0)
|
|
374
|
+
AC_MSG_RESULT(no)
|
|
375
|
+
fi])
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
AC_DEFUN([AC_GECODE_PROFILE],
|
|
379
|
+
[AC_ARG_ENABLE([profile],
|
|
380
|
+
AC_HELP_STRING([--enable-profile],
|
|
381
|
+
[build with profiling information @<:@default=no@:>@]))
|
|
382
|
+
AC_MSG_CHECKING(whether to build with profiling information)
|
|
383
|
+
if test "${enable_profile:-no}" = "yes"; then
|
|
384
|
+
AC_MSG_RESULT(yes)
|
|
385
|
+
AC_GECODE_CHECK_CXXFLAG(-pg,
|
|
386
|
+
AC_GECODE_ADD_TO_CXXFLAGS(-pg),
|
|
387
|
+
AC_GECODE_CHECK_CXXFLAG(-p))
|
|
388
|
+
else
|
|
389
|
+
AC_MSG_RESULT(no)
|
|
390
|
+
fi])
|
|
391
|
+
|
|
392
|
+
# Test for platform specific behaviour of arithmetic
|
|
393
|
+
|
|
394
|
+
AC_DEFUN([AC_GECODE_CHECK_ARITH],
|
|
395
|
+
[AC_LANG_PUSH([C])
|
|
396
|
+
AC_CHECK_SIZEOF(int)
|
|
397
|
+
AC_MSG_CHECKING([if int has at least 32 bit])
|
|
398
|
+
AC_TRY_COMPILE([],
|
|
399
|
+
[
|
|
400
|
+
#if SIZEOF_INT>=4
|
|
401
|
+
#else
|
|
402
|
+
blablub
|
|
403
|
+
#endif
|
|
404
|
+
],
|
|
405
|
+
[AC_MSG_RESULT(yes)],
|
|
406
|
+
[AC_MSG_ERROR([Gecode needs at least 32 bit integers.])])
|
|
407
|
+
|
|
408
|
+
AC_MSG_CHECKING([if doubles have a big enough mantissa])
|
|
409
|
+
AC_TRY_COMPILE([#include <float.h>],
|
|
410
|
+
[
|
|
411
|
+
#if DBL_MANT_DIG>=53
|
|
412
|
+
#else
|
|
413
|
+
blablub
|
|
414
|
+
#endif
|
|
415
|
+
],
|
|
416
|
+
[AC_MSG_RESULT(yes)],
|
|
417
|
+
[AC_MSG_ERROR([Gecode needs a double mantissa of at least 53 bits.])])
|
|
418
|
+
|
|
419
|
+
AC_LANG_POP([C])])
|
|
420
|
+
|
|
421
|
+
AC_DEFUN([AC_GECODE_GCC_GENERAL_SWITCHES],
|
|
422
|
+
[AC_DEFINE(forceinline, [inline])
|
|
423
|
+
AC_GECODE_CHECK_CXXFLAG([-fPIC])
|
|
424
|
+
AC_GECODE_CHECK_CXXFLAG([-Wall])
|
|
425
|
+
AC_GECODE_CHECK_CXXFLAG(-ggdb,
|
|
426
|
+
AC_GECODE_ADD_TO_CXXFLAGS(-ggdb),
|
|
427
|
+
AC_GECODE_CHECK_CXXFLAG(-g))
|
|
428
|
+
|
|
429
|
+
AC_SUBST(docdir, "${datadir}/doc/gecode")
|
|
430
|
+
|
|
431
|
+
dnl file extensions
|
|
432
|
+
AC_SUBST(SBJEXT, "s")
|
|
433
|
+
AC_SUBST(LIBEXT, "${DLLEXT}")
|
|
434
|
+
AC_SUBST(LIBPREFIX, "libgecode")
|
|
435
|
+
AC_SUBST(STATICLIBEXT, "a")
|
|
436
|
+
AC_SUBST(MINUSLDIR, "-L${libdir}")
|
|
437
|
+
AC_SUBST(LINKLIBDIR, "")
|
|
438
|
+
|
|
439
|
+
cygpathprefix=$prefix
|
|
440
|
+
test "x$cygpathprefix" = xNONE && cygpathprefix=$ac_default_prefix
|
|
441
|
+
AC_SUBST(cygpathprefix, "${cygpathprefix}")
|
|
442
|
+
|
|
443
|
+
AC_SUBST(COMPILEOBJ, "-c -o ")
|
|
444
|
+
AC_SUBST(COMPILESBJ, "-S -o ")
|
|
445
|
+
AC_SUBST(COMPILERIN, " ")
|
|
446
|
+
AC_SUBST(EXAMPLES_EXTRA_CXXFLAGS, "")
|
|
447
|
+
|
|
448
|
+
dnl Do not install stub .lib files (required for msvc)
|
|
449
|
+
AC_SUBST(INSTALLLIBS, "no")
|
|
450
|
+
|
|
451
|
+
AC_SUBST(LINKPREFIX, "-lgecode")
|
|
452
|
+
AC_SUBST(LINKSUFFIX, "")
|
|
453
|
+
|
|
454
|
+
dnl how to tell the compiler to output an object file
|
|
455
|
+
AC_SUBST(LINKOUTPUT, "-o ")
|
|
456
|
+
dnl how to tell the compiler to output an executable
|
|
457
|
+
AC_SUBST(EXEOUTPUT, "-o ")
|
|
458
|
+
|
|
459
|
+
dnl the names of the generated dlls
|
|
460
|
+
AC_SUBST(KERNEL, "kernel")
|
|
461
|
+
AC_SUBST(SEARCH, "search")
|
|
462
|
+
AC_SUBST(INT, "int")
|
|
463
|
+
AC_SUBST(SET, "set")
|
|
464
|
+
AC_SUBST(MM, "minimodel")])
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
AC_DEFUN([AC_GECODE_GCC_OPTIMIZED_SWITCHES],
|
|
468
|
+
[AC_GECODE_CHECK_CXXFLAG([-O3])
|
|
469
|
+
AC_GECODE_CHECK_CXXFLAG([-fno-strict-aliasing])])
|
|
470
|
+
|
|
471
|
+
AC_DEFUN([AC_GECODE_GCC_VISIBILITY],
|
|
472
|
+
[AC_ARG_ENABLE([gcc-visibility],
|
|
473
|
+
AC_HELP_STRING([--enable-gcc-visibility],
|
|
474
|
+
[use gcc visibility attributes @<:@default=no@:>@]))
|
|
475
|
+
AC_MSG_CHECKING(whether to use gcc visibility attributes)
|
|
476
|
+
if test "${enable_gcc_visibility:-no}" = "yes"; then
|
|
477
|
+
AC_MSG_RESULT(yes)
|
|
478
|
+
AC_GECODE_CHECK_CXXFLAG([-fvisibility=hidden],
|
|
479
|
+
[AC_DEFINE(GCC_HASCLASSVISIBILITY)
|
|
480
|
+
AC_GECODE_ADD_TO_CXXFLAGS([-fvisibility=hidden])
|
|
481
|
+
AC_GECODE_CHECK_CXXFLAG([-fno-rtti])],
|
|
482
|
+
[])
|
|
483
|
+
else
|
|
484
|
+
AC_MSG_RESULT(no)
|
|
485
|
+
fi])
|
|
486
|
+
|
|
487
|
+
AC_DEFUN([AC_GECODE_GCC_DEBUG_SWITCHES],
|
|
488
|
+
[AC_GECODE_CHECK_CXXFLAG([-fno-inline-functions])
|
|
489
|
+
AC_GECODE_CHECK_CXXFLAG([-fimplement-inlines])])
|
|
490
|
+
|
|
491
|
+
AC_DEFUN([AC_GECODE_NO_BUILDFLAGS],
|
|
492
|
+
[AC_SUBST(GECODE_BUILD_KERNEL_FLAG, "")
|
|
493
|
+
AC_SUBST(GECODE_BUILD_SEARCH_FLAG, "")
|
|
494
|
+
AC_SUBST(GECODE_BUILD_INT_FLAG, "")
|
|
495
|
+
AC_SUBST(GECODE_BUILD_SET_FLAG, "")
|
|
496
|
+
AC_SUBST(GECODE_BUILD_MINIMODEL_FLAG, "")])
|
|
497
|
+
|
|
498
|
+
AC_DEFUN([AC_GECODE_BUILDFLAGS],
|
|
499
|
+
[AC_SUBST(GECODE_BUILD_KERNEL_FLAG, "-DGECODE_BUILD_KERNEL")
|
|
500
|
+
AC_SUBST(GECODE_BUILD_SEARCH_FLAG, "-DGECODE_BUILD_SEARCH")
|
|
501
|
+
AC_SUBST(GECODE_BUILD_INT_FLAG, "-DGECODE_BUILD_INT")
|
|
502
|
+
AC_SUBST(GECODE_BUILD_SET_FLAG, "-DGECODE_BUILD_SET")
|
|
503
|
+
AC_SUBST(GECODE_BUILD_MINIMODEL_FLAG, "-DGECODE_BUILD_MINIMODEL")])
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
AC_DEFUN([AC_GECODE_UNIX_PATHS],
|
|
507
|
+
[AC_SUBST(DLLPATH, [-L.])
|
|
508
|
+
dnl flags for creating dlls
|
|
509
|
+
case $host_os in
|
|
510
|
+
darwin*)
|
|
511
|
+
AC_SUBST(need_soname, "yes")
|
|
512
|
+
AC_GECODE_ADD_TO_DLLFLAGS("-dynamiclib")
|
|
513
|
+
AC_SUBST(DLLEXT, "${ac_gecode_soversion}.0.dylib")
|
|
514
|
+
AC_SUBST(SOSUFFIX, ".${ac_gecode_soversion}.dylib")
|
|
515
|
+
AC_SUBST(SOLINKSUFFIX, ".dylib")
|
|
516
|
+
AC_SUBST(sharedlibdir, "${libdir}")
|
|
517
|
+
AC_SUBST(WLSONAME, "-compatibility_version ${ac_gecode_soversion}.0 -current_version ${ac_gecode_soversion}.0 -install_name ${libdir}/")
|
|
518
|
+
AC_GECODE_NO_BUILDFLAGS
|
|
519
|
+
;;
|
|
520
|
+
windows*)
|
|
521
|
+
AC_SUBST(need_soname, "no")
|
|
522
|
+
if test "${enable_static:-no}" = "yes" -a \
|
|
523
|
+
"${enable_shared:-yes}" = "yes"; then
|
|
524
|
+
AC_MSG_ERROR([Only either static or shared libraries can be built.])
|
|
525
|
+
fi
|
|
526
|
+
AC_GECODE_ADD_TO_DLLFLAGS("-shared")
|
|
527
|
+
AC_SUBST(DLLEXT, "dll")
|
|
528
|
+
AC_SUBST(SOSUFFIX, "")
|
|
529
|
+
AC_SUBST(SOLINKSUFFIX, "")
|
|
530
|
+
AC_SUBST(WLSONAME, "")
|
|
531
|
+
if test "${enable_static:-no}" = "no"; then
|
|
532
|
+
AC_SUBST(sharedlibdir, "${bindir}")
|
|
533
|
+
else
|
|
534
|
+
AC_SUBST(sharedlibdir, "${libdir}")
|
|
535
|
+
fi
|
|
536
|
+
AC_GECODE_BUILDFLAGS
|
|
537
|
+
;;
|
|
538
|
+
*)
|
|
539
|
+
AC_SUBST(need_soname, "yes")
|
|
540
|
+
AC_GECODE_ADD_TO_DLLFLAGS("-shared")
|
|
541
|
+
AC_SUBST(DLLEXT, "so.${ac_gecode_soversion}.0")
|
|
542
|
+
AC_SUBST(SOSUFFIX, ".so.${ac_gecode_soversion}")
|
|
543
|
+
AC_SUBST(SOLINKSUFFIX, ".so")
|
|
544
|
+
AC_SUBST(WLSONAME, ["-Wl,-soname="])
|
|
545
|
+
AC_SUBST(sharedlibdir, "${libdir}")
|
|
546
|
+
AC_GECODE_NO_BUILDFLAGS
|
|
547
|
+
;;
|
|
548
|
+
esac])
|
|
549
|
+
|
|
550
|
+
AC_DEFUN([AC_GECODE_MSVC_SWITCHES],
|
|
551
|
+
[dnl general compiler flags
|
|
552
|
+
AC_DEFINE(forceinline,[__forceinline])
|
|
553
|
+
AC_GECODE_ADD_TO_CXXFLAGS([-nologo])
|
|
554
|
+
AC_GECODE_ADD_TO_CXXFLAGS([-EHsc])
|
|
555
|
+
AC_DEFINE(GECODE_MEMORY_ALIGNMENT, 4)
|
|
556
|
+
|
|
557
|
+
if test "${enable_debug:-no}" = "no"; then
|
|
558
|
+
dnl compiler flags for an optimized build
|
|
559
|
+
AC_GECODE_ADD_TO_CXXFLAGS([-Ox -fp:fast])
|
|
560
|
+
|
|
561
|
+
dnl flags for creating optimized dlls
|
|
562
|
+
AC_GECODE_ADD_TO_DLLFLAGS([${CXXFLAGS} -LD -MD])
|
|
563
|
+
else
|
|
564
|
+
dnl compiler flags for a debug build
|
|
565
|
+
AC_GECODE_ADD_TO_CXXFLAGS([-Zi])
|
|
566
|
+
|
|
567
|
+
dnl flags for creating debug dlls
|
|
568
|
+
AC_GECODE_ADD_TO_DLLFLAGS([${CXXFLAGS} -LDd MDd])
|
|
569
|
+
fi
|
|
570
|
+
|
|
571
|
+
AC_SUBST(sharedlibdir, "${bindir}")
|
|
572
|
+
AC_SUBST(docdir, "${prefix}")
|
|
573
|
+
if test "${enable_static:-no}" = "yes"; then
|
|
574
|
+
AC_MSG_ERROR([Static linking not supported for Windows/cl.])
|
|
575
|
+
fi
|
|
576
|
+
|
|
577
|
+
dnl linker flags
|
|
578
|
+
AC_GECODE_ADD_TO_LDFLAGS([-link])
|
|
579
|
+
AC_SUBST(DLLPATH, "")
|
|
580
|
+
|
|
581
|
+
dnl file extensions
|
|
582
|
+
AC_SUBST(SBJEXT, "sbj")
|
|
583
|
+
AC_SUBST(DLLEXT, "dll")
|
|
584
|
+
AC_SUBST(SOSUFFIX, "")
|
|
585
|
+
AC_SUBST(SOLINKSUFFIX, "")
|
|
586
|
+
AC_SUBST(WLSONAME, "")
|
|
587
|
+
AC_SUBST(LIBEXT, "lib")
|
|
588
|
+
AC_SUBST(LIBPREFIX, "Gecode")
|
|
589
|
+
AC_SUBST(LINKPREFIX, "Gecode")
|
|
590
|
+
AC_SUBST(LINKSUFFIX, ".lib")
|
|
591
|
+
AC_SUBST(MINUSLDIR, "")
|
|
592
|
+
AC_SUBST(LINKLIBDIR, "${libdir}/")
|
|
593
|
+
|
|
594
|
+
cygpathprefix=$prefix
|
|
595
|
+
test "x$cygpathprefix" = xNONE && cygpathprefix=$ac_default_prefix
|
|
596
|
+
cygpathprefix=`cygpath -m ${cygpathprefix}`
|
|
597
|
+
|
|
598
|
+
AC_SUBST(cygpathprefix, "${cygpathprefix}")
|
|
599
|
+
AC_GECODE_BUILDFLAGS
|
|
600
|
+
|
|
601
|
+
dnl compiler options
|
|
602
|
+
AC_SUBST(COMPILEOBJ, "-c -Fo")
|
|
603
|
+
AC_SUBST(COMPILESBJ, "-c -Fa")
|
|
604
|
+
AC_SUBST(COMPILERIN, "-Tp")
|
|
605
|
+
AC_SUBST(EXAMPLES_EXTRA_CXXFLAGS, "-wd4355")
|
|
606
|
+
|
|
607
|
+
dnl Install stub .lib files (required for msvc)
|
|
608
|
+
AC_SUBST(INSTALLLIBS, "yes")
|
|
609
|
+
|
|
610
|
+
dnl how to tell the compiler to output an object file
|
|
611
|
+
AC_SUBST(LINKOUTPUT, "-Fe")
|
|
612
|
+
dnl how to tell the compiler to output an executable
|
|
613
|
+
AC_SUBST(EXEOUTPUT, "-Fe")
|
|
614
|
+
|
|
615
|
+
dnl the names of the generated dlls
|
|
616
|
+
AC_SUBST(KERNEL, "Kernel")
|
|
617
|
+
AC_SUBST(SEARCH, "Search")
|
|
618
|
+
AC_SUBST(INT, "Int")
|
|
619
|
+
AC_SUBST(SET, "Set")
|
|
620
|
+
AC_SUBST(MM, "Minimodel")])
|
|
621
|
+
|
|
622
|
+
dnl Macro:
|
|
623
|
+
dnl AC_GECODE_DOC_SWITCHES
|
|
624
|
+
dnl
|
|
625
|
+
dnl Description:
|
|
626
|
+
dnl Produces the configure switches --enable-doc-search,
|
|
627
|
+
dnl --enable-doc-chm, and --enable-doc-tagfile.
|
|
628
|
+
dnl
|
|
629
|
+
dnl Authors:
|
|
630
|
+
dnl Guido Tack <tack@gecode.org>
|
|
631
|
+
AC_DEFUN([AC_GECODE_DOC_SWITCHES],
|
|
632
|
+
[dnl check if we can use dot for generating graphs in the documentation
|
|
633
|
+
AC_ARG_ENABLE([doc-dot],
|
|
634
|
+
AC_HELP_STRING([--enable-doc-dot],
|
|
635
|
+
[enable graphs in documentation @<:@default=yes@:>@]))
|
|
636
|
+
AC_CHECK_PROG(DOT, dot, dot)
|
|
637
|
+
AC_MSG_CHECKING(whether to enable graphs in the documentation)
|
|
638
|
+
if test "${enable_doc_dot:-yes}" = "yes"; then
|
|
639
|
+
if test x$DOT = x; then
|
|
640
|
+
if test x"${enable_doc_dot}" = x; then
|
|
641
|
+
AC_MSG_RESULT(no)
|
|
642
|
+
AC_SUBST(GECODE_DOXYGEN_DOT, NO)
|
|
643
|
+
else
|
|
644
|
+
AC_MSG_ERROR(you need the dot tool from graphviz to generate graphs in the documentation)
|
|
645
|
+
fi
|
|
646
|
+
else
|
|
647
|
+
AC_MSG_RESULT(yes)
|
|
648
|
+
AC_SUBST(GECODE_DOXYGEN_DOT, YES)
|
|
649
|
+
fi
|
|
650
|
+
else
|
|
651
|
+
AC_MSG_RESULT(no)
|
|
652
|
+
AC_SUBST(GECODE_DOXYGEN_DOT, NO)
|
|
653
|
+
fi
|
|
654
|
+
|
|
655
|
+
AC_ARG_ENABLE([doc-search],
|
|
656
|
+
AC_HELP_STRING([--enable-doc-search],
|
|
657
|
+
[enable documentation search engine @<:@default=no@:>@]))
|
|
658
|
+
AC_MSG_CHECKING(whether to enable the documentation search engine)
|
|
659
|
+
if test "${enable_doc_search:-no}" = "yes"; then
|
|
660
|
+
AC_MSG_RESULT(yes)
|
|
661
|
+
AC_SUBST(ENABLEDOCSEARCH, "yes")
|
|
662
|
+
else
|
|
663
|
+
AC_MSG_RESULT(no)
|
|
664
|
+
AC_SUBST(ENABLEDOCSEARCH, "no")
|
|
665
|
+
fi
|
|
666
|
+
AC_ARG_ENABLE([doc-tagfile],
|
|
667
|
+
AC_HELP_STRING([--enable-doc-tagfile],
|
|
668
|
+
[generate doxygen tagfile @<:@default=no@:>@]))
|
|
669
|
+
AC_MSG_CHECKING(whether to generate a doxygen tagfile)
|
|
670
|
+
if test "${enable_doc_tagfile:-no}" = "yes"; then
|
|
671
|
+
AC_MSG_RESULT(yes)
|
|
672
|
+
AC_SUBST(GECODE_DOXYGEN_TAGFILE, "doc/gecode-doc.tag")
|
|
673
|
+
else
|
|
674
|
+
AC_MSG_RESULT(no)
|
|
675
|
+
AC_SUBST(GECODE_DOXYGEN_TAGFILE, [])
|
|
676
|
+
fi
|
|
677
|
+
AC_ARG_ENABLE([doc-chm],
|
|
678
|
+
AC_HELP_STRING([--enable-doc-chm],
|
|
679
|
+
[build compressed html documentation @<:@default=yes on Windows@:>@]))
|
|
680
|
+
AC_MSG_CHECKING(whether to build compressed html documentation)
|
|
681
|
+
case $host_os in
|
|
682
|
+
windows*)
|
|
683
|
+
if test "${enable_doc_chm:-yes}" = "yes"; then
|
|
684
|
+
AC_MSG_RESULT(yes)
|
|
685
|
+
AC_SUBST(ENABLEDOCCHM, "yes")
|
|
686
|
+
AC_SUBST(ENABLEDOCSEARCH, "no")
|
|
687
|
+
else
|
|
688
|
+
AC_MSG_RESULT(no)
|
|
689
|
+
AC_SUBST(ENABLEDOCCHM, "no")
|
|
690
|
+
fi
|
|
691
|
+
;;
|
|
692
|
+
*)
|
|
693
|
+
if test "${enable_doc_chm:-no}" = "yes"; then
|
|
694
|
+
AC_MSG_ERROR([building chms is only supported on Windows.])
|
|
695
|
+
else
|
|
696
|
+
AC_MSG_RESULT(no)
|
|
697
|
+
AC_SUBST(ENABLEDOCCHM, "no")
|
|
698
|
+
fi
|
|
699
|
+
;;
|
|
700
|
+
esac])
|
|
701
|
+
|
|
702
|
+
dnl Macro:
|
|
703
|
+
dnl AC_GECODE_UNIVERSAL
|
|
704
|
+
dnl
|
|
705
|
+
dnl Description:
|
|
706
|
+
dnl Produces the configure switches --enable-universal and --with-sdk
|
|
707
|
+
dnl for compiling universal binaries on Mac OS X.
|
|
708
|
+
dnl
|
|
709
|
+
dnl Authors:
|
|
710
|
+
dnl Guido Tack <tack@gecode.org>
|
|
711
|
+
AC_DEFUN([AC_GECODE_UNIVERSAL],
|
|
712
|
+
[dnl build universal binaries on Mac OS X
|
|
713
|
+
AC_ARG_WITH([sdk],
|
|
714
|
+
AC_HELP_STRING([--with-sdk],
|
|
715
|
+
[SDK to use on Mac OS X]))
|
|
716
|
+
if test "${host_os}" = "darwin"; then
|
|
717
|
+
if test "${with_sdk:-no}" != "no"; then
|
|
718
|
+
AC_GECODE_CHECK_CXXFLAG([-isysroot ${with_sdk}])
|
|
719
|
+
AC_GECODE_ADD_TO_DLLFLAGS([-Wl,-syslibroot,${with_sdk}])
|
|
720
|
+
fi
|
|
721
|
+
fi
|
|
722
|
+
AC_ARG_ENABLE([universal],
|
|
723
|
+
AC_HELP_STRING([--enable-universal],
|
|
724
|
+
[build universal binaries on Mac OS X @<:@default=no@:>@]))
|
|
725
|
+
if test "${host_os}" = "darwin"; then
|
|
726
|
+
AC_MSG_CHECKING(whether to build universal binaries on Mac OS X)
|
|
727
|
+
if test "${enable_universal:-no}" = "yes"; then
|
|
728
|
+
AC_MSG_RESULT(yes)
|
|
729
|
+
AC_GECODE_CHECK_CXXFLAG([-arch i386 -arch ppc])
|
|
730
|
+
AC_GECODE_ADD_TO_DLLFLAGS([-arch i386 -arch ppc])
|
|
731
|
+
else
|
|
732
|
+
AC_MSG_RESULT(no)
|
|
733
|
+
fi
|
|
734
|
+
fi
|
|
735
|
+
|
|
736
|
+
])
|