blob: 30e8344aae9695a563837583608626f7eca0061c (
plain) (
blame)
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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
.POSIX:
CONFIGFILE = config.mk
include $(CONFIGFILE)
OS = linux
# Linux: linux
# Mac OS: macos
# Windows: windows
include mk/$(OS).mk
LIB_MAJOR = 1
LIB_MINOR = 0
LIB_VERSION = $(LIB_MAJOR).$(LIB_MINOR)
LIB_NAME = normalform
OBJ_PUBLIC =\
libnormalform_ref.o\
libnormalform_free.o\
libnormalform_clone.o\
libnormalform_evaluate.o\
libnormalform_express.o\
libnormalform_to_string.o\
libnormalform_from_string.o\
libnormalform_variable.o\
libnormalform_function.o\
libnormalform_transformation.o\
libnormalform_true.o\
libnormalform_false.o\
libnormalform_not.o\
libnormalform_all.o\
libnormalform_any.o\
libnormalform_one.o\
libnormalform_and.o\
libnormalform_or.o\
libnormalform_xor.o\
libnormalform_if.o\
libnormalform_imply.o\
libnormalform_nand.o\
libnormalform_nor.o\
libnormalform_xnor.o\
libnormalform_nif.o\
libnormalform_nimply.o\
libnormalform_exists.o\
libnormalform_nexists.o\
libnormalform_unique.o\
libnormalform_existentially.o\
libnormalform_universally.o\
libnormalform_uniquely.o\
libnormalform_empty.o\
libnormalform_nonempty.o\
libnormalform_singleton.o\
libnormalform_and_checked.o\
libnormalform_or_checked.o\
libnormalform_xor_checked.o\
libnormalform_if_checked.o\
libnormalform_imply_checked.o\
libnormalform_nand_checked.o\
libnormalform_nor_checked.o\
libnormalform_xnor_checked.o\
libnormalform_nif_checked.o\
libnormalform_nimply_checked.o\
libnormalform_vand.o\
libnormalform_vor.o\
libnormalform_vxor.o\
libnormalform_vif.o\
libnormalform_vimply.o\
libnormalform_vnand.o\
libnormalform_vnor.o\
libnormalform_vxnor.o\
libnormalform_vnif.o\
libnormalform_vnimply.o\
libnormalform_andl.o\
libnormalform_orl.o\
libnormalform_xorl.o\
libnormalform_ifl.o\
libnormalform_implyl.o\
libnormalform_nandl.o\
libnormalform_norl.o\
libnormalform_xnorl.o\
libnormalform_nifl.o\
libnormalform_nimplyl.o\
libnormalform_vand_checked.o\
libnormalform_vor_checked.o\
libnormalform_vxor_checked.o\
libnormalform_vif_checked.o\
libnormalform_vimply_checked.o\
libnormalform_vnand_checked.o\
libnormalform_vnor_checked.o\
libnormalform_vxnor_checked.o\
libnormalform_vnif_checked.o\
libnormalform_vnimply_checked.o\
libnormalform_andl_checked.o\
libnormalform_orl_checked.o\
libnormalform_xorl_checked.o\
libnormalform_ifl_checked.o\
libnormalform_implyl_checked.o\
libnormalform_nandl_checked.o\
libnormalform_norl_checked.o\
libnormalform_xnorl_checked.o\
libnormalform_nifl_checked.o\
libnormalform_nimplyl_checked.o\
libnormalform_and2.o\
libnormalform_or2.o\
libnormalform_xor2.o\
libnormalform_if2.o\
libnormalform_imply2.o\
libnormalform_nand2.o\
libnormalform_nor2.o\
libnormalform_xnor2.o\
libnormalform_nif2.o\
libnormalform_nimply2.o\
OBJ =\
$(OBJ_PUBLIC)\
libnormalform_and2__.o\
libnormalform_or2__.o\
libnormalform_xor2__.o\
libnormalform_set_indices_and_counts__.o\
libnormalform_reset_indices_and_counts__.o
TOBJ = $(OBJ:.o=.to)\
libnormalform_andl_macro_test.to\
libnormalform_orl_macro_test.to\
libnormalform_xorl_macro_test.to\
libnormalform_ifl_macro_test.to\
libnormalform_implyl_macro_test.to\
libnormalform_nandl_macro_test.to\
libnormalform_norl_macro_test.to\
libnormalform_xnorl_macro_test.to\
libnormalform_nifl_macro_test.to\
libnormalform_nimplyl_macro_test.to
HDR =\
libnormalform.h
MAN3 =\
$(OBJ_PUBLIC:.o=.3)\
LIBNORMALFORM_AND.3\
LIBNORMALFORM_OR.3\
LIBNORMALFORM_XOR.3\
LIBNORMALFORM_IF.3\
LIBNORMALFORM_IMPLY.3\
LIBNORMALFORM_NAND.3\
LIBNORMALFORM_NOR.3\
LIBNORMALFORM_XNOR.3\
LIBNORMALFORM_NIF.3\
LIBNORMALFORM_NIMPLY.3\
struct_libnormalform_map.3\
libnormalform_map.3\
struct_libnormalform_mapping.3\
libnormalform_mapping.3\
struct_libnormalform_representation_spec.3\
libnormalform_representation_spec.3\
struct_libnormalform_transformer.3\
libnormalform_transformer.3\
enum_libnormalform_builtin_transformer.3\
libnormalform_builtin_transformer.3\
struct_libnormalform_function.3\
struct_libnormalform_variable.3\
enum_libnormalform_value.3\
libnormalform_value.3\
LIBNORMALFORM_SENTENCE.3\
struct_libnormalform_sentence.3\
libnormalform_sentence.3
LOBJ = $(OBJ:.o=.lo)
TEST = $(TOBJ:.to=.t)
all: libnormalform.a libnormalform.$(LIBEXT) $(TEST)
$(OBJ): $(HDR) common.h
$(LOBJ): $(HDR) common.h
$(TOBJ): $(HDR) common.h
$(TEST): libnormalform.a $(MEMCHECK)
memcheck.to: memcheck.h
L = libnormalform
C = checked
$L_and2.to $L_andl.to $L_vand.to $L_and_$C.to $L_andl_$C.to $L_vand_$C.to $L_andl_macro_test.to : $L_and.c
$L_or2.to $L_orl.to $L_vor.to $L_or_$C.to $L_orl_$C.to $L_vor_$C.to $L_orl_macro_test.to : $L_or.c
$L_xor2.to $L_xorl.to $L_vxor.to $L_xor_$C.to $L_xorl_$C.to $L_vxor_$C.to $L_xorl_macro_test.to : $L_xor.c
$L_if2.to $L_ifl.to $L_vif.to $L_if_$C.to $L_ifl_$C.to $L_vif_$C.to $L_ifl_macro_test.to : $L_if.c
$L_imply2.to $L_implyl.to $L_vimply.to $L_imply_$C.to $L_implyl_$C.to $L_vimply_$C.to $L_implyl_macro_test.to : $L_imply.c
$L_nand2.to $L_nandl.to $L_vnand.to $L_nand_$C.to $L_nandl_$C.to $L_vnand_$C.to $L_nandl_macro_test.to : $L_nand.c
$L_nor2.to $L_norl.to $L_vnor.to $L_nor_$C.to $L_norl_$C.to $L_vnor_$C.to $L_norl_macro_test.to : $L_nor.c
$L_xnor2.to $L_xnorl.to $L_vxnor.to $L_xnor_$C.to $L_xnorl_$C.to $L_vxnor_$C.to $L_xnorl_macro_test.to : $L_xnor.c
$L_nif2.to $L_nifl.to $L_vnif.to $L_nif_$C.to $L_nifl_$C.to $L_vnif_$C.to $L_nifl_macro_test.to : $L_nif.c
$L_nimply2.to $L_nimplyl.to $L_vnimply.to $L_nimply_$C.to $L_nimplyl_$C.to $L_vnimply_$C.to $L_nimplyl_macro_test.to : $L_nimply.c
.c.o:
$(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS)
.c.lo:
$(CC) -fPIC -c -o $@ $< $(CFLAGS) $(CPPFLAGS)
.c.to:
$(CC) -DTEST -DTEST_TIMEOUT_SECONDS=$(TEST_TIMEOUT_SECONDS) -c -o $@ $< $(TEST_CFLAGS) $(TEST_CPPFLAGS)
.to.t:
$(CC) -o $@ $< libnormalform.a $(MEMCHECK_OBJ) $(TEST_LDFLAGS)
libnormalform.a: $(OBJ)
@rm -f -- $@
$(AR) rc $@ $(OBJ)
$(AR) ts $@ > /dev/null
libnormalform.$(LIBEXT): $(LOBJ)
$(CC) $(LIBFLAGS) -o $@ $(LOBJ) $(LDFLAGS)
check: $(TEST)
set -e;\
for t in $(TEST:.t=); do\
printf 'Testing %s\n' "$$t" >&2;\
$(CHECK_PREFIX) ./$$t.t;\
done
install: libnormalform.a libnormalform.$(LIBEXT)
mkdir -p -- "$(DESTDIR)$(PREFIX)/lib"
mkdir -p -- "$(DESTDIR)$(PREFIX)/include"
cp -- libnormalform.a "$(DESTDIR)$(PREFIX)/lib/"
cp -- libnormalform.$(LIBEXT) "$(DESTDIR)$(PREFIX)/lib/libnormalform.$(LIBMINOREXT)"
$(FIX_INSTALL_NAME) "$(DESTDIR)$(PREFIX)/lib/libnormalform.$(LIBMINOREXT)"
ln -sf -- libnormalform.$(LIBMINOREXT) "$(DESTDIR)$(PREFIX)/lib/libnormalform.$(LIBMAJOREXT)"
ln -sf -- libnormalform.$(LIBMAJOREXT) "$(DESTDIR)$(PREFIX)/lib/libnormalform.$(LIBEXT)"
cp -- libnormalform.h "$(DESTDIR)$(PREFIX)/include/"
mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man7"
cp -- libnormalform.7 "$(DESTDIR)$(MANPREFIX)/man7/"
mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man3"
cp -P -- $$(printf 'man3/%s\n' $(MAN3)) "$(DESTDIR)$(MANPREFIX)/man3/"
uninstall:
-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libnormalform.a"
-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libnormalform.$(LIBMAJOREXT)"
-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libnormalform.$(LIBMINOREXT)"
-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libnormalform.$(LIBEXT)"
-rm -f -- "$(DESTDIR)$(PREFIX)/include/libnormalform.h"
-rm -f -- "$(DESTDIR)$(MANPREFIX)/man7/libnormalform.7"
-(cd -- "$(DESTDIR)$(MANPREFIX)/man3/" && rm -f -- $(MAN3))
clean:
-rm -f -- *.o *.a *.lo *.su *.so *.so.* *.dll *.dylib
-rm -f -- *.gch *.gcov *.gcno *.gcda *.$(LIBEXT) *.t *.to
.SUFFIXES:
.SUFFIXES: .lo .o .c .t .to
.PHONY: all check install uninstall clean
|