embox

Форк
0
/
Makefile_cmake 
91 строка · 3.6 Кб
1
EMBOX_TARGET_CC =$(shell which $(EMBOX_CROSS_COMPILE)gcc)
2
EMBOX_TARGET_CXX=$(shell which $(EMBOX_CROSS_COMPILE)g++)
3

4
ifeq (,$(EMBOX_TARGET_CC))
5
$(error Cannot find C compiler: $(EMBOX_CROSS_COMPILE)gcc)
6
endif
7
ifeq (,$(EMBOX_TARGET_CXX))
8
$(error Cannot find C++ compiler: $(EMBOX_CROSS_COMPILE)g++)
9
endif
10

11

12
AT=
13

14
STLPORT_DIR   = $(BUILD_DIR)
15
STLPORT_FLAGS = $(STLPORT_DIR)/flags
16

17
EMBOX_IMPORTED_CPPFLAGS += -I../../stlport
18
EMBOX_IMPORTED_CPPFLAGS += -save-temps=obj
19
EMBOX_IMPORTED_CPPFLAGS += -include $(abspath .)/stlport_embox_compat.h
20
EMBOX_IMPORTED_CPPFLAGS += -DUSE_SPRINTF_INSTEAD
21
EMBOX_IMPORTED_CPPFLAGS += $(filter -I%,$(EMBOX_CPPFLAGS))
22
EMBOX_IMPORTED_CPPFLAGS += $(filter -nostdinc,$(EMBOX_CPPFLAGS))
23
EMBOX_IMPORTED_CPPFLAGS += $(filter -D%,$(EMBOX_CPPFLAGS))
24
EMBOX_IMPORTED_CPPFLAGS += $(filter -U%,$(EMBOX_CPPFLAGS))
25
#EMBOX_IMPORTED_CPPFLAGS := $(filter-out -D"__impl_x%,$(EMBOX_IMPORTED_CPPFLAGS))
26

27
EMBOX_IMPORTED_CFLAGS   += $(EMBOX_IMPORTED_CPPFLAGS)
28
EMBOX_IMPORTED_CFLAGS   += $(filter -fno-common,$(EMBOX_CFLAGS))
29
EMBOX_IMPORTED_CFLAGS   += $(filter -march%,$(EMBOX_CFLAGS))
30
EMBOX_IMPORTED_CFLAGS   += $(filter -m%,$(EMBOX_CFLAGS))
31
EMBOX_IMPORTED_CFLAGS   += $(filter -fno-stack-protector,$(EMBOX_CFLAGS))
32
EMBOX_IMPORTED_CFLAGS   += $(filter -g,$(EMBOX_CFLAGS))
33
EMBOX_IMPORTED_CFLAGS   += $(filter -mno-unaligned-access,$(EMBOX_CFLAGS))
34
EMBOX_IMPORTED_CFLAGS   += -I$(abspath .)/include
35

36
EMBOX_IMPORTED_CXXFLAGS += $(EMBOX_IMPORTED_CPPFLAGS)
37
EMBOX_IMPORTED_CXXFLAGS += $(subst .,$(ROOT_DIR),$(filter -I%,$(EMBOX_CXXFLAGS)))
38
EMBOX_IMPORTED_CXXFLAGS += $(filter -fno-common,$(EMBOX_CXXFLAGS))
39
EMBOX_IMPORTED_CXXFLAGS += $(filter -march%,$(EMBOX_CXXFLAGS))
40
EMBOX_IMPORTED_CXXFLAGS += $(filter -m32,$(EMBOX_CXXFLAGS))
41
EMBOX_IMPORTED_CXXFLAGS += $(filter -fno-stack-protector,$(EMBOX_CXXFLAGS))
42
EMBOX_IMPORTED_CXXFLAGS += $(filter -g,$(EMBOX_CXXFLAGS))
43
EMBOX_IMPORTED_CXXFLAGS += $(filter -fno-rtti,$(EMBOX_CXXFLAGS))
44
EMBOX_IMPORTED_CXXFLAGS += $(filter -fno-exceptions,$(EMBOX_CXXFLAGS))
45
EMBOX_IMPORTED_CXXFLAGS += $(filter -fno-threadsafe-statics,$(EMBOX_CXXFLAGS))
46
EMBOX_IMPORTED_CXXFLAGS += $(filter -mno-unaligned-access,$(EMBOX_CXXFLAGS))
47
EMBOX_IMPORTED_CXXFLAGS += -I$(abspath .)/include
48

49
EMBOX_IMPORTED_MAKEFLAGS += $(filter -j,$(EMBOX_MAKEFLAGS))
50
ifneq ($(filter -j,$(EMBOX_MAKEFLAGS)),)
51
EMBOX_IMPORTED_MAKEFLAGS += $(shell nproc)
52
endif
53
# no wonder the following doesn't work
54
# EMBOX_IMPORTED_MAKEFLAGS += $(filter --jobserver-fds=%,$(EMBOX_MAKEFLAGS))
55

56
ifneq (,$(filter -fno-rtti,$(EMBOX_CXXFLAGS)))
57
EMBOX_RTTI_FLAG          = --without-rtti
58
else
59
EMBOX_RTTI_FLAG          =
60
endif
61

62
EMBOX_DERIVED_CFLAGS    += $(EMBOX_IMPORTED_CFLAGS)
63
EMBOX_DERIVED_CXXFLAGS  += $(EMBOX_IMPORTED_CXXFLAGS)
64
EMBOX_DERIVED_MAKEFLAGS += $(EMBOX_IMPORTED_MAKEFLAGS)
65
EMBOX_DERIVED_RTTI_FLAG  = $(EMBOX_RTTI_FLAG)
66
EMBOX_DERIVED_CC         = $(EMBOX_TARGET_CC)
67
EMBOX_DERIVED_CXX        = $(EMBOX_TARGET_CXX)
68

69

70
all:
71

72
.PHONY: all
73

74
$(STLPORT_DIR):
75
	$(AT)mkdir -p $@
76

77
$(STLPORT_FLAGS): | $(STLPORT_DIR)
78
	-$(AT)rm $@
79
	$(AT)echo EMBOX_DERIVED_CFLAGS=\"$(EMBOX_DERIVED_CFLAGS)\" >> $@
80
	$(AT)echo EMBOX_DERIVED_CXXFLAGS=\"$(EMBOX_DERIVED_CXXFLAGS)\" >> $@
81
	$(AT)echo EMBOX_DERIVED_MAKEFLAGS=\"$(EMBOX_DERIVED_MAKEFLAGS)\" >> $@
82
	$(AT)echo EMBOX_DERIVED_RTTI_FLAG=\"$(EMBOX_DERIVED_RTTI_FLAG)\" >> $@
83
	$(AT)echo EMBOX_DERIVED_CC=\"$(EMBOX_DERIVED_CC)\" >> $@
84
	$(AT)echo EMBOX_DERIVED_CXX=\"$(EMBOX_DERIVED_CXX)\" >> $@
85
	$(AT)echo EMBOX_ROOT=\"$(ROOT_DIR)\" >> $@
86

87
$(STLPORT_DIR)/Makefile: CMakeLists.txt $(STLPORT_FLAGS) | $(STLPORT_DIR)
88
	$(AT)cd $(STLPORT_DIR) && $(shell cat $(STLPORT_FLAGS)) cmake $(shell pwd)
89

90
all: $(STLPORT_DIR)/Makefile
91
	$(AT)cd $(STLPORT_DIR) && $(MAKE) # -j `nproc`
92

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.