#==========================================================================# # This is a 'makefile.in' template with '@CXX@' and '@CXXFLAGS@' parameters. # This makefile requires GNU make. #==========================================================================# # The '../scripts/make-build-header.sh' script searches for the next two # lines to figure out the compiler and compilation flags. This information # is then used to generate corresponding macros in 'build.hpp'. CXX=@CXX@ CXXFLAGS=@CXXFLAGS@ # Mainly used for parallel build ('-j' option to 'configure') MAKEFLAGS=@MAKEFLAGS@ ############################################################################ # It is usually not necessary to change anything below this line! # ############################################################################ APP=cadical.cpp mobical.cpp SRC=$(sort $(wildcard ../src/*.cpp)) SUB=$(subst ../src/,,$(SRC)) LIB=$(filter-out $(APP),$(SUB)) OBJ=$(LIB:.cpp=.o) DIR=../$(shell pwd|sed -e 's,.*/,,') COMPILE=$(CXX) $(CXXFLAGS) -I$(DIR) #--------------------------------------------------------------------------# all: libcadical.a cadical mobical #--------------------------------------------------------------------------# .SUFFIXES: .cpp .o %.o: ../src/%.cpp ../src/*.hpp makefile $(COMPILE) -c $< #--------------------------------------------------------------------------# # Application binaries (the stand alone solver 'cadical' and the model based # tester 'mobical') and the library are the main build targets. cadical: cadical.o libcadical.a makefile $(COMPILE) -o $@ $< -L. -lcadical mobical: mobical.o libcadical.a makefile $(COMPILE) -o $@ $< -L. -lcadical libcadical.a: $(OBJ) makefile ar rc $@ $(OBJ) #--------------------------------------------------------------------------# # Note that 'build.hpp' is generated and resides in the build directory. build.hpp: always ../scripts/make-build-header.sh > build.hpp version.o: build.hpp update: ../scripts/update-version.sh #--------------------------------------------------------------------------# # These two 'C' interfaces include '.h' headers and thus require explicitly # defined additional dependencies. ccadical.o: ../src/ccadical.h ipasir.o: ../src/ipasir.h ../src/ccadical.h #--------------------------------------------------------------------------# analyze: all $(COMPILE) --analyze ../src/*.cpp clean: rm -f *.o *.a cadical mobical makefile build.hpp rm -f *.gcda *.gcno *.gcov gmon.out test: all CADICALBUILD="$(DIR)" $(MAKE) -j1 -C ../test #--------------------------------------------------------------------------# .PHONY: all always analyze clean test update