107cb808fedbca94f79ae33f9100671426170788
[protos/libecoli.git] / lib / Makefile
1 #
2 # Copyright 2016, Olivier MATZ <zer0@droids-corp.org>
3 #
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are met:
6 #
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.
15 #
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.
26
27 ECOLI ?= $(abspath ..)
28 include $(ECOLI)/mk/ecoli-pre.mk
29
30 # output path with trailing slash
31 O ?= build/
32
33 # XXX -O0
34 CFLAGS  = -g -O0 -Wall -Werror -W -Wextra -fPIC -Wmissing-prototypes
35 CFLAGS += -I.
36
37 # XXX coverage
38 CFLAGS += --coverage -fprofile-arcs -ftest-coverage
39 LDFLAGS += --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
42
43
44 srcs :=
45 srcs += ecoli_completed.c
46 srcs += ecoli_keyval.c
47 srcs += ecoli_log.c
48 srcs += ecoli_malloc.c
49 srcs += ecoli_strvec.c
50 srcs += ecoli_test.c
51 srcs += ecoli_node.c
52 srcs += ecoli_node_cmd.c
53 srcs += ecoli_node_empty.c
54 srcs += ecoli_node_expr.c
55 srcs += ecoli_node_expr_test.c
56 #srcs += ecoli_node_file.c
57 srcs += ecoli_node_int.c
58 srcs += ecoli_node_many.c
59 srcs += ecoli_node_once.c
60 srcs += ecoli_node_option.c
61 srcs += ecoli_node_or.c
62 srcs += ecoli_node_re.c
63 srcs += ecoli_node_re_lex.c
64 srcs += ecoli_node_seq.c
65 srcs += ecoli_node_sh_lex.c
66 srcs += ecoli_node_space.c
67 srcs += ecoli_node_str.c
68 srcs += ecoli_node_subset.c
69 srcs += ecoli_node_weakref.c
70 srcs += ecoli_parsed.c
71 srcs += ecoli_vec.c
72
73 shlib-y-$(O)libecoli.so := $(srcs)
74
75 ldflags-$(O)test = -rdynamic
76 exe-y-$(O)test = $(srcs) main.c
77
78 ldflags-$(O)readline = -lreadline -ltermcap
79 exe-y-$(O)readline = $(srcs) main-readline.c
80
81 include $(ECOLI)/mk/ecoli-post.mk
82
83 all: _ecoli_all
84
85 clean: _ecoli_clean
86
87 .PHONY: clean all