aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Makefile251
1 files changed, 251 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..30e8344
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,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