@@ -825,11 +825,14 @@ FLATZINCSRC0 = flatzinc.cpp registry.cpp branch.cpp blackbox.cpp
825825FLATZINC_GENSRC0 = parser.tab.cpp lexer.yy.cpp
826826FLATZINCHDR0 = ast.hh conexpr.hh option.hh parser.hh \
827827 plugin.hh registry.hh symboltable.hh varspec.hh \
828- branch.hh branch.hpp lastval.hh complete.hh blackbox.hh
828+ branch.hh branch.hpp lastval.hh complete.hh
829+ FLATZINCPRIVATEHDR0 = blackbox.hh
829830
830831FLATZINCSRC = $(FLATZINCSRC0:%=gecode/flatzinc/% )
831832FLATZINC_GENSRC = $(FLATZINC_GENSRC0:%=gecode/flatzinc/% )
832833FLATZINCHDR = $(FLATZINCHDR0:%=gecode/flatzinc/% ) gecode/flatzinc.hh
834+ FLATZINCPRIVATEHDR = $(FLATZINCPRIVATEHDR0:%=gecode/flatzinc/% )
835+ FLATZINCALLHDR = $(FLATZINCHDR ) $(FLATZINCPRIVATEHDR )
833836
834837FLATZINCOBJ = \
835838 $(FLATZINCSRC:%.cpp=%$(OBJSUFFIX ) ) \
@@ -1251,14 +1254,18 @@ SEARCHTESTSRC0 = \
12511254ARRAYTESTSRC0 = \
12521255 test/array.cpp
12531256
1257+ BLACKBOXEXECSRC = test/flatzinc/blackbox-exec.cpp
1258+ BLACKBOXDLLSRC = test/flatzinc/blackbox-dll.cpp
1259+ BLACKBOXSRC = $(BLACKBOXEXECSRC ) $(BLACKBOXDLLSRC )
1260+
12541261TESTSRC0 = test/test.cpp test/afc.cpp test/ldsb.cpp test/region.cpp \
12551262 test/groups.cpp
12561263# FailPoint is CMake-only; keep the Autoconf test executable fault-free.
12571264
12581265TESTSRC = \
12591266 $(TESTSRC0 ) $(INTTESTSRC0 ) $(SETTESTSRC0 ) $(FLOATTESTSRC0 ) \
12601267 $(BRANCHTESTSRC0 ) $(SEARCHTESTSRC0 ) \
1261- $(ARRAYTESTSRC0 ) $(FLATZINCTESTSRC0 )
1268+ $(ARRAYTESTSRC0 ) $(FLATZINCTESTSRC0 ) $( BLACKBOXSRC )
12621269
12631270TESTHDR0 = \
12641271 test.hh test.hpp int.hh int.hpp set.hh set.hpp float.hh float.hpp \
@@ -1272,6 +1279,18 @@ TESTOBJ = $(INTTESTOBJ) $(SETTESTOBJ) $(FLOATTESTOBJ) \
12721279 $(TESTSRC0:%.cpp=%$(OBJSUFFIX ) )
12731280TESTSBJ = $(TESTOBJ:%$(OBJSUFFIX ) =%$(SBJSUFFIX ) )
12741281TESTEXE = test/test$(EXESUFFIX )
1282+ BLACKBOXEXECOBJ = $(BLACKBOXEXECSRC:%.cpp=%$(OBJSUFFIX ) )
1283+ BLACKBOXDLLOBJ = $(BLACKBOXDLLSRC:%.cpp=%$(OBJSUFFIX ) )
1284+ BLACKBOXEXEC = test/flatzinc/blackbox-exec$(EXESUFFIX )
1285+ BLACKBOXDLL = test/flatzinc/blackbox-dll$(DLLSUFFIX )
1286+ BLACKBOXDLLLIB = $(BLACKBOXDLL:%$(DLLSUFFIX ) =%$(LIBSUFFIX ) )
1287+ BLACKBOXLOG = $(abspath test/flatzinc/blackbox)
1288+ ifeq "@enable_flatzinc@" "yes"
1289+ BLACKBOXFIXTURES = $(BLACKBOXEXEC ) $(BLACKBOXDLL )
1290+ else
1291+ BLACKBOXFIXTURES =
1292+ endif
1293+
12751294TESTBUILDDIRS = \
12761295 test test/int test/set test/float \
12771296 test/branch test/assign \
@@ -1304,7 +1323,7 @@ compilelib: mkcompiledirs
13041323
13051324compileexamples : $(EXAMPLEEXE )
13061325
1307- test : mkcompiledirs
1326+ test : mkcompiledirs $( BLACKBOXFIXTURES )
13081327 @$(MAKE ) $(VARIMP ) $(TESTEXE )
13091328
13101329CHECKTESTS = Branch::Int::Dense::3 \
@@ -1325,6 +1344,14 @@ CHECKTESTS = Branch::Int::Dense::3 \
13251344 Set::Sequence::SeqU1 \
13261345 Set::Wait
13271346
1347+ ifeq "@enable_flatzinc@" "yes"
1348+ CHECKTESTS += FlatZinc::blackbox
1349+ BLACKBOXCHECKENV = \
1350+ GECODE_TEST_BLACKBOX_EXEC=$(abspath $(BLACKBOXEXEC ) ) \
1351+ GECODE_TEST_BLACKBOX_DLL=$(abspath $(BLACKBOXDLL ) ) \
1352+ GECODE_TEST_BLACKBOX_LOG=$(BLACKBOXLOG )
1353+ endif
1354+
13281355ifeq "@enable_float_vars@" "yes"
13291356FLOATCHECKTESTS = Float::Arithmetic::PositiveNRootBounds \
13301357 Float::Arithmetic::PowConsistency \
@@ -1352,7 +1379,8 @@ check: test
13521379 exit 1; \
13531380 fi ; \
13541381 done
1355- $(RUNENVIRONMENT ) $(TESTEXE ) -iter 2 -threads 0 -fixprob 1 \
1382+ $(BLACKBOXCHECKENV ) $(RUNENVIRONMENT ) \
1383+ $(TESTEXE ) -iter 2 -threads 0 -fixprob 1 \
13561384 $(CHECKTESTS:%=-test % )
13571385
13581386.PHONY : regenerate
@@ -1733,7 +1761,7 @@ $(GISTDLL) $(GISTLIB): $(GISTOBJ) $(GISTRES) \
17331761 -outputresource:$(GISTDLL ) \; 2
17341762ifeq "@enable_resource@" "yes"
17351763$(FLATZINCRC ) :
1736- $(RCGEN ) $(FLATZINCDLL ) $(FLATZINCHDR ) $(FLATZINCSRC ) > $@
1764+ $(RCGEN ) $(FLATZINCDLL ) $(FLATZINCALLHDR ) $(FLATZINCSRC ) > $@
17371765endif
17381766$(FLATZINCDLL ) $(FLATZINCLIB ) : $(FLATZINCOBJ ) $(FLATZINCRES ) \
17391767 $(SUPPORTDLL ) $(KERNELDLL ) $(SEARCHDLL ) $(INTDLL ) \
@@ -1846,6 +1874,22 @@ $(TESTEXE): $(TESTOBJ) $(TESTRES) $(ALLLIB)
18461874 $(FIXMANIFEST ) $@ .manifest $(DLLSUFFIX )
18471875 $(MANIFEST ) -manifest $@ .manifest -outputresource:$@ \; 1
18481876
1877+ $(BLACKBOXEXECOBJ ) $(BLACKBOXDLLOBJ ) : | mkcompiledirs
1878+
1879+ $(BLACKBOXEXEC ) : $(BLACKBOXEXECOBJ )
1880+ $(CXX ) @EXEOUTPUT@$@ $(BLACKBOXEXECOBJ ) $(CXXFLAGS )
1881+
1882+ ifeq "$(DLLSUFFIX ) " "$(LIBSUFFIX ) "
1883+ $(BLACKBOXDLL ) : $(BLACKBOXDLLOBJ )
1884+ $(CXX ) $(DLLFLAGS ) $(BLACKBOXDLLOBJ ) @LINKOUTPUT@$@
1885+ else
1886+ $(BLACKBOXDLL ) $(BLACKBOXDLLLIB ) : $(BLACKBOXDLLOBJ )
1887+ $(CXX ) $(DLLFLAGS ) $(BLACKBOXDLLOBJ ) @LINKOUTPUT@$(BLACKBOXDLL ) $(GLDFLAGS )
1888+ $(FIXMANIFEST ) $(BLACKBOXDLL ) .manifest
1889+ $(MANIFEST ) -manifest $(BLACKBOXDLL ) .manifest \
1890+ -outputresource:$(BLACKBOXDLL ) \; 2
1891+ endif
1892+
18491893.PHONY : flatzinc
18501894ifeq "@enable_flatzinc@" "yes"
18511895flatzinc : $(FLATZINCEXE )
@@ -2095,6 +2139,13 @@ clean:
20952139 changelog.hh doxygen.hh license.hh header.html
20962140 $(RMF ) $(ALLOBJ ) $(ALLSBJ ) $(ALLOBJ:%$(OBJSUFFIX ) =%.pdb )
20972141 $(RMF ) $(TESTOBJ ) $(TESTSBJ ) $(TESTOBJ:%$(OBJSUFFIX ) =%.pdb )
2142+ $(RMF ) $(BLACKBOXEXECOBJ ) $(BLACKBOXDLLOBJ ) \
2143+ $(BLACKBOXEXECOBJ:%$(OBJSUFFIX ) =%.pdb ) \
2144+ $(BLACKBOXDLLOBJ:%$(OBJSUFFIX ) =%.pdb )
2145+ $(RMF ) $(BLACKBOXEXECOBJ:%$(OBJSUFFIX ) =%.gcno ) \
2146+ $(BLACKBOXDLLOBJ:%$(OBJSUFFIX ) =%.gcno )
2147+ $(RMF ) $(BLACKBOXEXECOBJ:%$(OBJSUFFIX ) =%.gcda ) \
2148+ $(BLACKBOXDLLOBJ:%$(OBJSUFFIX ) =%.gcda )
20982149 $(RMF ) $(GISTMOCSRC )
20992150 $(RMF ) $(LIBTARGETS:%$(DLLSUFFIX ) =%$(MANIFESTSUFFIX ) ) \
21002151 $(LIBTARGETS:%$(DLLSUFFIX ) =%$(RCSUFFIX ) ) \
@@ -2104,6 +2155,13 @@ clean:
21042155 $(EXAMPLEEXE:%=%.rc ) $(EXAMPLEEXE:%=%.res )
21052156 $(RMF ) $(TESTEXE:%.exe=%.pdb ) $(TESTEXE:%=%.manifest ) \
21062157 $(TESTEXE:%=%.rc ) $(TESTEXE:%=%.res )
2158+ $(RMF ) $(BLACKBOXEXEC:%.exe=%.pdb ) $(BLACKBOXEXEC:%=%.manifest ) \
2159+ $(BLACKBOXDLL:%$(DLLSUFFIX ) =%$(LIBSUFFIX ) ) \
2160+ $(BLACKBOXDLL:%$(DLLSUFFIX ) =%$(PDBSUFFIX ) ) \
2161+ $(BLACKBOXDLL:%$(DLLSUFFIX ) =%$(EXPSUFFIX ) ) \
2162+ $(BLACKBOXDLL:%$(DLLSUFFIX ) =%$(MANIFESTSUFFIX ) )
2163+ $(RMF ) $(BLACKBOXLOG ) .exec_parallel $(BLACKBOXLOG ) .exec_descendant \
2164+ $(BLACKBOXLOG ) .dll_model $(BLACKBOXLOG ) .dll_parallel
21072165 $(RMF ) $(FLATZINCEXE:%.exe=%.pdb ) $(FLATZINCEXE:%=%.manifest ) \
21082166 $(FLATZINCEXE:%=%.rc ) $(FLATZINCEXE:%=%.res )
21092167
@@ -2115,6 +2173,7 @@ veryclean: clean
21152173 $(LIBTARGETS:%$(DLLSUFFIX ) =%$(SOSUFFIX ) )
21162174 $(RMF ) $(EXAMPLEEXE )
21172175 $(RMF ) $(TESTEXE )
2176+ $(RMF ) $(BLACKBOXFIXTURES )
21182177 $(RMF ) $(FLATZINCEXE )
21192178 $(RMF ) doc ChangeLog
21202179 $(RMF ) $(ALLOBJ:%$(OBJSUFFIX ) =%.gcno ) $(TESTOBJ:%$(OBJSUFFIX ) =%.gcno )
0 commit comments