this repo has no description
1# -*-Makefile-*- 2# 3# Main authors: 4# Christian Schulte <schulte@gecode.org> 5# Guido Tack <tack@gecode.org> 6# 7# Contributing authors: 8# Mikael Lagerkvist <lagerkvist@gecode.org> 9# 10# Copyright: 11# Christian Schulte, 2005 12# Guido Tack, 2005 13# Mikael Lagerkvist, 2020 14# 15# This file is part of Gecode, the generic constraint 16# development environment: 17# http://www.gecode.org 18# 19# Permission is hereby granted, free of charge, to any person obtaining 20# a copy of this software and associated documentation files (the 21# "Software"), to deal in the Software without restriction, including 22# without limitation the rights to use, copy, modify, merge, publish, 23# distribute, sublicense, and/or sell copies of the Software, and to 24# permit persons to whom the Software is furnished to do so, subject to 25# the following conditions: 26# 27# The above copyright notice and this permission notice shall be 28# included in all copies or substantial portions of the Software. 29# 30# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 31# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 32# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 33# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 34# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 35# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 36# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 37# 38 39# 40# General Settings 41# 42 43export prefix = @prefix@ 44export exec_prefix = @exec_prefix@ 45export bindir = @bindir@ 46export libdir = @libdir@ 47export sharedlibdir = @sharedlibdir@ 48export includedir = @includedir@ 49export srcdir = @srcdir@ 50export datarootdir = @datarootdir@ 51export datadir = @datadir@ 52export docdir= @docdir@ 53export top_srcdir = @top_srcdir@ 54export top_builddir = . 55 56# Install to different root directory 57DESTDIR= 58 59export subdirs = @subdirs@ 60 61export VERSION = @VERSION@ 62 63export CXX = @CXX@ 64export CC = @CC@ 65export MOC = @MOC@ 66ifeq "$(top_srcdir)" "$(top_builddir)" 67CPPFLAGS=-I$(top_srcdir) 68else 69CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) 70endif 71export CPPFLAGS 72export CXXFLAGS = $(CPPFLAGS) @CXXFLAGS@ $(CXXUSR) 73export CFLAGS = $(CPPFLAGS) @CFLAGS@ $(CUSR) 74export EXAMPLES_EXTRA_CXXFLAGS = @EXAMPLES_EXTRA_CXXFLAGS@ 75 76export QT_CPPFLAGS = @QTDEFINES@ @QTINCLUDES@ 77export LINKQT = @QTLIBS@ 78export MPFR_CPPFLAGS = @GMP_CPPFLAGS@ @MPFR_CPPFLAGS@ 79ifeq "@enable_mpfr@" "yes" 80export LINKMPFR = @MPFR_LIB_PATH@ @GMP_LIB_PATH@ @MPFR_LINK@ @GMP_LINK@ 81else 82export LINKMPFR = 83endif 84 85ifeq "@BUILDDLL@" "yes" 86export LINKSTATICQT 87else 88export LINKSTATICQT = $(LINKQT) 89endif 90 91export GLDFLAGS = @GLDFLAGS@ 92export DLLFLAGS = @DLLFLAGS@ 93export DLLPATH = @DLLPATH@ 94 95export RANLIB = @RANLIB@ 96export TAR = tar 97 98export RUNENVIRONMENT = @RUNENVIRONMENT@ 99 100# 101# Use suffixes to get consistent treatment of dots 102# 103export OBJSUFFIX = .@OBJEXT@ 104export SBJSUFFIX = .@SBJEXT@ 105export DLLSUFFIX = @DLL_ARCH@@USERSUFFIX@.@DLLEXT@ 106export MANIFESTSUFFIX = @DLL_ARCH@@USERSUFFIX@.@DLLEXT@.manifest 107export RCSUFFIX = @DLL_ARCH@@USERSUFFIX@.@DLLEXT@.rc 108export RESSUFFIX = @DLL_ARCH@@USERSUFFIX@.@DLLEXT@.res 109export LIBSUFFIX = @DLL_ARCH@@USERSUFFIX@.@LIBEXT@ 110export PDBSUFFIX = @DLL_ARCH@@USERSUFFIX@.pdb 111export EXPSUFFIX = @DLL_ARCH@@USERSUFFIX@.exp 112export STATICLIBSUFFIX = .@STATICLIBEXT@ 113export EXESUFFIX = @EXEEXT@ 114 115export LIBPREFIX = @LIBPREFIX@ 116export LINKPREFIX = @LINKPREFIX@ 117export LINKSUFFIX = @DLL_ARCH@@USERSUFFIX@@LINKSUFFIX@ 118 119export SOLINKSUFFIX = @DLL_ARCH@@USERSUFFIX@@SOLINKSUFFIX@ 120export SOSUFFIX = @DLL_ARCH@@USERSUFFIX@@SOSUFFIX@ 121 122# 123# Programs 124# 125export RMF = rm -rf 126export MV = mv 127export MANIFEST = @MANIFEST@ -nologo 128export FIXMANIFEST = perl $(top_srcdir)/misc/fixmanifest.perl $(DLLSUFFIX) 129export RESCOMP = @RESCOMP@ -n -i$(top_srcdir) 130export RCGEN = perl $(top_srcdir)/misc/genrc.perl $(DLLSUFFIX) $(top_srcdir) 131 132ifeq "@need_soname@" "yes" 133export CREATELINK = ln -fs 134else 135export CREATELINK = @true 136endif 137 138ifeq "@enable_resource@" "yes" 139%.res: %.rc 140 $(RESCOMP) -fo $@ $< 141.PRECIOUS: %.res %.rc 142endif 143 144# 145# SUPPORT COMPONENTS 146# 147SUPPORTSRC0 = \ 148 exception allocator heap \ 149 thread/thread thread/windows thread/pthreads \ 150 hw-rnd 151SUPPORTHDR0 = \ 152 block-allocator cast hash dynamic-array \ 153 dynamic-stack exception allocator heap \ 154 macros random sort static-stack \ 155 marked-pointer int-type auto-link \ 156 thread thread/thread thread/windows thread/pthreads thread/none timer \ 157 dynamic-queue bitset-base bitset bitset-offset \ 158 hw-rnd run-jobs ref-count 159 160SUPPORTSRC1 = $(SUPPORTSRC0:%=gecode/support/%.cpp) 161SUPPORTHDR = gecode/support.hh \ 162 $(SUPPORTHDR0:%=gecode/support/%.hpp) 163SUPPORTOBJ = $(SUPPORTSRC1:%.cpp=%$(OBJSUFFIX)) 164SUPPORTSRC = $(SUPPORTSRC1) 165 166export SUPPORTDLL = $(LIBPREFIX)@SUPPORT@$(DLLSUFFIX) 167export SUPPORTLIB = $(LIBPREFIX)@SUPPORT@$(LIBSUFFIX) 168ifeq "@need_soname@" "yes" 169export SUPPORTSONAME = \ 170 @WLSONAME@$(LIBPREFIX)@SUPPORT@$(SOSUFFIX) 171else 172export SUPPORTSONAME = 173endif 174export SUPPORTSTATICLIB = $(LIBPREFIX)@SUPPORT@$(STATICLIBSUFFIX) 175export LINKSUPPORT = \ 176 $(LINKPREFIX)@SUPPORT@$(LINKSUFFIX) 177ifeq "@enable_resource@" "yes" 178export SUPPORTRC = $(LIBPREFIX)@SUPPORT@$(RCSUFFIX) 179export SUPPORTRES = $(LIBPREFIX)@SUPPORT@$(RESSUFFIX) 180else 181export SUPPORTRES = 182export SUPPORTRC = 183endif 184 185SUPPORTBUILDDIRS = support support/thread 186 187 188# 189# KERNEL COMPONENTS 190# 191 192VARIMPHDR = \ 193 gecode/kernel/var-type.hpp \ 194 gecode/kernel/var-imp.hpp 195 196VARIMP = $(VARIMPHDR) 197 198KERNELSRC0 = \ 199 archive core exception gpi \ 200 data/rnd \ 201 branch/action branch/afc branch/chb branch/function \ 202 memory/manager memory/region \ 203 trace/recorder trace/filter trace/tracer trace/general \ 204 data/array 205 206KERNELHDR0 = \ 207 archive core exception macros modevent gpi \ 208 shared-object shared-space-data range-list \ 209 view var \ 210 memory/config memory/manager memory/region memory/allocators \ 211 data/array data/rnd data/shared-array data/shared-data \ 212 propagator/pattern propagator/advisor propagator/subscribed \ 213 propagator/wait \ 214 branch/var branch/val branch/tiebreak \ 215 branch/traits branch/afc branch/action branch/chb \ 216 branch/view-sel branch/merit \ 217 branch/val-sel branch/val-commit branch/view branch/view-val \ 218 branch/val-sel-commit branch/print branch/filter \ 219 trace/traits trace/filter trace/tracer trace/recorder \ 220 trace/general trace/print 221 222 223KERNELSRC = $(KERNELSRC0:%=gecode/kernel/%.cpp) 224KERNELHDR = \ 225 gecode/kernel.hh \ 226 $(KERNELHDR0:%=gecode/kernel/%.hpp) 227KERNELOBJ = $(KERNELSRC:%.cpp=%$(OBJSUFFIX)) 228 229export KERNELDLL = $(LIBPREFIX)@KERNEL@$(DLLSUFFIX) 230export KERNELLIB = $(LIBPREFIX)@KERNEL@$(LIBSUFFIX) 231ifeq "@need_soname@" "yes" 232export KERNELSONAME = \ 233 @WLSONAME@$(LIBPREFIX)@KERNEL@$(SOSUFFIX) 234else 235export KERNELSONAME = 236endif 237export KERNELSTATICLIB = $(LIBPREFIX)@KERNEL@$(STATICLIBSUFFIX) 238export LINKKERNEL = $(LINKPREFIX)@KERNEL@$(LINKSUFFIX) 239ifeq "@enable_resource@" "yes" 240export KERNELRC = $(LIBPREFIX)@KERNEL@$(RCSUFFIX) 241export KERNELRES = $(LIBPREFIX)@KERNEL@$(RESSUFFIX) 242else 243export KERNELRES = 244export KERNELRC = 245endif 246 247KERNELBUILDDIRS = kernel \ 248 kernel/data kernel/propagator kernel/branch kernel/memory kernel/trace 249 250ifeq "@enable_flatzinc@" "yes" 251EXTRA_HEADERS = gecode/support/config.hpp gecode/flatzinc/parser.tab.hpp 252else 253EXTRA_HEADERS = gecode/support/config.hpp 254endif 255 256# 257# SEARCH COMPONENTS 258# 259 260SEARCHSRC0 = \ 261 stop options cutoff engine \ 262 dfs bab lds \ 263 seq/rbs seq/dead seq/pbs par/pbs \ 264 rbs pbs nogoods exception tracer \ 265 cpprofiler/tracer 266SEARCHHDR0 = \ 267 statistics.hpp stop.hpp options.hpp cutoff.hpp \ 268 support.hh worker.hh exception.hpp engine.hpp base.hpp \ 269 nogoods.hh nogoods.hpp build.hpp traits.hpp sebs.hpp \ 270 seq/path.hh seq/path.hpp seq/dfs.hh seq/dfs.hpp \ 271 seq/bab.hh seq/bab.hpp seq/lds.hh seq/lds.hpp \ 272 seq/rbs.hh seq/rbs.hpp seq/dead.hh \ 273 seq/pbs.hh seq/pbs.hpp \ 274 par/path.hh par/path.hpp par/engine.hh par/engine.hpp \ 275 par/dfs.hh par/dfs.hpp par/bab.hh par/bab.hpp \ 276 par/pbs.hh par/pbs.hpp \ 277 dfs.hpp bab.hpp lds.hpp rbs.hpp pbs.hpp \ 278 relax.hh tracer.hpp trace-recorder.hpp \ 279 cpprofiler/message.hpp cpprofiler/connector.hpp 280 281SEARCHSRC = $(SEARCHSRC0:%=gecode/search/%.cpp) 282SEARCHHDR = gecode/search.hh $(SEARCHHDR0:%=gecode/search/%) 283SEARCHOBJ = $(SEARCHSRC:%.cpp=%$(OBJSUFFIX)) 284 285ifeq "@enable_search@" "yes" 286export SEARCHDLL = $(LIBPREFIX)@SEARCH@$(DLLSUFFIX) 287export SEARCHSTATICLIB = $(LIBPREFIX)@SEARCH@$(STATICLIBSUFFIX) 288export SEARCHLIB = $(LIBPREFIX)@SEARCH@$(LIBSUFFIX) 289export LINKSEARCH = $(LINKPREFIX)@SEARCH@$(LINKSUFFIX) 290ifeq "@need_soname@" "yes" 291export SEARCHSONAME = \ 292 @WLSONAME@$(LIBPREFIX)@SEARCH@$(SOSUFFIX) 293else 294export SEARCHSONAME = 295ifeq "@enable_resource@" "yes" 296export SEARCHRC = $(LIBPREFIX)@SEARCH@$(RCSUFFIX) 297export SEARCHRES = $(LIBPREFIX)@SEARCH@$(RESSUFFIX) 298else 299export SEARCHRES = 300export SEARCHRC = 301endif 302endif 303else 304export SEARCHDLL = 305export SEARCHSTATICLIB = 306export SEARCHLIB = 307export LINKSEARCH = 308export SEARCHRES = 309export SEARCHRC = 310endif 311SEARCHBUILDDIRS = search search/seq search/par search/cpprofiler 312 313 314# 315# INTEGER COMPONENTS 316# 317 318INTSRC0 = \ 319 int-set.cpp var-imp/int.cpp var-imp/bool.cpp var/int.cpp \ 320 var/bool.cpp array.cpp bool.cpp bool/eqv.cpp \ 321 extensional/dfa.cpp extensional/tuple-set.cpp \ 322 extensional-regular.cpp extensional-tuple-set.cpp \ 323 dom.cpp rel.cpp precede.cpp element.cpp count.cpp \ 324 arithmetic.cpp exec.cpp \ 325 exec/when.cpp element/pair.cpp \ 326 linear/int-post.cpp linear-int.cpp \ 327 linear/bool-post.cpp linear-bool.cpp \ 328 branch.cpp distinct/eqite.cpp distinct/cbs.cpp \ 329 distinct.cpp sorted.cpp gcc.cpp \ 330 channel.cpp channel/link-single.cpp channel/link-multi.cpp \ 331 unshare.cpp sequence.cpp \ 332 bin-packing.cpp bin-packing/propagate.cpp \ 333 bin-packing/conflict-graph.cpp \ 334 order.cpp order/propagate.cpp \ 335 unary.cpp cumulative.cpp cumulatives.cpp \ 336 circuit.cpp no-overlap.cpp nvalues.cpp \ 337 member.cpp branch/action.cpp branch/chb.cpp \ 338 arithmetic/mult.cpp \ 339 branch/view-sel.cpp branch/val-sel-commit.cpp \ 340 branch/view-values.cpp \ 341 relax.cpp \ 342 ldsb.cpp ldsb/sym-imp.cpp ldsb/sym-obj.cpp \ 343 trace.cpp trace/tracer.cpp \ 344 exception.cpp 345 346INTHDR0 = \ 347 limits.hpp support-values.hh support-values.hpp \ 348 idx-view.hh idx-view.hpp div.hh div.hpp \ 349 exec.hh exec/when.hpp \ 350 arithmetic/abs.hpp arithmetic/max.hpp arithmetic/argmax.hpp \ 351 arithmetic/mult.hpp arithmetic/divmod.hpp \ 352 arithmetic/pow-ops.hpp arithmetic/pow.hpp arithmetic/nroot.hpp \ 353 bool/or.hpp bool/eq.hpp bool/lq.hpp bool/eqv.hpp bool/base.hpp \ 354 bool/clause.hpp bool/ite.hpp \ 355 precede.hh precede/single.hpp \ 356 branch/traits.hpp branch/var.hpp branch/val.hpp branch/assign.hpp \ 357 branch/view-values.hpp branch/merit.hpp \ 358 branch/val-sel.hpp branch/val-commit.hpp branch/ngl.hpp \ 359 branch/cbs.hpp branch.hpp \ 360 count.hh count/rel.hpp \ 361 count/int-base.hpp count/int-eq.hpp \ 362 count/int-gq.hpp count/int-lq.hpp \ 363 count/view-base.hpp count/view-eq.hpp \ 364 count/view-gq.hpp count/view-lq.hpp \ 365 view-val-graph.hh view-val-graph/graph.hpp \ 366 view-val-graph/bi-link.hpp view-val-graph/comb-ptr-flag.hpp \ 367 view-val-graph/edge.hpp view-val-graph/node.hpp \ 368 view-val-graph/iter-prune-val.hpp \ 369 distinct/graph.hpp distinct/dom-ctrl.hpp \ 370 distinct/bnd.hpp distinct/dom.hpp \ 371 distinct/val.hpp distinct/ter-dom.hpp \ 372 distinct/cbs.hpp \ 373 distinct/eqite.hpp \ 374 dom/range.hpp dom/set.hpp \ 375 element/int.hpp element/view.hpp element/pair.hpp \ 376 gcc/bnd.hpp gcc/dom.hpp gcc/bnd-sup.hpp gcc/dom-sup.hpp \ 377 gcc/val.hpp gcc/view.hpp gcc/post.hpp \ 378 linear/post.hpp \ 379 linear/int-noview.hpp linear/int-bin.hpp linear/int-ter.hpp \ 380 linear/int-nary.hpp linear/int-dom.hpp \ 381 linear/bool-int.hpp linear/bool-view.hpp linear/bool-scale.hpp \ 382 extensional/dfa.hpp extensional/layered-graph.hpp \ 383 extensional/tuple-set.hpp extensional/compact.hpp \ 384 extensional/tiny-bit-set.hpp extensional/bit-set.hpp \ 385 extensional.hpp \ 386 rel/eq.hpp rel/lex.hpp rel/lq-le.hpp rel/nq.hpp \ 387 sorted/matching.hpp sorted/narrowing.hpp \ 388 sorted/order.hpp sorted/propagate.hpp sorted/sortsup.hpp \ 389 int-set-1.hpp int-set-2.hpp var-imp/delta.hpp var/print.hpp var/bool.hpp \ 390 var-imp/int.hpp var-imp/bool.hpp var/int.hpp \ 391 view/bool.hpp view/cached.hpp view/constint.hpp view/zero.hpp view/int.hpp \ 392 view/minus.hpp view/print.hpp view/neg-bool.hpp view/bool-test.hpp \ 393 view/offset.hpp view/rel-test.hpp view/scale.hpp view/iter.hpp \ 394 arithmetic.hh array.hpp array-traits.hpp bool.hh branch.hh \ 395 distinct.hh dom.hh \ 396 element.hh exception.hpp gcc.hh linear.hh \ 397 reify.hpp propagator.hpp extensional.hh rel.hh \ 398 sorted.hh var-imp.hpp view.hpp ipl.hpp irt.hpp \ 399 channel.hh channel.hpp channel/dom.hpp channel/val.hpp \ 400 channel/base.hpp channel/link-single.hpp channel/link-multi.hpp \ 401 sequence.hh sequence/int.hpp sequence/view.hpp \ 402 sequence/set-op.hpp sequence/violations.hpp \ 403 bin-packing.hh bin-packing/propagate.hpp \ 404 bin-packing/conflict-graph.hpp \ 405 task.hh task/fwd-to-bwd.hpp task/array.hpp task/sort.hpp \ 406 task/iter.hpp task/tree.hpp task/purge.hpp task/prop.hpp \ 407 task/man-to-opt.hpp task/event.hpp \ 408 order.hh order/propagate.hpp \ 409 unary.hh unary/task.hpp unary/task-view.hpp \ 410 unary/tree.hpp unary/overload.hpp unary/detectable.hpp \ 411 unary/time-tabling.hpp unary/not-first-not-last.hpp \ 412 unary/edge-finding.hpp unary/subsumption.hpp \ 413 unary/man-prop.hpp unary/opt-prop.hpp unary/post.hpp \ 414 cumulative.hh cumulative/man-prop.hpp cumulative/opt-prop.hpp \ 415 cumulative/task-view.hpp cumulative/overload.hpp \ 416 cumulative/time-tabling.hpp cumulative/task.hpp \ 417 cumulative/edge-finding.hpp cumulative/post.hpp \ 418 cumulative/tree.hpp cumulative/limits.hpp \ 419 cumulative/subsumption.hpp \ 420 cumulatives.hh cumulatives/val.hpp \ 421 circuit.hh circuit/base.hpp circuit/val.hpp circuit/dom.hpp \ 422 no-overlap.hh no-overlap/dim.hpp no-overlap/box.hpp \ 423 no-overlap/base.hpp no-overlap/man.hpp no-overlap/opt.hpp \ 424 nvalues.hh nvalues/range-event.hpp \ 425 nvalues/sym-bit-matrix.hpp nvalues/graph.hpp \ 426 nvalues/bool-base.hpp nvalues/bool-eq.hpp \ 427 nvalues/bool-lq.hpp nvalues/bool-gq.hpp \ 428 nvalues/int-base.hpp nvalues/int-eq.hpp \ 429 nvalues/int-lq.hpp nvalues/int-gq.hpp \ 430 val-set.hh val-set.hpp \ 431 member.hh member/prop.hpp member/re-prop.hpp \ 432 branch/afc.hpp branch/action.hpp branch/chb.hpp \ 433 ldsb.hh ldsb/brancher.hpp ldsb/sym-imp.hpp \ 434 trace.hpp \ 435 trace/bool-trace-view.hpp trace/int-trace-view.hpp \ 436 trace/bool-delta.hpp trace/int-delta.hpp trace/traits.hpp 437 438INTSRC = $(INTSRC0:%=gecode/int/%) 439INTHDR = gecode/int.hh $(INTHDR0:%=gecode/int/%) 440INTOBJ = $(INTSRC:%.cpp=%$(OBJSUFFIX)) 441 442ifeq "@enable_int_vars@" "yes" 443export INTDLL = $(LIBPREFIX)@INT@$(DLLSUFFIX) 444export INTSTATICLIB = $(LIBPREFIX)@INT@$(STATICLIBSUFFIX) 445export INTLIB = $(LIBPREFIX)@INT@$(LIBSUFFIX) 446export LINKINT = $(LINKPREFIX)@INT@$(LINKSUFFIX) 447ifeq "@need_soname@" "yes" 448export INTSONAME = \ 449 @WLSONAME@$(LIBPREFIX)@INT@$(SOSUFFIX) 450else 451export INTSONAME = 452endif 453ifeq "@enable_resource@" "yes" 454export INTRC = $(LIBPREFIX)@INT@$(RCSUFFIX) 455export INTRES = $(LIBPREFIX)@INT@$(RESSUFFIX) 456else 457export INTRES = 458export INTRC = 459endif 460else 461export INTDLL = 462export INTSTATICLIB = 463export INTLIB = 464export LINKINT = 465export INTRES = 466export INTRC = 467endif 468INTBUILDDIRS = \ 469 int int/var int/var-imp int/view int/extensional \ 470 int/channel int/arithmetic int/linear int/bool int/branch int/exec \ 471 int/element int/sequence int/bin-packing \ 472 int/unary int/cumulative int/cumulatives int/task \ 473 int/ldsb int/distinct int/trace int/order 474 475# 476# FLOAT COMPONENTS 477# 478 479FLOATSRC0 = \ 480 var/float.cpp var-imp/float.cpp \ 481 arithmetic.cpp array.cpp branch.cpp rel.cpp linear.cpp \ 482 linear/post.cpp bool.cpp channel.cpp \ 483 transcendental.cpp trigonometric.cpp \ 484 branch/action.cpp branch/chb.cpp rounding.cpp exec.cpp \ 485 branch/val-sel-commit.cpp branch/view-sel.cpp dom.cpp \ 486 relax.cpp \ 487 trace.cpp trace/tracer.cpp \ 488 exception.cpp 489 490FLOATHDR0 = \ 491 var-imp.hpp array.hpp array-traits.hpp limits.hpp exception.hpp \ 492 view.hpp view/float.hpp view/minus.hpp view/offset.hpp \ 493 view/scale.hpp view/print.hpp view/rel-test.hpp \ 494 var-imp/float.hpp var-imp/delta.hpp \ 495 var/float.hpp var/print.hpp linear.hh linear/nary.hpp \ 496 arithmetic.hh arithmetic/sqr-sqrt.hpp arithmetic/pow-nroot.hpp \ 497 arithmetic/mult.hpp arithmetic/div.hpp arithmetic/min-max.hpp \ 498 arithmetic/abs.hpp \ 499 channel.hh channel.hpp channel/channel.hpp \ 500 transcendental.hh transcendental/exp-log.hpp trigonometric.hh \ 501 trigonometric/sincos.hpp trigonometric/asinacos.hpp \ 502 trigonometric/tanatan.hpp \ 503 rel.hh rel/eq.hpp rel/lq-le.hpp rel/nq.hpp \ 504 bool.hh bool/ite.hpp \ 505 branch.hh branch/afc.hpp branch/action.hpp branch/chb.hpp \ 506 branch/traits.hpp branch.hpp \ 507 branch/var.hpp branch/val.hpp branch/assign.hpp \ 508 branch/val-commit.hpp branch/val-sel.hpp branch/merit.hpp \ 509 num.hpp val.hpp rounding.hpp nextafter.hpp \ 510 trace.hpp trace/trace-view.hpp trace/delta.hpp trace/traits.hpp 511 512FLOATSRC = $(FLOATSRC0:%=gecode/float/%) 513FLOATHDR = gecode/float.hh $(FLOATHDR0:%=gecode/float/%) 514FLOATOBJ = $(FLOATSRC:%.cpp=%$(OBJSUFFIX)) 515 516ifeq "@enable_float_vars@" "yes" 517export FLOATDLL = $(LIBPREFIX)@FLOAT@$(DLLSUFFIX) 518export FLOATSTATICLIB = $(LIBPREFIX)@FLOAT@$(STATICLIBSUFFIX) 519export FLOATLIB = $(LIBPREFIX)@FLOAT@$(LIBSUFFIX) 520export LINKFLOAT = $(LINKPREFIX)@FLOAT@$(LINKSUFFIX) 521ifeq "@need_soname@" "yes" 522export FLOATSONAME = \ 523 @WLSONAME@$(LIBPREFIX)@FLOAT@$(SOSUFFIX) 524else 525export FLOATSONAME = 526endif 527ifeq "@enable_resource@" "yes" 528export FLOATRC = $(LIBPREFIX)@FLOAT@$(RCSUFFIX) 529export FLOATRES = $(LIBPREFIX)@FLOAT@$(RESSUFFIX) 530else 531export FLOATRES = 532export FLOATRC = 533endif 534else 535export FLOATDLL = 536export FLOATSTATICLIB = 537export FLOATLIB = 538export LINKFLOAT = 539export FLOATRES = 540export FLOATRC = 541endif 542FLOATBUILDDIRS = \ 543 float float/var float/var-imp float/view \ 544 float/linear float/branch float/rel float/branch \ 545 float/arithmetic float/transcendental float/trigonometric \ 546 float/trace float/channel 547 548# 549# SET COMPONENTS 550# 551 552SETSRC0 = \ 553 branch.cpp cardinality.cpp convex.cpp convex/conv.cpp convex/hull.cpp \ 554 dom.cpp rel.cpp \ 555 rel-op.cpp rel-op-ternary.cpp rel-op-singleton.cpp \ 556 rel-op/post-compl.cpp rel-op/post-nocompl.cpp \ 557 rel-op/post-compl-cvv.cpp rel-op/post-nocompl-cvv.cpp \ 558 rel-op/post-compl-vvc.cpp rel-op/post-nocompl-vvc.cpp \ 559 rel-op/post-compl-cvc.cpp rel-op/post-nocompl-cvc.cpp \ 560 rel-op-const-vvc.cpp rel-op-const-vcv.cpp rel-op-const-vcc.cpp \ 561 rel-op-const-cvc.cpp rel-op-const-cvv.cpp \ 562 int.cpp channel.cpp bool.cpp \ 563 element.cpp sequence.cpp \ 564 distinct.cpp distinct/atmostOne.cpp \ 565 precede.cpp \ 566 sequence/seq.cpp sequence/seq-u.cpp array.cpp var-imp/set.cpp \ 567 var-imp/integerset.cpp var/set.cpp \ 568 exec.cpp branch/action.cpp branch/chb.cpp branch/view-sel.cpp \ 569 branch/val-sel-commit.cpp branch/ngl.cpp \ 570 ldsb.cpp ldsb/sym-imp.cpp \ 571 relax.cpp \ 572 trace.cpp trace/tracer.cpp \ 573 exception.cpp 574SETHDR0 = \ 575 limits.hpp \ 576 view.hpp exception.hpp int.hh int.hpp element.hh var-imp.hpp \ 577 int/card.hpp \ 578 int/minmax.hpp int/weights.hpp \ 579 channel/sorted.hpp channel/int.hpp channel/bool.hpp channel/set.hpp \ 580 element/inter.hpp element/union.hpp \ 581 element/unionConst.hpp \ 582 element/disjoint.hpp array.hpp array-traits.hpp \ 583 var-imp/set.hpp var-imp/integerset.hpp \ 584 var-imp/delta.hpp var-imp/iter.hpp \ 585 var/set.hpp var/print.hpp \ 586 view/complement.hpp view/const.hpp view/set.hpp view/singleton.hpp \ 587 view/cached.hpp view/print.hpp \ 588 rel/subset.hpp rel/re-subset.hpp rel/eq.hpp rel/nq.hpp rel/re-eq.hpp \ 589 rel/lq.hpp rel/re-lq.hpp \ 590 rel/common.hpp rel/nosubset.hpp sequence.hh \ 591 rel-op/union.hpp rel-op/partition.hpp rel-op/subofunion.hpp \ 592 rel-op/inter.hpp rel-op/superofinter.hpp \ 593 rel-op/post.hpp rel-op/common.hpp rel.hh \ 594 distinct.hh distinct/atmostOne.hpp \ 595 sequence/seq.hpp sequence/seq-u.hpp \ 596 sequence/common.hpp convex/conv.hpp convex/hull.hpp convex.hh \ 597 precede.hh precede/single.hpp \ 598 rel-op.hh \ 599 branch.hh branch/afc.hpp branch/action.hpp branch/chb.hpp \ 600 branch/traits.hpp branch.hpp \ 601 branch/var.hpp branch/val.hpp branch/assign.hpp \ 602 branch/merit.hpp branch/val-commit.hpp branch/val-sel.hpp \ 603 branch/ngl.hpp \ 604 ldsb.hh ldsb/brancher.hpp channel.hh \ 605 trace.hpp trace/trace-view.hpp trace/delta.hpp trace/traits.hpp 606 607 608SETSRC = $(SETSRC0:%=gecode/set/%) 609SETHDR = gecode/set.hh $(SETHDR0:%=gecode/set/%) 610SETOBJ = $(SETSRC:%.cpp=%$(OBJSUFFIX)) 611 612ifeq "@enable_set_vars@" "yes" 613export SETDLL = $(LIBPREFIX)@SET@$(DLLSUFFIX) 614export SETSTATICLIB = $(LIBPREFIX)@SET@$(STATICLIBSUFFIX) 615export SETLIB = $(LIBPREFIX)@SET@$(LIBSUFFIX) 616export LINKSET = $(LINKPREFIX)@SET@$(LINKSUFFIX) 617ifeq "@need_soname@" "yes" 618export SETSONAME = \ 619 @WLSONAME@$(LIBPREFIX)@SET@$(SOSUFFIX) 620else 621export SETSONAME = 622endif 623ifeq "@enable_resource@" "yes" 624export SETRC = $(LIBPREFIX)@SET@$(RCSUFFIX) 625export SETRES = $(LIBPREFIX)@SET@$(RESSUFFIX) 626else 627export SETRES = 628export SETRC = 629endif 630else 631export SETDLL = 632export SETSTATICLIB = 633export SETLIB = 634export LINKSET = 635export SETRES = 636export SETRC = 637endif 638SETBUILDDIRS = \ 639 set set/convex set/distinct set/int set/rel set/rel-op \ 640 set/element set/sequence set/var set/var-imp set/view \ 641 set/branch set/channel set/ldsb set/trace 642 643 644# 645# MINIMODEL COMPONENTS 646# 647 648MMSRC0 = \ 649 int-expr.cpp int-rel.cpp int-arith.cpp bool-expr.cpp \ 650 set-expr.cpp set-rel.cpp dom.cpp \ 651 float-expr.cpp float-rel.cpp float-arith.cpp \ 652 reg.cpp optimize.cpp exception.cpp ipl.cpp 653MMHDR0 = \ 654 int-expr.hpp int-rel.hpp float-expr.hpp float-rel.hpp \ 655 bool-expr.hpp set-expr.hpp set-rel.hpp \ 656 exception.hpp matrix.hpp \ 657 optimize.hpp reg.hpp ldsb.hpp channel.hpp aliases.hpp \ 658 ipl.hpp 659 660MMSRC = $(MMSRC0:%=gecode/minimodel/%) 661MMHDR = gecode/minimodel.hh $(MMHDR0:%=gecode/minimodel/%) 662MMOBJ = $(MMSRC:%.cpp=%$(OBJSUFFIX)) 663MMSBJ = $(MMSRC:%.cpp=%$(SBJSUFFIX)) 664 665ifeq "@enable_minimodel@" "yes" 666export MMDLL = $(LIBPREFIX)@MM@$(DLLSUFFIX) 667export MMSTATICLIB = $(LIBPREFIX)@MM@$(STATICLIBSUFFIX) 668export MMLIB = $(LIBPREFIX)@MM@$(LIBSUFFIX) 669export LINKMM = $(LINKPREFIX)@MM@$(LINKSUFFIX) 670ifeq "@need_soname@" "yes" 671export MMSONAME = \ 672 @WLSONAME@$(LIBPREFIX)@MM@$(SOSUFFIX) 673else 674export MMSONAME = 675endif 676ifeq "@enable_resource@" "yes" 677export MMRC = $(LIBPREFIX)@MM@$(RCSUFFIX) 678export MMRES = $(LIBPREFIX)@MM@$(RESSUFFIX) 679else 680export MMRES = 681export MMRC = 682endif 683else 684export MMDLL = 685export MMSTATICLIB = 686export MMLIB = 687export LINKMM = 688export MMRES = 689export MMRC = 690endif 691MMBUILDDIRS = minimodel 692 693# 694# DRIVER COMPONENTS 695# 696 697DRIVERSRC0 = options.cpp script.cpp 698DRIVERHDR0 = options.hpp script.hpp 699 700DRIVERSRC = $(DRIVERSRC0:%=gecode/driver/%) 701DRIVERHDR = gecode/driver.hh $(DRIVERHDR0:%=gecode/driver/%) 702DRIVEROBJ = $(DRIVERSRC:%.cpp=%$(OBJSUFFIX)) 703DRIVERSBJ = $(DRIVERSRC:%.cpp=%$(SBJSUFFIX)) 704 705ifeq "@enable_driver@" "yes" 706export DRIVERDLL = $(LIBPREFIX)@DRIVER@$(DLLSUFFIX) 707export DRIVERSTATICLIB = $(LIBPREFIX)@DRIVER@$(STATICLIBSUFFIX) 708export DRIVERLIB = $(LIBPREFIX)@DRIVER@$(LIBSUFFIX) 709export LINKDRIVER = $(LINKPREFIX)@DRIVER@$(LINKSUFFIX) 710ifeq "@need_soname@" "yes" 711export DRIVERSONAME = \ 712 @WLSONAME@$(LIBPREFIX)@DRIVER@$(SOSUFFIX) 713else 714export DRIVERSONAME = 715endif 716ifeq "@enable_resource@" "yes" 717export DRIVERRC = $(LIBPREFIX)@DRIVER@$(RCSUFFIX) 718export DRIVERRES = $(LIBPREFIX)@DRIVER@$(RESSUFFIX) 719else 720export DRIVERRES = 721export DRIVERRC = 722endif 723else 724export DRIVERDLL = 725export DRIVERSTATICLIB = 726export DRIVERLIB = 727export LINKDRIVER = 728export DRIVERRES = 729export DRIVERRC = 730endif 731DRIVERBUILDDIRS = driver 732 733# 734# ITERATOR HEADERS 735# 736ITERHDR0 = \ 737 ranges-add ranges-append ranges-array ranges-cache \ 738 ranges-compl ranges-diff ranges-empty \ 739 ranges-inter ranges-minmax ranges-minus \ 740 ranges-offset ranges-operations ranges-rangelist \ 741 ranges-scale ranges-singleton ranges-singleton-append \ 742 ranges-size ranges-union ranges-values \ 743 ranges-negative ranges-positive ranges-map \ 744 ranges-list \ 745 values-array values-minus values-offset values-ranges \ 746 values-positive values-negative \ 747 values-singleton values-unique values-inter \ 748 values-union values-map values-bitset values-list \ 749 values-bitsetoffset 750ITERHDR = gecode/iter.hh \ 751 $(ITERHDR0:%=gecode/iter/%.hpp) 752 753 754# 755# GIST 756# 757 758GISTHDR0 = \ 759 drawingcursor.hh drawingcursor.hpp \ 760 gist.hpp gecodelogo.hh node.hh node.hpp \ 761 nodecursor.hh nodecursor.hpp nodevisitor.hh \ 762 nodevisitor.hpp layoutcursor.hh layoutcursor.hpp \ 763 spacenode.hh spacenode.hpp qtgist.hh \ 764 textoutput.hh treecanvas.hh zoomToFitIcon.hpp \ 765 visualnode.hh visualnode.hpp nodestats.hh \ 766 nodewidget.hh mainwindow.hh preferences.hh \ 767 stopbrancher.hh 768 769GISTSRC0 = \ 770 drawingcursor.cpp gist.cpp gecodelogo.cpp node.cpp \ 771 spacenode.cpp \ 772 textoutput.cpp treecanvas.cpp qtgist.cpp visualnode.cpp nodestats.cpp \ 773 nodewidget.cpp mainwindow.cpp preferences.cpp stopbrancher.cpp 774 775GISTMOCSRC0 = \ 776 moc_treecanvas.cpp moc_qtgist.cpp moc_mainwindow.cpp moc_textoutput.cpp\ 777 moc_preferences.cpp moc_nodestats.cpp 778 779GISTSRC = $(GISTSRC0:%=gecode/gist/%) 780GISTMOCSRC = $(GISTMOCSRC0:%=gecode/gist/%) 781GISTHDR = $(GISTHDR0:%=gecode/gist/%) gecode/gist.hh 782 783GISTOBJ = $(GISTSRC:%.cpp=%$(OBJSUFFIX)) $(GISTMOCSRC:%.cpp=%$(OBJSUFFIX)) 784GISTSBJ = $(GISTSRC:%.cpp=%$(SBJSUFFIX)) $(GISTMOCSRC:%.cpp=%$(SBJSUFFIX)) 785 786GISTBUILDDIRS = gist 787 788ifeq "@enable_gist@" "yes" 789export GISTDLL = $(LIBPREFIX)@GIST@$(DLLSUFFIX) 790export GISTSTATICLIB = $(LIBPREFIX)@GIST@$(STATICLIBSUFFIX) 791export GISTLIB = $(LIBPREFIX)@GIST@$(LIBSUFFIX) 792export LINKGIST = $(LINKPREFIX)@GIST@$(LINKSUFFIX) 793ifeq "@need_soname@" "yes" 794export GISTSONAME = \ 795 @WLSONAME@$(LIBPREFIX)@GIST@$(SOSUFFIX) 796else 797export GISTSONAME = 798endif 799ifeq "@enable_resource@" "yes" 800export GISTRC = $(LIBPREFIX)@GIST@$(RCSUFFIX) 801export GISTRES = $(LIBPREFIX)@GIST@$(RESSUFFIX) 802else 803export GISTRES = 804export GISTRC = 805endif 806else 807export GISTDLL = 808export GISTSTATICLIB = 809export GISTLIB = 810export LINKGIST = 811export GISTSONAME = 812export GISTRES = 813export GISTRC = 814endif 815 816# 817# FLATZINC 818# 819 820FLATZINCSRC0 = flatzinc.cpp registry.cpp branch.cpp 821FLATZINC_GENSRC0 = parser.tab.cpp lexer.yy.cpp 822FLATZINCHDR0 = ast.hh conexpr.hh option.hh parser.hh \ 823 plugin.hh registry.hh symboltable.hh varspec.hh \ 824 branch.hh branch.hpp 825 826FLATZINCSRC = $(FLATZINCSRC0:%=gecode/flatzinc/%) 827FLATZINC_GENSRC = $(FLATZINC_GENSRC0:%=gecode/flatzinc/%) 828FLATZINCHDR = $(FLATZINCHDR0:%=gecode/flatzinc/%) gecode/flatzinc.hh 829 830FLATZINCOBJ = \ 831 $(FLATZINCSRC:%.cpp=%$(OBJSUFFIX)) \ 832 $(FLATZINC_GENSRC:%.cpp=%$(OBJSUFFIX)) 833 834FLATZINCEXESRC0 = fzn-gecode.cpp 835FLATZINCEXESRC = $(FLATZINCEXESRC0:%=tools/flatzinc/%) 836FLATZINCEXEOBJ = $(FLATZINCEXESRC:%.cpp=%$(OBJSUFFIX)) 837 838FLATZINCALLSRC = $(FLATZINCSRC) $(FLATZINCEXESRC) 839 840FLATZINCBUILDDIRS = gecode/flatzinc tools/flatzinc 841 842ifeq "@enable_flatzinc@" "yes" 843export FLATZINCDLL = $(LIBPREFIX)@FLATZINC@$(DLLSUFFIX) 844export FLATZINCSTATICLIB = $(LIBPREFIX)@FLATZINC@$(STATICLIBSUFFIX) 845export FLATZINCLIB = $(LIBPREFIX)@FLATZINC@$(LIBSUFFIX) 846export LINKFLATZINC = $(LINKPREFIX)@FLATZINC@$(LINKSUFFIX) 847export FLATZINCMZNLIB = gecode/flatzinc/mznlib 848export FLATZINCCONFIG = tools/flatzinc/gecode.msc 849FLATZINCEXE = tools/flatzinc/fzn-gecode$(EXESUFFIX) 850ifeq "@need_soname@" "yes" 851export FLATZINCSONAME = @WLSONAME@$(LIBPREFIX)@FLATZINC@$(SOSUFFIX) 852else 853export FLATZINCSONAME = 854endif 855ifeq "@enable_resource@" "yes" 856export FLATZINCRC = $(LIBPREFIX)@FLATZINC@$(RCSUFFIX) 857export FLATZINCRES = $(LIBPREFIX)@FLATZINC@$(RESSUFFIX) 858else 859export FLATZINCRES = 860export FLATZINCRC = 861endif 862else 863export FLATZINCDLL = 864export FLATZINCSTATICLIB = 865export FLATZINCLIB = 866export LINKFLATZINC = 867export FLATZINCSONAME = 868export FLATZINCMZNLIB = 869export FLATZINCRES = 870export FLATZINCRC = 871FLATZINCEXE = 872endif 873 874# 875# EXAMPLES 876# 877 878 879INTEXAMPLEHDR0 = \ 880 scowl job-shop-instances 881INTEXAMPLESRC0 = \ 882 alpha bacp bibd donald efpa eq20 golomb-ruler \ 883 graph-color grocery ind-set magic-sequence magic-square \ 884 money ortho-latin partition photo queens sudoku sudoku-advanced kakuro \ 885 nonogram pentominoes crowded-chess black-hole \ 886 minesweeper domino steel-mill sports-league \ 887 all-interval langford-number warehouses radiotherapy \ 888 word-square crossword open-shop car-sequencing sat \ 889 bin-packing knights tsp perfect-square schurs-lemma \ 890 dominating-queens colored-matrix multi-bin-packing \ 891 qcp job-shop 892 893 894INTEXAMPLEHDR = $(INTEXAMPLEHDR0:%=examples/%.hpp) 895INTEXAMPLESRC = $(INTEXAMPLESRC0:%=examples/%.cpp) 896ifeq "@enable_int_vars@" "yes" 897INTEXAMPLEEXE = $(INTEXAMPLESRC:%.cpp=%$(EXESUFFIX)) 898else 899INTEXAMPLEEXE = 900endif 901 902MPFRFLOATEXAMPLESRC0 = \ 903 archimedean-spiral golden-spiral 904MPFRFLOATEXAMPLESRC = $(MPFRFLOATEXAMPLESRC0:%=examples/%.cpp) 905ifeq "@enable_float_vars@" "yes" 906 ifeq "@enable_mpfr@" "yes" 907 MPFRFLOATEXAMPLEEXE = $(MPFRFLOATEXAMPLESRC:%.cpp=%$(EXESUFFIX)) 908 else 909 MPFRFLOATEXAMPLEEXE = 910 endif 911endif 912 913FLOATEXAMPLESRC0 = \ 914 cartesian-heart descartes-folium 915FLOATEXAMPLESRC = $(FLOATEXAMPLESRC0:%=examples/%.cpp) 916ifeq "@enable_float_vars@" "yes" 917FLOATEXAMPLEEXE = $(FLOATEXAMPLESRC:%.cpp=%$(EXESUFFIX)) 918else 919FLOATEXAMPLEEXE = 920endif 921 922SETEXAMPLESRC0 = \ 923 crew golf hamming steiner queen-armies 924SETEXAMPLESRC = $(SETEXAMPLESRC0:%=examples/%.cpp) 925ifeq "@enable_set_vars@" "yes" 926SETEXAMPLEEXE = $(SETEXAMPLESRC:%.cpp=%$(EXESUFFIX)) 927else 928SETEXAMPLEEXE = 929endif 930 931EXAMPLEBUILDDIRS = examples 932 933EXAMPLEEXE = \ 934 $(INTEXAMPLEEXE) $(SETEXAMPLEEXE) $(FLOATEXAMPLEEXE) $(MPFRFLOATEXAMPLEEXE) 935 936 937# 938# THIRD PARTY SOFTWARE 939# 940 941BOOSTHDR = \ 942 config/compiler/borland.hpp config/compiler/clang.hpp \ 943 config/compiler/codegear.hpp config/compiler/comeau.hpp \ 944 config/compiler/common_edg.hpp config/compiler/compaq_cxx.hpp \ 945 config/compiler/digitalmars.hpp config/compiler/gcc.hpp \ 946 config/compiler/gcc_xml.hpp config/compiler/greenhills.hpp \ 947 config/compiler/hp_acc.hpp config/compiler/intel.hpp \ 948 config/compiler/kai.hpp config/compiler/metrowerks.hpp \ 949 config/compiler/mpw.hpp config/compiler/nvcc.hpp \ 950 config/compiler/pathscale.hpp config/compiler/pgi.hpp \ 951 config/compiler/sgi_mipspro.hpp config/compiler/sunpro_cc.hpp \ 952 config/compiler/vacpp.hpp config/compiler/visualc.hpp \ 953 config/no_tr1/cmath.hpp config/no_tr1/utility.hpp \ 954 config/platform/aix.hpp config/platform/amigaos.hpp \ 955 config/platform/beos.hpp config/platform/bsd.hpp \ 956 config/platform/cygwin.hpp config/platform/hpux.hpp \ 957 config/platform/irix.hpp config/platform/linux.hpp \ 958 config/platform/macos.hpp config/platform/qnxnto.hpp \ 959 config/platform/solaris.hpp config/platform/symbian.hpp \ 960 config/platform/vms.hpp config/platform/vxworks.hpp \ 961 config/platform/win32.hpp config/posix_features.hpp \ 962 config/select_compiler_config.hpp \ 963 config/select_platform_config.hpp \ 964 config/select_stdlib_config.hpp \ 965 config/stdlib/dinkumware.hpp config/stdlib/libcomo.hpp \ 966 config/stdlib/libcpp.hpp config/stdlib/libstdcpp3.hpp \ 967 config/stdlib/modena.hpp config/stdlib/msl.hpp \ 968 config/stdlib/roguewave.hpp config/stdlib/sgi.hpp \ 969 config/stdlib/stlport.hpp config/stdlib/vacpp.hpp \ 970 config/suffix.hpp config/user.hpp config.hpp \ 971 detail/endian.hpp detail/limits.hpp \ 972 numeric/interval/arith.hpp \ 973 numeric/interval/arith2.hpp \ 974 numeric/interval/arith3.hpp \ 975 numeric/interval/checking.hpp \ 976 numeric/interval/compare/certain.hpp \ 977 numeric/interval/compare/explicit.hpp \ 978 numeric/interval/compare/lexicographic.hpp \ 979 numeric/interval/compare/possible.hpp \ 980 numeric/interval/compare/set.hpp \ 981 numeric/interval/compare.hpp \ 982 numeric/interval/constants.hpp \ 983 numeric/interval/detail/alpha_rounding_control.hpp \ 984 numeric/interval/detail/bcc_rounding_control.hpp \ 985 numeric/interval/detail/bugs.hpp \ 986 numeric/interval/detail/c99sub_rounding_control.hpp \ 987 numeric/interval/detail/c99_rounding_control.hpp \ 988 numeric/interval/detail/division.hpp \ 989 numeric/interval/detail/ia64_rounding_control.hpp \ 990 numeric/interval/detail/interval_prototype.hpp \ 991 numeric/interval/detail/msvc_rounding_control.hpp \ 992 numeric/interval/detail/ppc_rounding_control.hpp \ 993 numeric/interval/detail/sparc_rounding_control.hpp \ 994 numeric/interval/detail/test_input.hpp \ 995 numeric/interval/detail/x86gcc_rounding_control.hpp \ 996 numeric/interval/detail/x86_rounding_control.hpp \ 997 numeric/interval/hw_rounding.hpp \ 998 numeric/interval/interval.hpp \ 999 numeric/interval/policies.hpp \ 1000 numeric/interval/rounded_arith.hpp \ 1001 numeric/interval/rounded_transc.hpp \ 1002 numeric/interval/rounding.hpp \ 1003 numeric/interval/transc.hpp \ 1004 numeric/interval/utility.hpp \ 1005 numeric/interval.hpp \ 1006 LICENSE_1_0.txt \ 1007 limits.hpp non_type.hpp type.hpp 1008THIRDHDR = \ 1009 $(BOOSTHDR:%=gecode/third-party/boost/%) 1010 1011# 1012# COLLECTING ALL 1013# 1014 1015ALLSRC = \ 1016 $(SUPPORTSRC) $(KERNELSRC) $(SEARCHSRC) \ 1017 $(INTSRC) $(FLOATSRC) $(SETSRC) $(MMSRC) $(DRIVERSRC) \ 1018 $(INTEXAMPLESRC) $(SETEXAMPLESRC) $(FLOATEXAMPLESRC) $(MPFRFLOATEXAMPLESRC) \ 1019 $(GISTSRC) $(FLATZINCALLSRC) 1020ALLGECODEHDR = \ 1021 $(SUPPORTHDR) $(KERNELHDR) $(SEARCHHDR) \ 1022 $(INTHDR) $(FLOATHDR) $(SETHDR) $(MMHDR) \ 1023 $(DRIVERHDR) $(ITERHDR) $(GISTHDR) $(FLATZINCHDR) \ 1024 $(INTEXAMPLEHDR) 1025ALLHDR = \ 1026 $(ALLGECODEHDR) $(THIRDHDR) 1027ALLOBJ0 = $(ALLSRC:%.cpp=%$(OBJSUFFIX)) \ 1028 $(GISTMOCSRC:%.cpp=%$(OBJSUFFIX)) \ 1029 $(FLATZINC_GENSRC:%.cpp=%$(OBJSUFFIX)) 1030ALLOBJ = $(ALLOBJ0:%.c=%$(OBJSUFFIX)) 1031 1032ALLSBJ0 = $(ALLSRC:%.cpp=%$(SBJSUFFIX)) 1033ALLSBJ = $(ALLSBJ0:%.c=%$(SBJSUFFIX)) 1034 1035ifeq "@BUILDDLL@" "yes" 1036DLLTARGETS= \ 1037 $(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) $(INTDLL) $(FLOATDLL) $(SETDLL) \ 1038 $(MMDLL) $(DRIVERDLL) $(GISTDLL) $(FLATZINCDLL) 1039export ALLLIB = \ 1040 $(SUPPORTLIB) $(KERNELLIB) $(SEARCHLIB) $(INTLIB) $(FLOATLIB) $(SETLIB) \ 1041 $(MMLIB) $(DRIVERLIB) $(GISTLIB) $(FLATZINCLIB) 1042else 1043DLLTARGETS= 1044ifeq "@BUILD_MACOS_FRAMEWORK@" "yes" 1045export ALLLIB = gecode.framework/Versions/@GECODE_SOVERSION@/gecode 1046else 1047export ALLLIB = \ 1048 $(SUPPORTSTATICLIB) $(KERNELSTATICLIB) $(SEARCHSTATICLIB) \ 1049 $(INTSTATICLIB) $(FLOATSTATICLIB) $(SETSTATICLIB) $(MMSTATICLIB) \ 1050 $(DRIVERSTATICLIB) $(GISTSTATICLIB) $(FLATZINCSTATICLIB) 1051endif 1052endif 1053 1054ifeq "@BUILDSTATIC@" "yes" 1055STATICTARGETS = \ 1056 $(SUPPORTSTATICLIB) $(KERNELSTATICLIB) $(SEARCHSTATICLIB) \ 1057 $(INTSTATICLIB) $(FLOATSTATICLIB) $(SETSTATICLIB) $(MMSTATICLIB) \ 1058 $(DRIVERSTATICLIB) $(GISTSTATICLIB) $(FLATZINCSTATICLIB) 1059else 1060STATICTARGETS= 1061endif 1062 1063export LIBTARGETS = $(DLLTARGETS) $(STATICTARGETS) 1064 1065ifeq "@need_soname@" "yes" 1066export LIBLINKTARGETS = \ 1067 $(DLLTARGETS:%$(DLLSUFFIX)=%$(SOSUFFIX)) \ 1068 $(DLLTARGETS:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 1069else 1070export LIBLINKTARGETS = 1071endif 1072 1073PDBS = $(ALLLIB:%$(LIBSUFFIX)=%$(PDBSUFFIX)) 1074 1075ifeq "@INSTALLLIBS@" "yes" 1076LIBLIBTARGETS = $(ALLLIB) 1077PDBTARGETS = $(PDBS) 1078else 1079LIBLIBTARGETS = 1080PDBTARGETS = 1081endif 1082 1083EXETARGETS = $(FLATZINCEXE) tools/flatzinc/mzn-gecode@BATCHFILE@ 1084 1085# 1086# Testing 1087# 1088 1089INTTESTSRC00 = \ 1090 channel arithmetic basic bool count dom distinct element extensional \ 1091 rel linear gcc sorted unshare exec sequence \ 1092 mm-arithmetic mm-bool mm-lin mm-count mm-rel \ 1093 bin-packing order unary cumulative cumulatives circuit \ 1094 no-overlap precede nvalues member 1095INTTESTSRC0 = test/int.cpp $(INTTESTSRC00:%=test/int/%.cpp) 1096INTTESTOBJ = $(INTTESTSRC0:%.cpp=%$(OBJSUFFIX)) 1097 1098FLOATTESTSRC00 = \ 1099 basic arithmetic transcendental trigonometric linear rel channel \ 1100 mm-lin dom 1101FLOATTESTSRC0 = test/float.cpp $(FLOATTESTSRC00:%=test/float/%.cpp) 1102 1103ifeq "@enable_float_vars@" "yes" 1104FLOATTESTOBJ = $(FLOATTESTSRC0:%.cpp=%$(OBJSUFFIX)) 1105else 1106FLOATTESTOBJ= 1107endif 1108 1109SETTESTSRC00 = \ 1110 construct dom rel rel-op rel-op-const convex sequence int element \ 1111 precede distinct exec mm-set channel 1112SETTESTSRC0 = test/set.cpp $(SETTESTSRC00:%=test/set/%.cpp) 1113 1114ifeq "@enable_set_vars@" "yes" 1115SETTESTOBJ = $(SETTESTSRC0:%.cpp=%$(OBJSUFFIX)) 1116else 1117SETTESTOBJ= 1118endif 1119 1120FLATZINCTESTSRC0 = \ 1121 test/flatzinc.cpp \ 1122 test/flatzinc/bool_clause.cpp \ 1123 test/flatzinc/bug232.cpp \ 1124 test/flatzinc/bug319.cpp \ 1125 test/flatzinc/bugfix_r6746.cpp \ 1126 test/flatzinc/bugfix_r7854.cpp \ 1127 test/flatzinc/empty_domain_1.cpp \ 1128 test/flatzinc/empty_domain_2.cpp \ 1129 test/flatzinc/int_set_as_type1.cpp \ 1130 test/flatzinc/int_set_as_type2.cpp \ 1131 test/flatzinc/jobshop.cpp \ 1132 test/flatzinc/no_warn_empty_domain.cpp \ 1133 test/flatzinc/output_test.cpp \ 1134 test/flatzinc/queens4.cpp \ 1135 test/flatzinc/sat_arith1.cpp \ 1136 test/flatzinc/sat_array_bool_and.cpp \ 1137 test/flatzinc/sat_array_bool_or.cpp \ 1138 test/flatzinc/sat_cmp_reif.cpp \ 1139 test/flatzinc/sat_eq_reif.cpp \ 1140 test/flatzinc/test_approx_bnb.cpp \ 1141 test/flatzinc/test_array_just_right.cpp \ 1142 test/flatzinc/test_assigned_var_bounds_bad.cpp \ 1143 test/flatzinc/test_flatzinc_output_anns.cpp \ 1144 test/flatzinc/test_fzn_arith.cpp \ 1145 test/flatzinc/test_fzn_arrays.cpp \ 1146 test/flatzinc/test_fzn_coercions.cpp \ 1147 test/flatzinc/test_fzn_comparison.cpp \ 1148 test/flatzinc/test_fzn_logic.cpp \ 1149 test/flatzinc/test_fzn_sets.cpp \ 1150 test/flatzinc/test_int_div.cpp \ 1151 test/flatzinc/test_int_mod.cpp \ 1152 test/flatzinc/test_int_ranges_as_values.cpp \ 1153 test/flatzinc/test_seq_search.cpp \ 1154 test/flatzinc/2dpacking.cpp \ 1155 test/flatzinc/alpha.cpp \ 1156 test/flatzinc/battleships1.cpp \ 1157 test/flatzinc/battleships10.cpp \ 1158 test/flatzinc/battleships2.cpp \ 1159 test/flatzinc/battleships3.cpp \ 1160 test/flatzinc/battleships4.cpp \ 1161 test/flatzinc/battleships5.cpp \ 1162 test/flatzinc/battleships7.cpp \ 1163 test/flatzinc/battleships9.cpp \ 1164 test/flatzinc/blocksworld_instance_1.cpp \ 1165 test/flatzinc/blocksworld_instance_2.cpp \ 1166 test/flatzinc/cumulatives.cpp \ 1167 test/flatzinc/cutstock.cpp \ 1168 test/flatzinc/eq20.cpp \ 1169 test/flatzinc/factory_planning_instance.cpp \ 1170 test/flatzinc/golomb.cpp \ 1171 test/flatzinc/jobshop2x2.cpp \ 1172 test/flatzinc/knights.cpp \ 1173 test/flatzinc/langford2.cpp \ 1174 test/flatzinc/latin_squares_fd.cpp \ 1175 test/flatzinc/multidim_knapsack_simple.cpp \ 1176 test/flatzinc/packing.cpp \ 1177 test/flatzinc/perfsq.cpp \ 1178 test/flatzinc/perfsq2.cpp \ 1179 test/flatzinc/photo.cpp \ 1180 test/flatzinc/product_fd.cpp \ 1181 test/flatzinc/product_lp.cpp \ 1182 test/flatzinc/quasigroup_qg5.cpp \ 1183 test/flatzinc/queen_cp2.cpp \ 1184 test/flatzinc/queen_ip.cpp \ 1185 test/flatzinc/radiation.cpp \ 1186 test/flatzinc/shared_array_element.cpp \ 1187 test/flatzinc/simple_sat.cpp \ 1188 test/flatzinc/singHoist2.cpp \ 1189 test/flatzinc/sudoku.cpp \ 1190 test/flatzinc/template_design.cpp \ 1191 test/flatzinc/tenpenki_1.cpp \ 1192 test/flatzinc/tenpenki_2.cpp \ 1193 test/flatzinc/tenpenki_3.cpp \ 1194 test/flatzinc/tenpenki_4.cpp \ 1195 test/flatzinc/tenpenki_5.cpp \ 1196 test/flatzinc/tenpenki_6.cpp \ 1197 test/flatzinc/warehouses.cpp \ 1198 test/flatzinc/warehouses_small.cpp \ 1199 test/flatzinc/wolf_goat_cabbage.cpp \ 1200 test/flatzinc/zebra.cpp \ 1201 test/flatzinc/magicsq_3.cpp \ 1202 test/flatzinc/magicsq_4.cpp \ 1203 test/flatzinc/magicsq_5.cpp \ 1204 test/flatzinc/oss.cpp \ 1205 test/flatzinc/steiner_triples.cpp \ 1206 test/flatzinc/timetabling.cpp \ 1207 test/flatzinc/trucking.cpp 1208 1209ifeq "@enable_flatzinc@" "yes" 1210FLATZINCTESTOBJ = $(FLATZINCTESTSRC0:%.cpp=%$(OBJSUFFIX)) 1211else 1212FLATZINCTESTOBJ= 1213endif 1214 1215BRANCHTESTSRC0 = \ 1216 test/branch.cpp test/branch/int.cpp test/branch/bool.cpp \ 1217 test/branch/set.cpp test/branch/float.cpp \ 1218 test/assign.cpp test/assign/int.cpp test/assign/bool.cpp \ 1219 test/assign/set.cpp test/assign/float.cpp 1220 1221SEARCHTESTSRC0 = \ 1222 test/search.cpp test/nogoods.cpp 1223 1224ARRAYTESTSRC0 = \ 1225 test/array.cpp 1226 1227TESTSRC0 = test/test.cpp test/afc.cpp test/ldsb.cpp test/region.cpp \ 1228 test/groups.cpp 1229 1230TESTSRC = \ 1231 $(TESTSRC0) $(INTTESTSRC0) $(SETTESTSRC0) $(FLOATTESTSRC0) \ 1232 $(BRANCHTESTSRC0) $(SEARCHTESTSRC0) \ 1233 $(ARRAYTESTSRC0) $(FLATZINCTESTSRC0) 1234 1235TESTHDR0 = \ 1236 test.hh test.hpp int.hh int.hpp set.hh set.hpp float.hh float.hpp \ 1237 branch.hh assign.hh flatzinc.hh 1238TESTHDR = $(TESTHDR0:%=test/%) 1239TESTOBJ = $(INTTESTOBJ) $(SETTESTOBJ) $(FLOATTESTOBJ) \ 1240 $(FLATZINCTESTOBJ:%.cpp=%$(OBJSUFFIX)) \ 1241 $(BRANCHTESTSRC0:%.cpp=%$(OBJSUFFIX)) \ 1242 $(SEARCHTESTSRC0:%.cpp=%$(OBJSUFFIX)) \ 1243 $(ARRAYTESTSRC0:%.cpp=%$(OBJSUFFIX)) \ 1244 $(TESTSRC0:%.cpp=%$(OBJSUFFIX)) 1245TESTSBJ = $(TESTOBJ:%$(OBJSUFFIX)=%$(SBJSUFFIX)) 1246TESTEXE = test/test$(EXESUFFIX) 1247TESTBUILDDIRS = \ 1248 test test/int test/set test/float \ 1249 test/branch test/assign \ 1250 test/flatzinc 1251 1252BUILDDIRS = \ 1253 tools \ 1254 $(SUPPORTBUILDDIRS:%=gecode/%) \ 1255 $(KERNELBUILDDIRS:%=gecode/%) $(SEARCHBUILDDIRS:%=gecode/%) \ 1256 $(INTBUILDDIRS:%=gecode/%) $(FLOATBUILDDIRS:%=gecode/%) $(SETBUILDDIRS:%=gecode/%) \ 1257 $(MMBUILDDIRS:%=gecode/%) \ 1258 $(DRIVERBUILDDIRS:%=gecode/%) \ 1259 $(GISTBUILDDIRS:%=gecode/%) \ 1260 $(FLATZINCBUILDDIRS) \ 1261 $(EXAMPLEBUILDDIRS) $(TESTBUILDDIRS) 1262 1263ifeq "@enable_examples@" "yes" 1264all: compilelib 1265 @$(MAKE) compileexamples 1266 @$(MAKE) makecompletedmessage 1267else 1268all: compilelib 1269 @$(MAKE) makecompletedmessage 1270endif 1271compilelib: mkcompiledirs 1272 @$(MAKE) $(VARIMP) $(LIBTARGETS) 1273 @$(MAKE) compilesubdirs 1274 @$(MAKE) framework 1275 @$(MAKE) flatzinc 1276 1277compileexamples: $(EXAMPLEEXE) 1278 1279test: mkcompiledirs 1280 @$(MAKE) $(VARIMP) $(TESTEXE) 1281 1282# A basic integrity test 1283check: test 1284 $(RUNENVIRONMENT) $(TESTEXE) -iter 2 -test Branch::Int::Dense::3 \ 1285 -test FlatZinc::magic_square \ 1286 -test Int::Arithmetic::Abs \ 1287 -test Int::Arithmetic::ArgMax \ 1288 -test Int::Arithmetic::Max::Nary \ 1289 -test Int::Cumulative::Man::Fix::0::4 \ 1290 -test Int::Distinct::Random \ 1291 -test Int::Linear::Bool::Int::Lq \ 1292 -test Int::MiniModel::LinExpr::Bool::352 \ 1293 -test NoGoods::Queens \ 1294 -test Search::DFS::Sol::Binary::Nary::Binary::1::1::1 \ 1295 -test Set::Dom::Dom::Gr \ 1296 -test Set::RelOp::ConstSSI::Union \ 1297 -test Set::Sequence::SeqU1 \ 1298 -test Set::Wait 1299 1300ifeq "@top_srcdir@" "." 1301mkcompiledirs: 1302else 1303mkcompiledirs: 1304 for_builddirs="$(BUILDDIRS)"; for f in $$for_builddirs; do \ 1305 (test -z "$(top_builddir)"/$$f || mkdir -p "$(top_builddir)"/$$f); \ 1306 done 1307endif 1308 1309makecompletedmessage: 1310 @echo 1311 @echo Compilation of Gecode finished successfully. To use Gecode, either add 1312 @echo $(PWD) 1313 @echo to your search path for libraries, or install Gecode using 1314 @echo make install 1315 @echo 1316 1317# ugly hack by Gr�goire Dooms to call a target on a contribs after evaluating all the variables in this Makefile. 1318# used as make contribs:cpgraph:doc or make contribs:cpgraph:Makefile.in 1319.PHONY: contribs\:% 1320contribs\:%: 1321 $(MAKE) -C $(shell echo $@ | sed 's/\(contribs:[^:]*\):.*/\1/;s+:+/+') $(shell echo $@ | sed 's/contribs:[^:]*:\(.*\)/\1/;s+:+/+') 1322 1323# less ugly hack by Guido Tack to call a target 1324# Just give ICD (in-contrib-dir) and ICT (in-contrib-target) as arguments 1325# to make incontrib 1326ICT= 1327ICD= 1328.PHONY: incontrib 1329incontrib: 1330 $(MAKE) -C contribs/$(ICD) $(ICT) 1331 1332compilesubdirs: 1333 @for_subdirs="$(subdirs)"; for i in $$for_subdirs; do \ 1334 if test -f $$i/Makefile; then \ 1335 echo "Making in directory $$i"; \ 1336 $(MAKE) -C $$i; \ 1337 fi; \ 1338 done 1339 1340# 1341# Generated variable implementations 1342# 1343 1344VIS = @ALLVIS@ 1345VISDEP = $(VIS) \ 1346 $(top_srcdir)/misc/genvarimp.perl Makefile 1347 1348gecode/kernel/var-type.hpp: $(VISDEP) 1349 perl $(top_srcdir)/misc/genvarimp.perl -typehpp $(VIS) > $@ 1350gecode/kernel/var-imp.hpp: $(VISDEP) 1351 perl $(top_srcdir)/misc/genvarimp.perl -header $(VIS) > $@ 1352 1353# 1354# Object targets 1355# 1356 1357gecode/support/%$(OBJSUFFIX): $(top_srcdir)/gecode/support/%.cpp 1358 $(CXX) $(CXXFLAGS) @GECODE_BUILD_SUPPORT_FLAG@ \ 1359 @COMPILEOBJ@$@ @CXXIN@$< 1360gecode/support/%$(SBJSUFFIX): $(top_srcdir)/gecode/support/%.cpp 1361 $(CXX) $(CXXFLAGS) @GECODE_BUILD_SUPPORT_FLAG@ \ 1362 @COMPILESBJ@$@ @CXXIN@$< 1363gecode/support/%$(OBJSUFFIX): $(top_srcdir)/gecode/support/%.c 1364 $(CC) $(CFLAGS) @GECODE_BUILD_SUPPORT_FLAG@ \ 1365 @COMPILEOBJ@$@ @CCIN@$< 1366gecode/support/%$(SBJSUFFIX): $(top_srcdir)/gecode/support/%.c 1367 $(CC) $(CFLAGS) @GECODE_BUILD_SUPPORT_FLAG@ \ 1368 @COMPILESBJ@$@ @CCIN@$< 1369 1370gecode/kernel/%$(OBJSUFFIX): $(top_srcdir)/gecode/kernel/%.cpp 1371 $(CXX) $(CXXFLAGS) @GECODE_BUILD_KERNEL_FLAG@ \ 1372 @COMPILEOBJ@$@ @CXXIN@$< 1373gecode/kernel/%$(SBJSUFFIX): $(top_srcdir)/gecode/kernel/%.cpp 1374 $(CXX) $(CXXFLAGS) @GECODE_BUILD_KERNEL_FLAG@ \ 1375 @COMPILESBJ@$@ @CXXIN@$< 1376 1377gecode/search/%$(OBJSUFFIX): $(top_srcdir)/gecode/search/%.cpp 1378 $(CXX) $(CXXFLAGS) @GECODE_BUILD_SEARCH_FLAG@ \ 1379 @COMPILEOBJ@$@ @CXXIN@$< 1380gecode/search/%$(SBJSUFFIX): $(top_srcdir)/gecode/search/%.cpp 1381 $(CXX) $(CXXFLAGS) @GECODE_BUILD_SEARCH_FLAG@ \ 1382 @COMPILESBJ@$@ @CXXIN@$< 1383 1384gecode/int/%$(OBJSUFFIX): $(top_srcdir)/gecode/int/%.cpp 1385 $(CXX) $(CXXFLAGS) @GECODE_BUILD_INT_FLAG@ \ 1386 @COMPILEOBJ@$@ @CXXIN@$< 1387gecode/int/%$(SBJSUFFIX): $(top_srcdir)/gecode/int/%.cpp 1388 $(CXX) $(CXXFLAGS) @GECODE_BUILD_INT_FLAG@ \ 1389 @COMPILESBJ@$@ @CXXIN@$< 1390 1391gecode/float/%$(OBJSUFFIX): $(top_srcdir)/gecode/float/%.cpp 1392 $(CXX) $(CXXFLAGS) $(MPFR_CPPFLAGS) @GECODE_BUILD_FLOAT_FLAG@ \ 1393 @COMPILEOBJ@$@ @CXXIN@$< 1394gecode/float/%$(SBJSUFFIX): $(top_srcdir)/gecode/float/%.cpp 1395 $(CXX) $(CXXFLAGS) $(MPFR_CPPFLAGS) @GECODE_BUILD_FLOAT_FLAG@ \ 1396 @COMPILESBJ@$@ @CXXIN@$< 1397 1398gecode/set/%$(OBJSUFFIX): $(top_srcdir)/gecode/set/%.cpp 1399 $(CXX) $(CXXFLAGS) @GECODE_BUILD_SET_FLAG@ \ 1400 @COMPILEOBJ@$@ @CXXIN@$< 1401gecode/set/%$(SBJSUFFIX): $(top_srcdir)/gecode/set/%.cpp 1402 $(CXX) $(CXXFLAGS) @GECODE_BUILD_SET_FLAG@ \ 1403 @COMPILESBJ@$@ @CXXIN@$< 1404 1405gecode/minimodel/%$(OBJSUFFIX): $(top_srcdir)/gecode/minimodel/%.cpp 1406 $(CXX) $(CXXFLAGS) @GECODE_BUILD_MINIMODEL_FLAG@ \ 1407 @COMPILEOBJ@$@ @CXXIN@$< 1408gecode/minimodel/%$(SBJSUFFIX): $(top_srcdir)/gecode/minimodel/%.cpp 1409 $(CXX) $(CXXFLAGS) @GECODE_BUILD_MINIMODEL_FLAG@ \ 1410 @COMPILESBJ@$@ @CXXIN@$< 1411 1412gecode/driver/%$(OBJSUFFIX): $(top_srcdir)/gecode/driver/%.cpp 1413 $(CXX) $(CXXFLAGS) @GECODE_BUILD_DRIVER_FLAG@ \ 1414 @COMPILEOBJ@$@ @CXXIN@$< 1415gecode/driver/%$(SBJSUFFIX): $(top_srcdir)/gecode/driver/%.cpp 1416 $(CXX) $(CXXFLAGS) @GECODE_BUILD_DRIVER_FLAG@ \ 1417 @COMPILESBJ@$@ @CXXIN@$< 1418 1419 1420examples/%$(OBJSUFFIX): $(top_srcdir)/examples/%.cpp 1421 $(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) $(QT_CPPFLAGS) \ 1422 @COMPILEOBJ@$@ @CXXIN@$< 1423examples/%$(SBJSUFFIX): $(top_srcdir)/examples/%.cpp 1424 $(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) $(QT_CPPFLAGS) \ 1425 @COMPILESBJ@$@ @CXXIN@$< 1426 1427 1428test/%$(OBJSUFFIX): $(top_srcdir)/test/%.cpp 1429 $(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) \ 1430 @COMPILEOBJ@$@ @CXXIN@$< 1431test/%$(SBJSUFFIX): $(top_srcdir)/test/%.cpp 1432 $(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) \ 1433 @COMPILESBJ@$@ @CXXIN@$< 1434 1435tools/%$(OBJSUFFIX): $(top_srcdir)/tools/%.cpp 1436 $(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) \ 1437 @COMPILEOBJ@$@ @CXXIN@$< 1438tools/%$(SBJSUFFIX): $(top_srcdir)/tools/%.cpp 1439 $(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) \ 1440 @COMPILESBJ@$@ @CXXIN@$< 1441 1442$(GISTSRC:%.cpp=%$(OBJSUFFIX)): gecode/gist/%$(OBJSUFFIX): $(top_srcdir)/gecode/gist/%.cpp 1443 $(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \ 1444 @GECODE_BUILD_GIST_FLAG@ \ 1445 @COMPILEOBJ@$@ @CXXIN@$< 1446 1447$(GISTSRC:%.cpp=%$(SBJSUFFIX)): gecode/gist/%$(SBJSUFFIX): $(top_srcdir)/gecode/gist/%.cpp 1448 $(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \ 1449 @GECODE_BUILD_GIST_FLAG@ \ 1450 @COMPILESBJ@$@ @CXXIN@$< 1451 1452$(GISTMOCSRC:%.cpp=%$(OBJSUFFIX)): gecode/gist/moc_%$(OBJSUFFIX): gecode/gist/moc_%.cpp 1453 $(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \ 1454 @GECODE_BUILD_GIST_FLAG@ \ 1455 @COMPILEOBJ@$@ @CXXIN@$< 1456 1457$(GISTMOCSRC:%.cpp=%$(SBJSUFFIX)): gecode/gist/moc_%$(SBJSUFFIX): gecode/gist/moc_%.cpp 1458 $(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \ 1459 @GECODE_BUILD_GIST_FLAG@ \ 1460 @COMPILESBJ@$@ @CXXIN@$< 1461 1462.PRECIOUS: gecode/gist/moc_%.cpp 1463gecode/gist/moc_%.cpp: $(top_srcdir)/gecode/gist/%.hh 1464 $(MOC) $(CPPFLAGS) -pgecode/gist $< -o $@ 1465 1466.PRECIOUS: gecode/flatzinc/%.cpp gecode/flatzinc/%.hh 1467ifeq "@HAVE_FLEXBISON@" "yes" 1468gecode/flatzinc/lexer.yy.cpp: \ 1469 $(top_srcdir)/gecode/flatzinc/lexer.lxx \ 1470 $(top_srcdir)/gecode/flatzinc/parser.tab.hpp 1471 flex -ogecode/flatzinc/lexer.yy.cpp \ 1472 $(top_srcdir)/gecode/flatzinc/lexer.lxx 1473 1474gecode/flatzinc/parser.tab.hpp gecode/flatzinc/parser.tab.cpp: \ 1475 $(top_srcdir)/gecode/flatzinc/parser.yxx 1476 bison -t -o gecode/flatzinc/parser.tab.cpp -d $< 1477else 1478ifneq "$(top_srcdir)" "." 1479gecode/flatzinc/lexer.yy.cpp: $(top_srcdir)/gecode/flatzinc/lexer.yy.cpp 1480 cp $(@:%=$(top_srcdir)/%) $@ 1481gecode/flatzinc/parser.tab.hpp: $(top_srcdir)/gecode/flatzinc/parser.tab.hpp 1482 cp $(@:%=$(top_srcdir)/%) $@ 1483gecode/flatzinc/parser.tab.cpp: $(top_srcdir)/gecode/flatzinc/parser.tab.cpp 1484 cp $(@:%=$(top_srcdir)/%) $@ 1485endif 1486endif 1487 1488$(FLATZINCSRC:%.cpp=%$(OBJSUFFIX)): gecode/flatzinc/%$(OBJSUFFIX): $(top_srcdir)/gecode/flatzinc/%.cpp 1489 $(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \ 1490 @GECODE_BUILD_FLATZINC_FLAG@ \ 1491 @COMPILEOBJ@$@ @CXXIN@$< 1492 1493$(FLATZINCSRC:%.cpp=%$(SBJSUFFIX)): gecode/flatzinc/%$(SBJSUFFIX): $(top_srcdir)/gecode/flatzinc/%.cpp 1494 $(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \ 1495 @GECODE_BUILD_FLATZINC_FLAG@ \ 1496 @COMPILESBJ@$@ @CXXIN@$< 1497 1498$(FLATZINC_GENSRC:%.cpp=%$(OBJSUFFIX)): gecode/flatzinc/%$(OBJSUFFIX): gecode/flatzinc/%.cpp 1499 $(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \ 1500 @GECODE_BUILD_FLATZINC_FLAG@ \ 1501 @COMPILEOBJ@$@ @CXXIN@$< 1502 1503$(FLATZINC_GENSRC:%.cpp=%$(SBJSUFFIX)): gecode/flatzinc/%$(SBJSUFFIX): gecode/flatzinc/%.cpp 1504 $(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \ 1505 @GECODE_BUILD_FLATZINC_FLAG@ \ 1506 @COMPILESBJ@$@ @CXXIN@$< 1507 1508# 1509# DLL Targets 1510# 1511 1512ifeq "$(DLLSUFFIX)" "$(LIBSUFFIX)" 1513 1514ifeq "@BUILD_MACOS_FRAMEWORK@" "yes" 1515export LINKALL = -F. -framework gecode 1516else 1517export LINKALL = \ 1518 $(LINKFLATZINC) $(LINKDRIVER) $(LINKGIST) \ 1519 $(LINKSEARCH) $(LINKMM) $(LINKSET) $(LINKFLOAT) $(LINKMPFR) $(LINKINT) \ 1520 $(LINKKERNEL) $(LINKSUPPORT) 1521endif 1522 1523$(SUPPORTDLL): $(SUPPORTOBJ) 1524 $(CXX) $(DLLFLAGS) $(SUPPORTOBJ) $(SUPPORTSONAME) \ 1525 @LINKOUTPUT@$(SUPPORTDLL) 1526 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 1527 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX)) 1528$(KERNELDLL): $(KERNELOBJ) $(SUPPORTDLL) 1529 $(CXX) $(DLLFLAGS) $(KERNELOBJ) $(KERNELSONAME) \ 1530 @DLLPATH@ $(LINKSUPPORT) \ 1531 @LINKOUTPUT@$(KERNELDLL) 1532 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 1533 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX)) 1534$(SEARCHDLL): $(SEARCHOBJ) $(SUPPORTDLL) $(KERNELDLL) 1535 $(CXX) $(DLLFLAGS) $(SEARCHOBJ) $(SEARCHSONAME) \ 1536 @DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) \ 1537 @LINKOUTPUT@$(SEARCHDLL) 1538 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 1539 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX)) 1540$(INTDLL): $(INTOBJ) $(SUPPORTDLL) $(KERNELDLL) 1541 $(CXX) $(DLLFLAGS) $(INTOBJ) $(INTSONAME) \ 1542 @DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) \ 1543 @LINKOUTPUT@$(INTDLL) 1544 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 1545 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX)) 1546$(FLOATDLL): $(FLOATOBJ) $(SUPPORTDLL) $(KERNELDLL) $(INTDLL) 1547 $(CXX) $(DLLFLAGS) $(FLOATOBJ) $(FLOATSONAME) \ 1548 @DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKINT) $(LINKMPFR)\ 1549 @LINKOUTPUT@$(FLOATDLL) 1550 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 1551 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX)) 1552$(SETDLL): $(SETOBJ) $(SUPPORTDLL) $(KERNELDLL) $(INTDLL) 1553 $(CXX) $(DLLFLAGS) $(SETOBJ) $(SETSONAME) \ 1554 @DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKINT) \ 1555 @LINKOUTPUT@$(SETDLL) 1556 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 1557 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX)) 1558$(MMDLL): $(MMOBJ) $(SUPPORTDLL) $(KERNELDLL) $(INTDLL) $(SETDLL) $(FLOATDLL) 1559 $(CXX) $(DLLFLAGS) $(MMOBJ) $(MMSONAME) \ 1560 @DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKINT) $(LINKFLOAT) $(LINKSET) \ 1561 @LINKOUTPUT@$(MMDLL) 1562 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 1563 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX)) 1564$(DRIVERDLL): $(DRIVEROBJ) $(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) $(INTDLL) $(MMDLL) $(GISTDLL) 1565 $(CXX) $(DLLFLAGS) $(DRIVEROBJ) $(DRIVERSONAME) \ 1566 @DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKSEARCH) $(LINKINT) $(LINKMM) $(LINKGIST) \ 1567 @LINKOUTPUT@$(DRIVERDLL) 1568 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 1569 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX)) 1570$(GISTDLL): $(GISTOBJ) $(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) $(INTDLL) 1571 $(CXX) $(DLLFLAGS) $(GISTOBJ) $(GISTSONAME) \ 1572 @DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKSEARCH) $(LINKINT) $(LINKQT) \ 1573 @LINKOUTPUT@$(GISTDLL) 1574 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 1575 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX)) 1576$(FLATZINCDLL): $(FLATZINCOBJ) $(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) \ 1577 $(INTDLL) $(SETDLL) $(FLOATDLL) $(GISTDLL) $(MMDLL) $(DRIVERDLL) 1578 $(CXX) $(DLLFLAGS) $(FLATZINCOBJ) $(FLATZINCSONAME) \ 1579 @DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKSEARCH) $(LINKINT) \ 1580 $(LINKSET) $(LINKFLOAT) $(LINKMM) $(LINKGIST) $(LINKDRIVER) $(LINKQT) \ 1581 @LINKOUTPUT@$(FLATZINCDLL) 1582 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 1583 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX)) 1584else 1585export LINKALL = 1586 1587ifeq "@enable_resource@" "yes" 1588$(SUPPORTRC): 1589 $(RCGEN) $(SUPPORTDLL) $(SUPPORTHDR) $(SUPPORTSRC) > $@ 1590endif 1591$(SUPPORTDLL) $(SUPPORTLIB): $(SUPPORTOBJ) $(SUPPORTRES) 1592 $(CXX) $(DLLFLAGS) $(SUPPORTOBJ) $(SUPPORTRES) \ 1593 @LINKOUTPUT@$(SUPPORTDLL) $(GLDFLAGS) 1594 $(FIXMANIFEST) $(SUPPORTDLL).manifest 1595 $(MANIFEST) -manifest $(SUPPORTDLL).manifest \ 1596 -outputresource:$(SUPPORTDLL)\;2 1597ifeq "@enable_resource@" "yes" 1598$(KERNELRC): 1599 $(RCGEN) $(KERNELDLL) $(KERNELHDR) $(VARIMPHDR) $(KERNELSRC) > $@ 1600endif 1601$(KERNELDLL) $(KERNELLIB): $(KERNELOBJ) $(KERNELRES) $(SUPPORTDLL) 1602 $(CXX) $(DLLFLAGS) $(KERNELOBJ) $(KERNELRES) \ 1603 @DLLPATH@ @LINKOUTPUT@$(KERNELDLL) $(GLDFLAGS) 1604 $(FIXMANIFEST) $(KERNELDLL).manifest 1605 $(MANIFEST) -manifest $(KERNELDLL).manifest \ 1606 -outputresource:$(KERNELDLL)\;2 1607ifeq "@enable_resource@" "yes" 1608$(SEARCHRC): 1609 $(RCGEN) $(SEARCHDLL) $(SEARCHHDR) $(SEARCHSRC) > $@ 1610endif 1611$(SEARCHDLL) $(SEARCHLIB): $(SEARCHOBJ) $(SEARCHRES) $(SUPPORTDLL) $(KERNELDLL) 1612 $(CXX) $(DLLFLAGS) $(SEARCHOBJ) $(SEARCHRES) \ 1613 @DLLPATH@ @LINKOUTPUT@$(SEARCHDLL) $(GLDFLAGS) 1614 $(FIXMANIFEST) $(SEARCHDLL).manifest 1615 $(MANIFEST) -manifest $(SEARCHDLL).manifest \ 1616 -outputresource:$(SEARCHDLL)\;2 1617ifeq "@enable_resource@" "yes" 1618$(INTRC): 1619 $(RCGEN) $(INTDLL) $(INTHDR) $(INTSRC) > $@ 1620endif 1621$(INTDLL) $(INTLIB): $(INTOBJ) $(INTRES) $(SUPPORTDLL) $(KERNELDLL) 1622 $(CXX) $(DLLFLAGS) $(INTOBJ) $(INTRES) \ 1623 @DLLPATH@ @LINKOUTPUT@$(INTDLL) $(GLDFLAGS) 1624 $(FIXMANIFEST) $(INTDLL).manifest 1625 $(MANIFEST) -manifest $(INTDLL).manifest \ 1626 -outputresource:$(INTDLL)\;2 1627ifeq "@enable_resource@" "yes" 1628$(FLOATRC): 1629 $(RCGEN) $(FLOATDLL) $(FLOATHDR) $(FLOATSRC) > $@ 1630endif 1631$(FLOATDLL) $(FLOATLIB): $(FLOATOBJ) $(FLOATRES) $(SUPPORTDLL) $(KERNELDLL) $(INTDLL) 1632 $(CXX) $(DLLFLAGS) $(FLOATOBJ) $(FLOATRES) \ 1633 @DLLPATH@ @LINKOUTPUT@$(FLOATDLL) $(GLDFLAGS) $(LINKMPFR) 1634 $(FIXMANIFEST) $(FLOATDLL).manifest 1635 $(MANIFEST) -manifest $(FLOATDLL).manifest \ 1636 -outputresource:$(FLOATDLL)\;2 1637ifeq "@enable_resource@" "yes" 1638$(SETRC): 1639 $(RCGEN) $(SETDLL) $(SETHDR) $(SETSRC) > $@ 1640endif 1641$(SETDLL) $(SETLIB): $(SETOBJ) $(SETRES) $(SUPPORTDLL) $(KERNELDLL) $(INTDLL) 1642 $(CXX) $(DLLFLAGS) $(SETOBJ) $(SETRES) \ 1643 @DLLPATH@ @LINKOUTPUT@$(SETDLL) $(GLDFLAGS) 1644 $(FIXMANIFEST) $(SETDLL).manifest 1645 $(MANIFEST) -manifest $(SETDLL).manifest \ 1646 -outputresource:$(SETDLL)\;2 1647ifeq "@enable_resource@" "yes" 1648$(MMRC): 1649 $(RCGEN) $(MMDLL) $(MMHDR) $(MMSRC) > $@ 1650endif 1651$(MMDLL) $(MMLIB): $(MMOBJ) $(MMRES) \ 1652 $(SUPPORTDLL) $(KERNELDLL) $(INTDLL) $(FLOATDLL) $(SETDLL) 1653 $(CXX) $(DLLFLAGS) $(MMOBJ) $(MMRES) \ 1654 @DLLPATH@ @LINKOUTPUT@$(MMDLL) $(GLDFLAGS) 1655 $(FIXMANIFEST) $(MMDLL).manifest 1656 $(MANIFEST) -manifest $(MMDLL).manifest \ 1657 -outputresource:$(MMDLL)\;2 1658ifeq "@enable_resource@" "yes" 1659$(DRIVERRC): 1660 $(RCGEN) $(DRIVERDLL) $(DRIVERHDR) $(DRIVERSRC) > $@ 1661endif 1662$(DRIVERDLL) $(DRIVERLIB): $(DRIVEROBJ) $(DRIVERRES) \ 1663 $(SUPPORTDLL) $(KERNELDLL) \ 1664 $(SEARCHDLL) $(INTDLL) $(MMDLL) $(GISTDLL) 1665 $(CXX) $(DLLFLAGS) $(DRIVEROBJ) $(DRIVERRES) \ 1666 @DLLPATH@ @LINKOUTPUT@$(DRIVERDLL) $(GLDFLAGS) 1667 $(FIXMANIFEST) $(DRIVERDLL).manifest 1668 $(MANIFEST) -manifest $(DRIVERDLL).manifest \ 1669 -outputresource:$(DRIVERDLL)\;2 1670ifeq "@enable_resource@" "yes" 1671$(GISTRC): 1672 $(RCGEN) $(GISTDLL) $(GISTHDR) $(GISTSRC) > $@ 1673endif 1674$(GISTDLL) $(GISTLIB): $(GISTOBJ) $(GISTRES) \ 1675 $(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) $(INTDLL) 1676 $(CXX) $(DLLFLAGS) $(GISTOBJ) $(GISTRES) \ 1677 @DLLPATH@ @LINKOUTPUT@$(GISTDLL) $(GLDFLAGS) $(LINKQT) 1678 $(FIXMANIFEST) $(GISTDLL).manifest 1679 $(MANIFEST) -manifest $(GISTDLL).manifest \ 1680 -outputresource:$(GISTDLL)\;2 1681ifeq "@enable_resource@" "yes" 1682$(FLATZINCRC): 1683 $(RCGEN) $(FLATZINCDLL) $(FLATZINCHDR) $(FLATZINCSRC) > $@ 1684endif 1685$(FLATZINCDLL) $(FLATZINCLIB): $(FLATZINCOBJ) $(FLATZINCRES) \ 1686 $(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) $(INTDLL) \ 1687 $(SETDLL) $(FLOATDLL) $(GISTDLL) $(MMDLL) $(DRIVERDLL) 1688 $(CXX) $(DLLFLAGS) $(FLATZINCOBJ) $(FLATZINCRES) \ 1689 @DLLPATH@ @LINKOUTPUT@$(FLATZINCDLL) $(GLDFLAGS) $(LINKQT) 1690 $(FIXMANIFEST) $(FLATZINCDLL).manifest 1691 $(MANIFEST) -manifest $(FLATZINCDLL).manifest \ 1692 -outputresource:$(FLATZINCDLL)\;2 1693endif 1694 1695# 1696# Static libraries 1697# 1698 1699$(SUPPORTSTATICLIB): $(SUPPORTOBJ) 1700 $(AR) $(ARFLAGS) $@ $(SUPPORTOBJ) 1701 $(RANLIB) $@ 1702$(KERNELSTATICLIB): $(KERNELOBJ) 1703 $(AR) $(ARFLAGS) $@ $(KERNELOBJ) 1704 $(RANLIB) $@ 1705$(SEARCHSTATICLIB): $(SEARCHOBJ) 1706 $(AR) $(ARFLAGS) $@ $(SEARCHOBJ) 1707 $(RANLIB) $@ 1708$(INTSTATICLIB): $(INTOBJ) 1709 $(AR) $(ARFLAGS) $@ $(INTOBJ) 1710 $(RANLIB) $@ 1711$(FLOATSTATICLIB): $(FLOATOBJ) 1712 $(AR) $(ARFLAGS) $@ $(FLOATOBJ) 1713 $(RANLIB) $@ 1714$(SETSTATICLIB): $(SETOBJ) 1715 $(AR) $(ARFLAGS) $@ $(SETOBJ) 1716 $(RANLIB) $@ 1717$(MMSTATICLIB): $(MMOBJ) 1718 $(AR) $(ARFLAGS) $@ $(MMOBJ) 1719 $(RANLIB) $@ 1720$(DRIVERSTATICLIB): $(DRIVEROBJ) 1721 $(AR) $(ARFLAGS) $@ $(DRIVEROBJ) 1722 $(RANLIB) $@ 1723$(GISTSTATICLIB): $(GISTOBJ) 1724 $(AR) $(ARFLAGS) $@ $(GISTOBJ) 1725 $(RANLIB) $@ 1726$(FLATZINCSTATICLIB): $(FLATZINCOBJ) 1727 $(AR) $(ARFLAGS) $@ $(FLATZINCOBJ) 1728 $(RANLIB) $@ 1729 1730# 1731# Mac OS X Framework 1732# 1733 1734.PHONY: framework 1735ifeq "@BUILD_MACOS_FRAMEWORK@" "yes" 1736framework: gecode.framework/Versions/@GECODE_SOVERSION@/gecode 1737 1738gecode.framework/Versions/@GECODE_SOVERSION@/gecode: $(STATICTARGETS) 1739 $(RMF) gecode.framework 1740 mkdir -p gecode.framework/Versions/@GECODE_SOVERSION@ 1741 $(CXX) -all_load -compatibility_version @GECODE_SOVERSION@.0 \ 1742 -current_version @GECODE_SOVERSION@.0 \ 1743 $(DLLFLAGS) $(LINKQT) \ 1744 -o gecode.framework/Versions/@GECODE_SOVERSION@/gecode $^ 1745 $(MAKE) doinstallheaders \ 1746 prefix=gecode.framework/Versions/@GECODE_SOVERSION@ DESTDIR= 1747 mv gecode.framework/Versions/@GECODE_SOVERSION@/include/gecode/* \ 1748 gecode.framework/Versions/@GECODE_SOVERSION@/include/ 1749 rmdir gecode.framework/Versions/@GECODE_SOVERSION@/include/gecode 1750 cd gecode.framework/Versions && ln -s @GECODE_SOVERSION@ Current 1751 ln -s Versions/Current/include \ 1752 gecode.framework/Headers 1753 ln -s Versions/Current/gecode \ 1754 gecode.framework/gecode 1755else 1756framework: 1757endif 1758 1759# 1760# EXE Targets 1761# 1762 1763.PRECIOUS: examples/%$(OBJSUFFIX) 1764ifeq "@enable_resource@" "yes" 1765.PRECIOUS: examples/%$(EXESUFFIX).rc examples/%$(EXESUFFIX).res 1766examples/%$(EXESUFFIX).rc: 1767 $(RCGEN) $(@:%.rc=%) $< > $@ 1768examples/%$(EXESUFFIX): examples/%$(OBJSUFFIX) examples/%$(EXESUFFIX).res \ 1769 $(ALLLIB) 1770 $(CXX) @EXEOUTPUT@$@ $< $@.res \ 1771 $(DLLPATH) $(CXXFLAGS) \ 1772 $(LINKALL) $(GLDFLAGS) $(LINKQT) 1773 $(FIXMANIFEST) $@.manifest 1774 $(MANIFEST) -manifest $@.manifest -outputresource:$@\;1 1775else 1776examples/%$(EXESUFFIX): examples/%$(OBJSUFFIX) $(ALLLIB) 1777 $(CXX) @EXEOUTPUT@$@ $< $(DLLPATH) $(CXXFLAGS) \ 1778 $(LINKALL) $(GLDFLAGS) $(LINKQT) 1779 $(FIXMANIFEST) $@.manifest 1780 $(MANIFEST) -manifest $@.manifest -outputresource:$@\;1 1781endif 1782 1783ifeq "@enable_resource@" "yes" 1784TESTRES = $(TESTEXE).res 1785$(TESTEXE).rc: 1786 $(RCGEN) $(TESTEXE) $(TESTSRC) $(TESTHDR) > $@ 1787else 1788TESTRES = 1789endif 1790$(TESTEXE): $(TESTOBJ) $(TESTRES) $(ALLLIB) 1791 $(CXX) @EXEOUTPUT@$@ $(TESTOBJ) $(TESTRES) $(DLLPATH) $(CXXFLAGS) \ 1792 $(LINKALL) $(GLDFLAGS) $(LINKQT) 1793 $(FIXMANIFEST) $@.manifest $(DLLSUFFIX) 1794 $(MANIFEST) -manifest $@.manifest -outputresource:$@\;1 1795 1796.PHONY: flatzinc 1797ifeq "@enable_flatzinc@" "yes" 1798flatzinc: $(FLATZINCEXE) 1799else 1800flatzinc: 1801endif 1802 1803ifeq "@enable_resource@" "yes" 1804FLATZINCEXERES = $(FLATZINCEXE).res 1805$(FLATZINCEXE).rc: 1806 $(RCGEN) $(FLATZINCEXE) $(FLATZINCEXESRC) > $@ 1807else 1808FLATZINCEXERES = 1809endif 1810$(FLATZINCEXE): $(FLATZINCEXEOBJ) $(FLATZINCEXERES) $(ALLLIB) 1811 $(CXX) @EXEOUTPUT@$@ $(FLATZINCEXEOBJ) $(FLATZINCEXERES) \ 1812 $(DLLPATH) $(CXXFLAGS) \ 1813 $(LINKALL) $(GLDFLAGS) $(LINKSTATICQT) 1814 $(FIXMANIFEST) $@.manifest 1815 $(MANIFEST) -manifest $@.manifest -outputresource:$@\;1 1816 1817 1818# 1819# Autoconf 1820# 1821 1822$(top_srcdir)/configure: $(top_srcdir)/configure.ac 1823 (cd $(top_srcdir) && autoconf) 1824config.status: $(top_srcdir)/configure 1825 ./config.status --recheck 1826Makefile: $(top_srcdir)/Makefile.in config.status 1827 ./config.status --file $@:$< 1828doxygen.hh: $(top_srcdir)/doxygen/doxygen.hh.in config.status 1829 ./config.status --file $@:$< 1830doxygen.conf: $(top_srcdir)/doxygen/doxygen.conf.in config.status 1831 ./config.status --file $@:$< 1832 1833 1834# 1835# Documentation 1836# 1837 1838export ENABLEDOCCHM = @ENABLEDOCCHM@ 1839export ENABLEDOCDOCSET = @ENABLEDOCDOCSET@ 1840ENABLEDOCSEARCH = @ENABLEDOCSEARCH@ 1841 1842.PHONY: doc 1843 1844DOCSRC_NOTGENERATED = \ 1845 misc/doxygen/back.png misc/doxygen/footer.html \ 1846 misc/doxygen/gecode-logo-100.png \ 1847 misc/doxygen/stylesheet.css \ 1848 misc/genlicense.perl misc/genstatistics.perl \ 1849 misc/genchangelog.perl 1850DOCSRC = $(DOCSRC_NOTGENERATED:%=$(top_srcdir)/%) \ 1851 doxygen.conf.use header.html \ 1852 doxygen.hh license.hh stat.hh changelog.hh 1853 1854changelog.hh: $(top_srcdir)/changelog.in 1855 perl $(top_srcdir)/misc/genchangelog.perl < $^ > changelog.hh 1856 1857ChangeLog: $(top_srcdir)/changelog.in 1858 perl $(top_srcdir)/misc/gentxtchangelog.perl < $^ > ChangeLog 1859 1860license.hh: $(ALLGECODEHDR:%=$(top_srcdir)/%) $(ALLSRC:%=$(top_srcdir)/%) \ 1861 $(VARIMPHDR) 1862 perl $(top_srcdir)/misc/genlicense.perl $^ > license.hh 1863 1864stat.hh: $(ALLGECODEHDR:%=$(top_srcdir)/%) $(ALLSRC:%=$(top_srcdir)/%) \ 1865 $(TESTHDR:%=$(top_srcdir)/%) $(TESTSRC:%=$(top_srcdir)/%) \ 1866 $(VARIMPHDR) 1867 perl $(top_srcdir)/misc/genstatistics.perl $^ > stat.hh 1868 1869 1870ifeq "@ENABLEDOCCHM@" "yes" 1871 1872DOCTARGET=GecodeReference.chm 1873 1874header.html: $(top_srcdir)/misc/doxygen/header.html doxygen.conf 1875 grep -v '<form.*form>' < $< > $@ 1876doxygen.conf.use: doxygen.conf 1877 (echo "GENERATE_HTMLHELP = YES"; \ 1878 echo "SEARCHENGINE = NO";\ 1879 echo "HAVE_DOT = @GECODE_DOXYGEN_DOT@") | \ 1880 cat $< - > $@ 1881 1882doc: $(ALLGECODEHDR:%=$(top_srcdir)/%) $(VARIMPHDR) \ 1883 $(ALLSRC:%=$(top_srcdir)/%) $(DOCSRC) 1884 mkdir -p doc/html 1885 cp -f $(top_srcdir)/misc/doxygen/back.png \ 1886 $(top_srcdir)/misc/doxygen/gecode-logo-100.png doc/html 1887 doxygen doxygen.conf.use 1888 mv doc/html/GecodeReference.chm GecodeReference.chm 1889 1890else 1891ifeq "@ENABLEDOCDOCSET@" "yes" 1892 1893DOCTARGET=org.gecode.@VERSION@.docset 1894 1895header.html: $(top_srcdir)/misc/doxygen/header.html doxygen.conf 1896 grep -v '<form.*form>' < $< > $@ 1897doxygen.conf.use: doxygen.conf 1898 (echo "SEARCHENGINE = NO";\ 1899 echo "HAVE_DOT = @GECODE_DOXYGEN_DOT@";\ 1900 echo "GENERATE_DOCSET = YES";\ 1901 echo "DOCSET_BUNDLE_ID = org.gecode.@VERSION@";\ 1902 echo "DOCSET_FEEDNAME = Gecode") | \ 1903 cat $< - > $@ 1904 1905doc: $(ALLGECODEHDR:%=$(top_srcdir)/%) $(VARIMPHDR) \ 1906 $(ALLSRC:%=$(top_srcdir)/%) $(DOCSRC) 1907 mkdir -p doc/html 1908 cp -f $(top_srcdir)/misc/doxygen/back.png \ 1909 $(top_srcdir)/misc/doxygen/gecode-logo-100.png doc/html 1910 doxygen doxygen.conf.use 1911 cd doc/html && make 1912 mv doc/html/$(DOCTARGET) . 1913 1914else 1915DOCTARGET=doc/html 1916 1917ifeq "@ENABLEDOCSEARCH@" "yes" 1918 1919header.html: $(top_srcdir)/misc/doxygen/header.html doxygen.conf 1920 cat < $< > $@ 1921doxygen.conf.use: doxygen.conf 1922 (echo "GENERATE_HTMLHELP = NO"; \ 1923 echo "SEARCHENGINE = YES"; \ 1924 echo "SERVER_BASED_SEARCH = YES"; \ 1925 echo "HAVE_DOT = @GECODE_DOXYGEN_DOT@") | \ 1926 cat $< - > $@ 1927else 1928 1929header.html: $(top_srcdir)/misc/doxygen/header.html doxygen.conf 1930 grep -v '<form.*form>' < $< > $@ 1931doxygen.conf.use: doxygen.conf 1932 (echo "GENERATE_HTMLHELP = NO"; \ 1933 echo "SEARCHENGINE = NO"; \ 1934 echo "HAVE_DOT = @GECODE_DOXYGEN_DOT@") | \ 1935 cat $< - > $@ 1936 1937endif 1938 1939doc: $(ALLGECODEHDR:%=$(top_srcdir)/%) $(VARIMPHDR) \ 1940 $(ALLSRC:%=$(top_srcdir)/%) $(DOCSRC) 1941 mkdir -p doc/html 1942 cp -f $(top_srcdir)/misc/doxygen/back.png \ 1943 $(top_srcdir)/misc/doxygen/gecode-logo-100.png doc/html 1944 doxygen doxygen.conf.use 1945 1946ifeq "@ENABLEDOCSEARCH@" "yes" 1947 # Work around a doxygen bug (a missing div screws up the layout) 1948 mv doc/html/search.php doc/html/search2.php 1949 sed -e 's|<div class="qindex">|<div><div class="qindex">|' \ 1950 doc/html/search2.php > doc/html/search.php 1951 rm doc/html/search2.php 1952endif 1953 1954endif 1955endif 1956 1957# 1958# Installation 1959# 1960 1961.PHONY: install 1962 1963ifeq "@BUILD_MACOS_FRAMEWORK@" "yes" 1964install: installframework 1965else 1966 1967ifeq "@enable_examples@" "yes" 1968install: installlib installexamples 1969else 1970install: installlib 1971endif 1972 1973endif 1974 1975doinstallheaders: $(ALLHDR:%=$(top_srcdir)/%) $(EXTRA_HEADERS) $(VARIMPHDR) 1976 mkdir -p $(DESTDIR)$(includedir) && \ 1977 (cd $(top_srcdir) && tar cf - $(ALLHDR)) | \ 1978 (cd $(DESTDIR)$(includedir) && tar xf -) && \ 1979 for_varimpheaders="$(VARIMPHDR)" && \ 1980 for f in $$for_varimpheaders; do \ 1981 cp $$f $(DESTDIR)$(includedir)/gecode/kernel; done && \ 1982 for_extraheaders="$(EXTRA_HEADERS)" && \ 1983 for f in $$for_extraheaders; do \ 1984 cp $$f $(DESTDIR)$(includedir)/$$f; done && \ 1985 for_mznlib="$(FLATZINCMZNLIB)" && \ 1986 mkdir -p $(DESTDIR)$(datadir)/minizinc/solvers; \ 1987 cp $(FLATZINCCONFIG) $(DESTDIR)$(datadir)/minizinc/solvers/; \ 1988 mkdir -p $(DESTDIR)$(datadir)/minizinc/gecode; \ 1989 for f in $$for_mznlib; do \ 1990 cp $(top_srcdir)/$$f/*.mzn \ 1991 $(DESTDIR)$(datadir)/minizinc/gecode; done 1992 1993doinstalllib: 1994 mkdir -p $(DESTDIR)$(sharedlibdir) && \ 1995 mkdir -p $(DESTDIR)$(libdir) && \ 1996 mkdir -p $(DESTDIR)$(bindir) && \ 1997 for_libtargets="$(LIBTARGETS) $(PDBTARGETS)" && \ 1998 for f in $$for_libtargets; do \ 1999 cp $$f $(DESTDIR)$(sharedlibdir); done && \ 2000 for_liblinktargets="$(LIBLINKTARGETS)" && \ 2001 for f in $$for_liblinktargets; do \ 2002 cp -pR $$f $(DESTDIR)$(sharedlibdir); done &&\ 2003 for_liblibtargets="$(LIBLIBTARGETS)" && \ 2004 for f in $$for_liblibtargets; do \ 2005 cp $$f $(DESTDIR)$(libdir); done &&\ 2006 for_exetargets="$(EXETARGETS)" && \ 2007 for f in $$for_exetargets; do \ 2008 cp $$f $(DESTDIR)$(bindir); done 2009 2010ifeq "@BUILDSTATIC@" "yes" 2011ranliblib: 2012 for_static="$(STATICTARGETS)" ; \ 2013 for f in $$for_static; do \ 2014 $(RANLIB) $(DESTDIR)$(sharedlibdir)/$$f; done 2015else 2016ranliblib: 2017endif 2018 2019installlib: compilelib 2020 $(MAKE) doinstalllib 2021 $(MAKE) doinstallheaders 2022 $(MAKE) ranliblib 2023 $(MAKE) installsubdirs 2024 2025installexamples: compileexamples 2026 mkdir -p $(DESTDIR)$(bindir); \ 2027 for_exampleexe="$(EXAMPLEEXE)" ; \ 2028 for f in $$for_exampleexe; do cp $$f $(DESTDIR)$(bindir); done \ 2029 2030installframework: framework 2031 mkdir -p $(DESTDIR)/Library/Frameworks/gecode.framework && \ 2032 (cd gecode.framework && tar cf - *) | \ 2033 (cd $(DESTDIR)/Library/Frameworks/gecode.framework && tar xf -) 2034 2035installdoc: doc 2036 mkdir -p $(DESTDIR)$(docdir); \ 2037 cp -r $(DOCTARGET) $(DESTDIR)$(docdir) 2038 2039installsubdirs: 2040 @for_subdirs="$(subdirs)" ; for i in $$for_subdirs; do \ 2041 cd $$i && if test -f Makefile; then \ 2042 echo "Making install in directory $$i"; \ 2043 $(MAKE) install; \ 2044 fi; \ 2045 done 2046 2047# 2048# Source Distribution 2049# 2050 2051.PHONY: distdoc 2052 2053ifeq "@ENABLEDOCSEARCH@" "yes" 2054DOCSUFFIX = search-$(VERSION) 2055else 2056DOCSUFFIX = $(VERSION) 2057endif 2058 2059distdoc: doc 2060 rm -rf gecode-doc-$(DOCSUFFIX) && \ 2061 mv doc/html gecode-doc-$(DOCSUFFIX) && \ 2062 $(TAR) cf - gecode-doc-$(DOCSUFFIX) | \ 2063 gzip -9 > gecode-doc-$(DOCSUFFIX).tar.gz && \ 2064 7z a -mx9 gecode-doc-$(DOCSUFFIX).7z gecode-doc-$(DOCSUFFIX) && \ 2065 $(RMF) gecode-doc-$(DOCSUFFIX) && \ 2066 if test -f doc/gecode-doc.tag; then \ 2067 mv doc/gecode-doc.tag gecode-doc-$(DOCSUFFIX).tag && \ 2068 gzip -9 gecode-doc-$(DOCSUFFIX).tag; \ 2069 fi 2070 2071 2072# 2073# Maintenance targets 2074# 2075 2076clean: 2077 $(RMF) *.stackdump core gmon.out \ 2078 vc70.pdb vc80.pdb vc90.pdb vc100.pdb vc110.pdb \ 2079 vc120.pdb vc130.pdb vc140.pdb 2080 $(RMF) doxygen.log doxygen.hh doxygen.conf.use stat.hh \ 2081 changelog.hh doxygen.hh license.hh header.html 2082 $(RMF) $(ALLOBJ) $(ALLSBJ) $(ALLOBJ:%$(OBJSUFFIX)=%.pdb) 2083 $(RMF) $(TESTOBJ) $(TESTSBJ) $(TESTOBJ:%$(OBJSUFFIX)=%.pdb) 2084 $(RMF) $(GISTMOCSRC) 2085 $(RMF) $(LIBTARGETS:%$(DLLSUFFIX)=%$(MANIFESTSUFFIX)) \ 2086 $(LIBTARGETS:%$(DLLSUFFIX)=%$(RCSUFFIX)) \ 2087 $(LIBTARGETS:%$(DLLSUFFIX)=%$(RESSUFFIX)) \ 2088 $(LIBTARGETS:%$(DLLSUFFIX)=%$(EXPSUFFIX)) 2089 $(RMF) $(EXAMPLEEXE:%.exe=%.pdb) $(EXAMPLEEXE:%=%.manifest) \ 2090 $(EXAMPLEEXE:%=%.rc) $(EXAMPLEEXE:%=%.res) 2091 $(RMF) $(TESTEXE:%.exe=%.pdb) $(TESTEXE:%=%.manifest) \ 2092 $(TESTEXE:%=%.rc) $(TESTEXE:%=%.res) 2093 $(RMF) $(FLATZINCEXE:%.exe=%.pdb) $(FLATZINCEXE:%=%.manifest) \ 2094 $(FLATZINCEXE:%=%.rc) $(FLATZINCEXE:%=%.res) 2095 2096veryclean: clean 2097 $(RMF) $(LIBTARGETS) \ 2098 $(LIBTARGETS:%$(DLLSUFFIX)=%$(LIBSUFFIX)) \ 2099 $(LIBTARGETS:%$(DLLSUFFIX)=%$(PDBSUFFIX)) 2100 $(RMF) $(LIBTARGETS:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) \ 2101 $(LIBTARGETS:%$(DLLSUFFIX)=%$(SOSUFFIX)) 2102 $(RMF) $(EXAMPLEEXE) 2103 $(RMF) $(TESTEXE) 2104 $(RMF) $(FLATZINCEXE) 2105 $(RMF) doc GecodeReference.chm ChangeLog 2106 $(RMF) $(ALLOBJ:%$(OBJSUFFIX)=%.gcno) $(TESTOBJ:%$(OBJSUFFIX)=%.gcno) 2107 $(RMF) $(ALLOBJ:%$(OBJSUFFIX)=%.gcda) $(TESTOBJ:%$(OBJSUFFIX)=%.gcda) 2108 2109distclean: veryclean 2110 $(RMF) $(VARIMP) 2111 $(RMF) Makefile doxygen.conf 2112 $(RMF) $(EXTRA_HEADERS) 2113 $(RMF) config.log config.status Makefile.dep 2114 2115depend: mkcompiledirs 2116 @$(MAKE) $(VARIMP) gecode/flatzinc/parser.tab.hpp 2117 perl $(top_srcdir)/misc/makedepend.perl \ 2118 $(top_srcdir) \ 2119 $(ALLSRC) \ 2120 $(FLATZINC_GENSRC) \ 2121 $(TESTSRC) > Makefile.dep 2122 2123-include Makefile.dep