blob: 6bb61dcf1937e44376950b353ae0f8dcb8ca543d (
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
|
PYCOMPILE_DIR = build.pycompile
PYCOMPILE_PREFIX = $(CURDIR)/$(PYCOMPILE_DIR)
PYCOMPILE_PATH =
PYCOMPILE = $(PYCOMPILE_DIR)/bin/pycompile
PYCOMPILE_APP_SRCS = $(APP_SRCS)
PYCOMPILE_CONFIG_SRCS = $(CONFIG_DEFAULT_SRCS)
PYCOMPILE_CFGHOST ?= $(NATIVE_CC_HOST)
PYCOMPILE_CFGSTEP ?=
PYCOMPILE_TAGS += $(PYCOMPILE_DIR)/tree.tag
PYCOMPILE_TAGS += $(PYCOMPILE_DIR)/config.tag
PYCOMPILE_CFLAGS += -I$(PYCOMPILE_DIR)/build
PYCOMPILE_CFLAGS += -I$(PROJECT_DIR)/profiles
PYCOMPILE_CFLAGS += -I$(SOURCE_DIR)/Include
PYCOMPILE_CFLAGS += -DVPATH=\"$(SOURCE_DIR)\"
PYCOMPILE_CFLAGS += -DVERSION=\"$(PYTHON_VER)\"
PYCOMPILE_CFLAGS += -DPLATFORM=\"$(NATIVE_OS)\"
PYCOMPILE_CFLAGS += -DPREFIX=\"$(PYCOMPILE_PREFIX)\"
PYCOMPILE_CFLAGS += -DEXEC_PREFIX=\"$(PYCOMPILE_PREFIX)\"
PYCOMPILE_CFLAGS += -DPYTHONPATH=\"$(PYCOMPILE_PATH)\"
$(PYCOMPILE_DIR)/tree.tag:
mkdir -p $(PYCOMPILE_DIR)/bin
mkdir -p $(PYCOMPILE_DIR)/lib
mkdir -p $(PYCOMPILE_DIR)/build
mkdir -p $(PYCOMPILE_DIR)/Modules
mkdir -p $(PYCOMPILE_DIR)/Objects
mkdir -p $(PYCOMPILE_DIR)/Parser
mkdir -p $(PYCOMPILE_DIR)/Python
touch $(PYCOMPILE_DIR)/tree.tag
ifeq ($(PYCOMPILE_CFGSTEP),)
$(PYCOMPILE_DIR)/config.tag:
$(MAKE) PYCOMPILE_CFGSTEP=yes \
PYCOMPILE_CFGHOST=$(PYCOMPILE_CFGHOST) \
CFGHOST=$(PYCOMPILE_CFGHOST) \
$(PYCOMPILE_DIR)/config.tag
else
$(PYCOMPILE_DIR)/config.tag:
mkdir -p $(PYCOMPILE_DIR)/build
cp -a $(PROJECT_DIR)/config/$(CFGHOST_SYNONYM)/config.c $(PYCOMPILE_DIR)/build/
cp -a $(PROJECT_DIR)/config/$(CFGHOST_SYNONYM)/pyconfig.h $(PYCOMPILE_DIR)/build/
touch $(PYCOMPILE_DIR)/config.tag
endif
$(PYCOMPILE_DIR)/build/config.c: $(PYCOMPILE_DIR)/config.tag
$(PYCOMPILE_DIR)/build/pyconfig.h: $(PYCOMPILE_DIR)/config.tag
$(PYCOMPILE_DIR)/Modules/config.o: $(PYCOMPILE_DIR)/build/config.c $(ALL_HEADERS) $(PYCOMPILE_TAGS)
$(NATIVE_CC) -c -o $@ $< $(PYCOMPILE_CFLAGS)
$(PYCOMPILE_DIR)/Modules/%.o: $(SOURCE_DIR)/Modules/%.c $(ALL_HEADERS) $(PYCOMPILE_TAGS)
$(NATIVE_CC) -c -o $@ $< $(PYCOMPILE_CFLAGS)
$(PYCOMPILE_DIR)/Objects/%.o: $(SOURCE_DIR)/Objects/%.c $(ALL_HEADERS) $(PYCOMPILE_TAGS)
$(NATIVE_CC) -c -o $@ $< $(PYCOMPILE_CFLAGS)
$(PYCOMPILE_DIR)/Parser/%.o: $(SOURCE_DIR)/Parser/%.c $(ALL_HEADERS) $(PYCOMPILE_TAGS)
$(NATIVE_CC) -c -o $@ $< $(PYCOMPILE_CFLAGS)
$(PYCOMPILE_DIR)/Python/%.o: $(SOURCE_DIR)/Python/%.c $(ALL_HEADERS) $(PYCOMPILE_TAGS)
$(NATIVE_CC) -c -o $@ $< $(PYCOMPILE_CFLAGS)
PYCOMPILE_APP_OBJS = $(PYCOMPILE_APP_SRCS:Modules/%.c=$(PYCOMPILE_DIR)/Modules/%.o)
PYCOMPILE_CONFIG_OBJS = $(PYCOMPILE_CONFIG_SRCS:Modules/%.c=$(PYCOMPILE_DIR)/Modules/%.o)
PYCOMPILE_MODULE_OBJS = $(MODULE_SRCS:Modules/%.c=$(PYCOMPILE_DIR)/Modules/%.o)
PYCOMPILE_OBJECT_OBJS = $(OBJECT_SRCS:Objects/%.c=$(PYCOMPILE_DIR)/Objects/%.o)
PYCOMPILE_PARSER_OBJS = $(PARSER_SRCS:Parser/%.c=$(PYCOMPILE_DIR)/Parser/%.o)
PYCOMPILE_PYTHON_OBJS = $(PYTHON_SRCS:Python/%.c=$(PYCOMPILE_DIR)/Python/%.o)
PYCOMPILE_OBJS = \
$(PYCOMPILE_APP_OBJS) \
$(PYCOMPILE_CONFIG_OBJS) \
$(PYCOMPILE_MODULE_OBJS) \
$(PYCOMPILE_OBJECT_OBJS) \
$(PYCOMPILE_PARSER_OBJS) \
$(PYCOMPILE_PYTHON_OBJS) \
$(PYCOMPILE): $(PYCOMPILE_OBJS)
$(NATIVE_CC) -o $@ $^ $(PYCOMPILE_LDFLAGS)
pycompile: $(PYCOMPILE)
pycompile-objs: $(PYCOMPILE_OBJS)
pycompile-clean-config:
rm -f $(PYCOMPILE_DIR)/tree.tag
rm -f $(PYCOMPILE_DIR)/config.tag
rm -f $(PYCOMPILE_DIR)/build/config.c
rm -f $(PYCOMPILE_DIR)/build/pyconfig.h
pycompile-clean-objs:
rm -f $(PYCOMPILE_OBJS)
pycompile-clean-pycompile:
rm -f $(PYCOMPILE)
pycompile-clean:pycompile-clean-objs
pycompile-clean:pycompile-clean-config
pycompile-clean:pycompile-clean-pycompile
clean: pycompile-clean-objs
clean: pycompile-clean-config
clean: pycompile-clean-pycompile
.PHONY: pycompile pycompile-objs
pycompile-clean pycompile-clean-objs
pycompile-clean-config pycompile-clean-pycompile
|