@@ -22,6 +22,21 @@ ifneq ($(MINISAT2),)
22
22
CLEANFILES += $(MINISAT2_LIB ) $(patsubst % $(OBJEXT ) , % $(DEPEXT ) , $(MINISAT2_LIB ) )
23
23
endif
24
24
25
+ ifneq ($(MERGESAT ) ,)
26
+ # MergeSat is based on MiniSat2 and is invoked (with suitable defines/ifdefs)
27
+ # via satcheck_minisat2.{h,cpp}
28
+ MERGESAT_SRC =sat/satcheck_minisat2.cpp
29
+ MERGESAT_INCLUDE =-I $(MERGESAT )
30
+ MERGESAT_LIB =$(MERGESAT ) /minisat/core/Lookahead$(OBJEXT ) \
31
+ $(MERGESAT ) /minisat/core/Solver$(OBJEXT ) \
32
+ $(MERGESAT ) /minisat/simp/SimpSolver$(OBJEXT ) \
33
+ $(MERGESAT ) /minisat/utils/ccnr$(OBJEXT ) \
34
+ $(MERGESAT ) /minisat/utils/Options$(OBJEXT ) \
35
+ $(MERGESAT ) /minisat/utils/System$(OBJEXT )
36
+ CP_CXXFLAGS += -DHAVE_MERGESAT -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
37
+ CLEANFILES += $(MERGESAT_LIB ) $(patsubst % $(OBJEXT ) , % $(DEPEXT ) , $(MERGESAT_LIB ) )
38
+ endif
39
+
25
40
ifneq ($(IPASIR ) ,)
26
41
IPASIR_SRC =sat/satcheck_ipasir.cpp
27
42
IPASIR_INCLUDE =-I $(IPASIR )
@@ -75,6 +90,7 @@ SRC = $(BOOLEFORCE_SRC) \
75
90
$(GLUCOSE_SRC ) \
76
91
$(LINGELING_SRC ) \
77
92
$(MINISAT2_SRC ) \
93
+ $(MERGESAT_SRC ) \
78
94
$(IPASIR_SRC ) \
79
95
$(MINISAT_SRC ) \
80
96
$(PICOSAT_SRC ) \
@@ -232,6 +248,31 @@ $(MINISAT2)/minisat/core/Solver$(OBJEXT): $(MINISAT2)/minisat/core/Solver.cc
232
248
endif
233
249
endif
234
250
251
+ ifneq ($(MERGESAT ) ,)
252
+ ifeq ($(BUILD_ENV_ ) ,MSVC)
253
+ sat/satcheck_minisat2$(OBJEXT ) : sat/satcheck_minisat2.cpp
254
+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
255
+
256
+ $(MERGESAT ) /minisat/core/Lookahead$(OBJEXT ) : $(MERGESAT ) /minisat/core/Lookahead.cc
257
+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
258
+
259
+ $(MERGESAT ) /minisat/core/Solver$(OBJEXT ) : $(MERGESAT ) /minisat/core/Solver.cc
260
+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
261
+
262
+ $(MERGESAT ) /minisat/simp/SimpSolver$(OBJEXT ) : $(MERGESAT ) /minisat/simp/SimpSolver.cc
263
+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
264
+
265
+ $(MERGESAT ) /minisat/utils/ccnr$(OBJEXT ) : $(MERGESAT ) /minisat/utils/ccnr.cc
266
+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
267
+
268
+ $(MERGESAT ) /minisat/utils/Options$(OBJEXT ) : $(MERGESAT ) /minisat/utils/Options.cc
269
+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
270
+
271
+ $(MERGESAT ) /minisat/utils/System$(OBJEXT ) : $(MERGESAT ) /minisat/utils/System.cc
272
+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
273
+ endif
274
+ endif
275
+
235
276
ifneq ($(GLUCOSE ) ,)
236
277
ifeq ($(BUILD_ENV_ ) ,MSVC)
237
278
sat/satcheck_glucose$(OBJEXT ) : sat/satcheck_glucose.cpp
@@ -247,6 +288,7 @@ endif
247
288
248
289
INCLUDES += -I .. \
249
290
$(CHAFF_INCLUDE ) $(BOOLEFORCE_INCLUDE ) $(MINISAT_INCLUDE ) $(MINISAT2_INCLUDE ) \
291
+ $(MERGESAT_INCLUDE ) \
250
292
$(IPASIR_INCLUDE ) \
251
293
$(SQUOLEM2_INC ) $(CUDD_INCLUDE ) $(GLUCOSE_INCLUDE ) \
252
294
$(PICOSAT_INCLUDE ) $(LINGELING_INCLUDE ) $(CADICAL_INCLUDE )
@@ -265,7 +307,7 @@ endif
265
307
endif
266
308
267
309
SOLVER_LIB = $(CHAFF_LIB ) $(BOOLEFORCE_LIB ) $(MINISAT_LIB ) \
268
- $(MINISAT2_LIB ) $(SQUOLEM2_LIB ) $(CUDD_LIB ) \
310
+ $(MINISAT2_LIB ) $(MERGESAT_LIB ) $( SQUOLEM2_LIB ) $(CUDD_LIB ) \
269
311
$(PICOSAT_LIB ) $(LINGELING_LIB ) $(GLUCOSE_LIB ) $(CADICAL_LIB )
270
312
271
313
SOLVER_OBJS = $(filter % $(OBJEXT ) , $(SOLVER_LIB ) )
0 commit comments