2 # Copyright 2016, Olivier MATZ <zer0@droids-corp.org>
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are met:
7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above copyright
10 # notice, this list of conditions and the following disclaimer in the
11 # documentation and/or other materials provided with the distribution.
12 # * Neither the name of the University of California, Berkeley nor the
13 # names of its contributors may be used to endorse or promote products
14 # derived from this software without specific prior written permission.
16 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
17 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 # DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
20 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 ECOLI ?= $(abspath ..)
28 include $(ECOLI)/mk/ecoli-pre.mk
30 # output path with trailing slash
34 CFLAGS = -g -O0 -Wall -Werror -W -Wextra -fPIC -Wmissing-prototypes
38 CFLAGS += --coverage -fprofile-arcs -ftest-coverage
40 # rm -rf build; rm -rf result; make && ./build/test
41 # lcov -d build -c -t build/test -o test.info && genhtml -o result test.info
45 srcs += ecoli_assert.c
46 srcs += ecoli_completed.c
47 srcs += ecoli_keyval.c
50 srcs += ecoli_malloc.c
51 srcs += ecoli_murmurhash.c
52 srcs += ecoli_strvec.c
55 srcs += ecoli_node_any.c
56 srcs += ecoli_node_cmd.c
57 srcs += ecoli_node_empty.c
58 srcs += ecoli_node_expr.c
59 srcs += ecoli_node_expr_test.c
60 srcs += ecoli_node_file.c
61 srcs += ecoli_node_int.c
62 srcs += ecoli_node_many.c
63 srcs += ecoli_node_none.c
64 srcs += ecoli_node_once.c
65 srcs += ecoli_node_option.c
66 srcs += ecoli_node_or.c
67 srcs += ecoli_node_re.c
68 srcs += ecoli_node_re_lex.c
69 srcs += ecoli_node_seq.c
70 srcs += ecoli_node_sh_lex.c
71 srcs += ecoli_node_space.c
72 srcs += ecoli_node_str.c
73 srcs += ecoli_node_subset.c
74 srcs += ecoli_node_weakref.c
75 srcs += ecoli_parsed.c
76 srcs += ecoli_string.c
79 shlib-y-$(O)libecoli.so := $(srcs)
81 ldflags-$(O)test = -rdynamic
82 exe-y-$(O)test = $(srcs) main.c
84 ldflags-$(O)readline = -lreadline -ltermcap
85 exe-y-$(O)readline = $(srcs) main-readline.c
87 include $(ECOLI)/mk/ecoli-post.mk