blob: c86a6476c4a9a1371db859e3e91a194be96274ad (
plain)
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
76
77
78
79
80
81
82
83
|
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
LIBDIR = lib
PRELOADNAME = libminijailpreload.so
PRELOADPATH = \"/$(LIBDIR)/$(PRELOADNAME)\"
CFLAGS += -fPIC -Wall -Wextra -Werror -DPRELOADPATH="$(PRELOADPATH)"
CFLAGS += -fvisibility=internal
ifneq ($(HAVE_SECUREBITS_H),no)
CFLAGS += -DHAVE_SECUREBITS_H
endif
all : minijail0 libminijail.so libminijailpreload.so
tests : libminijail_unittest.wrapper syscall_filter_unittest
minijail0 : libsyscalls.gen.o libminijail.o syscall_filter.o \
signal.o bpf.o util.o minijail0.c
$(CC) $(CFLAGS) -o $@ $^ -lcap
libminijail.so : libminijail.o syscall_filter.o signal.o bpf.o util.o \
libsyscalls.gen.o
$(CC) $(CFLAGS) -shared -o $@ $^ -lcap
# Allow unittests to access what are normally internal symbols.
libminijail_unittest.wrapper :
$(MAKE) $(MAKEARGS) test-clean
$(MAKE) $(MAKEARGS) libminijail_unittest
$(MAKE) $(MAKEARGS) test-clean
libminijail_unittest : CFLAGS := $(filter-out -fvisibility=%,$(CFLAGS))
libminijail_unittest : CFLAGS := $(filter-out -DPRELOADPATH=%,$(CFLAGS))
libminijail_unittest : CFLAGS := $(CFLAGS) -DPRELOADPATH=\"./$(PRELOADNAME)\"
libminijail_unittest : libminijail_unittest.o libminijail.o \
syscall_filter.o signal.o bpf.o util.o libsyscalls.gen.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(filter-out $(CFLAGS_FILE),$^) -lcap
libminijailpreload.so : libminijailpreload.c libminijail.o libsyscalls.gen.o \
syscall_filter.o signal.o bpf.o util.o
$(CC) $(CFLAGS) -shared -o $@ $^ -ldl -lcap
libminijail.o : libminijail.c libminijail.h
libminijail_unittest.o : libminijail_unittest.c test_harness.h
$(CC) $(CFLAGS) -c -o $@ $<
libsyscalls.gen.o : libsyscalls.gen.c libsyscalls.h
syscall_filter_unittest : syscall_filter_unittest.o syscall_filter.o \
bpf.o util.o libsyscalls.gen.o
$(CC) $(CFLAGS) -o $@ $^
syscall_filter_unittest.o : syscall_filter_unittest.c test_harness.h
$(CC) $(CFLAGS) -c -o $@ $<
syscall_filter.o : syscall_filter.c syscall_filter.h
signal.o : signal.c signal.h
bpf.o : bpf.c bpf.h
util.o : util.c util.h
# Only regenerate libsyscalls.gen.c if the Makefile or header changes.
# NOTE! This will not detect if the file is not appropriate for the target.
libsyscalls.gen.c : Makefile libsyscalls.h
@printf "Generating target-arch specific $@ . . . "
@./gen_syscalls.sh $@
@printf "done.\n"
# Only clean up files affected by the CFLAGS change for testing.
test-clean :
@rm -f libminijail.o libminijail_unittest.o
clean : test-clean
@rm -f libminijail.o libminijailpreload.so minijail0
@rm -f libminijail.so
@rm -f libminijail_unittest
@rm -f libsyscalls.gen.o libsyscalls.gen.c
@rm -f syscall_filter.o signal.o bpf.o util.o
@rm -f syscall_filter_unittest syscall_filter_unittest.o
|