forked from updateing/minieap
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
63 lines (50 loc) · 1.4 KB
/
Copy pathMakefile
File metadata and controls
63 lines (50 loc) · 1.4 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
include config.mk
#### Populate [C|LD]FLAGS ####
COMMON_CFLAGS := $(CUSTOM_CFLAGS) $(CFLAGS) -Wall -D_GNU_SOURCE
COMMON_LDFLAGS := $(CUSTOM_LDFLAGS) $(LDFLAGS)
LIBS += $(CUSTOM_LIBS)
# You are not cross-compiling for macOS on Linux, I guess?
ifeq ($(shell uname -s),Linux)
COMMON_LDFLAGS += -T minieap_init_func.lds
endif
ifeq ($(ENABLE_ICONV),true)
COMMON_CFLAGS += -DENABLE_ICONV
ifeq ($(LIBICONV_STANDALONE),true)
COMMON_LDFLAGS += -liconv
endif
endif
ifeq ($(ENABLE_GBCONV),true)
COMMON_CFLAGS += -DENABLE_GBCONV
endif
ifeq ($(ENABLE_DEBUG),true)
COMMON_CFLAGS += -DDEBUG
endif
ifeq ($(STATIC_BUILD),true)
COMMON_LDFLAGS += -static
COMMON_LDFLAGS := $(filter-out -l%,$(COMMON_LDFLAGS))
endif
#### Common bits ####
COMMON_C_INCLUDES := include
COMMON_MODULES := \
util \
main \
if_impl_manager \
packet_plugin_manager
BUILD_MODULES := $(PLUGIN_MODULES) $(COMMON_MODULES)
minieap: $(BUILD_MODULES)
$(CC) -o minieap \
$(COMMON_LDFLAGS) \
$(foreach objs,$(addsuffix _LDFLAGS,$(BUILD_MODULES)),$($(objs))) \
$(foreach objs,$(addsuffix _PRIV_OBJS,$(BUILD_MODULES)),$($(objs))) \
$(LIBS)
.PHONY: clean
clean: $(addsuffix _clean,$(BUILD_MODULES))
define my-dir
$(dir $(lastword $(MAKEFILE_LIST)))
endef
define all-c-files-under
$(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/$(1)/*.c))
endef
APPEND := $(shell pwd)/append.mk
MK_LIST := $(shell find . -name minieap.mk)
include $(MK_LIST)