-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
72 lines (54 loc) · 1.6 KB
/
Makefile
File metadata and controls
72 lines (54 loc) · 1.6 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
override CCFLAGS += -Iinc -Wall -Wextra -Wno-unused-function -fPIC
HOST ?= $(shell uname)
TARGET ?= $(shell uname)
LIBPREFIX ?= bin/$(TARGET)/lib
TARGET_CC := $(CROSS_COMPILE)$(CC)
TARGET_AR := $(CROSS_COMPILE)$(AR)
ifeq ($(TARGET),Windows)
override LDFLAGS += -lws2_32
LIBPREFIX ?= bin/Windows/
else
ifeq ($(TARGET),Linux)
override CCFLAGS += $(shell pkg-config --cflags liburing)
override LDFLAGS += $(shell pkg-config --libs liburing)
endif
override CCFLAGS_DYN += $(shell pkg-config --cflags libffi)
override LDFLAGS_DYN += $(shell pkg-config --libs libffi)
endif
NAME ?= ev
SHARED := $(LIBPREFIX)$(NAME)
STATIC := $(LIBPREFIX)$(NAME).a
OBJECT := $(LIBPREFIX)$(NAME).o
SHARED_DYN := $(LIBPREFIX)$(NAME)-dyn
STATIC_DYN := $(LIBPREFIX)$(NAME)-dyn.a
OBJECT_DYN := $(LIBPREFIX)$(NAME)-dyn.o
ifeq ($(TARGET),Windows)
SHARED := $(SHARED).dll
SHARED_DYN := $(SHARED_DYN).dll
else
SHARED := $(SHARED).so
SHARED_DYN := $(SHARED_DYN).so
endif
ifeq ($(DEBUG),yes)
override CCFLAGS += -g
endif
.PHONY: sources flags all clean
all: $(SHARED) $(STATIC) $(SHARED_DYN) $(STATIC_DYN)
clean:
rm -rf bin
sources:
echo $(SRCS)
flags:
echo $(CCFLAGS)
$(SHARED): $(OBJECT) | bin/$(TARGET)/
$(TARGET_CC) $(CCFLAGS) -shared $^ -o $@ $(LDFLAGS)
$(SHARED_DYN): $(OBJECT_DYN) | bin/$(TARGET)/
$(TARGET_CC) $(CCFLAGS) $(CCFLAGS_DYN) -shared $^ -o $@ $(LDFLAGS) $(LDFLAGS_DYN)
%.a: %.o | bin/$(TARGET)/
$(TARGET_AR) rcs $@ $^
$(LIBPREFIX)ev.o: src/ev.c | bin/$(TARGET)/
$(TARGET_CC) $(CCFLAGS) -c $^ -o $@
$(LIBPREFIX)ev-dyn.o: src/ev-dyn.c | bin/$(TARGET)/
$(TARGET_CC) $(CCFLAGS) $(CCFLAGS_DYN) -c $^ -o $@
%/:
mkdir -p $@