aboutsummaryrefslogtreecommitdiff
path: root/test/api_test/Makefile
blob: aff8cf2df9f48cce9eee467e48d735c0df553f88 (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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# Copyright (c) 2013, Linaro Limited
# All rights reserved.
#
# SPDX-License-Identifier:     BSD-3-Clause

ODP_ROOT = ../..
ARCH     = linux-generic
ODP_LIB  = $(ODP_ROOT)/arch/$(ARCH)
OBJ_DIR  = ./obj
LIB      = $(ODP_LIB)/lib/odp.a

INCLUDE  = -I$(ODP_ROOT)/include
CC       ?= @gcc

#
# API testing stuffs
#
ODP_ATOMIC    = odp_atomic
ODP_SHM       = odp_shm
ODP_RING      = odp_ring

E_FLAGS  = -W -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes
E_FLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith
E_FLAGS += -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral
E_FLAGS += -Wformat-security -Wundef -Wwrite-strings

CFLAGS  += -pthread
CFLAGS  += -I.
CFLAGS  += -I$(ODP_LIB)
CFLAGS  += $(E_FLAGS)
CFLAGS  += $(INCLUDE)
CFLAGS  += $(EXTRA_CFLAGS)
#CFLAGS  += -DODP_TEST_ATOMIC
#Debug turned on per default
ifeq ($(ODP_EXAMPLE_DEBUG), 0)
CFLAGS  += -DODP_DEBUG=0
else
CFLAGS  += -DODP_DEBUG=1
endif

LDFLAGS += -pthread
LDFLAGS += -lrt
LDFLAGS += $(EXTRA_CFLAGS)

ATOMIC_OBJS  =
ATOMIC_OBJS += $(OBJ_DIR)/odp_common.o
ATOMIC_OBJS += $(OBJ_DIR)/odp_atomic_test.o

SHM_OBJS  =
SHM_OBJS += $(OBJ_DIR)/odp_common.o
SHM_OBJS += $(OBJ_DIR)/odp_shm_test.o

RING_OBJS  =
RING_OBJS += $(OBJ_DIR)/odp_common.o
RING_OBJS += $(OBJ_DIR)/odp_ring_test.o

DEPS     = $(ATOMIC_OBJS:.o=.d) $(SHM_OBJS:.o=.d) $(RING_OBJS:.o=.d)

.PHONY: all
all: $(OBJ_DIR) $(ODP_ATOMIC) $(ODP_SHM) $(ODP_RING)
atomic: $(OBJ_DIR) $(ODP_ATOMIC)
shm: $(OBJ_DIR) $(ODP_SHM)
ring: $(OBJ_DIR) $(ODP_RING)

-include $(DEPS)

$(OBJ_DIR):
	mkdir $(OBJ_DIR)

$(LIB):
	@echo Building $@
	$(MAKE) -C $(ODP_LIB) libs

#
# Compile rules
#
$(OBJ_DIR)/%.o: %.c
	@echo Compiling $<
	$(CC) -c -MD $(CFLAGS) -o $@ $<

#
# Link rule
#
$(ODP_ATOMIC): $(LIB) $(ATOMIC_OBJS)
	$(CC) $(LDFLAGS) $(ATOMIC_OBJS) $(LIB) -o $@

$(ODP_SHM): $(LIB) $(SHM_OBJS)
	$(CC) $(LDFLAGS) $(SHM_OBJS) $(LIB) -o $@

$(ODP_RING): $(LIB) $(RING_OBJS)
	$(CC) $(LDFLAGS) $(RING_OBJS) $(LIB) -o $@

.PHONY: libs
libs:
	$(MAKE) -C $(ODP_LIB) libs

.PHONY: docs
docs:
	$(MAKE) -C $(ODP_LIB) docs

.PHONY: clean
clean:
	rm -rf $(OBJ_DIR)
	rm -f $(ODP_ATOMIC)
	rm -f $(ODP_SHM)
	rm -f $(ODP_RING)
	$(MAKE) -C $(ODP_LIB) clean

.PHONY: install
install:
	install -d $(DESTDIR)$(prefix)/lib
	install -m 0644 ${LIB} $(DESTDIR)$(prefix)/lib/
	install -d $(DESTDIR)$(prefix)/share/odp
	install -m 0755 $(ODP_ATOMIC) $(DESTDIR)$(prefix)/share/odp/
	install -m 0755 $(ODP_SHM) $(DESTDIR)$(prefix)/share/odp/
	install -m 0755 $(ODP_RING) $(DESTDIR)$(prefix)/share/odp/