chiark / gitweb /
Initial commit: successfully solved DL in GF(2^256).
[rhodes] / Makefile
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