-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMakefile.in
More file actions
75 lines (61 loc) · 1.85 KB
/
Copy pathMakefile.in
File metadata and controls
75 lines (61 loc) · 1.85 KB
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
CC=@CC@
CFLAGS=@CFLAGS@ @EXTRA_CFLAGS@
LDFLAGS=@LDFLAGS@ @EXTRA_LDFLAGS@
LIBS=@EXTRA_LIBS@ @LIBS@
DEVELOP_BUILD=@DEVELOP_BUILD@
ROOT_DIR=@ROOT_DIR@
BUILTIN_SCANNER=@BUILTIN_SCANNER@
LIBDEPS=$(ROOT_DIR)/deps/lib
INCDIR=$(ROOT_DIR)/include
BINDIR =$(ROOT_DIR)/bin
LIBDIR =$(ROOT_DIR)/lib
EXEC_SRC = logd.c
EXEC_OBJ = logd.o
SRCS = $(wildcard *.c)
SCANNERS_SRC = $(wildcard *scanner.c)
BUILTIN_SCANNER_OBJ=$(patsubst %.c,%.o,$(BUILTIN_SCANNER))
LUA_SRCS = $(wildcard *.lua)
OBJS = $(filter-out $(EXEC_OBJ) $(patsubst %.c, %.o,$(SCANNERS_SRC)), $(patsubst %.c,%.o,$(SRCS))) $(BUILTIN_SCANNER_OBJ)
LUAMOD = $(patsubst %.lua,%.lua.h,$(LUA_SRCS))
EXEC = $(addprefix $(BINDIR)/,$(patsubst %.c,%,$(EXEC_SRC)))
CMOD = $(LIBDIR)/logd.so
CMOD_DEPS=log.c util.c
SO_SCANNERS = $(patsubst %.c,$(LIBDIR)/logd_%.so,$(SCANNERS_SRC))
SCANNER_DEPS=log.c util.c
LIB = $(LIBDIR)/liblogd.a
.PHONY: clean install
default: src
ifeq ($(DEVELOP_BUILD),yes)
src: $(LIB) $(LUAMOD) $(EXEC) $(CMOD) $(SO_SCANNERS)
else
src: $(LIB) $(LUAMOD) $(EXEC) $(SO_SCANNERS)
endif
lua.c: $(LUAMOD)
%.lua.h: %.lua
@ echo " XXD $@"
@ xxd -i $< > $@
%.o: %.c %.h
$(CC) $(CFLAGS) -c $<
$(LIB): $(OBJS)
@ mkdir -p $(INCDIR)/logd
@ echo " AR $@"
@ $(AR) rcs $(LIB) $(OBJS)
@ ranlib $(LIB)
$(BINDIR)/%: %.c $(LIB)
$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $< $(LIB) $(LIBS)
$(LIBDIR)/logd_%.so: %.c scanner.h $(SCANNER_DEPS)
$(CC) -o $@ $(CFLAGS) -shared -fPIC $(patsubst $(LIBDIR)/logd_%.so,%.c,$@) $(SCANNER_DEPS)
$(CMOD): logd_module.h logd_module.c $(CMOD_DEPS)
$(CC) -o $(CMOD) $(CFLAGS) -shared -fPIC logd_module.c $(CMOD_DEPS)
$(INCDIR)/logd/%.h: %.h
@ cd ../include/logd && \
ln -s $(subst $(INCDIR)/,../../src/,$@) $(subst $(INCDIR)/,,$@)
clean:
@- rm -rf $(INCDIR)/logd
@- rm -rf $(LIBDIR)/objs
@- rm -f $(EXEC)
@- rm -f $(LIB)
@- rm -f $(LUAMOD)
@- rm -f $(SO)
@- rm -f $(wildcard *.o)
@ rm -f *.profraw