@@ -22,6 +22,21 @@ ifneq ($(MINISAT2),)
2222 CLEANFILES += $(MINISAT2_LIB ) $(patsubst % $(OBJEXT ) , % $(DEPEXT ) , $(MINISAT2_LIB ) )
2323endif
2424
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+
2540ifneq ($(IPASIR ) ,)
2641 IPASIR_SRC =sat/satcheck_ipasir.cpp
2742 IPASIR_INCLUDE =-I $(IPASIR )
@@ -74,6 +89,7 @@ SRC = $(BOOLEFORCE_SRC) \
7489 $(GLUCOSE_SRC ) \
7590 $(LINGELING_SRC ) \
7691 $(MINISAT2_SRC ) \
92+ $(MERGESAT_SRC ) \
7793 $(IPASIR_SRC ) \
7894 $(MINISAT_SRC ) \
7995 $(PICOSAT_SRC ) \
@@ -226,6 +242,31 @@ $(MINISAT2)/minisat/core/Solver$(OBJEXT): $(MINISAT2)/minisat/core/Solver.cc
226242endif
227243endif
228244
245+ ifneq ($(MERGESAT ) ,)
246+ ifeq ($(BUILD_ENV_ ) ,MSVC)
247+ sat/satcheck_minisat2$(OBJEXT ) : sat/satcheck_minisat2.cpp
248+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
249+
250+ $(MERGESAT ) /minisat/core/Lookahead$(OBJEXT ) : $(MERGESAT ) /minisat/core/Lookahead.cc
251+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
252+
253+ $(MERGESAT ) /minisat/core/Solver$(OBJEXT ) : $(MERGESAT ) /minisat/core/Solver.cc
254+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
255+
256+ $(MERGESAT ) /minisat/simp/SimpSolver$(OBJEXT ) : $(MERGESAT ) /minisat/simp/SimpSolver.cc
257+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
258+
259+ $(MERGESAT ) /minisat/utils/ccnr$(OBJEXT ) : $(MERGESAT ) /minisat/utils/ccnr.cc
260+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
261+
262+ $(MERGESAT ) /minisat/utils/Options$(OBJEXT ) : $(MERGESAT ) /minisat/utils/Options.cc
263+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
264+
265+ $(MERGESAT ) /minisat/utils/System$(OBJEXT ) : $(MERGESAT ) /minisat/utils/System.cc
266+ $(CXX ) $(CP_CXXFLAGS ) /w /nologo /c /EHsc $< /Fo$@
267+ endif
268+ endif
269+
229270ifneq ($(GLUCOSE ) ,)
230271ifeq ($(BUILD_ENV_ ) ,MSVC)
231272sat/satcheck_glucose$(OBJEXT ) : sat/satcheck_glucose.cpp
@@ -241,6 +282,7 @@ endif
241282
242283INCLUDES += -I .. \
243284 $(CHAFF_INCLUDE ) $(BOOLEFORCE_INCLUDE ) $(MINISAT_INCLUDE ) $(MINISAT2_INCLUDE ) \
285+ $(MERGESAT_INCLUDE ) \
244286 $(IPASIR_INCLUDE ) \
245287 $(SQUOLEM2_INC ) $(CUDD_INCLUDE ) $(GLUCOSE_INCLUDE ) \
246288 $(PICOSAT_INCLUDE ) $(LINGELING_INCLUDE ) $(CADICAL_INCLUDE )
@@ -259,7 +301,7 @@ endif
259301endif
260302
261303SOLVER_LIB = $(CHAFF_LIB ) $(BOOLEFORCE_LIB ) $(MINISAT_LIB ) \
262- $(MINISAT2_LIB ) $(SQUOLEM2_LIB ) $(CUDD_LIB ) \
304+ $(MINISAT2_LIB ) $(MERGESAT_LIB ) $( SQUOLEM2_LIB ) $(CUDD_LIB ) \
263305 $(PICOSAT_LIB ) $(LINGELING_LIB ) $(GLUCOSE_LIB ) $(CADICAL_LIB )
264306
265307SOLVER_OBJS = $(filter % $(OBJEXT ) , $(SOLVER_LIB ) )
0 commit comments