File: makefile.in

package info (click to toggle)
cadical 2.1.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,216 kB
  • sloc: cpp: 36,901; ansic: 4,521; sh: 1,770; makefile: 91
file content (107 lines) | stat: -rw-r--r-- 3,419 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#==========================================================================#
# 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@
CPPFLAGS=@CPPFLAGS@
LDFLAGS=@LDFLAGS@

LIBS=@LIBS@
CONTRIB=@CONTRIB@
IPASIR=@IPASIR@

############################################################################
#    It is usually not necessary to change anything below this line!       #
############################################################################

SRC_APP=cadical.cpp mobical.cpp

SRC_IPASIR=src/ipasir.cpp
SRC_SOLVER=$(subst ../src/,,$(sort $(wildcard ../src/*.cpp)))
SRC_CONTRIB=$(subst ../contrib/,,$(sort $(wildcard ../contrib/*.cpp)))

FILT_SOLVER=$(filter-out $(SRC_APP),$(SRC_SOLVER))
FILT_SOLVER:=$(if $(filter-out no,$(IPASIR)),$(FILT_SOLVER),$(filter-out $(SRC_IPASIR), $(FILT_SOLVER)))
FILT_CONTRIB=$(if $(filter-out no,$(CONTRIB)),$(SRC_CONTRIB),)
OBJ_SOLVER=$(FILT_SOLVER:.cpp=.o)
OBJ_CONTRIB=$(FILT_CONTRIB:.cpp=.o)

# Include for the current build directory is required for including the
# generated build header 'build.hpp'.

DIR=../$(shell pwd|sed -e 's,.*/,,')
COMPILE=$(CXX) $(CXXFLAGS) $(CPPFLAGS) -I$(DIR) -I../src

#--------------------------------------------------------------------------#

all: libcadical.a cadical mobical

#--------------------------------------------------------------------------#

.SUFFIXES: .cpp .o

%.o: ../*/%.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 $@ $< $(LDFLAGS) -L. -lcadical $(LIBS)

mobical: mobical.o libcadical.a makefile $(LIBS)
	$(COMPILE) -o $@ $< $(LDFLAGS) -L. -lcadical

libcadical.a: $(OBJ_SOLVER) $(OBJ_CONTRIB) makefile
	ar rc $@ $(OBJ_SOLVER) $(OBJ_CONTRIB)

#--------------------------------------------------------------------------#

# 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
	$(COMPILE) --analyze ../contrib/*.cpp

format:
	clang-format -i ../*/*.[ch]pp
	clang-format -i ../*/*.[ch]
	clang-format -i ../test/*/*.[ch]pp
	clang-format -i ../test/*/*.[ch]

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 format