70a1cfa856 Add reasoning about why a restart happens 5db96c6afc Add initial version of the 'complete' propagator 3410436fc5 Fix include problems on Linux and Windows 0218f3e7be Remove deprecated restart_count from the variables set on restart 7f4a528ced Fix makefile mistake for LastVal constraint 8a39aee00d Initialise LastVal stored as the minimal in the domain 86707c674e Update STATUS to match the new enum 44d672100f Add support for LastVal from FlatZinc bd8af2e8f6 Subsume after propagation 2f07e027ab Add LastVal propagator f05cf9daba Output number of copies 707e30c0f0 Update generated parser files 179ee693cc Add restart_number() builtin (to work around the problem that otherwise we can't implement round robin style search) 04a492da17 Fix restart numbers (didn't count incomplete neighbourhoods) fbaa3529ec Initial implementation of on_restart 6dd39a73dd Update LICENSE 8f5ea30eba Update LICENSE 4236a2e5ec Use std::vector instead of std::array c53655d685 Dynamically adjust test batch sizes 37248557b6 Require C++11 cc60ea7cde Minor, remove exraneous newline in changelog 74c5f54b9f Make Region pool thread local 6f04ac3514 Use atomic for propagator identifier 2e0c275b07 Add support for parallel testing 3ada422b76 Refactor, extracted run_test function 787c41b8c4 Refactor, move data and logic into Options 120fc512a7 Refactor, extract run_tests function 85dd87a4af Refactoring: Thread rand through calls in test cece9da4ef Refactor Assignments operator() to has_more 564410e4ee Refactor Assignment operator++ to next() e1c84af894 Separate test filtering from running 8558856298 Remove empty statement warnings a9d8cb64fa Fix compilation errors for CPProfiler support 9ec81a69b2 Add RestartStop REVERT: 313e87646d Fix include problems on Linux and Windows REVERT: 358b8ca63b Remove deprecated restart_count from the variables set on restart REVERT: 83508d5de2 Fix makefile mistake for LastVal constraint REVERT: 530bbaf107 Initialise LastVal stored as the minimal in the domain REVERT: 96ba0d3d7e Update STATUS to match the new enum REVERT: 7d772297f9 Add support for LastVal from FlatZinc REVERT: 98b0162d75 Subsume after propagation REVERT: 5cd4552144 Add LastVal propagator REVERT: 9b80e644b7 Output number of copies REVERT: aaa5301366 Update generated parser files REVERT: 6ff4efe6a4 Add restart_number() builtin (to work around the problem that otherwise we can't implement round robin style search) REVERT: 8bcbec5d6e Fix restart numbers (didn't count incomplete neighbourhoods) REVERT: 3f63e743b2 Initial implementation of on_restart REVERT: b6ffa462d1 Update LICENSE REVERT: ad0621c26c Update LICENSE REVERT: 93caa97684 Use std::vector instead of std::array REVERT: 32d6399b35 Dynamically adjust test batch sizes REVERT: e7f00e9977 Require C++11 REVERT: a5ba8e4282 Minor, remove exraneous newline in changelog REVERT: b24831354d Make Region pool thread local REVERT: b1a109ac2e Use atomic for propagator identifier REVERT: 3d77aaad71 Add support for parallel testing REVERT: b1b9526049 Refactor, extracted run_test function REVERT: 85b8a57f65 Refactor, move data and logic into Options REVERT: d2c1961437 Refactor, extract run_tests function REVERT: 0236327c75 Refactoring: Thread rand through calls in test REVERT: ba81289b02 Refactor Assignments operator() to has_more REVERT: 038a554bd8 Refactor Assignment operator++ to next() REVERT: f34f125131 Separate test filtering from running REVERT: cec6336ede Remove empty statement warnings REVERT: d63e1fc042 Fix compilation errors for CPProfiler support git-subtree-dir: software/gecode git-subtree-split: 70a1cfa856d138b0845d2681c46ca16f8507aebf
2124 lines
67 KiB
Makefile
Executable File
2124 lines
67 KiB
Makefile
Executable File
# -*-Makefile-*-
|
||
#
|
||
# Main authors:
|
||
# Christian Schulte <schulte@gecode.org>
|
||
# Guido Tack <tack@gecode.org>
|
||
#
|
||
# Contributing authors:
|
||
# Mikael Lagerkvist <lagerkvist@gecode.org>
|
||
#
|
||
# Copyright:
|
||
# Christian Schulte, 2005
|
||
# Guido Tack, 2005
|
||
# Mikael Lagerkvist, 2020
|
||
#
|
||
# This file is part of Gecode, the generic constraint
|
||
# development environment:
|
||
# http://www.gecode.org
|
||
#
|
||
# Permission is hereby granted, free of charge, to any person obtaining
|
||
# a copy of this software and associated documentation files (the
|
||
# "Software"), to deal in the Software without restriction, including
|
||
# without limitation the rights to use, copy, modify, merge, publish,
|
||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||
# permit persons to whom the Software is furnished to do so, subject to
|
||
# the following conditions:
|
||
#
|
||
# The above copyright notice and this permission notice shall be
|
||
# included in all copies or substantial portions of the Software.
|
||
#
|
||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||
#
|
||
|
||
#
|
||
# General Settings
|
||
#
|
||
|
||
export prefix = @prefix@
|
||
export exec_prefix = @exec_prefix@
|
||
export bindir = @bindir@
|
||
export libdir = @libdir@
|
||
export sharedlibdir = @sharedlibdir@
|
||
export includedir = @includedir@
|
||
export srcdir = @srcdir@
|
||
export datarootdir = @datarootdir@
|
||
export datadir = @datadir@
|
||
export docdir= @docdir@
|
||
export top_srcdir = @top_srcdir@
|
||
export top_builddir = .
|
||
|
||
# Install to different root directory
|
||
DESTDIR=
|
||
|
||
export subdirs = @subdirs@
|
||
|
||
export VERSION = @VERSION@
|
||
|
||
export CXX = @CXX@
|
||
export CC = @CC@
|
||
export MOC = @MOC@
|
||
ifeq "$(top_srcdir)" "$(top_builddir)"
|
||
CPPFLAGS=-I$(top_srcdir)
|
||
else
|
||
CPPFLAGS=-I$(top_builddir) -I$(top_srcdir)
|
||
endif
|
||
export CPPFLAGS
|
||
export CXXFLAGS = $(CPPFLAGS) @CXXFLAGS@ $(CXXUSR)
|
||
export CFLAGS = $(CPPFLAGS) @CFLAGS@ $(CUSR)
|
||
export EXAMPLES_EXTRA_CXXFLAGS = @EXAMPLES_EXTRA_CXXFLAGS@
|
||
|
||
export QT_CPPFLAGS = @QTDEFINES@ @QTINCLUDES@
|
||
export LINKQT = @QTLIBS@
|
||
export MPFR_CPPFLAGS = @GMP_CPPFLAGS@ @MPFR_CPPFLAGS@
|
||
ifeq "@enable_mpfr@" "yes"
|
||
export LINKMPFR = @MPFR_LIB_PATH@ @GMP_LIB_PATH@ @MPFR_LINK@ @GMP_LINK@
|
||
else
|
||
export LINKMPFR =
|
||
endif
|
||
|
||
ifeq "@BUILDDLL@" "yes"
|
||
export LINKSTATICQT
|
||
else
|
||
export LINKSTATICQT = $(LINKQT)
|
||
endif
|
||
|
||
export GLDFLAGS = @GLDFLAGS@
|
||
export DLLFLAGS = @DLLFLAGS@
|
||
export DLLPATH = @DLLPATH@
|
||
|
||
export RANLIB = @RANLIB@
|
||
export TAR = tar
|
||
|
||
export RUNENVIRONMENT = @RUNENVIRONMENT@
|
||
|
||
#
|
||
# Use suffixes to get consistent treatment of dots
|
||
#
|
||
export OBJSUFFIX = .@OBJEXT@
|
||
export SBJSUFFIX = .@SBJEXT@
|
||
export DLLSUFFIX = @DLL_ARCH@@USERSUFFIX@.@DLLEXT@
|
||
export MANIFESTSUFFIX = @DLL_ARCH@@USERSUFFIX@.@DLLEXT@.manifest
|
||
export RCSUFFIX = @DLL_ARCH@@USERSUFFIX@.@DLLEXT@.rc
|
||
export RESSUFFIX = @DLL_ARCH@@USERSUFFIX@.@DLLEXT@.res
|
||
export LIBSUFFIX = @DLL_ARCH@@USERSUFFIX@.@LIBEXT@
|
||
export PDBSUFFIX = @DLL_ARCH@@USERSUFFIX@.pdb
|
||
export EXPSUFFIX = @DLL_ARCH@@USERSUFFIX@.exp
|
||
export STATICLIBSUFFIX = .@STATICLIBEXT@
|
||
export EXESUFFIX = @EXEEXT@
|
||
|
||
export LIBPREFIX = @LIBPREFIX@
|
||
export LINKPREFIX = @LINKPREFIX@
|
||
export LINKSUFFIX = @DLL_ARCH@@USERSUFFIX@@LINKSUFFIX@
|
||
|
||
export SOLINKSUFFIX = @DLL_ARCH@@USERSUFFIX@@SOLINKSUFFIX@
|
||
export SOSUFFIX = @DLL_ARCH@@USERSUFFIX@@SOSUFFIX@
|
||
|
||
#
|
||
# Programs
|
||
#
|
||
export RMF = rm -rf
|
||
export MV = mv
|
||
export MANIFEST = @MANIFEST@ -nologo
|
||
export FIXMANIFEST = perl $(top_srcdir)/misc/fixmanifest.perl $(DLLSUFFIX)
|
||
export RESCOMP = @RESCOMP@ -n -i$(top_srcdir)
|
||
export RCGEN = perl $(top_srcdir)/misc/genrc.perl $(DLLSUFFIX) $(top_srcdir)
|
||
|
||
ifeq "@need_soname@" "yes"
|
||
export CREATELINK = ln -fs
|
||
else
|
||
export CREATELINK = @true
|
||
endif
|
||
|
||
ifeq "@enable_resource@" "yes"
|
||
%.res: %.rc
|
||
$(RESCOMP) -fo $@ $<
|
||
.PRECIOUS: %.res %.rc
|
||
endif
|
||
|
||
#
|
||
# SUPPORT COMPONENTS
|
||
#
|
||
SUPPORTSRC0 = \
|
||
exception allocator heap \
|
||
thread/thread thread/windows thread/pthreads \
|
||
hw-rnd
|
||
SUPPORTHDR0 = \
|
||
block-allocator cast hash dynamic-array \
|
||
dynamic-stack exception allocator heap \
|
||
macros random sort static-stack \
|
||
marked-pointer int-type auto-link \
|
||
thread thread/thread thread/windows thread/pthreads thread/none timer \
|
||
dynamic-queue bitset-base bitset bitset-offset \
|
||
hw-rnd run-jobs ref-count
|
||
|
||
SUPPORTSRC1 = $(SUPPORTSRC0:%=gecode/support/%.cpp)
|
||
SUPPORTHDR = gecode/support.hh \
|
||
$(SUPPORTHDR0:%=gecode/support/%.hpp)
|
||
SUPPORTOBJ = $(SUPPORTSRC1:%.cpp=%$(OBJSUFFIX))
|
||
SUPPORTSRC = $(SUPPORTSRC1)
|
||
|
||
export SUPPORTDLL = $(LIBPREFIX)@SUPPORT@$(DLLSUFFIX)
|
||
export SUPPORTLIB = $(LIBPREFIX)@SUPPORT@$(LIBSUFFIX)
|
||
ifeq "@need_soname@" "yes"
|
||
export SUPPORTSONAME = \
|
||
@WLSONAME@$(LIBPREFIX)@SUPPORT@$(SOSUFFIX)
|
||
else
|
||
export SUPPORTSONAME =
|
||
endif
|
||
export SUPPORTSTATICLIB = $(LIBPREFIX)@SUPPORT@$(STATICLIBSUFFIX)
|
||
export LINKSUPPORT = \
|
||
$(LINKPREFIX)@SUPPORT@$(LINKSUFFIX)
|
||
ifeq "@enable_resource@" "yes"
|
||
export SUPPORTRC = $(LIBPREFIX)@SUPPORT@$(RCSUFFIX)
|
||
export SUPPORTRES = $(LIBPREFIX)@SUPPORT@$(RESSUFFIX)
|
||
else
|
||
export SUPPORTRES =
|
||
export SUPPORTRC =
|
||
endif
|
||
|
||
SUPPORTBUILDDIRS = support support/thread
|
||
|
||
|
||
#
|
||
# KERNEL COMPONENTS
|
||
#
|
||
|
||
VARIMPHDR = \
|
||
gecode/kernel/var-type.hpp \
|
||
gecode/kernel/var-imp.hpp
|
||
|
||
VARIMP = $(VARIMPHDR)
|
||
|
||
KERNELSRC0 = \
|
||
archive core exception gpi \
|
||
data/rnd \
|
||
branch/action branch/afc branch/chb branch/function \
|
||
memory/manager memory/region \
|
||
trace/recorder trace/filter trace/tracer trace/general \
|
||
data/array
|
||
|
||
KERNELHDR0 = \
|
||
archive core exception macros modevent gpi \
|
||
shared-object shared-space-data range-list \
|
||
view var \
|
||
memory/config memory/manager memory/region memory/allocators \
|
||
data/array data/rnd data/shared-array data/shared-data \
|
||
propagator/pattern propagator/advisor propagator/subscribed \
|
||
propagator/wait \
|
||
branch/var branch/val branch/tiebreak \
|
||
branch/traits branch/afc branch/action branch/chb \
|
||
branch/view-sel branch/merit \
|
||
branch/val-sel branch/val-commit branch/view branch/view-val \
|
||
branch/val-sel-commit branch/print branch/filter \
|
||
trace/traits trace/filter trace/tracer trace/recorder \
|
||
trace/general trace/print
|
||
|
||
|
||
KERNELSRC = $(KERNELSRC0:%=gecode/kernel/%.cpp)
|
||
KERNELHDR = \
|
||
gecode/kernel.hh \
|
||
$(KERNELHDR0:%=gecode/kernel/%.hpp)
|
||
KERNELOBJ = $(KERNELSRC:%.cpp=%$(OBJSUFFIX))
|
||
|
||
export KERNELDLL = $(LIBPREFIX)@KERNEL@$(DLLSUFFIX)
|
||
export KERNELLIB = $(LIBPREFIX)@KERNEL@$(LIBSUFFIX)
|
||
ifeq "@need_soname@" "yes"
|
||
export KERNELSONAME = \
|
||
@WLSONAME@$(LIBPREFIX)@KERNEL@$(SOSUFFIX)
|
||
else
|
||
export KERNELSONAME =
|
||
endif
|
||
export KERNELSTATICLIB = $(LIBPREFIX)@KERNEL@$(STATICLIBSUFFIX)
|
||
export LINKKERNEL = $(LINKPREFIX)@KERNEL@$(LINKSUFFIX)
|
||
ifeq "@enable_resource@" "yes"
|
||
export KERNELRC = $(LIBPREFIX)@KERNEL@$(RCSUFFIX)
|
||
export KERNELRES = $(LIBPREFIX)@KERNEL@$(RESSUFFIX)
|
||
else
|
||
export KERNELRES =
|
||
export KERNELRC =
|
||
endif
|
||
|
||
KERNELBUILDDIRS = kernel \
|
||
kernel/data kernel/propagator kernel/branch kernel/memory kernel/trace
|
||
|
||
ifeq "@enable_flatzinc@" "yes"
|
||
EXTRA_HEADERS = gecode/support/config.hpp gecode/flatzinc/parser.tab.hpp
|
||
else
|
||
EXTRA_HEADERS = gecode/support/config.hpp
|
||
endif
|
||
|
||
#
|
||
# SEARCH COMPONENTS
|
||
#
|
||
|
||
SEARCHSRC0 = \
|
||
stop options cutoff engine \
|
||
dfs bab lds \
|
||
seq/rbs seq/dead seq/pbs par/pbs \
|
||
rbs pbs nogoods exception tracer \
|
||
cpprofiler/tracer
|
||
SEARCHHDR0 = \
|
||
statistics.hpp stop.hpp options.hpp cutoff.hpp \
|
||
support.hh worker.hh exception.hpp engine.hpp base.hpp \
|
||
nogoods.hh nogoods.hpp build.hpp traits.hpp sebs.hpp \
|
||
seq/path.hh seq/path.hpp seq/dfs.hh seq/dfs.hpp \
|
||
seq/bab.hh seq/bab.hpp seq/lds.hh seq/lds.hpp \
|
||
seq/rbs.hh seq/rbs.hpp seq/dead.hh \
|
||
seq/pbs.hh seq/pbs.hpp \
|
||
par/path.hh par/path.hpp par/engine.hh par/engine.hpp \
|
||
par/dfs.hh par/dfs.hpp par/bab.hh par/bab.hpp \
|
||
par/pbs.hh par/pbs.hpp \
|
||
dfs.hpp bab.hpp lds.hpp rbs.hpp pbs.hpp \
|
||
relax.hh tracer.hpp trace-recorder.hpp \
|
||
cpprofiler/message.hpp cpprofiler/connector.hpp
|
||
|
||
SEARCHSRC = $(SEARCHSRC0:%=gecode/search/%.cpp)
|
||
SEARCHHDR = gecode/search.hh $(SEARCHHDR0:%=gecode/search/%)
|
||
SEARCHOBJ = $(SEARCHSRC:%.cpp=%$(OBJSUFFIX))
|
||
|
||
ifeq "@enable_search@" "yes"
|
||
export SEARCHDLL = $(LIBPREFIX)@SEARCH@$(DLLSUFFIX)
|
||
export SEARCHSTATICLIB = $(LIBPREFIX)@SEARCH@$(STATICLIBSUFFIX)
|
||
export SEARCHLIB = $(LIBPREFIX)@SEARCH@$(LIBSUFFIX)
|
||
export LINKSEARCH = $(LINKPREFIX)@SEARCH@$(LINKSUFFIX)
|
||
ifeq "@need_soname@" "yes"
|
||
export SEARCHSONAME = \
|
||
@WLSONAME@$(LIBPREFIX)@SEARCH@$(SOSUFFIX)
|
||
else
|
||
export SEARCHSONAME =
|
||
ifeq "@enable_resource@" "yes"
|
||
export SEARCHRC = $(LIBPREFIX)@SEARCH@$(RCSUFFIX)
|
||
export SEARCHRES = $(LIBPREFIX)@SEARCH@$(RESSUFFIX)
|
||
else
|
||
export SEARCHRES =
|
||
export SEARCHRC =
|
||
endif
|
||
endif
|
||
else
|
||
export SEARCHDLL =
|
||
export SEARCHSTATICLIB =
|
||
export SEARCHLIB =
|
||
export LINKSEARCH =
|
||
export SEARCHRES =
|
||
export SEARCHRC =
|
||
endif
|
||
SEARCHBUILDDIRS = search search/seq search/par search/cpprofiler
|
||
|
||
|
||
#
|
||
# INTEGER COMPONENTS
|
||
#
|
||
|
||
INTSRC0 = \
|
||
int-set.cpp var-imp/int.cpp var-imp/bool.cpp var/int.cpp \
|
||
var/bool.cpp array.cpp bool.cpp bool/eqv.cpp \
|
||
extensional/dfa.cpp extensional/tuple-set.cpp \
|
||
extensional-regular.cpp extensional-tuple-set.cpp \
|
||
dom.cpp rel.cpp precede.cpp element.cpp count.cpp \
|
||
arithmetic.cpp exec.cpp \
|
||
exec/when.cpp element/pair.cpp \
|
||
linear/int-post.cpp linear-int.cpp \
|
||
linear/bool-post.cpp linear-bool.cpp \
|
||
branch.cpp distinct/eqite.cpp distinct/cbs.cpp \
|
||
distinct.cpp sorted.cpp gcc.cpp \
|
||
channel.cpp channel/link-single.cpp channel/link-multi.cpp \
|
||
unshare.cpp sequence.cpp \
|
||
bin-packing.cpp bin-packing/propagate.cpp \
|
||
bin-packing/conflict-graph.cpp \
|
||
order.cpp order/propagate.cpp \
|
||
unary.cpp cumulative.cpp cumulatives.cpp \
|
||
circuit.cpp no-overlap.cpp nvalues.cpp \
|
||
member.cpp branch/action.cpp branch/chb.cpp \
|
||
arithmetic/mult.cpp \
|
||
branch/view-sel.cpp branch/val-sel-commit.cpp \
|
||
branch/view-values.cpp \
|
||
relax.cpp \
|
||
ldsb.cpp ldsb/sym-imp.cpp ldsb/sym-obj.cpp \
|
||
trace.cpp trace/tracer.cpp \
|
||
exception.cpp
|
||
|
||
INTHDR0 = \
|
||
limits.hpp support-values.hh support-values.hpp \
|
||
idx-view.hh idx-view.hpp div.hh div.hpp \
|
||
exec.hh exec/when.hpp \
|
||
arithmetic/abs.hpp arithmetic/max.hpp arithmetic/argmax.hpp \
|
||
arithmetic/mult.hpp arithmetic/divmod.hpp \
|
||
arithmetic/pow-ops.hpp arithmetic/pow.hpp arithmetic/nroot.hpp \
|
||
bool/or.hpp bool/eq.hpp bool/lq.hpp bool/eqv.hpp bool/base.hpp \
|
||
bool/clause.hpp bool/ite.hpp \
|
||
precede.hh precede/single.hpp \
|
||
branch/traits.hpp branch/var.hpp branch/val.hpp branch/assign.hpp \
|
||
branch/view-values.hpp branch/merit.hpp \
|
||
branch/val-sel.hpp branch/val-commit.hpp branch/ngl.hpp \
|
||
branch/cbs.hpp branch.hpp \
|
||
count.hh count/rel.hpp \
|
||
count/int-base.hpp count/int-eq.hpp \
|
||
count/int-gq.hpp count/int-lq.hpp \
|
||
count/view-base.hpp count/view-eq.hpp \
|
||
count/view-gq.hpp count/view-lq.hpp \
|
||
view-val-graph.hh view-val-graph/graph.hpp \
|
||
view-val-graph/bi-link.hpp view-val-graph/comb-ptr-flag.hpp \
|
||
view-val-graph/edge.hpp view-val-graph/node.hpp \
|
||
view-val-graph/iter-prune-val.hpp \
|
||
distinct/graph.hpp distinct/dom-ctrl.hpp \
|
||
distinct/bnd.hpp distinct/dom.hpp \
|
||
distinct/val.hpp distinct/ter-dom.hpp \
|
||
distinct/cbs.hpp \
|
||
distinct/eqite.hpp \
|
||
dom/range.hpp dom/set.hpp \
|
||
element/int.hpp element/view.hpp element/pair.hpp \
|
||
gcc/bnd.hpp gcc/dom.hpp gcc/bnd-sup.hpp gcc/dom-sup.hpp \
|
||
gcc/val.hpp gcc/view.hpp gcc/post.hpp \
|
||
linear/post.hpp \
|
||
linear/int-noview.hpp linear/int-bin.hpp linear/int-ter.hpp \
|
||
linear/int-nary.hpp linear/int-dom.hpp \
|
||
linear/bool-int.hpp linear/bool-view.hpp linear/bool-scale.hpp \
|
||
extensional/dfa.hpp extensional/layered-graph.hpp \
|
||
extensional/tuple-set.hpp extensional/compact.hpp \
|
||
extensional/tiny-bit-set.hpp extensional/bit-set.hpp \
|
||
extensional.hpp \
|
||
rel/eq.hpp rel/lex.hpp rel/lq-le.hpp rel/nq.hpp \
|
||
sorted/matching.hpp sorted/narrowing.hpp \
|
||
sorted/order.hpp sorted/propagate.hpp sorted/sortsup.hpp \
|
||
int-set-1.hpp int-set-2.hpp var-imp/delta.hpp var/print.hpp var/bool.hpp \
|
||
var-imp/int.hpp var-imp/bool.hpp var/int.hpp \
|
||
view/bool.hpp view/cached.hpp view/constint.hpp view/zero.hpp view/int.hpp \
|
||
view/minus.hpp view/print.hpp view/neg-bool.hpp view/bool-test.hpp \
|
||
view/offset.hpp view/rel-test.hpp view/scale.hpp view/iter.hpp \
|
||
arithmetic.hh array.hpp array-traits.hpp bool.hh branch.hh \
|
||
distinct.hh dom.hh \
|
||
element.hh exception.hpp gcc.hh linear.hh \
|
||
reify.hpp propagator.hpp extensional.hh rel.hh \
|
||
sorted.hh var-imp.hpp view.hpp ipl.hpp irt.hpp \
|
||
channel.hh channel.hpp channel/dom.hpp channel/val.hpp \
|
||
channel/base.hpp channel/link-single.hpp channel/link-multi.hpp \
|
||
sequence.hh sequence/int.hpp sequence/view.hpp \
|
||
sequence/set-op.hpp sequence/violations.hpp \
|
||
bin-packing.hh bin-packing/propagate.hpp \
|
||
bin-packing/conflict-graph.hpp \
|
||
task.hh task/fwd-to-bwd.hpp task/array.hpp task/sort.hpp \
|
||
task/iter.hpp task/tree.hpp task/purge.hpp task/prop.hpp \
|
||
task/man-to-opt.hpp task/event.hpp \
|
||
order.hh order/propagate.hpp \
|
||
unary.hh unary/task.hpp unary/task-view.hpp \
|
||
unary/tree.hpp unary/overload.hpp unary/detectable.hpp \
|
||
unary/time-tabling.hpp unary/not-first-not-last.hpp \
|
||
unary/edge-finding.hpp unary/subsumption.hpp \
|
||
unary/man-prop.hpp unary/opt-prop.hpp unary/post.hpp \
|
||
cumulative.hh cumulative/man-prop.hpp cumulative/opt-prop.hpp \
|
||
cumulative/task-view.hpp cumulative/overload.hpp \
|
||
cumulative/time-tabling.hpp cumulative/task.hpp \
|
||
cumulative/edge-finding.hpp cumulative/post.hpp \
|
||
cumulative/tree.hpp cumulative/limits.hpp \
|
||
cumulative/subsumption.hpp \
|
||
cumulatives.hh cumulatives/val.hpp \
|
||
circuit.hh circuit/base.hpp circuit/val.hpp circuit/dom.hpp \
|
||
no-overlap.hh no-overlap/dim.hpp no-overlap/box.hpp \
|
||
no-overlap/base.hpp no-overlap/man.hpp no-overlap/opt.hpp \
|
||
nvalues.hh nvalues/range-event.hpp \
|
||
nvalues/sym-bit-matrix.hpp nvalues/graph.hpp \
|
||
nvalues/bool-base.hpp nvalues/bool-eq.hpp \
|
||
nvalues/bool-lq.hpp nvalues/bool-gq.hpp \
|
||
nvalues/int-base.hpp nvalues/int-eq.hpp \
|
||
nvalues/int-lq.hpp nvalues/int-gq.hpp \
|
||
val-set.hh val-set.hpp \
|
||
member.hh member/prop.hpp member/re-prop.hpp \
|
||
branch/afc.hpp branch/action.hpp branch/chb.hpp \
|
||
ldsb.hh ldsb/brancher.hpp ldsb/sym-imp.hpp \
|
||
trace.hpp \
|
||
trace/bool-trace-view.hpp trace/int-trace-view.hpp \
|
||
trace/bool-delta.hpp trace/int-delta.hpp trace/traits.hpp
|
||
|
||
INTSRC = $(INTSRC0:%=gecode/int/%)
|
||
INTHDR = gecode/int.hh $(INTHDR0:%=gecode/int/%)
|
||
INTOBJ = $(INTSRC:%.cpp=%$(OBJSUFFIX))
|
||
|
||
ifeq "@enable_int_vars@" "yes"
|
||
export INTDLL = $(LIBPREFIX)@INT@$(DLLSUFFIX)
|
||
export INTSTATICLIB = $(LIBPREFIX)@INT@$(STATICLIBSUFFIX)
|
||
export INTLIB = $(LIBPREFIX)@INT@$(LIBSUFFIX)
|
||
export LINKINT = $(LINKPREFIX)@INT@$(LINKSUFFIX)
|
||
ifeq "@need_soname@" "yes"
|
||
export INTSONAME = \
|
||
@WLSONAME@$(LIBPREFIX)@INT@$(SOSUFFIX)
|
||
else
|
||
export INTSONAME =
|
||
endif
|
||
ifeq "@enable_resource@" "yes"
|
||
export INTRC = $(LIBPREFIX)@INT@$(RCSUFFIX)
|
||
export INTRES = $(LIBPREFIX)@INT@$(RESSUFFIX)
|
||
else
|
||
export INTRES =
|
||
export INTRC =
|
||
endif
|
||
else
|
||
export INTDLL =
|
||
export INTSTATICLIB =
|
||
export INTLIB =
|
||
export LINKINT =
|
||
export INTRES =
|
||
export INTRC =
|
||
endif
|
||
INTBUILDDIRS = \
|
||
int int/var int/var-imp int/view int/extensional \
|
||
int/channel int/arithmetic int/linear int/bool int/branch int/exec \
|
||
int/element int/sequence int/bin-packing \
|
||
int/unary int/cumulative int/cumulatives int/task \
|
||
int/ldsb int/distinct int/trace int/order
|
||
|
||
#
|
||
# FLOAT COMPONENTS
|
||
#
|
||
|
||
FLOATSRC0 = \
|
||
var/float.cpp var-imp/float.cpp \
|
||
arithmetic.cpp array.cpp branch.cpp rel.cpp linear.cpp \
|
||
linear/post.cpp bool.cpp channel.cpp \
|
||
transcendental.cpp trigonometric.cpp \
|
||
branch/action.cpp branch/chb.cpp rounding.cpp exec.cpp \
|
||
branch/val-sel-commit.cpp branch/view-sel.cpp dom.cpp \
|
||
relax.cpp \
|
||
trace.cpp trace/tracer.cpp \
|
||
exception.cpp
|
||
|
||
FLOATHDR0 = \
|
||
var-imp.hpp array.hpp array-traits.hpp limits.hpp exception.hpp \
|
||
view.hpp view/float.hpp view/minus.hpp view/offset.hpp \
|
||
view/scale.hpp view/print.hpp view/rel-test.hpp \
|
||
var-imp/float.hpp var-imp/delta.hpp \
|
||
var/float.hpp var/print.hpp linear.hh linear/nary.hpp \
|
||
arithmetic.hh arithmetic/sqr-sqrt.hpp arithmetic/pow-nroot.hpp \
|
||
arithmetic/mult.hpp arithmetic/div.hpp arithmetic/min-max.hpp \
|
||
arithmetic/abs.hpp \
|
||
channel.hh channel.hpp channel/channel.hpp \
|
||
transcendental.hh transcendental/exp-log.hpp trigonometric.hh \
|
||
trigonometric/sincos.hpp trigonometric/asinacos.hpp \
|
||
trigonometric/tanatan.hpp \
|
||
rel.hh rel/eq.hpp rel/lq-le.hpp rel/nq.hpp \
|
||
bool.hh bool/ite.hpp \
|
||
branch.hh branch/afc.hpp branch/action.hpp branch/chb.hpp \
|
||
branch/traits.hpp branch.hpp \
|
||
branch/var.hpp branch/val.hpp branch/assign.hpp \
|
||
branch/val-commit.hpp branch/val-sel.hpp branch/merit.hpp \
|
||
num.hpp val.hpp rounding.hpp nextafter.hpp \
|
||
trace.hpp trace/trace-view.hpp trace/delta.hpp trace/traits.hpp
|
||
|
||
FLOATSRC = $(FLOATSRC0:%=gecode/float/%)
|
||
FLOATHDR = gecode/float.hh $(FLOATHDR0:%=gecode/float/%)
|
||
FLOATOBJ = $(FLOATSRC:%.cpp=%$(OBJSUFFIX))
|
||
|
||
ifeq "@enable_float_vars@" "yes"
|
||
export FLOATDLL = $(LIBPREFIX)@FLOAT@$(DLLSUFFIX)
|
||
export FLOATSTATICLIB = $(LIBPREFIX)@FLOAT@$(STATICLIBSUFFIX)
|
||
export FLOATLIB = $(LIBPREFIX)@FLOAT@$(LIBSUFFIX)
|
||
export LINKFLOAT = $(LINKPREFIX)@FLOAT@$(LINKSUFFIX)
|
||
ifeq "@need_soname@" "yes"
|
||
export FLOATSONAME = \
|
||
@WLSONAME@$(LIBPREFIX)@FLOAT@$(SOSUFFIX)
|
||
else
|
||
export FLOATSONAME =
|
||
endif
|
||
ifeq "@enable_resource@" "yes"
|
||
export FLOATRC = $(LIBPREFIX)@FLOAT@$(RCSUFFIX)
|
||
export FLOATRES = $(LIBPREFIX)@FLOAT@$(RESSUFFIX)
|
||
else
|
||
export FLOATRES =
|
||
export FLOATRC =
|
||
endif
|
||
else
|
||
export FLOATDLL =
|
||
export FLOATSTATICLIB =
|
||
export FLOATLIB =
|
||
export LINKFLOAT =
|
||
export FLOATRES =
|
||
export FLOATRC =
|
||
endif
|
||
FLOATBUILDDIRS = \
|
||
float float/var float/var-imp float/view \
|
||
float/linear float/branch float/rel float/branch \
|
||
float/arithmetic float/transcendental float/trigonometric \
|
||
float/trace float/channel
|
||
|
||
#
|
||
# SET COMPONENTS
|
||
#
|
||
|
||
SETSRC0 = \
|
||
branch.cpp cardinality.cpp convex.cpp convex/conv.cpp convex/hull.cpp \
|
||
dom.cpp rel.cpp \
|
||
rel-op.cpp rel-op-ternary.cpp rel-op-singleton.cpp \
|
||
rel-op/post-compl.cpp rel-op/post-nocompl.cpp \
|
||
rel-op/post-compl-cvv.cpp rel-op/post-nocompl-cvv.cpp \
|
||
rel-op/post-compl-vvc.cpp rel-op/post-nocompl-vvc.cpp \
|
||
rel-op/post-compl-cvc.cpp rel-op/post-nocompl-cvc.cpp \
|
||
rel-op-const-vvc.cpp rel-op-const-vcv.cpp rel-op-const-vcc.cpp \
|
||
rel-op-const-cvc.cpp rel-op-const-cvv.cpp \
|
||
int.cpp channel.cpp bool.cpp \
|
||
element.cpp sequence.cpp \
|
||
distinct.cpp distinct/atmostOne.cpp \
|
||
precede.cpp \
|
||
sequence/seq.cpp sequence/seq-u.cpp array.cpp var-imp/set.cpp \
|
||
var-imp/integerset.cpp var/set.cpp \
|
||
exec.cpp branch/action.cpp branch/chb.cpp branch/view-sel.cpp \
|
||
branch/val-sel-commit.cpp branch/ngl.cpp \
|
||
ldsb.cpp ldsb/sym-imp.cpp \
|
||
relax.cpp \
|
||
trace.cpp trace/tracer.cpp \
|
||
exception.cpp
|
||
SETHDR0 = \
|
||
limits.hpp \
|
||
view.hpp exception.hpp int.hh int.hpp element.hh var-imp.hpp \
|
||
int/card.hpp \
|
||
int/minmax.hpp int/weights.hpp \
|
||
channel/sorted.hpp channel/int.hpp channel/bool.hpp channel/set.hpp \
|
||
element/inter.hpp element/union.hpp \
|
||
element/unionConst.hpp \
|
||
element/disjoint.hpp array.hpp array-traits.hpp \
|
||
var-imp/set.hpp var-imp/integerset.hpp \
|
||
var-imp/delta.hpp var-imp/iter.hpp \
|
||
var/set.hpp var/print.hpp \
|
||
view/complement.hpp view/const.hpp view/set.hpp view/singleton.hpp \
|
||
view/cached.hpp view/print.hpp \
|
||
rel/subset.hpp rel/re-subset.hpp rel/eq.hpp rel/nq.hpp rel/re-eq.hpp \
|
||
rel/lq.hpp rel/re-lq.hpp \
|
||
rel/common.hpp rel/nosubset.hpp sequence.hh \
|
||
rel-op/union.hpp rel-op/partition.hpp rel-op/subofunion.hpp \
|
||
rel-op/inter.hpp rel-op/superofinter.hpp \
|
||
rel-op/post.hpp rel-op/common.hpp rel.hh \
|
||
distinct.hh distinct/atmostOne.hpp \
|
||
sequence/seq.hpp sequence/seq-u.hpp \
|
||
sequence/common.hpp convex/conv.hpp convex/hull.hpp convex.hh \
|
||
precede.hh precede/single.hpp \
|
||
rel-op.hh \
|
||
branch.hh branch/afc.hpp branch/action.hpp branch/chb.hpp \
|
||
branch/traits.hpp branch.hpp \
|
||
branch/var.hpp branch/val.hpp branch/assign.hpp \
|
||
branch/merit.hpp branch/val-commit.hpp branch/val-sel.hpp \
|
||
branch/ngl.hpp \
|
||
ldsb.hh ldsb/brancher.hpp channel.hh \
|
||
trace.hpp trace/trace-view.hpp trace/delta.hpp trace/traits.hpp
|
||
|
||
|
||
SETSRC = $(SETSRC0:%=gecode/set/%)
|
||
SETHDR = gecode/set.hh $(SETHDR0:%=gecode/set/%)
|
||
SETOBJ = $(SETSRC:%.cpp=%$(OBJSUFFIX))
|
||
|
||
ifeq "@enable_set_vars@" "yes"
|
||
export SETDLL = $(LIBPREFIX)@SET@$(DLLSUFFIX)
|
||
export SETSTATICLIB = $(LIBPREFIX)@SET@$(STATICLIBSUFFIX)
|
||
export SETLIB = $(LIBPREFIX)@SET@$(LIBSUFFIX)
|
||
export LINKSET = $(LINKPREFIX)@SET@$(LINKSUFFIX)
|
||
ifeq "@need_soname@" "yes"
|
||
export SETSONAME = \
|
||
@WLSONAME@$(LIBPREFIX)@SET@$(SOSUFFIX)
|
||
else
|
||
export SETSONAME =
|
||
endif
|
||
ifeq "@enable_resource@" "yes"
|
||
export SETRC = $(LIBPREFIX)@SET@$(RCSUFFIX)
|
||
export SETRES = $(LIBPREFIX)@SET@$(RESSUFFIX)
|
||
else
|
||
export SETRES =
|
||
export SETRC =
|
||
endif
|
||
else
|
||
export SETDLL =
|
||
export SETSTATICLIB =
|
||
export SETLIB =
|
||
export LINKSET =
|
||
export SETRES =
|
||
export SETRC =
|
||
endif
|
||
SETBUILDDIRS = \
|
||
set set/convex set/distinct set/int set/rel set/rel-op \
|
||
set/element set/sequence set/var set/var-imp set/view \
|
||
set/branch set/channel set/ldsb set/trace
|
||
|
||
|
||
#
|
||
# MINIMODEL COMPONENTS
|
||
#
|
||
|
||
MMSRC0 = \
|
||
int-expr.cpp int-rel.cpp int-arith.cpp bool-expr.cpp \
|
||
set-expr.cpp set-rel.cpp dom.cpp \
|
||
float-expr.cpp float-rel.cpp float-arith.cpp \
|
||
reg.cpp optimize.cpp exception.cpp ipl.cpp
|
||
MMHDR0 = \
|
||
int-expr.hpp int-rel.hpp float-expr.hpp float-rel.hpp \
|
||
bool-expr.hpp set-expr.hpp set-rel.hpp \
|
||
exception.hpp matrix.hpp \
|
||
optimize.hpp reg.hpp ldsb.hpp channel.hpp aliases.hpp \
|
||
ipl.hpp
|
||
|
||
MMSRC = $(MMSRC0:%=gecode/minimodel/%)
|
||
MMHDR = gecode/minimodel.hh $(MMHDR0:%=gecode/minimodel/%)
|
||
MMOBJ = $(MMSRC:%.cpp=%$(OBJSUFFIX))
|
||
MMSBJ = $(MMSRC:%.cpp=%$(SBJSUFFIX))
|
||
|
||
ifeq "@enable_minimodel@" "yes"
|
||
export MMDLL = $(LIBPREFIX)@MM@$(DLLSUFFIX)
|
||
export MMSTATICLIB = $(LIBPREFIX)@MM@$(STATICLIBSUFFIX)
|
||
export MMLIB = $(LIBPREFIX)@MM@$(LIBSUFFIX)
|
||
export LINKMM = $(LINKPREFIX)@MM@$(LINKSUFFIX)
|
||
ifeq "@need_soname@" "yes"
|
||
export MMSONAME = \
|
||
@WLSONAME@$(LIBPREFIX)@MM@$(SOSUFFIX)
|
||
else
|
||
export MMSONAME =
|
||
endif
|
||
ifeq "@enable_resource@" "yes"
|
||
export MMRC = $(LIBPREFIX)@MM@$(RCSUFFIX)
|
||
export MMRES = $(LIBPREFIX)@MM@$(RESSUFFIX)
|
||
else
|
||
export MMRES =
|
||
export MMRC =
|
||
endif
|
||
else
|
||
export MMDLL =
|
||
export MMSTATICLIB =
|
||
export MMLIB =
|
||
export LINKMM =
|
||
export MMRES =
|
||
export MMRC =
|
||
endif
|
||
MMBUILDDIRS = minimodel
|
||
|
||
#
|
||
# DRIVER COMPONENTS
|
||
#
|
||
|
||
DRIVERSRC0 = options.cpp script.cpp
|
||
DRIVERHDR0 = options.hpp script.hpp
|
||
|
||
DRIVERSRC = $(DRIVERSRC0:%=gecode/driver/%)
|
||
DRIVERHDR = gecode/driver.hh $(DRIVERHDR0:%=gecode/driver/%)
|
||
DRIVEROBJ = $(DRIVERSRC:%.cpp=%$(OBJSUFFIX))
|
||
DRIVERSBJ = $(DRIVERSRC:%.cpp=%$(SBJSUFFIX))
|
||
|
||
ifeq "@enable_driver@" "yes"
|
||
export DRIVERDLL = $(LIBPREFIX)@DRIVER@$(DLLSUFFIX)
|
||
export DRIVERSTATICLIB = $(LIBPREFIX)@DRIVER@$(STATICLIBSUFFIX)
|
||
export DRIVERLIB = $(LIBPREFIX)@DRIVER@$(LIBSUFFIX)
|
||
export LINKDRIVER = $(LINKPREFIX)@DRIVER@$(LINKSUFFIX)
|
||
ifeq "@need_soname@" "yes"
|
||
export DRIVERSONAME = \
|
||
@WLSONAME@$(LIBPREFIX)@DRIVER@$(SOSUFFIX)
|
||
else
|
||
export DRIVERSONAME =
|
||
endif
|
||
ifeq "@enable_resource@" "yes"
|
||
export DRIVERRC = $(LIBPREFIX)@DRIVER@$(RCSUFFIX)
|
||
export DRIVERRES = $(LIBPREFIX)@DRIVER@$(RESSUFFIX)
|
||
else
|
||
export DRIVERRES =
|
||
export DRIVERRC =
|
||
endif
|
||
else
|
||
export DRIVERDLL =
|
||
export DRIVERSTATICLIB =
|
||
export DRIVERLIB =
|
||
export LINKDRIVER =
|
||
export DRIVERRES =
|
||
export DRIVERRC =
|
||
endif
|
||
DRIVERBUILDDIRS = driver
|
||
|
||
#
|
||
# ITERATOR HEADERS
|
||
#
|
||
ITERHDR0 = \
|
||
ranges-add ranges-append ranges-array ranges-cache \
|
||
ranges-compl ranges-diff ranges-empty \
|
||
ranges-inter ranges-minmax ranges-minus \
|
||
ranges-offset ranges-operations ranges-rangelist \
|
||
ranges-scale ranges-singleton ranges-singleton-append \
|
||
ranges-size ranges-union ranges-values \
|
||
ranges-negative ranges-positive ranges-map \
|
||
ranges-list \
|
||
values-array values-minus values-offset values-ranges \
|
||
values-positive values-negative \
|
||
values-singleton values-unique values-inter \
|
||
values-union values-map values-bitset values-list \
|
||
values-bitsetoffset
|
||
ITERHDR = gecode/iter.hh \
|
||
$(ITERHDR0:%=gecode/iter/%.hpp)
|
||
|
||
|
||
#
|
||
# GIST
|
||
#
|
||
|
||
GISTHDR0 = \
|
||
drawingcursor.hh drawingcursor.hpp \
|
||
gist.hpp gecodelogo.hh node.hh node.hpp \
|
||
nodecursor.hh nodecursor.hpp nodevisitor.hh \
|
||
nodevisitor.hpp layoutcursor.hh layoutcursor.hpp \
|
||
spacenode.hh spacenode.hpp qtgist.hh \
|
||
textoutput.hh treecanvas.hh zoomToFitIcon.hpp \
|
||
visualnode.hh visualnode.hpp nodestats.hh \
|
||
nodewidget.hh mainwindow.hh preferences.hh \
|
||
stopbrancher.hh
|
||
|
||
GISTSRC0 = \
|
||
drawingcursor.cpp gist.cpp gecodelogo.cpp node.cpp \
|
||
spacenode.cpp \
|
||
textoutput.cpp treecanvas.cpp qtgist.cpp visualnode.cpp nodestats.cpp \
|
||
nodewidget.cpp mainwindow.cpp preferences.cpp stopbrancher.cpp
|
||
|
||
GISTMOCSRC0 = \
|
||
moc_treecanvas.cpp moc_qtgist.cpp moc_mainwindow.cpp moc_textoutput.cpp\
|
||
moc_preferences.cpp moc_nodestats.cpp
|
||
|
||
GISTSRC = $(GISTSRC0:%=gecode/gist/%)
|
||
GISTMOCSRC = $(GISTMOCSRC0:%=gecode/gist/%)
|
||
GISTHDR = $(GISTHDR0:%=gecode/gist/%) gecode/gist.hh
|
||
|
||
GISTOBJ = $(GISTSRC:%.cpp=%$(OBJSUFFIX)) $(GISTMOCSRC:%.cpp=%$(OBJSUFFIX))
|
||
GISTSBJ = $(GISTSRC:%.cpp=%$(SBJSUFFIX)) $(GISTMOCSRC:%.cpp=%$(SBJSUFFIX))
|
||
|
||
GISTBUILDDIRS = gist
|
||
|
||
ifeq "@enable_gist@" "yes"
|
||
export GISTDLL = $(LIBPREFIX)@GIST@$(DLLSUFFIX)
|
||
export GISTSTATICLIB = $(LIBPREFIX)@GIST@$(STATICLIBSUFFIX)
|
||
export GISTLIB = $(LIBPREFIX)@GIST@$(LIBSUFFIX)
|
||
export LINKGIST = $(LINKPREFIX)@GIST@$(LINKSUFFIX)
|
||
ifeq "@need_soname@" "yes"
|
||
export GISTSONAME = \
|
||
@WLSONAME@$(LIBPREFIX)@GIST@$(SOSUFFIX)
|
||
else
|
||
export GISTSONAME =
|
||
endif
|
||
ifeq "@enable_resource@" "yes"
|
||
export GISTRC = $(LIBPREFIX)@GIST@$(RCSUFFIX)
|
||
export GISTRES = $(LIBPREFIX)@GIST@$(RESSUFFIX)
|
||
else
|
||
export GISTRES =
|
||
export GISTRC =
|
||
endif
|
||
else
|
||
export GISTDLL =
|
||
export GISTSTATICLIB =
|
||
export GISTLIB =
|
||
export LINKGIST =
|
||
export GISTSONAME =
|
||
export GISTRES =
|
||
export GISTRC =
|
||
endif
|
||
|
||
#
|
||
# FLATZINC
|
||
#
|
||
|
||
FLATZINCSRC0 = flatzinc.cpp registry.cpp branch.cpp lastval.cpp complete.cpp
|
||
FLATZINC_GENSRC0 = parser.tab.cpp lexer.yy.cpp
|
||
FLATZINCHDR0 = ast.hh conexpr.hh option.hh parser.hh \
|
||
plugin.hh registry.hh symboltable.hh varspec.hh \
|
||
branch.hh branch.hpp lastval.hh complete.hh
|
||
|
||
FLATZINCSRC = $(FLATZINCSRC0:%=gecode/flatzinc/%)
|
||
FLATZINC_GENSRC = $(FLATZINC_GENSRC0:%=gecode/flatzinc/%)
|
||
FLATZINCHDR = $(FLATZINCHDR0:%=gecode/flatzinc/%) gecode/flatzinc.hh
|
||
|
||
FLATZINCOBJ = \
|
||
$(FLATZINCSRC:%.cpp=%$(OBJSUFFIX)) \
|
||
$(FLATZINC_GENSRC:%.cpp=%$(OBJSUFFIX))
|
||
|
||
FLATZINCEXESRC0 = fzn-gecode.cpp
|
||
FLATZINCEXESRC = $(FLATZINCEXESRC0:%=tools/flatzinc/%)
|
||
FLATZINCEXEOBJ = $(FLATZINCEXESRC:%.cpp=%$(OBJSUFFIX))
|
||
|
||
FLATZINCALLSRC = $(FLATZINCSRC) $(FLATZINCEXESRC)
|
||
|
||
FLATZINCBUILDDIRS = gecode/flatzinc tools/flatzinc
|
||
|
||
ifeq "@enable_flatzinc@" "yes"
|
||
export FLATZINCDLL = $(LIBPREFIX)@FLATZINC@$(DLLSUFFIX)
|
||
export FLATZINCSTATICLIB = $(LIBPREFIX)@FLATZINC@$(STATICLIBSUFFIX)
|
||
export FLATZINCLIB = $(LIBPREFIX)@FLATZINC@$(LIBSUFFIX)
|
||
export LINKFLATZINC = $(LINKPREFIX)@FLATZINC@$(LINKSUFFIX)
|
||
export FLATZINCMZNLIB = gecode/flatzinc/mznlib
|
||
export FLATZINCCONFIG = tools/flatzinc/gecode.msc
|
||
FLATZINCEXE = tools/flatzinc/fzn-gecode$(EXESUFFIX)
|
||
ifeq "@need_soname@" "yes"
|
||
export FLATZINCSONAME = @WLSONAME@$(LIBPREFIX)@FLATZINC@$(SOSUFFIX)
|
||
else
|
||
export FLATZINCSONAME =
|
||
endif
|
||
ifeq "@enable_resource@" "yes"
|
||
export FLATZINCRC = $(LIBPREFIX)@FLATZINC@$(RCSUFFIX)
|
||
export FLATZINCRES = $(LIBPREFIX)@FLATZINC@$(RESSUFFIX)
|
||
else
|
||
export FLATZINCRES =
|
||
export FLATZINCRC =
|
||
endif
|
||
else
|
||
export FLATZINCDLL =
|
||
export FLATZINCSTATICLIB =
|
||
export FLATZINCLIB =
|
||
export LINKFLATZINC =
|
||
export FLATZINCSONAME =
|
||
export FLATZINCMZNLIB =
|
||
export FLATZINCRES =
|
||
export FLATZINCRC =
|
||
FLATZINCEXE =
|
||
endif
|
||
|
||
#
|
||
# EXAMPLES
|
||
#
|
||
|
||
|
||
INTEXAMPLEHDR0 = \
|
||
scowl job-shop-instances
|
||
INTEXAMPLESRC0 = \
|
||
alpha bacp bibd donald efpa eq20 golomb-ruler \
|
||
graph-color grocery ind-set magic-sequence magic-square \
|
||
money ortho-latin partition photo queens sudoku sudoku-advanced kakuro \
|
||
nonogram pentominoes crowded-chess black-hole \
|
||
minesweeper domino steel-mill sports-league \
|
||
all-interval langford-number warehouses radiotherapy \
|
||
word-square crossword open-shop car-sequencing sat \
|
||
bin-packing knights tsp perfect-square schurs-lemma \
|
||
dominating-queens colored-matrix multi-bin-packing \
|
||
qcp job-shop
|
||
|
||
|
||
INTEXAMPLEHDR = $(INTEXAMPLEHDR0:%=examples/%.hpp)
|
||
INTEXAMPLESRC = $(INTEXAMPLESRC0:%=examples/%.cpp)
|
||
ifeq "@enable_int_vars@" "yes"
|
||
INTEXAMPLEEXE = $(INTEXAMPLESRC:%.cpp=%$(EXESUFFIX))
|
||
else
|
||
INTEXAMPLEEXE =
|
||
endif
|
||
|
||
MPFRFLOATEXAMPLESRC0 = \
|
||
archimedean-spiral golden-spiral
|
||
MPFRFLOATEXAMPLESRC = $(MPFRFLOATEXAMPLESRC0:%=examples/%.cpp)
|
||
ifeq "@enable_float_vars@" "yes"
|
||
ifeq "@enable_mpfr@" "yes"
|
||
MPFRFLOATEXAMPLEEXE = $(MPFRFLOATEXAMPLESRC:%.cpp=%$(EXESUFFIX))
|
||
else
|
||
MPFRFLOATEXAMPLEEXE =
|
||
endif
|
||
endif
|
||
|
||
FLOATEXAMPLESRC0 = \
|
||
cartesian-heart descartes-folium
|
||
FLOATEXAMPLESRC = $(FLOATEXAMPLESRC0:%=examples/%.cpp)
|
||
ifeq "@enable_float_vars@" "yes"
|
||
FLOATEXAMPLEEXE = $(FLOATEXAMPLESRC:%.cpp=%$(EXESUFFIX))
|
||
else
|
||
FLOATEXAMPLEEXE =
|
||
endif
|
||
|
||
SETEXAMPLESRC0 = \
|
||
crew golf hamming steiner queen-armies
|
||
SETEXAMPLESRC = $(SETEXAMPLESRC0:%=examples/%.cpp)
|
||
ifeq "@enable_set_vars@" "yes"
|
||
SETEXAMPLEEXE = $(SETEXAMPLESRC:%.cpp=%$(EXESUFFIX))
|
||
else
|
||
SETEXAMPLEEXE =
|
||
endif
|
||
|
||
EXAMPLEBUILDDIRS = examples
|
||
|
||
EXAMPLEEXE = \
|
||
$(INTEXAMPLEEXE) $(SETEXAMPLEEXE) $(FLOATEXAMPLEEXE) $(MPFRFLOATEXAMPLEEXE)
|
||
|
||
|
||
#
|
||
# THIRD PARTY SOFTWARE
|
||
#
|
||
|
||
BOOSTHDR = \
|
||
config/compiler/borland.hpp config/compiler/clang.hpp \
|
||
config/compiler/codegear.hpp config/compiler/comeau.hpp \
|
||
config/compiler/common_edg.hpp config/compiler/compaq_cxx.hpp \
|
||
config/compiler/digitalmars.hpp config/compiler/gcc.hpp \
|
||
config/compiler/gcc_xml.hpp config/compiler/greenhills.hpp \
|
||
config/compiler/hp_acc.hpp config/compiler/intel.hpp \
|
||
config/compiler/kai.hpp config/compiler/metrowerks.hpp \
|
||
config/compiler/mpw.hpp config/compiler/nvcc.hpp \
|
||
config/compiler/pathscale.hpp config/compiler/pgi.hpp \
|
||
config/compiler/sgi_mipspro.hpp config/compiler/sunpro_cc.hpp \
|
||
config/compiler/vacpp.hpp config/compiler/visualc.hpp \
|
||
config/no_tr1/cmath.hpp config/no_tr1/utility.hpp \
|
||
config/platform/aix.hpp config/platform/amigaos.hpp \
|
||
config/platform/beos.hpp config/platform/bsd.hpp \
|
||
config/platform/cygwin.hpp config/platform/hpux.hpp \
|
||
config/platform/irix.hpp config/platform/linux.hpp \
|
||
config/platform/macos.hpp config/platform/qnxnto.hpp \
|
||
config/platform/solaris.hpp config/platform/symbian.hpp \
|
||
config/platform/vms.hpp config/platform/vxworks.hpp \
|
||
config/platform/win32.hpp config/posix_features.hpp \
|
||
config/select_compiler_config.hpp \
|
||
config/select_platform_config.hpp \
|
||
config/select_stdlib_config.hpp \
|
||
config/stdlib/dinkumware.hpp config/stdlib/libcomo.hpp \
|
||
config/stdlib/libcpp.hpp config/stdlib/libstdcpp3.hpp \
|
||
config/stdlib/modena.hpp config/stdlib/msl.hpp \
|
||
config/stdlib/roguewave.hpp config/stdlib/sgi.hpp \
|
||
config/stdlib/stlport.hpp config/stdlib/vacpp.hpp \
|
||
config/suffix.hpp config/user.hpp config.hpp \
|
||
detail/endian.hpp detail/limits.hpp \
|
||
numeric/interval/arith.hpp \
|
||
numeric/interval/arith2.hpp \
|
||
numeric/interval/arith3.hpp \
|
||
numeric/interval/checking.hpp \
|
||
numeric/interval/compare/certain.hpp \
|
||
numeric/interval/compare/explicit.hpp \
|
||
numeric/interval/compare/lexicographic.hpp \
|
||
numeric/interval/compare/possible.hpp \
|
||
numeric/interval/compare/set.hpp \
|
||
numeric/interval/compare.hpp \
|
||
numeric/interval/constants.hpp \
|
||
numeric/interval/detail/alpha_rounding_control.hpp \
|
||
numeric/interval/detail/bcc_rounding_control.hpp \
|
||
numeric/interval/detail/bugs.hpp \
|
||
numeric/interval/detail/c99sub_rounding_control.hpp \
|
||
numeric/interval/detail/c99_rounding_control.hpp \
|
||
numeric/interval/detail/division.hpp \
|
||
numeric/interval/detail/ia64_rounding_control.hpp \
|
||
numeric/interval/detail/interval_prototype.hpp \
|
||
numeric/interval/detail/msvc_rounding_control.hpp \
|
||
numeric/interval/detail/ppc_rounding_control.hpp \
|
||
numeric/interval/detail/sparc_rounding_control.hpp \
|
||
numeric/interval/detail/test_input.hpp \
|
||
numeric/interval/detail/x86gcc_rounding_control.hpp \
|
||
numeric/interval/detail/x86_rounding_control.hpp \
|
||
numeric/interval/hw_rounding.hpp \
|
||
numeric/interval/interval.hpp \
|
||
numeric/interval/policies.hpp \
|
||
numeric/interval/rounded_arith.hpp \
|
||
numeric/interval/rounded_transc.hpp \
|
||
numeric/interval/rounding.hpp \
|
||
numeric/interval/transc.hpp \
|
||
numeric/interval/utility.hpp \
|
||
numeric/interval.hpp \
|
||
LICENSE_1_0.txt \
|
||
limits.hpp non_type.hpp type.hpp
|
||
THIRDHDR = \
|
||
$(BOOSTHDR:%=gecode/third-party/boost/%)
|
||
|
||
#
|
||
# COLLECTING ALL
|
||
#
|
||
|
||
ALLSRC = \
|
||
$(SUPPORTSRC) $(KERNELSRC) $(SEARCHSRC) \
|
||
$(INTSRC) $(FLOATSRC) $(SETSRC) $(MMSRC) $(DRIVERSRC) \
|
||
$(INTEXAMPLESRC) $(SETEXAMPLESRC) $(FLOATEXAMPLESRC) $(MPFRFLOATEXAMPLESRC) \
|
||
$(GISTSRC) $(FLATZINCALLSRC)
|
||
ALLGECODEHDR = \
|
||
$(SUPPORTHDR) $(KERNELHDR) $(SEARCHHDR) \
|
||
$(INTHDR) $(FLOATHDR) $(SETHDR) $(MMHDR) \
|
||
$(DRIVERHDR) $(ITERHDR) $(GISTHDR) $(FLATZINCHDR) \
|
||
$(INTEXAMPLEHDR)
|
||
ALLHDR = \
|
||
$(ALLGECODEHDR) $(THIRDHDR)
|
||
ALLOBJ0 = $(ALLSRC:%.cpp=%$(OBJSUFFIX)) \
|
||
$(GISTMOCSRC:%.cpp=%$(OBJSUFFIX)) \
|
||
$(FLATZINC_GENSRC:%.cpp=%$(OBJSUFFIX))
|
||
ALLOBJ = $(ALLOBJ0:%.c=%$(OBJSUFFIX))
|
||
|
||
ALLSBJ0 = $(ALLSRC:%.cpp=%$(SBJSUFFIX))
|
||
ALLSBJ = $(ALLSBJ0:%.c=%$(SBJSUFFIX))
|
||
|
||
ifeq "@BUILDDLL@" "yes"
|
||
DLLTARGETS= \
|
||
$(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) $(INTDLL) $(FLOATDLL) $(SETDLL) \
|
||
$(MMDLL) $(DRIVERDLL) $(GISTDLL) $(FLATZINCDLL)
|
||
export ALLLIB = \
|
||
$(SUPPORTLIB) $(KERNELLIB) $(SEARCHLIB) $(INTLIB) $(FLOATLIB) $(SETLIB) \
|
||
$(MMLIB) $(DRIVERLIB) $(GISTLIB) $(FLATZINCLIB)
|
||
else
|
||
DLLTARGETS=
|
||
ifeq "@BUILD_MACOS_FRAMEWORK@" "yes"
|
||
export ALLLIB = gecode.framework/Versions/@GECODE_SOVERSION@/gecode
|
||
else
|
||
export ALLLIB = \
|
||
$(SUPPORTSTATICLIB) $(KERNELSTATICLIB) $(SEARCHSTATICLIB) \
|
||
$(INTSTATICLIB) $(FLOATSTATICLIB) $(SETSTATICLIB) $(MMSTATICLIB) \
|
||
$(DRIVERSTATICLIB) $(GISTSTATICLIB) $(FLATZINCSTATICLIB)
|
||
endif
|
||
endif
|
||
|
||
ifeq "@BUILDSTATIC@" "yes"
|
||
STATICTARGETS = \
|
||
$(SUPPORTSTATICLIB) $(KERNELSTATICLIB) $(SEARCHSTATICLIB) \
|
||
$(INTSTATICLIB) $(FLOATSTATICLIB) $(SETSTATICLIB) $(MMSTATICLIB) \
|
||
$(DRIVERSTATICLIB) $(GISTSTATICLIB) $(FLATZINCSTATICLIB)
|
||
else
|
||
STATICTARGETS=
|
||
endif
|
||
|
||
export LIBTARGETS = $(DLLTARGETS) $(STATICTARGETS)
|
||
|
||
ifeq "@need_soname@" "yes"
|
||
export LIBLINKTARGETS = \
|
||
$(DLLTARGETS:%$(DLLSUFFIX)=%$(SOSUFFIX)) \
|
||
$(DLLTARGETS:%$(DLLSUFFIX)=%$(SOLINKSUFFIX))
|
||
else
|
||
export LIBLINKTARGETS =
|
||
endif
|
||
|
||
PDBS = $(ALLLIB:%$(LIBSUFFIX)=%$(PDBSUFFIX))
|
||
|
||
ifeq "@INSTALLLIBS@" "yes"
|
||
LIBLIBTARGETS = $(ALLLIB)
|
||
PDBTARGETS = $(PDBS)
|
||
else
|
||
LIBLIBTARGETS =
|
||
PDBTARGETS =
|
||
endif
|
||
|
||
EXETARGETS = $(FLATZINCEXE) tools/flatzinc/mzn-gecode@BATCHFILE@
|
||
|
||
#
|
||
# Testing
|
||
#
|
||
|
||
INTTESTSRC00 = \
|
||
channel arithmetic basic bool count dom distinct element extensional \
|
||
rel linear gcc sorted unshare exec sequence \
|
||
mm-arithmetic mm-bool mm-lin mm-count mm-rel \
|
||
bin-packing order unary cumulative cumulatives circuit \
|
||
no-overlap precede nvalues member
|
||
INTTESTSRC0 = test/int.cpp $(INTTESTSRC00:%=test/int/%.cpp)
|
||
INTTESTOBJ = $(INTTESTSRC0:%.cpp=%$(OBJSUFFIX))
|
||
|
||
FLOATTESTSRC00 = \
|
||
basic arithmetic transcendental trigonometric linear rel channel \
|
||
mm-lin dom
|
||
FLOATTESTSRC0 = test/float.cpp $(FLOATTESTSRC00:%=test/float/%.cpp)
|
||
|
||
ifeq "@enable_float_vars@" "yes"
|
||
FLOATTESTOBJ = $(FLOATTESTSRC0:%.cpp=%$(OBJSUFFIX))
|
||
else
|
||
FLOATTESTOBJ=
|
||
endif
|
||
|
||
SETTESTSRC00 = \
|
||
construct dom rel rel-op rel-op-const convex sequence int element \
|
||
precede distinct exec mm-set channel
|
||
SETTESTSRC0 = test/set.cpp $(SETTESTSRC00:%=test/set/%.cpp)
|
||
|
||
ifeq "@enable_set_vars@" "yes"
|
||
SETTESTOBJ = $(SETTESTSRC0:%.cpp=%$(OBJSUFFIX))
|
||
else
|
||
SETTESTOBJ=
|
||
endif
|
||
|
||
FLATZINCTESTSRC0 = \
|
||
test/flatzinc.cpp \
|
||
test/flatzinc/bool_clause.cpp \
|
||
test/flatzinc/bug232.cpp \
|
||
test/flatzinc/bug319.cpp \
|
||
test/flatzinc/bugfix_r6746.cpp \
|
||
test/flatzinc/bugfix_r7854.cpp \
|
||
test/flatzinc/empty_domain_1.cpp \
|
||
test/flatzinc/empty_domain_2.cpp \
|
||
test/flatzinc/int_set_as_type1.cpp \
|
||
test/flatzinc/int_set_as_type2.cpp \
|
||
test/flatzinc/jobshop.cpp \
|
||
test/flatzinc/no_warn_empty_domain.cpp \
|
||
test/flatzinc/output_test.cpp \
|
||
test/flatzinc/queens4.cpp \
|
||
test/flatzinc/sat_arith1.cpp \
|
||
test/flatzinc/sat_array_bool_and.cpp \
|
||
test/flatzinc/sat_array_bool_or.cpp \
|
||
test/flatzinc/sat_cmp_reif.cpp \
|
||
test/flatzinc/sat_eq_reif.cpp \
|
||
test/flatzinc/test_approx_bnb.cpp \
|
||
test/flatzinc/test_array_just_right.cpp \
|
||
test/flatzinc/test_assigned_var_bounds_bad.cpp \
|
||
test/flatzinc/test_flatzinc_output_anns.cpp \
|
||
test/flatzinc/test_fzn_arith.cpp \
|
||
test/flatzinc/test_fzn_arrays.cpp \
|
||
test/flatzinc/test_fzn_coercions.cpp \
|
||
test/flatzinc/test_fzn_comparison.cpp \
|
||
test/flatzinc/test_fzn_logic.cpp \
|
||
test/flatzinc/test_fzn_sets.cpp \
|
||
test/flatzinc/test_int_div.cpp \
|
||
test/flatzinc/test_int_mod.cpp \
|
||
test/flatzinc/test_int_ranges_as_values.cpp \
|
||
test/flatzinc/test_seq_search.cpp \
|
||
test/flatzinc/2dpacking.cpp \
|
||
test/flatzinc/alpha.cpp \
|
||
test/flatzinc/battleships1.cpp \
|
||
test/flatzinc/battleships10.cpp \
|
||
test/flatzinc/battleships2.cpp \
|
||
test/flatzinc/battleships3.cpp \
|
||
test/flatzinc/battleships4.cpp \
|
||
test/flatzinc/battleships5.cpp \
|
||
test/flatzinc/battleships7.cpp \
|
||
test/flatzinc/battleships9.cpp \
|
||
test/flatzinc/blocksworld_instance_1.cpp \
|
||
test/flatzinc/blocksworld_instance_2.cpp \
|
||
test/flatzinc/cumulatives.cpp \
|
||
test/flatzinc/cutstock.cpp \
|
||
test/flatzinc/eq20.cpp \
|
||
test/flatzinc/factory_planning_instance.cpp \
|
||
test/flatzinc/golomb.cpp \
|
||
test/flatzinc/jobshop2x2.cpp \
|
||
test/flatzinc/knights.cpp \
|
||
test/flatzinc/langford2.cpp \
|
||
test/flatzinc/latin_squares_fd.cpp \
|
||
test/flatzinc/multidim_knapsack_simple.cpp \
|
||
test/flatzinc/packing.cpp \
|
||
test/flatzinc/perfsq.cpp \
|
||
test/flatzinc/perfsq2.cpp \
|
||
test/flatzinc/photo.cpp \
|
||
test/flatzinc/product_fd.cpp \
|
||
test/flatzinc/product_lp.cpp \
|
||
test/flatzinc/quasigroup_qg5.cpp \
|
||
test/flatzinc/queen_cp2.cpp \
|
||
test/flatzinc/queen_ip.cpp \
|
||
test/flatzinc/radiation.cpp \
|
||
test/flatzinc/shared_array_element.cpp \
|
||
test/flatzinc/simple_sat.cpp \
|
||
test/flatzinc/singHoist2.cpp \
|
||
test/flatzinc/sudoku.cpp \
|
||
test/flatzinc/template_design.cpp \
|
||
test/flatzinc/tenpenki_1.cpp \
|
||
test/flatzinc/tenpenki_2.cpp \
|
||
test/flatzinc/tenpenki_3.cpp \
|
||
test/flatzinc/tenpenki_4.cpp \
|
||
test/flatzinc/tenpenki_5.cpp \
|
||
test/flatzinc/tenpenki_6.cpp \
|
||
test/flatzinc/warehouses.cpp \
|
||
test/flatzinc/warehouses_small.cpp \
|
||
test/flatzinc/wolf_goat_cabbage.cpp \
|
||
test/flatzinc/zebra.cpp \
|
||
test/flatzinc/magicsq_3.cpp \
|
||
test/flatzinc/magicsq_4.cpp \
|
||
test/flatzinc/magicsq_5.cpp \
|
||
test/flatzinc/oss.cpp \
|
||
test/flatzinc/steiner_triples.cpp \
|
||
test/flatzinc/timetabling.cpp \
|
||
test/flatzinc/trucking.cpp
|
||
|
||
ifeq "@enable_flatzinc@" "yes"
|
||
FLATZINCTESTOBJ = $(FLATZINCTESTSRC0:%.cpp=%$(OBJSUFFIX))
|
||
else
|
||
FLATZINCTESTOBJ=
|
||
endif
|
||
|
||
BRANCHTESTSRC0 = \
|
||
test/branch.cpp test/branch/int.cpp test/branch/bool.cpp \
|
||
test/branch/set.cpp test/branch/float.cpp \
|
||
test/assign.cpp test/assign/int.cpp test/assign/bool.cpp \
|
||
test/assign/set.cpp test/assign/float.cpp
|
||
|
||
SEARCHTESTSRC0 = \
|
||
test/search.cpp test/nogoods.cpp
|
||
|
||
ARRAYTESTSRC0 = \
|
||
test/array.cpp
|
||
|
||
TESTSRC0 = test/test.cpp test/afc.cpp test/ldsb.cpp test/region.cpp \
|
||
test/groups.cpp
|
||
|
||
TESTSRC = \
|
||
$(TESTSRC0) $(INTTESTSRC0) $(SETTESTSRC0) $(FLOATTESTSRC0) \
|
||
$(BRANCHTESTSRC0) $(SEARCHTESTSRC0) \
|
||
$(ARRAYTESTSRC0) $(FLATZINCTESTSRC0)
|
||
|
||
TESTHDR0 = \
|
||
test.hh test.hpp int.hh int.hpp set.hh set.hpp float.hh float.hpp \
|
||
branch.hh assign.hh flatzinc.hh
|
||
TESTHDR = $(TESTHDR0:%=test/%)
|
||
TESTOBJ = $(INTTESTOBJ) $(SETTESTOBJ) $(FLOATTESTOBJ) \
|
||
$(FLATZINCTESTOBJ:%.cpp=%$(OBJSUFFIX)) \
|
||
$(BRANCHTESTSRC0:%.cpp=%$(OBJSUFFIX)) \
|
||
$(SEARCHTESTSRC0:%.cpp=%$(OBJSUFFIX)) \
|
||
$(ARRAYTESTSRC0:%.cpp=%$(OBJSUFFIX)) \
|
||
$(TESTSRC0:%.cpp=%$(OBJSUFFIX))
|
||
TESTSBJ = $(TESTOBJ:%$(OBJSUFFIX)=%$(SBJSUFFIX))
|
||
TESTEXE = test/test$(EXESUFFIX)
|
||
TESTBUILDDIRS = \
|
||
test test/int test/set test/float \
|
||
test/branch test/assign \
|
||
test/flatzinc
|
||
|
||
BUILDDIRS = \
|
||
tools \
|
||
$(SUPPORTBUILDDIRS:%=gecode/%) \
|
||
$(KERNELBUILDDIRS:%=gecode/%) $(SEARCHBUILDDIRS:%=gecode/%) \
|
||
$(INTBUILDDIRS:%=gecode/%) $(FLOATBUILDDIRS:%=gecode/%) $(SETBUILDDIRS:%=gecode/%) \
|
||
$(MMBUILDDIRS:%=gecode/%) \
|
||
$(DRIVERBUILDDIRS:%=gecode/%) \
|
||
$(GISTBUILDDIRS:%=gecode/%) \
|
||
$(FLATZINCBUILDDIRS) \
|
||
$(EXAMPLEBUILDDIRS) $(TESTBUILDDIRS)
|
||
|
||
ifeq "@enable_examples@" "yes"
|
||
all: compilelib
|
||
@$(MAKE) compileexamples
|
||
@$(MAKE) makecompletedmessage
|
||
else
|
||
all: compilelib
|
||
@$(MAKE) makecompletedmessage
|
||
endif
|
||
compilelib: mkcompiledirs
|
||
@$(MAKE) $(VARIMP) $(LIBTARGETS)
|
||
@$(MAKE) compilesubdirs
|
||
@$(MAKE) framework
|
||
@$(MAKE) flatzinc
|
||
|
||
compileexamples: $(EXAMPLEEXE)
|
||
|
||
test: mkcompiledirs
|
||
@$(MAKE) $(VARIMP) $(TESTEXE)
|
||
|
||
# A basic integrity test
|
||
check: test
|
||
$(RUNENVIRONMENT) $(TESTEXE) -iter 2 -threads 0 -test Branch::Int::Dense::3 \
|
||
-test FlatZinc::magic_square \
|
||
-test Int::Arithmetic::Abs \
|
||
-test Int::Arithmetic::ArgMax \
|
||
-test Int::Arithmetic::Max::Nary \
|
||
-test Int::Cumulative::Man::Fix::0::4 \
|
||
-test Int::Distinct::Random \
|
||
-test Int::Linear::Bool::Int::Lq \
|
||
-test Int::MiniModel::LinExpr::Bool::352 \
|
||
-test NoGoods::Queens \
|
||
-test Search::DFS::Sol::Binary::Nary::Binary::1::1::1 \
|
||
-test Set::Dom::Dom::Gr \
|
||
-test Set::RelOp::ConstSSI::Union \
|
||
-test Set::Sequence::SeqU1 \
|
||
-test Set::Wait
|
||
|
||
ifeq "@top_srcdir@" "."
|
||
mkcompiledirs:
|
||
else
|
||
mkcompiledirs:
|
||
for_builddirs="$(BUILDDIRS)"; for f in $$for_builddirs; do \
|
||
(test -z "$(top_builddir)"/$$f || mkdir -p "$(top_builddir)"/$$f); \
|
||
done
|
||
endif
|
||
|
||
makecompletedmessage:
|
||
@echo
|
||
@echo Compilation of Gecode finished successfully. To use Gecode, either add
|
||
@echo $(PWD)
|
||
@echo to your search path for libraries, or install Gecode using
|
||
@echo make install
|
||
@echo
|
||
|
||
# ugly hack by Gr<47>goire Dooms to call a target on a contribs after evaluating all the variables in this Makefile.
|
||
# used as make contribs:cpgraph:doc or make contribs:cpgraph:Makefile.in
|
||
.PHONY: contribs\:%
|
||
contribs\:%:
|
||
$(MAKE) -C $(shell echo $@ | sed 's/\(contribs:[^:]*\):.*/\1/;s+:+/+') $(shell echo $@ | sed 's/contribs:[^:]*:\(.*\)/\1/;s+:+/+')
|
||
|
||
# less ugly hack by Guido Tack to call a target
|
||
# Just give ICD (in-contrib-dir) and ICT (in-contrib-target) as arguments
|
||
# to make incontrib
|
||
ICT=
|
||
ICD=
|
||
.PHONY: incontrib
|
||
incontrib:
|
||
$(MAKE) -C contribs/$(ICD) $(ICT)
|
||
|
||
compilesubdirs:
|
||
@for_subdirs="$(subdirs)"; for i in $$for_subdirs; do \
|
||
if test -f $$i/Makefile; then \
|
||
echo "Making in directory $$i"; \
|
||
$(MAKE) -C $$i; \
|
||
fi; \
|
||
done
|
||
|
||
#
|
||
# Generated variable implementations
|
||
#
|
||
|
||
VIS = @ALLVIS@
|
||
VISDEP = $(VIS) \
|
||
$(top_srcdir)/misc/genvarimp.perl Makefile
|
||
|
||
gecode/kernel/var-type.hpp: $(VISDEP)
|
||
perl $(top_srcdir)/misc/genvarimp.perl -typehpp $(VIS) > $@
|
||
gecode/kernel/var-imp.hpp: $(VISDEP)
|
||
perl $(top_srcdir)/misc/genvarimp.perl -header $(VIS) > $@
|
||
|
||
#
|
||
# Object targets
|
||
#
|
||
|
||
gecode/support/%$(OBJSUFFIX): $(top_srcdir)/gecode/support/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_SUPPORT_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
gecode/support/%$(SBJSUFFIX): $(top_srcdir)/gecode/support/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_SUPPORT_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
gecode/support/%$(OBJSUFFIX): $(top_srcdir)/gecode/support/%.c
|
||
$(CC) $(CFLAGS) @GECODE_BUILD_SUPPORT_FLAG@ \
|
||
@COMPILEOBJ@$@ @CCIN@$<
|
||
gecode/support/%$(SBJSUFFIX): $(top_srcdir)/gecode/support/%.c
|
||
$(CC) $(CFLAGS) @GECODE_BUILD_SUPPORT_FLAG@ \
|
||
@COMPILESBJ@$@ @CCIN@$<
|
||
|
||
gecode/kernel/%$(OBJSUFFIX): $(top_srcdir)/gecode/kernel/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_KERNEL_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
gecode/kernel/%$(SBJSUFFIX): $(top_srcdir)/gecode/kernel/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_KERNEL_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
gecode/search/%$(OBJSUFFIX): $(top_srcdir)/gecode/search/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_SEARCH_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
gecode/search/%$(SBJSUFFIX): $(top_srcdir)/gecode/search/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_SEARCH_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
gecode/int/%$(OBJSUFFIX): $(top_srcdir)/gecode/int/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_INT_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
gecode/int/%$(SBJSUFFIX): $(top_srcdir)/gecode/int/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_INT_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
gecode/float/%$(OBJSUFFIX): $(top_srcdir)/gecode/float/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(MPFR_CPPFLAGS) @GECODE_BUILD_FLOAT_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
gecode/float/%$(SBJSUFFIX): $(top_srcdir)/gecode/float/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(MPFR_CPPFLAGS) @GECODE_BUILD_FLOAT_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
gecode/set/%$(OBJSUFFIX): $(top_srcdir)/gecode/set/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_SET_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
gecode/set/%$(SBJSUFFIX): $(top_srcdir)/gecode/set/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_SET_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
gecode/minimodel/%$(OBJSUFFIX): $(top_srcdir)/gecode/minimodel/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_MINIMODEL_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
gecode/minimodel/%$(SBJSUFFIX): $(top_srcdir)/gecode/minimodel/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_MINIMODEL_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
gecode/driver/%$(OBJSUFFIX): $(top_srcdir)/gecode/driver/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_DRIVER_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
gecode/driver/%$(SBJSUFFIX): $(top_srcdir)/gecode/driver/%.cpp
|
||
$(CXX) $(CXXFLAGS) @GECODE_BUILD_DRIVER_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
|
||
examples/%$(OBJSUFFIX): $(top_srcdir)/examples/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) $(QT_CPPFLAGS) \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
examples/%$(SBJSUFFIX): $(top_srcdir)/examples/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) $(QT_CPPFLAGS) \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
|
||
test/%$(OBJSUFFIX): $(top_srcdir)/test/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
test/%$(SBJSUFFIX): $(top_srcdir)/test/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
tools/%$(OBJSUFFIX): $(top_srcdir)/tools/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
tools/%$(SBJSUFFIX): $(top_srcdir)/tools/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(EXAMPLES_EXTRA_CXXFLAGS) \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
$(GISTSRC:%.cpp=%$(OBJSUFFIX)): gecode/gist/%$(OBJSUFFIX): $(top_srcdir)/gecode/gist/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \
|
||
@GECODE_BUILD_GIST_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
|
||
$(GISTSRC:%.cpp=%$(SBJSUFFIX)): gecode/gist/%$(SBJSUFFIX): $(top_srcdir)/gecode/gist/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \
|
||
@GECODE_BUILD_GIST_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
$(GISTMOCSRC:%.cpp=%$(OBJSUFFIX)): gecode/gist/moc_%$(OBJSUFFIX): gecode/gist/moc_%.cpp
|
||
$(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \
|
||
@GECODE_BUILD_GIST_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
|
||
$(GISTMOCSRC:%.cpp=%$(SBJSUFFIX)): gecode/gist/moc_%$(SBJSUFFIX): gecode/gist/moc_%.cpp
|
||
$(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \
|
||
@GECODE_BUILD_GIST_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
.PRECIOUS: gecode/gist/moc_%.cpp
|
||
gecode/gist/moc_%.cpp: $(top_srcdir)/gecode/gist/%.hh
|
||
$(MOC) $(CPPFLAGS) -pgecode/gist $< -o $@
|
||
|
||
.PRECIOUS: gecode/flatzinc/%.cpp gecode/flatzinc/%.hh
|
||
ifeq "@HAVE_FLEXBISON@" "yes"
|
||
gecode/flatzinc/lexer.yy.cpp: \
|
||
$(top_srcdir)/gecode/flatzinc/lexer.lxx \
|
||
$(top_srcdir)/gecode/flatzinc/parser.tab.hpp
|
||
flex -ogecode/flatzinc/lexer.yy.cpp \
|
||
$(top_srcdir)/gecode/flatzinc/lexer.lxx
|
||
|
||
gecode/flatzinc/parser.tab.hpp gecode/flatzinc/parser.tab.cpp: \
|
||
$(top_srcdir)/gecode/flatzinc/parser.yxx
|
||
bison -t -o gecode/flatzinc/parser.tab.cpp -d $<
|
||
else
|
||
ifneq "$(top_srcdir)" "."
|
||
gecode/flatzinc/lexer.yy.cpp: $(top_srcdir)/gecode/flatzinc/lexer.yy.cpp
|
||
cp $(@:%=$(top_srcdir)/%) $@
|
||
gecode/flatzinc/parser.tab.hpp: $(top_srcdir)/gecode/flatzinc/parser.tab.hpp
|
||
cp $(@:%=$(top_srcdir)/%) $@
|
||
gecode/flatzinc/parser.tab.cpp: $(top_srcdir)/gecode/flatzinc/parser.tab.cpp
|
||
cp $(@:%=$(top_srcdir)/%) $@
|
||
endif
|
||
endif
|
||
|
||
$(FLATZINCSRC:%.cpp=%$(OBJSUFFIX)): gecode/flatzinc/%$(OBJSUFFIX): $(top_srcdir)/gecode/flatzinc/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \
|
||
@GECODE_BUILD_FLATZINC_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
|
||
$(FLATZINCSRC:%.cpp=%$(SBJSUFFIX)): gecode/flatzinc/%$(SBJSUFFIX): $(top_srcdir)/gecode/flatzinc/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \
|
||
@GECODE_BUILD_FLATZINC_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
$(FLATZINC_GENSRC:%.cpp=%$(OBJSUFFIX)): gecode/flatzinc/%$(OBJSUFFIX): gecode/flatzinc/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \
|
||
@GECODE_BUILD_FLATZINC_FLAG@ \
|
||
@COMPILEOBJ@$@ @CXXIN@$<
|
||
|
||
$(FLATZINC_GENSRC:%.cpp=%$(SBJSUFFIX)): gecode/flatzinc/%$(SBJSUFFIX): gecode/flatzinc/%.cpp
|
||
$(CXX) $(CXXFLAGS) $(QT_CPPFLAGS) \
|
||
@GECODE_BUILD_FLATZINC_FLAG@ \
|
||
@COMPILESBJ@$@ @CXXIN@$<
|
||
|
||
#
|
||
# DLL Targets
|
||
#
|
||
|
||
ifeq "$(DLLSUFFIX)" "$(LIBSUFFIX)"
|
||
|
||
ifeq "@BUILD_MACOS_FRAMEWORK@" "yes"
|
||
export LINKALL = -F. -framework gecode
|
||
else
|
||
export LINKALL = \
|
||
$(LINKFLATZINC) $(LINKDRIVER) $(LINKGIST) \
|
||
$(LINKSEARCH) $(LINKMM) $(LINKSET) $(LINKFLOAT) $(LINKMPFR) $(LINKINT) \
|
||
$(LINKKERNEL) $(LINKSUPPORT)
|
||
endif
|
||
|
||
$(SUPPORTDLL): $(SUPPORTOBJ)
|
||
$(CXX) $(DLLFLAGS) $(SUPPORTOBJ) $(SUPPORTSONAME) \
|
||
@LINKOUTPUT@$(SUPPORTDLL)
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX))
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX))
|
||
$(KERNELDLL): $(KERNELOBJ) $(SUPPORTDLL)
|
||
$(CXX) $(DLLFLAGS) $(KERNELOBJ) $(KERNELSONAME) \
|
||
@DLLPATH@ $(LINKSUPPORT) \
|
||
@LINKOUTPUT@$(KERNELDLL)
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX))
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX))
|
||
$(SEARCHDLL): $(SEARCHOBJ) $(SUPPORTDLL) $(KERNELDLL)
|
||
$(CXX) $(DLLFLAGS) $(SEARCHOBJ) $(SEARCHSONAME) \
|
||
@DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) \
|
||
@LINKOUTPUT@$(SEARCHDLL)
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX))
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX))
|
||
$(INTDLL): $(INTOBJ) $(SUPPORTDLL) $(KERNELDLL)
|
||
$(CXX) $(DLLFLAGS) $(INTOBJ) $(INTSONAME) \
|
||
@DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) \
|
||
@LINKOUTPUT@$(INTDLL)
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX))
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX))
|
||
$(FLOATDLL): $(FLOATOBJ) $(SUPPORTDLL) $(KERNELDLL) $(INTDLL)
|
||
$(CXX) $(DLLFLAGS) $(FLOATOBJ) $(FLOATSONAME) \
|
||
@DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKINT) $(LINKMPFR)\
|
||
@LINKOUTPUT@$(FLOATDLL)
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX))
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX))
|
||
$(SETDLL): $(SETOBJ) $(SUPPORTDLL) $(KERNELDLL) $(INTDLL)
|
||
$(CXX) $(DLLFLAGS) $(SETOBJ) $(SETSONAME) \
|
||
@DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKINT) \
|
||
@LINKOUTPUT@$(SETDLL)
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX))
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX))
|
||
$(MMDLL): $(MMOBJ) $(SUPPORTDLL) $(KERNELDLL) $(INTDLL) $(SETDLL) $(FLOATDLL)
|
||
$(CXX) $(DLLFLAGS) $(MMOBJ) $(MMSONAME) \
|
||
@DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKINT) $(LINKFLOAT) $(LINKSET) \
|
||
@LINKOUTPUT@$(MMDLL)
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX))
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX))
|
||
$(DRIVERDLL): $(DRIVEROBJ) $(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) $(INTDLL) $(MMDLL) $(GISTDLL)
|
||
$(CXX) $(DLLFLAGS) $(DRIVEROBJ) $(DRIVERSONAME) \
|
||
@DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKSEARCH) $(LINKINT) $(LINKMM) $(LINKGIST) \
|
||
@LINKOUTPUT@$(DRIVERDLL)
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX))
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX))
|
||
$(GISTDLL): $(GISTOBJ) $(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) $(INTDLL)
|
||
$(CXX) $(DLLFLAGS) $(GISTOBJ) $(GISTSONAME) \
|
||
@DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKSEARCH) $(LINKINT) $(LINKQT) \
|
||
@LINKOUTPUT@$(GISTDLL)
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX))
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX))
|
||
$(FLATZINCDLL): $(FLATZINCOBJ) $(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) \
|
||
$(INTDLL) $(SETDLL) $(FLOATDLL) $(GISTDLL) $(MMDLL) $(DRIVERDLL)
|
||
$(CXX) $(DLLFLAGS) $(FLATZINCOBJ) $(FLATZINCSONAME) \
|
||
@DLLPATH@ $(LINKSUPPORT) $(LINKKERNEL) $(LINKSEARCH) $(LINKINT) \
|
||
$(LINKSET) $(LINKFLOAT) $(LINKMM) $(LINKGIST) $(LINKDRIVER) $(LINKQT) \
|
||
@LINKOUTPUT@$(FLATZINCDLL)
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX))
|
||
$(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX))
|
||
else
|
||
export LINKALL =
|
||
|
||
ifeq "@enable_resource@" "yes"
|
||
$(SUPPORTRC):
|
||
$(RCGEN) $(SUPPORTDLL) $(SUPPORTHDR) $(SUPPORTSRC) > $@
|
||
endif
|
||
$(SUPPORTDLL) $(SUPPORTLIB): $(SUPPORTOBJ) $(SUPPORTRES)
|
||
$(CXX) $(DLLFLAGS) $(SUPPORTOBJ) $(SUPPORTRES) \
|
||
@LINKOUTPUT@$(SUPPORTDLL) $(GLDFLAGS)
|
||
$(FIXMANIFEST) $(SUPPORTDLL).manifest
|
||
$(MANIFEST) -manifest $(SUPPORTDLL).manifest \
|
||
-outputresource:$(SUPPORTDLL)\;2
|
||
ifeq "@enable_resource@" "yes"
|
||
$(KERNELRC):
|
||
$(RCGEN) $(KERNELDLL) $(KERNELHDR) $(VARIMPHDR) $(KERNELSRC) > $@
|
||
endif
|
||
$(KERNELDLL) $(KERNELLIB): $(KERNELOBJ) $(KERNELRES) $(SUPPORTDLL)
|
||
$(CXX) $(DLLFLAGS) $(KERNELOBJ) $(KERNELRES) \
|
||
@DLLPATH@ @LINKOUTPUT@$(KERNELDLL) $(GLDFLAGS)
|
||
$(FIXMANIFEST) $(KERNELDLL).manifest
|
||
$(MANIFEST) -manifest $(KERNELDLL).manifest \
|
||
-outputresource:$(KERNELDLL)\;2
|
||
ifeq "@enable_resource@" "yes"
|
||
$(SEARCHRC):
|
||
$(RCGEN) $(SEARCHDLL) $(SEARCHHDR) $(SEARCHSRC) > $@
|
||
endif
|
||
$(SEARCHDLL) $(SEARCHLIB): $(SEARCHOBJ) $(SEARCHRES) $(SUPPORTDLL) $(KERNELDLL)
|
||
$(CXX) $(DLLFLAGS) $(SEARCHOBJ) $(SEARCHRES) \
|
||
@DLLPATH@ @LINKOUTPUT@$(SEARCHDLL) $(GLDFLAGS)
|
||
$(FIXMANIFEST) $(SEARCHDLL).manifest
|
||
$(MANIFEST) -manifest $(SEARCHDLL).manifest \
|
||
-outputresource:$(SEARCHDLL)\;2
|
||
ifeq "@enable_resource@" "yes"
|
||
$(INTRC):
|
||
$(RCGEN) $(INTDLL) $(INTHDR) $(INTSRC) > $@
|
||
endif
|
||
$(INTDLL) $(INTLIB): $(INTOBJ) $(INTRES) $(SUPPORTDLL) $(KERNELDLL)
|
||
$(CXX) $(DLLFLAGS) $(INTOBJ) $(INTRES) \
|
||
@DLLPATH@ @LINKOUTPUT@$(INTDLL) $(GLDFLAGS)
|
||
$(FIXMANIFEST) $(INTDLL).manifest
|
||
$(MANIFEST) -manifest $(INTDLL).manifest \
|
||
-outputresource:$(INTDLL)\;2
|
||
ifeq "@enable_resource@" "yes"
|
||
$(FLOATRC):
|
||
$(RCGEN) $(FLOATDLL) $(FLOATHDR) $(FLOATSRC) > $@
|
||
endif
|
||
$(FLOATDLL) $(FLOATLIB): $(FLOATOBJ) $(FLOATRES) $(SUPPORTDLL) $(KERNELDLL) $(INTDLL)
|
||
$(CXX) $(DLLFLAGS) $(FLOATOBJ) $(FLOATRES) \
|
||
@DLLPATH@ @LINKOUTPUT@$(FLOATDLL) $(GLDFLAGS) $(LINKMPFR)
|
||
$(FIXMANIFEST) $(FLOATDLL).manifest
|
||
$(MANIFEST) -manifest $(FLOATDLL).manifest \
|
||
-outputresource:$(FLOATDLL)\;2
|
||
ifeq "@enable_resource@" "yes"
|
||
$(SETRC):
|
||
$(RCGEN) $(SETDLL) $(SETHDR) $(SETSRC) > $@
|
||
endif
|
||
$(SETDLL) $(SETLIB): $(SETOBJ) $(SETRES) $(SUPPORTDLL) $(KERNELDLL) $(INTDLL)
|
||
$(CXX) $(DLLFLAGS) $(SETOBJ) $(SETRES) \
|
||
@DLLPATH@ @LINKOUTPUT@$(SETDLL) $(GLDFLAGS)
|
||
$(FIXMANIFEST) $(SETDLL).manifest
|
||
$(MANIFEST) -manifest $(SETDLL).manifest \
|
||
-outputresource:$(SETDLL)\;2
|
||
ifeq "@enable_resource@" "yes"
|
||
$(MMRC):
|
||
$(RCGEN) $(MMDLL) $(MMHDR) $(MMSRC) > $@
|
||
endif
|
||
$(MMDLL) $(MMLIB): $(MMOBJ) $(MMRES) \
|
||
$(SUPPORTDLL) $(KERNELDLL) $(INTDLL) $(FLOATDLL) $(SETDLL)
|
||
$(CXX) $(DLLFLAGS) $(MMOBJ) $(MMRES) \
|
||
@DLLPATH@ @LINKOUTPUT@$(MMDLL) $(GLDFLAGS)
|
||
$(FIXMANIFEST) $(MMDLL).manifest
|
||
$(MANIFEST) -manifest $(MMDLL).manifest \
|
||
-outputresource:$(MMDLL)\;2
|
||
ifeq "@enable_resource@" "yes"
|
||
$(DRIVERRC):
|
||
$(RCGEN) $(DRIVERDLL) $(DRIVERHDR) $(DRIVERSRC) > $@
|
||
endif
|
||
$(DRIVERDLL) $(DRIVERLIB): $(DRIVEROBJ) $(DRIVERRES) \
|
||
$(SUPPORTDLL) $(KERNELDLL) \
|
||
$(SEARCHDLL) $(INTDLL) $(MMDLL) $(GISTDLL)
|
||
$(CXX) $(DLLFLAGS) $(DRIVEROBJ) $(DRIVERRES) \
|
||
@DLLPATH@ @LINKOUTPUT@$(DRIVERDLL) $(GLDFLAGS)
|
||
$(FIXMANIFEST) $(DRIVERDLL).manifest
|
||
$(MANIFEST) -manifest $(DRIVERDLL).manifest \
|
||
-outputresource:$(DRIVERDLL)\;2
|
||
ifeq "@enable_resource@" "yes"
|
||
$(GISTRC):
|
||
$(RCGEN) $(GISTDLL) $(GISTHDR) $(GISTSRC) > $@
|
||
endif
|
||
$(GISTDLL) $(GISTLIB): $(GISTOBJ) $(GISTRES) \
|
||
$(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) $(INTDLL)
|
||
$(CXX) $(DLLFLAGS) $(GISTOBJ) $(GISTRES) \
|
||
@DLLPATH@ @LINKOUTPUT@$(GISTDLL) $(GLDFLAGS) $(LINKQT)
|
||
$(FIXMANIFEST) $(GISTDLL).manifest
|
||
$(MANIFEST) -manifest $(GISTDLL).manifest \
|
||
-outputresource:$(GISTDLL)\;2
|
||
ifeq "@enable_resource@" "yes"
|
||
$(FLATZINCRC):
|
||
$(RCGEN) $(FLATZINCDLL) $(FLATZINCHDR) $(FLATZINCSRC) > $@
|
||
endif
|
||
$(FLATZINCDLL) $(FLATZINCLIB): $(FLATZINCOBJ) $(FLATZINCRES) \
|
||
$(SUPPORTDLL) $(KERNELDLL) $(SEARCHDLL) $(INTDLL) \
|
||
$(SETDLL) $(FLOATDLL) $(GISTDLL) $(MMDLL) $(DRIVERDLL)
|
||
$(CXX) $(DLLFLAGS) $(FLATZINCOBJ) $(FLATZINCRES) \
|
||
@DLLPATH@ @LINKOUTPUT@$(FLATZINCDLL) $(GLDFLAGS) $(LINKQT)
|
||
$(FIXMANIFEST) $(FLATZINCDLL).manifest
|
||
$(MANIFEST) -manifest $(FLATZINCDLL).manifest \
|
||
-outputresource:$(FLATZINCDLL)\;2
|
||
endif
|
||
|
||
#
|
||
# Static libraries
|
||
#
|
||
|
||
$(SUPPORTSTATICLIB): $(SUPPORTOBJ)
|
||
$(AR) $(ARFLAGS) $@ $(SUPPORTOBJ)
|
||
$(RANLIB) $@
|
||
$(KERNELSTATICLIB): $(KERNELOBJ)
|
||
$(AR) $(ARFLAGS) $@ $(KERNELOBJ)
|
||
$(RANLIB) $@
|
||
$(SEARCHSTATICLIB): $(SEARCHOBJ)
|
||
$(AR) $(ARFLAGS) $@ $(SEARCHOBJ)
|
||
$(RANLIB) $@
|
||
$(INTSTATICLIB): $(INTOBJ)
|
||
$(AR) $(ARFLAGS) $@ $(INTOBJ)
|
||
$(RANLIB) $@
|
||
$(FLOATSTATICLIB): $(FLOATOBJ)
|
||
$(AR) $(ARFLAGS) $@ $(FLOATOBJ)
|
||
$(RANLIB) $@
|
||
$(SETSTATICLIB): $(SETOBJ)
|
||
$(AR) $(ARFLAGS) $@ $(SETOBJ)
|
||
$(RANLIB) $@
|
||
$(MMSTATICLIB): $(MMOBJ)
|
||
$(AR) $(ARFLAGS) $@ $(MMOBJ)
|
||
$(RANLIB) $@
|
||
$(DRIVERSTATICLIB): $(DRIVEROBJ)
|
||
$(AR) $(ARFLAGS) $@ $(DRIVEROBJ)
|
||
$(RANLIB) $@
|
||
$(GISTSTATICLIB): $(GISTOBJ)
|
||
$(AR) $(ARFLAGS) $@ $(GISTOBJ)
|
||
$(RANLIB) $@
|
||
$(FLATZINCSTATICLIB): $(FLATZINCOBJ)
|
||
$(AR) $(ARFLAGS) $@ $(FLATZINCOBJ)
|
||
$(RANLIB) $@
|
||
|
||
#
|
||
# Mac OS X Framework
|
||
#
|
||
|
||
.PHONY: framework
|
||
ifeq "@BUILD_MACOS_FRAMEWORK@" "yes"
|
||
framework: gecode.framework/Versions/@GECODE_SOVERSION@/gecode
|
||
|
||
gecode.framework/Versions/@GECODE_SOVERSION@/gecode: $(STATICTARGETS)
|
||
$(RMF) gecode.framework
|
||
mkdir -p gecode.framework/Versions/@GECODE_SOVERSION@
|
||
$(CXX) -all_load -compatibility_version @GECODE_SOVERSION@.0 \
|
||
-current_version @GECODE_SOVERSION@.0 \
|
||
$(DLLFLAGS) $(LINKQT) \
|
||
-o gecode.framework/Versions/@GECODE_SOVERSION@/gecode $^
|
||
$(MAKE) doinstallheaders \
|
||
prefix=gecode.framework/Versions/@GECODE_SOVERSION@ DESTDIR=
|
||
mv gecode.framework/Versions/@GECODE_SOVERSION@/include/gecode/* \
|
||
gecode.framework/Versions/@GECODE_SOVERSION@/include/
|
||
rmdir gecode.framework/Versions/@GECODE_SOVERSION@/include/gecode
|
||
cd gecode.framework/Versions && ln -s @GECODE_SOVERSION@ Current
|
||
ln -s Versions/Current/include \
|
||
gecode.framework/Headers
|
||
ln -s Versions/Current/gecode \
|
||
gecode.framework/gecode
|
||
else
|
||
framework:
|
||
endif
|
||
|
||
#
|
||
# EXE Targets
|
||
#
|
||
|
||
.PRECIOUS: examples/%$(OBJSUFFIX)
|
||
ifeq "@enable_resource@" "yes"
|
||
.PRECIOUS: examples/%$(EXESUFFIX).rc examples/%$(EXESUFFIX).res
|
||
examples/%$(EXESUFFIX).rc:
|
||
$(RCGEN) $(@:%.rc=%) $< > $@
|
||
examples/%$(EXESUFFIX): examples/%$(OBJSUFFIX) examples/%$(EXESUFFIX).res \
|
||
$(ALLLIB)
|
||
$(CXX) @EXEOUTPUT@$@ $< $@.res \
|
||
$(DLLPATH) $(CXXFLAGS) \
|
||
$(LINKALL) $(GLDFLAGS) $(LINKQT)
|
||
$(FIXMANIFEST) $@.manifest
|
||
$(MANIFEST) -manifest $@.manifest -outputresource:$@\;1
|
||
else
|
||
examples/%$(EXESUFFIX): examples/%$(OBJSUFFIX) $(ALLLIB)
|
||
$(CXX) @EXEOUTPUT@$@ $< $(DLLPATH) $(CXXFLAGS) \
|
||
$(LINKALL) $(GLDFLAGS) $(LINKQT)
|
||
$(FIXMANIFEST) $@.manifest
|
||
$(MANIFEST) -manifest $@.manifest -outputresource:$@\;1
|
||
endif
|
||
|
||
ifeq "@enable_resource@" "yes"
|
||
TESTRES = $(TESTEXE).res
|
||
$(TESTEXE).rc:
|
||
$(RCGEN) $(TESTEXE) $(TESTSRC) $(TESTHDR) > $@
|
||
else
|
||
TESTRES =
|
||
endif
|
||
$(TESTEXE): $(TESTOBJ) $(TESTRES) $(ALLLIB)
|
||
$(CXX) @EXEOUTPUT@$@ $(TESTOBJ) $(TESTRES) $(DLLPATH) $(CXXFLAGS) \
|
||
$(LINKALL) $(GLDFLAGS) $(LINKQT)
|
||
$(FIXMANIFEST) $@.manifest $(DLLSUFFIX)
|
||
$(MANIFEST) -manifest $@.manifest -outputresource:$@\;1
|
||
|
||
.PHONY: flatzinc
|
||
ifeq "@enable_flatzinc@" "yes"
|
||
flatzinc: $(FLATZINCEXE)
|
||
else
|
||
flatzinc:
|
||
endif
|
||
|
||
ifeq "@enable_resource@" "yes"
|
||
FLATZINCEXERES = $(FLATZINCEXE).res
|
||
$(FLATZINCEXE).rc:
|
||
$(RCGEN) $(FLATZINCEXE) $(FLATZINCEXESRC) > $@
|
||
else
|
||
FLATZINCEXERES =
|
||
endif
|
||
$(FLATZINCEXE): $(FLATZINCEXEOBJ) $(FLATZINCEXERES) $(ALLLIB)
|
||
$(CXX) @EXEOUTPUT@$@ $(FLATZINCEXEOBJ) $(FLATZINCEXERES) \
|
||
$(DLLPATH) $(CXXFLAGS) \
|
||
$(LINKALL) $(GLDFLAGS) $(LINKSTATICQT)
|
||
$(FIXMANIFEST) $@.manifest
|
||
$(MANIFEST) -manifest $@.manifest -outputresource:$@\;1
|
||
|
||
|
||
#
|
||
# Autoconf
|
||
#
|
||
|
||
$(top_srcdir)/configure: $(top_srcdir)/configure.ac
|
||
(cd $(top_srcdir) && autoconf)
|
||
config.status: $(top_srcdir)/configure
|
||
./config.status --recheck
|
||
Makefile: $(top_srcdir)/Makefile.in config.status
|
||
./config.status --file $@:$<
|
||
doxygen.hh: $(top_srcdir)/doxygen/doxygen.hh.in config.status
|
||
./config.status --file $@:$<
|
||
doxygen.conf: $(top_srcdir)/doxygen/doxygen.conf.in config.status
|
||
./config.status --file $@:$<
|
||
|
||
|
||
#
|
||
# Documentation
|
||
#
|
||
|
||
export ENABLEDOCCHM = @ENABLEDOCCHM@
|
||
export ENABLEDOCDOCSET = @ENABLEDOCDOCSET@
|
||
ENABLEDOCSEARCH = @ENABLEDOCSEARCH@
|
||
|
||
.PHONY: doc
|
||
|
||
DOCSRC_NOTGENERATED = \
|
||
misc/doxygen/back.png misc/doxygen/footer.html \
|
||
misc/doxygen/gecode-logo-100.png \
|
||
misc/doxygen/stylesheet.css \
|
||
misc/genlicense.perl misc/genstatistics.perl \
|
||
misc/genchangelog.perl
|
||
DOCSRC = $(DOCSRC_NOTGENERATED:%=$(top_srcdir)/%) \
|
||
doxygen.conf.use header.html \
|
||
doxygen.hh license.hh stat.hh changelog.hh
|
||
|
||
changelog.hh: $(top_srcdir)/changelog.in
|
||
perl $(top_srcdir)/misc/genchangelog.perl < $^ > changelog.hh
|
||
|
||
ChangeLog: $(top_srcdir)/changelog.in
|
||
perl $(top_srcdir)/misc/gentxtchangelog.perl < $^ > ChangeLog
|
||
|
||
license.hh: $(ALLGECODEHDR:%=$(top_srcdir)/%) $(ALLSRC:%=$(top_srcdir)/%) \
|
||
$(VARIMPHDR)
|
||
perl $(top_srcdir)/misc/genlicense.perl $^ > license.hh
|
||
|
||
stat.hh: $(ALLGECODEHDR:%=$(top_srcdir)/%) $(ALLSRC:%=$(top_srcdir)/%) \
|
||
$(TESTHDR:%=$(top_srcdir)/%) $(TESTSRC:%=$(top_srcdir)/%) \
|
||
$(VARIMPHDR)
|
||
perl $(top_srcdir)/misc/genstatistics.perl $^ > stat.hh
|
||
|
||
|
||
ifeq "@ENABLEDOCCHM@" "yes"
|
||
|
||
DOCTARGET=GecodeReference.chm
|
||
|
||
header.html: $(top_srcdir)/misc/doxygen/header.html doxygen.conf
|
||
grep -v '<form.*form>' < $< > $@
|
||
doxygen.conf.use: doxygen.conf
|
||
(echo "GENERATE_HTMLHELP = YES"; \
|
||
echo "SEARCHENGINE = NO";\
|
||
echo "HAVE_DOT = @GECODE_DOXYGEN_DOT@") | \
|
||
cat $< - > $@
|
||
|
||
doc: $(ALLGECODEHDR:%=$(top_srcdir)/%) $(VARIMPHDR) \
|
||
$(ALLSRC:%=$(top_srcdir)/%) $(DOCSRC)
|
||
mkdir -p doc/html
|
||
cp -f $(top_srcdir)/misc/doxygen/back.png \
|
||
$(top_srcdir)/misc/doxygen/gecode-logo-100.png doc/html
|
||
doxygen doxygen.conf.use
|
||
mv doc/html/GecodeReference.chm GecodeReference.chm
|
||
|
||
else
|
||
ifeq "@ENABLEDOCDOCSET@" "yes"
|
||
|
||
DOCTARGET=org.gecode.@VERSION@.docset
|
||
|
||
header.html: $(top_srcdir)/misc/doxygen/header.html doxygen.conf
|
||
grep -v '<form.*form>' < $< > $@
|
||
doxygen.conf.use: doxygen.conf
|
||
(echo "SEARCHENGINE = NO";\
|
||
echo "HAVE_DOT = @GECODE_DOXYGEN_DOT@";\
|
||
echo "GENERATE_DOCSET = YES";\
|
||
echo "DOCSET_BUNDLE_ID = org.gecode.@VERSION@";\
|
||
echo "DOCSET_FEEDNAME = Gecode") | \
|
||
cat $< - > $@
|
||
|
||
doc: $(ALLGECODEHDR:%=$(top_srcdir)/%) $(VARIMPHDR) \
|
||
$(ALLSRC:%=$(top_srcdir)/%) $(DOCSRC)
|
||
mkdir -p doc/html
|
||
cp -f $(top_srcdir)/misc/doxygen/back.png \
|
||
$(top_srcdir)/misc/doxygen/gecode-logo-100.png doc/html
|
||
doxygen doxygen.conf.use
|
||
cd doc/html && make
|
||
mv doc/html/$(DOCTARGET) .
|
||
|
||
else
|
||
DOCTARGET=doc/html
|
||
|
||
ifeq "@ENABLEDOCSEARCH@" "yes"
|
||
|
||
header.html: $(top_srcdir)/misc/doxygen/header.html doxygen.conf
|
||
cat < $< > $@
|
||
doxygen.conf.use: doxygen.conf
|
||
(echo "GENERATE_HTMLHELP = NO"; \
|
||
echo "SEARCHENGINE = YES"; \
|
||
echo "SERVER_BASED_SEARCH = YES"; \
|
||
echo "HAVE_DOT = @GECODE_DOXYGEN_DOT@") | \
|
||
cat $< - > $@
|
||
else
|
||
|
||
header.html: $(top_srcdir)/misc/doxygen/header.html doxygen.conf
|
||
grep -v '<form.*form>' < $< > $@
|
||
doxygen.conf.use: doxygen.conf
|
||
(echo "GENERATE_HTMLHELP = NO"; \
|
||
echo "SEARCHENGINE = NO"; \
|
||
echo "HAVE_DOT = @GECODE_DOXYGEN_DOT@") | \
|
||
cat $< - > $@
|
||
|
||
endif
|
||
|
||
doc: $(ALLGECODEHDR:%=$(top_srcdir)/%) $(VARIMPHDR) \
|
||
$(ALLSRC:%=$(top_srcdir)/%) $(DOCSRC)
|
||
mkdir -p doc/html
|
||
cp -f $(top_srcdir)/misc/doxygen/back.png \
|
||
$(top_srcdir)/misc/doxygen/gecode-logo-100.png doc/html
|
||
doxygen doxygen.conf.use
|
||
|
||
ifeq "@ENABLEDOCSEARCH@" "yes"
|
||
# Work around a doxygen bug (a missing div screws up the layout)
|
||
mv doc/html/search.php doc/html/search2.php
|
||
sed -e 's|<div class="qindex">|<div><div class="qindex">|' \
|
||
doc/html/search2.php > doc/html/search.php
|
||
rm doc/html/search2.php
|
||
endif
|
||
|
||
endif
|
||
endif
|
||
|
||
#
|
||
# Installation
|
||
#
|
||
|
||
.PHONY: install
|
||
|
||
ifeq "@BUILD_MACOS_FRAMEWORK@" "yes"
|
||
install: installframework
|
||
else
|
||
|
||
ifeq "@enable_examples@" "yes"
|
||
install: installlib installexamples
|
||
else
|
||
install: installlib
|
||
endif
|
||
|
||
endif
|
||
|
||
doinstallheaders: $(ALLHDR:%=$(top_srcdir)/%) $(EXTRA_HEADERS) $(VARIMPHDR)
|
||
mkdir -p $(DESTDIR)$(includedir) && \
|
||
(cd $(top_srcdir) && tar cf - $(ALLHDR)) | \
|
||
(cd $(DESTDIR)$(includedir) && tar xf -) && \
|
||
for_varimpheaders="$(VARIMPHDR)" && \
|
||
for f in $$for_varimpheaders; do \
|
||
cp $$f $(DESTDIR)$(includedir)/gecode/kernel; done && \
|
||
for_extraheaders="$(EXTRA_HEADERS)" && \
|
||
for f in $$for_extraheaders; do \
|
||
cp $$f $(DESTDIR)$(includedir)/$$f; done && \
|
||
for_mznlib="$(FLATZINCMZNLIB)" && \
|
||
mkdir -p $(DESTDIR)$(datadir)/minizinc/solvers; \
|
||
cp $(FLATZINCCONFIG) $(DESTDIR)$(datadir)/minizinc/solvers/; \
|
||
mkdir -p $(DESTDIR)$(datadir)/minizinc/gecode; \
|
||
for f in $$for_mznlib; do \
|
||
cp $(top_srcdir)/$$f/*.mzn \
|
||
$(DESTDIR)$(datadir)/minizinc/gecode; done
|
||
|
||
doinstalllib:
|
||
mkdir -p $(DESTDIR)$(sharedlibdir) && \
|
||
mkdir -p $(DESTDIR)$(libdir) && \
|
||
mkdir -p $(DESTDIR)$(bindir) && \
|
||
for_libtargets="$(LIBTARGETS) $(PDBTARGETS)" && \
|
||
for f in $$for_libtargets; do \
|
||
cp $$f $(DESTDIR)$(sharedlibdir); done && \
|
||
for_liblinktargets="$(LIBLINKTARGETS)" && \
|
||
for f in $$for_liblinktargets; do \
|
||
cp -pR $$f $(DESTDIR)$(sharedlibdir); done &&\
|
||
for_liblibtargets="$(LIBLIBTARGETS)" && \
|
||
for f in $$for_liblibtargets; do \
|
||
cp $$f $(DESTDIR)$(libdir); done &&\
|
||
for_exetargets="$(EXETARGETS)" && \
|
||
for f in $$for_exetargets; do \
|
||
cp $$f $(DESTDIR)$(bindir); done
|
||
|
||
ifeq "@BUILDSTATIC@" "yes"
|
||
ranliblib:
|
||
for_static="$(STATICTARGETS)" ; \
|
||
for f in $$for_static; do \
|
||
$(RANLIB) $(DESTDIR)$(sharedlibdir)/$$f; done
|
||
else
|
||
ranliblib:
|
||
endif
|
||
|
||
installlib: compilelib
|
||
$(MAKE) doinstalllib
|
||
$(MAKE) doinstallheaders
|
||
$(MAKE) ranliblib
|
||
$(MAKE) installsubdirs
|
||
|
||
installexamples: compileexamples
|
||
mkdir -p $(DESTDIR)$(bindir); \
|
||
for_exampleexe="$(EXAMPLEEXE)" ; \
|
||
for f in $$for_exampleexe; do cp $$f $(DESTDIR)$(bindir); done \
|
||
|
||
installframework: framework
|
||
mkdir -p $(DESTDIR)/Library/Frameworks/gecode.framework && \
|
||
(cd gecode.framework && tar cf - *) | \
|
||
(cd $(DESTDIR)/Library/Frameworks/gecode.framework && tar xf -)
|
||
|
||
installdoc: doc
|
||
mkdir -p $(DESTDIR)$(docdir); \
|
||
cp -r $(DOCTARGET) $(DESTDIR)$(docdir)
|
||
|
||
installsubdirs:
|
||
@for_subdirs="$(subdirs)" ; for i in $$for_subdirs; do \
|
||
cd $$i && if test -f Makefile; then \
|
||
echo "Making install in directory $$i"; \
|
||
$(MAKE) install; \
|
||
fi; \
|
||
done
|
||
|
||
#
|
||
# Source Distribution
|
||
#
|
||
|
||
.PHONY: distdoc
|
||
|
||
ifeq "@ENABLEDOCSEARCH@" "yes"
|
||
DOCSUFFIX = search-$(VERSION)
|
||
else
|
||
DOCSUFFIX = $(VERSION)
|
||
endif
|
||
|
||
distdoc: doc
|
||
rm -rf gecode-doc-$(DOCSUFFIX) && \
|
||
mv doc/html gecode-doc-$(DOCSUFFIX) && \
|
||
$(TAR) cf - gecode-doc-$(DOCSUFFIX) | \
|
||
gzip -9 > gecode-doc-$(DOCSUFFIX).tar.gz && \
|
||
7z a -mx9 gecode-doc-$(DOCSUFFIX).7z gecode-doc-$(DOCSUFFIX) && \
|
||
$(RMF) gecode-doc-$(DOCSUFFIX) && \
|
||
if test -f doc/gecode-doc.tag; then \
|
||
mv doc/gecode-doc.tag gecode-doc-$(DOCSUFFIX).tag && \
|
||
gzip -9 gecode-doc-$(DOCSUFFIX).tag; \
|
||
fi
|
||
|
||
|
||
#
|
||
# Maintenance targets
|
||
#
|
||
|
||
clean:
|
||
$(RMF) *.stackdump core gmon.out \
|
||
vc70.pdb vc80.pdb vc90.pdb vc100.pdb vc110.pdb \
|
||
vc120.pdb vc130.pdb vc140.pdb
|
||
$(RMF) doxygen.log doxygen.hh doxygen.conf.use stat.hh \
|
||
changelog.hh doxygen.hh license.hh header.html
|
||
$(RMF) $(ALLOBJ) $(ALLSBJ) $(ALLOBJ:%$(OBJSUFFIX)=%.pdb)
|
||
$(RMF) $(TESTOBJ) $(TESTSBJ) $(TESTOBJ:%$(OBJSUFFIX)=%.pdb)
|
||
$(RMF) $(GISTMOCSRC)
|
||
$(RMF) $(LIBTARGETS:%$(DLLSUFFIX)=%$(MANIFESTSUFFIX)) \
|
||
$(LIBTARGETS:%$(DLLSUFFIX)=%$(RCSUFFIX)) \
|
||
$(LIBTARGETS:%$(DLLSUFFIX)=%$(RESSUFFIX)) \
|
||
$(LIBTARGETS:%$(DLLSUFFIX)=%$(EXPSUFFIX))
|
||
$(RMF) $(EXAMPLEEXE:%.exe=%.pdb) $(EXAMPLEEXE:%=%.manifest) \
|
||
$(EXAMPLEEXE:%=%.rc) $(EXAMPLEEXE:%=%.res)
|
||
$(RMF) $(TESTEXE:%.exe=%.pdb) $(TESTEXE:%=%.manifest) \
|
||
$(TESTEXE:%=%.rc) $(TESTEXE:%=%.res)
|
||
$(RMF) $(FLATZINCEXE:%.exe=%.pdb) $(FLATZINCEXE:%=%.manifest) \
|
||
$(FLATZINCEXE:%=%.rc) $(FLATZINCEXE:%=%.res)
|
||
|
||
veryclean: clean
|
||
$(RMF) $(LIBTARGETS) \
|
||
$(LIBTARGETS:%$(DLLSUFFIX)=%$(LIBSUFFIX)) \
|
||
$(LIBTARGETS:%$(DLLSUFFIX)=%$(PDBSUFFIX))
|
||
$(RMF) $(LIBTARGETS:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) \
|
||
$(LIBTARGETS:%$(DLLSUFFIX)=%$(SOSUFFIX))
|
||
$(RMF) $(EXAMPLEEXE)
|
||
$(RMF) $(TESTEXE)
|
||
$(RMF) $(FLATZINCEXE)
|
||
$(RMF) doc GecodeReference.chm ChangeLog
|
||
$(RMF) $(ALLOBJ:%$(OBJSUFFIX)=%.gcno) $(TESTOBJ:%$(OBJSUFFIX)=%.gcno)
|
||
$(RMF) $(ALLOBJ:%$(OBJSUFFIX)=%.gcda) $(TESTOBJ:%$(OBJSUFFIX)=%.gcda)
|
||
|
||
distclean: veryclean
|
||
$(RMF) $(VARIMP)
|
||
$(RMF) Makefile doxygen.conf
|
||
$(RMF) $(EXTRA_HEADERS)
|
||
$(RMF) config.log config.status Makefile.dep
|
||
|
||
depend: mkcompiledirs
|
||
@$(MAKE) $(VARIMP) gecode/flatzinc/parser.tab.hpp
|
||
perl $(top_srcdir)/misc/makedepend.perl \
|
||
$(top_srcdir) \
|
||
$(ALLSRC) \
|
||
$(FLATZINC_GENSRC) \
|
||
$(TESTSRC) > Makefile.dep
|
||
|
||
-include Makefile.dep
|