add yaml parser!
[protos/libecoli.git] / lib / Makefile
index db3763c..bb446cf 100644 (file)
@@ -1,28 +1,5 @@
-#
+# SPDX-License-Identifier: BSD-3-Clause
 # Copyright 2016, Olivier MATZ <zer0@droids-corp.org>
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-#     * Redistributions of source code must retain the above copyright
-#       notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above copyright
-#       notice, this list of conditions and the following disclaimer in the
-#       documentation and/or other materials provided with the distribution.
-#     * Neither the name of the University of California, Berkeley nor the
-#       names of its contributors may be used to endorse or promote products
-#       derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 ECOLI ?= $(abspath ..)
 include $(ECOLI)/mk/ecoli-pre.mk
@@ -30,14 +7,54 @@ include $(ECOLI)/mk/ecoli-pre.mk
 # output path with trailing slash
 O ?= build/
 
-CFLAGS  = -g -O0 -Wall -Werror -W -fPIC
+# XXX -O0
+CFLAGS  = -g -O0 -Wall -Werror -W -Wextra -fPIC -Wmissing-prototypes
 CFLAGS += -I.
 
-srcs := ecoli_tk.c ecoli_malloc.c ecoli_log.c ecoli_strvec.c
-srcs += ecoli_keyval.c ecoli_test.c
-srcs += ecoli_tk_str.c ecoli_tk_seq.c ecoli_tk_space.c ecoli_tk_or.c
-srcs += ecoli_tk_empty.c ecoli_tk_int.c ecoli_tk_option.c ecoli_tk_many.c
-srcs += ecoli_tk_shlex.c ecoli_tk_expr.c ecoli_tk_bypass.c ecoli_tk_re_lex.c
+# XXX coverage
+CFLAGS += --coverage
+LDFLAGS += --coverage
+#  rm -rf build; rm -rf result; make && ./build/test
+#  lcov -d build -c -t build/test -o test.info && genhtml -o result test.info
+
+
+srcs :=
+srcs += ecoli_assert.c
+srcs += ecoli_complete.c
+srcs += ecoli_config.c
+srcs += ecoli_keyval.c
+srcs += ecoli_init.c
+srcs += ecoli_log.c
+srcs += ecoli_malloc.c
+srcs += ecoli_murmurhash.c
+srcs += ecoli_strvec.c
+srcs += ecoli_test.c
+srcs += ecoli_node.c
+srcs += ecoli_node_any.c
+srcs += ecoli_node_cmd.c
+srcs += ecoli_node_empty.c
+srcs += ecoli_node_expr.c
+srcs += ecoli_node_expr_test.c
+srcs += ecoli_node_dynamic.c
+srcs += ecoli_node_file.c
+srcs += ecoli_node_helper.c
+srcs += ecoli_node_int.c
+srcs += ecoli_node_many.c
+srcs += ecoli_node_none.c
+srcs += ecoli_node_once.c
+srcs += ecoli_node_option.c
+srcs += ecoli_node_or.c
+srcs += ecoli_node_re.c
+srcs += ecoli_node_re_lex.c
+srcs += ecoli_node_seq.c
+srcs += ecoli_node_sh_lex.c
+srcs += ecoli_node_space.c
+srcs += ecoli_node_str.c
+srcs += ecoli_node_subset.c
+srcs += ecoli_parse.c
+srcs += ecoli_string.c
+srcs += ecoli_vec.c
+
 shlib-y-$(O)libecoli.so := $(srcs)
 
 ldflags-$(O)test = -rdynamic
@@ -46,6 +63,9 @@ exe-y-$(O)test = $(srcs) main.c
 ldflags-$(O)readline = -lreadline -ltermcap
 exe-y-$(O)readline = $(srcs) main-readline.c
 
+ldflags-$(O)parse-yaml = -lyaml
+exe-y-$(O)parse-yaml = $(srcs) parse-yaml.c
+
 include $(ECOLI)/mk/ecoli-post.mk
 
 all: _ecoli_all