forked from Xilinx/vcu-ctrl-sw
-
Notifications
You must be signed in to change notification settings - Fork 0
/
base.mk
65 lines (49 loc) · 1.4 KB
/
base.mk
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
##############################################################
#general rules
##############################################################
.SUFFIXES:
V?=0
ifeq ($(V),0)
Q=@
else
Q=
endif
LINK_COMPAT:=
INTROSPECT_FLAGS=
ifneq ($(ENABLE_STATIC),0)
LINK_COMPAT+=-static-libstdc++ -static-libgcc -static
endif
ifneq ($(findstring mingw,$(TARGET)),mingw)
LINK_COMPAT+=-Wl,--hash-style=both
endif
$(BIN)/%.cpp.o: %.cpp
@mkdir -p $(dir $@)
$(Q)$(CXX) $(CFLAGS) $(INTROSPECT_FLAGS) $(INCLUDES) -std=c++11 -o $@ -c $<
@$(CXX) -MP -MM "$<" -MT "$@" -o "$(BIN)/$*_cpp.deps" $(INCLUDES) $(CFLAGS) -std=c++11
@echo "CXX $<"
$(BIN)/%.c.o: %.c
@mkdir -p $(dir $@)
$(Q)$(CC) $(CFLAGS) $(INTROSPECT_FLAGS) $(INCLUDES) -std=gnu99 -o $@ -c $<
@$(CC) -MP -MM "$<" -MT "$@" -o "$(BIN)/$*_c.deps" $(INCLUDES) $(CFLAGS)
@echo "CC $<"
$(BIN)/%.a:
@mkdir -p $(dir $@)
$(Q)$(AR) cr $@ $^
@echo "AR $@"
$(BIN)/%:
@mkdir -p $(dir $@)
$(Q)$(CXX) -o $@ $^ $(LINK_COMPAT) $(LDFLAGS)
@echo "CXX $@"
$(BIN)/%.so:
$(Q)$(CXX) $(CFLAGS) -shared -Wl,-soname,$(notdir $@).$(MAJOR) -o "$@.$(VERSION)" $^ $(LDFLAGS)
@echo "LD $@"
@ln -fs "$(@:$(BIN)/%=%).$(VERSION)" $@.$(MAJOR)
@ln -fs "$(@:$(BIN)/%=%).$(VERSION)" $@
clean:
$(Q)rm -rf $(BIN)
@echo "CLEAN $(BIN)"
define get-my-dir
$(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
endef
# Dependency generation
include $(shell test -d $(BIN) && find $(BIN) -name "*.deps")