Commit | Line | Data |
---|---|---|
a78da4e7 MW |
1 | all:: |
2 | ||
3 | PROGS += rho | |
4 | rho_SRCS = rho.cc | |
5 | rho_LIBS = -lntl | |
6 | ||
7 | PROGS += factor | |
8 | factor_SRCS = factor.c | |
9 | factor_LIBS = -lpari | |
10 | ||
11 | TARGETS = | |
12 | CLEAN += $(TARGETS) | |
13 | .SECONDEXPANSION: | |
14 | ||
15 | V = 0 | |
16 | v_tag = $(call v_tag_$V,$1) | |
17 | v_tag_0 = @printf " %-6s %s\n" $1 $@; | |
18 | V_AT = $(V_AT_$V) | |
19 | V_AT_0 = @ | |
20 | ||
21 | CC = gcc | |
22 | CFLAGS = -O2 -g -Wall -Werror | |
23 | CCLD = $(CC) | |
24 | LDFLAGS = | |
25 | CCLINK = $(call v_tag,CCLD)$(CCLD) $(LDFLAGS) | |
26 | ||
27 | AS = $(CC) | |
28 | ||
29 | CXX = g++ | |
30 | CXXFLAGS = $(CFLAGS) -std=gnu++11 | |
31 | CXXLD = $(CXX) | |
32 | CXXLINK = $(call v_tag,CXXLD)$(CXXLD) $(LDFLAGS) | |
33 | ||
34 | CLEAN += *.o *.d | |
35 | ||
36 | %.o: %.c | |
37 | $(call v_tag,CC)$(CC) -c $(CFLAGS) -MD -o$@ $< | |
38 | ||
39 | %.o: %.cc | |
40 | $(call v_tag,CXX)$(CXX) -c $(CXXFLAGS) -MD -o$@ $< | |
41 | ||
42 | objify = \ | |
43 | $(patsubst %.c,%.o, \ | |
44 | $(patsubst %.cc,%.o, \ | |
45 | $(patsubst %.s,%.o, $(patsubst %.S,%.o, \ | |
46 | $1)))) | |
47 | ||
48 | TARGETS += $(PROGS) | |
49 | ||
50 | $(PROGS): %: $$(call objify,$$($$*_SRCS)) | |
51 | $(or $(and $(filter %.cc,$($*_SRCS)),$(CXXLINK)),$(CCLINK)) -o$@ \ | |
52 | $($*_LDFLAGS) $^ $($*_LIBS) $(LIBS) | |
53 | ||
54 | clean:: | |
55 | rm -f $(CLEAN) | |
56 | .PHONY: clean | |
57 | ||
58 | all:: $(TARGETS) | |
59 | .PHONY: all |