forked from blynn/pbc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.mingw
231 lines (212 loc) · 10.7 KB
/
Makefile.mingw
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
# these (uppercase) variables apply to gmake-builtin rules
CC:=gcc
MINGW_INCLUDE := "C:\Program Files\cygwin\usr\include\mingw"
MINGW_LIB := "C:\Program Files\cygwin\lib\mingw"
INCLUDES := -Iinclude -I$(MINGW_INCLUDE)
warnflags := -Wall -W -Wfloat-equal -Wshadow \
-Wpointer-arith -Wcast-align -Wstrict-prototypes \
-Wredundant-decls #-std=c99 -pedantic
CFLAGS := -O3 $(INCLUDES) $(warnflags) -pipe -ffast-math -fomit-frame-pointer
LDFLAGS := -L. -L$(MINGW_LIB)
LDLIBS := -lgmp -lm
TARGET_DIR:=/usr/local
# source file list.
# add a new .c file to exactly one of these ...
libpbc_srcs := \
arith/field.c arith/fieldmpz.c \
arith/fp.c arith/tinyfp.c arith/naivefp.c \
arith/fastfp.c arith/fasterfp.c arith/montfp.c \
arith/indexcalculus.c \
arith/fieldquadratic.c arith/poly.c \
arith/random.c \
misc/parse.c misc/darray.c misc/symtab.c misc/get_time.win32.c \
misc/extend_printf.c \
ecc/mpc.c ecc/mnt.c ecc/hilbert.c \
ecc/curve.c ecc/pairing.c ecc/param.c \
ecc/singular.c \
ecc/a_param.c ecc/d_param.c ecc/e_param.c ecc/f_param.c
libsig_srcs := sig/hash.c sig/sig.c # eventually also bbs.c ...
test_srcs := test/testbls.c test/testbb.c test/testsig.c test/testbbs.c \
test/testibs.c \
bce/testbce.c \
test/testibe.c \
test/testhilbert.c test/listmnt.c \
test/genaparam.c test/gencparam.c test/geneparam.c test/genfparam.c \
test/gena1param.c \
test/testpairing.c test/testpoly.c \
test/benchmark.c \
test/19.c test/sing.c test/pbc.c
srcs := $(libpbc_srcs) $(libsig_srcs) $(test_srcs) test/pbc_getline.c
libpbc_objs := $(libpbc_srcs:.c=.o)
libsig_objs := $(libsig_srcs:.c=.o)
objs := $(srcs:.c=.o)
libs := libpbc.a libpbc_sig.a
binaries := $(test_srcs:.c=)
.PHONY: target clean spotless depend
target: $(libs) $(binaries)
# file dependencies for library-making
# see GNU Make manual, sect. 11.2 for explanation
libpbc.a: libpbc.a($(libpbc_objs))
ranlib $@
libpbc_sig.a: libpbc_sig.a($(libsig_objs))
ranlib $@
# the test binaries. when adding a new test binary, add a line here
# to specify its dependencies
test/benchmark: test/benchmark.o libpbc.a
test/testhilbert: test/testhilbert.o libpbc.a
bce/testbce: bce/testbce.o bce/bce.o libpbc.a
test/testbbs: test/testbbs.o libpbc.a
test/testbls: test/testbls.o libpbc_sig.a libpbc.a
test/testibs: test/testibs.o libpbc_sig.a libpbc.a
test/testbb: test/testbb.o libpbc_sig.a libpbc.a
test/testsig: test/testsig.o libpbc.a
test/testibe: test/testibe.o libpbc.a
test/testpairing: test/testpairing.o libpbc.a
test/genaparam: test/genaparam.o libpbc.a
test/gencparam: test/gencparam.o libpbc.a
test/geneparam: test/geneparam.o libpbc.a
test/genfparam: test/genfparam.o libpbc.a
test/gena1param: test/gena1param.o libpbc.a
test/listmnt: test/listmnt.o libpbc.a
test/testpoly: test/testpoly.o libpbc.a
test/19: test/19.o libpbc.a
test/sing: test/sing.o libpbc.a
test/pbc: test/pbc.o test/pbc_getline.o libpbc.a
install: libpbc.a libpbc_sig.a
install -m 644 libpbc.a $(TARGET_DIR)/lib
install -m 644 libpbc_sig.a $(TARGET_DIR)/lib
test -z $(TARGET_DIR)/include/pbc || mkdir -p -- $(TARGET_DIR)/include/pbc
cp include/*.h $(TARGET_DIR)/include/pbc
clean:
-rm -f $(binaries) $(libs) $(objs)
spotless: clean
-rm -f Makefile.mingw.bak *~ core
depend:
makedepend -fMakefile.mingw -Y -- $(CFLAGS) -- $(srcs) 2> /dev/null
# DO NOT DELETE
arith/field.o: include/darray.h include/field.h include/utils.h
arith/fieldmpz.o: include/field.h include/random.h include/utils.h
arith/fieldmpz.o: include/fp.h
arith/fp.o: include/field.h include/fp.h
arith/tinyfp.o: include/field.h include/random.h include/fp.h
arith/naivefp.o: include/field.h include/random.h include/utils.h
arith/naivefp.o: include/fp.h
arith/fastfp.o: include/field.h include/random.h include/fp.h
arith/fasterfp.o: include/field.h include/random.h include/fp.h
arith/montfp.o: include/field.h include/random.h include/fp.h
arith/indexcalculus.o: include/pbc.h include/fops.h include/symtab.h
arith/indexcalculus.o: include/darray.h include/field.h include/pairing.h
arith/indexcalculus.o: include/poly.h include/curve.h include/mnt.h
arith/indexcalculus.o: include/random.h include/utils.h
arith/fieldquadratic.o: include/field.h include/fieldquadratic.h
arith/fieldquadratic.o: include/utils.h
arith/poly.o: include/field.h include/darray.h include/poly.h
arith/random.o: include/random.h include/utils.h
misc/parse.o: include/fops.h include/parse.h include/tracker.h
misc/darray.o: include/noleak.h include/darray.h
misc/symtab.o: include/symtab.h include/darray.h
misc/get_time.win32.o: include/utils.h
misc/extend_printf.o: include/utils.h include/field.h
ecc/mpc.o: include/darray.h include/mpc.h
ecc/mnt.o: include/darray.h include/mnt.h
ecc/hilbert.o: include/field.h include/darray.h include/poly.h
ecc/hilbert.o: include/hilbert.h include/mpc.h
ecc/curve.o: include/field.h include/darray.h include/poly.h include/curve.h
ecc/pairing.o: include/field.h include/darray.h include/poly.h
ecc/pairing.o: include/curve.h include/fops.h include/symtab.h
ecc/pairing.o: include/parse.h include/tracker.h include/pairing.h
ecc/pairing.o: include/a_param.h include/mnt.h include/d_param.h
ecc/pairing.o: include/e_param.h include/f_param.h include/a1_param.h
ecc/pairing.o: include/utils.h
ecc/param.o: include/symtab.h include/darray.h include/fops.h include/parse.h
ecc/param.o: include/tracker.h include/utils.h
ecc/singular.o: include/field.h include/curve.h include/fops.h
ecc/singular.o: include/pairing.h include/fp.h include/utils.h
ecc/a_param.o: include/symtab.h include/darray.h include/fops.h
ecc/a_param.o: include/field.h include/fp.h include/fieldquadratic.h
ecc/a_param.o: include/pairing.h include/a_param.h include/a1_param.h
ecc/a_param.o: include/curve.h include/param.h include/random.h
ecc/a_param.o: include/tracker.h include/utils.h
ecc/d_param.o: include/fops.h include/symtab.h include/darray.h
ecc/d_param.o: include/field.h include/poly.h include/fp.h
ecc/d_param.o: include/fieldquadratic.h include/hilbert.h include/mnt.h
ecc/d_param.o: include/curve.h include/pairing.h include/d_param.h
ecc/d_param.o: include/param.h include/tracker.h include/utils.h
ecc/e_param.o: include/fops.h include/symtab.h include/darray.h
ecc/e_param.o: include/field.h include/fp.h include/pairing.h
ecc/e_param.o: include/e_param.h include/param.h include/curve.h
ecc/e_param.o: include/random.h include/tracker.h include/utils.h
ecc/f_param.o: include/fops.h include/symtab.h include/darray.h
ecc/f_param.o: include/field.h include/fp.h include/fieldquadratic.h
ecc/f_param.o: include/pairing.h include/f_param.h include/param.h
ecc/f_param.o: include/poly.h include/curve.h include/tracker.h
ecc/f_param.o: include/utils.h include/get_time.h
sig/hash.o: include/hash.h
sig/sig.o: include/pbc_sig.h include/pbc.h include/fops.h include/symtab.h
sig/sig.o: include/darray.h include/field.h include/pairing.h include/poly.h
sig/sig.o: include/curve.h include/mnt.h include/hash.h
test/testbls.o: include/pbc_sig.h include/pbc.h include/fops.h
test/testbls.o: include/symtab.h include/darray.h include/field.h
test/testbls.o: include/pairing.h include/poly.h include/curve.h
test/testbls.o: include/mnt.h
test/testbb.o: include/pbc_sig.h include/pbc.h include/fops.h
test/testbb.o: include/symtab.h include/darray.h include/field.h
test/testbb.o: include/pairing.h include/poly.h include/curve.h include/mnt.h
test/testsig.o: include/pbc.h include/fops.h include/symtab.h
test/testsig.o: include/darray.h include/field.h include/pairing.h
test/testsig.o: include/poly.h include/curve.h include/mnt.h
test/testbbs.o: include/pbc.h include/fops.h include/symtab.h
test/testbbs.o: include/darray.h include/field.h include/pairing.h
test/testbbs.o: include/poly.h include/curve.h include/mnt.h
test/testbbs.o: include/get_time.h include/utils.h
test/testibs.o: include/pbc_sig.h include/pbc.h include/fops.h
test/testibs.o: include/symtab.h include/darray.h include/field.h
test/testibs.o: include/pairing.h include/poly.h include/curve.h
test/testibs.o: include/mnt.h
bce/testbce.o: include/pbc.h include/fops.h include/symtab.h include/darray.h
bce/testbce.o: include/field.h include/pairing.h include/poly.h
bce/testbce.o: include/curve.h include/mnt.h bce/bce.h
test/testibe.o: include/pbc.h include/fops.h include/symtab.h
test/testibe.o: include/darray.h include/field.h include/pairing.h
test/testibe.o: include/poly.h include/curve.h include/mnt.h
test/testhilbert.o: include/field.h include/darray.h include/poly.h
test/testhilbert.o: include/hilbert.h
test/listmnt.o: include/pbc.h include/fops.h include/symtab.h
test/listmnt.o: include/darray.h include/field.h include/pairing.h
test/listmnt.o: include/poly.h include/curve.h include/mnt.h
test/genaparam.o: include/pbc.h include/fops.h include/symtab.h
test/genaparam.o: include/darray.h include/field.h include/pairing.h
test/genaparam.o: include/poly.h include/curve.h include/mnt.h
test/genaparam.o: include/a_param.h
test/geneparam.o: include/pbc.h include/fops.h include/symtab.h
test/geneparam.o: include/darray.h include/field.h include/pairing.h
test/geneparam.o: include/poly.h include/curve.h include/mnt.h
test/geneparam.o: include/e_param.h
test/genfparam.o: include/pbc.h include/fops.h include/symtab.h
test/genfparam.o: include/darray.h include/field.h include/pairing.h
test/genfparam.o: include/poly.h include/curve.h include/mnt.h
test/genfparam.o: include/f_param.h
test/gena1param.o: include/pbc.h include/fops.h include/symtab.h
test/gena1param.o: include/darray.h include/field.h include/pairing.h
test/gena1param.o: include/poly.h include/curve.h include/mnt.h
test/gena1param.o: include/a1_param.h
test/testpairing.o: include/pbc.h include/fops.h include/symtab.h
test/testpairing.o: include/darray.h include/field.h include/pairing.h
test/testpairing.o: include/poly.h include/curve.h include/mnt.h
test/testpoly.o: include/pbc.h include/fops.h include/symtab.h
test/testpoly.o: include/darray.h include/field.h include/pairing.h
test/testpoly.o: include/poly.h include/curve.h include/mnt.h include/fp.h
test/benchmark.o: include/pbc.h include/fops.h include/symtab.h
test/benchmark.o: include/darray.h include/field.h include/pairing.h
test/benchmark.o: include/poly.h include/curve.h include/mnt.h
test/benchmark.o: include/get_time.h
test/19.o: include/pbc.h include/fops.h include/symtab.h include/darray.h
test/19.o: include/field.h include/pairing.h include/poly.h include/curve.h
test/19.o: include/mnt.h include/fp.h include/fieldquadratic.h
test/sing.o: include/pbc.h include/fops.h include/symtab.h include/darray.h
test/sing.o: include/field.h include/pairing.h include/poly.h include/curve.h
test/sing.o: include/mnt.h include/singular.h include/fp.h
test/pbc.o: include/pbc.h include/fops.h include/symtab.h include/darray.h
test/pbc.o: include/field.h include/pairing.h include/poly.h include/curve.h
test/pbc.o: include/mnt.h include/fieldmpz.h include/fp.h include/utils.h
test/pbc.o: include/a_param.h