PYCOMPILE_DIR = build.pycompile
PYCOMPILE_CFGHOST = $(NATIVE_CFGHOST)
PYCOMPILE_PREFIX = $(CURDIR)/$(PYCOMPILE_DIR)
PYCOMPILE_PATH =
PYCOMPILE = $(PYCOMPILE_DIR)/bin/pycompile
PYCOMPILE_APP_SRCS = $(APP_SRCS)
PYCOMPILE_CONFIG_SRCS = $(CONFIG_DEFAULT_SRCS)
PYCOMPILE_TAGS += $(PYCOMPILE_DIR)/tree.tag
PYCOMPILE_TAGS += $(PYCOMPILE_DIR)/config.tag
PYCOMPILE_CFLAGS += -std=c99
PYCOMPILE_CFLAGS += -I$(PYCOMPILE_DIR)/build
PYCOMPILE_CFLAGS += -I$(PROJECT_DIR)/profiles
PYCOMPILE_CFLAGS += -I$(PROJECT_DIR)/project/variants/$(PYTHON_MAJOR).$(PYTHON_MINOR).$(PYTHON_MICRO)
PYCOMPILE_CFLAGS += -I$(SOURCE_DIR)/Include
PYCOMPILE_CFLAGS += -I$(SOURCE_DIR)/Modules/_decimal/libmpdec
PYCOMPILE_CFLAGS += -DPY_FOR_PYCOMPILE
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_CFLAGS += -DSOABI=\"$(PYTHON_SOABI)\"
PYCOMPILE_CFLAGS += -DABIFLAGS=\"$(PYTHON_ABIFL)\"
PYCOMPILE_CFLAGS += -D_PYTHONFRAMEWORK=\"\"
PYCOMPILE_CFLAGS += $(NATIVE_CFLAGS)
PYCOMPILE_LDFLAGS += -lreadline -lm -lutil -lpthread
PYCOMPILE_LDFLAGS += $(NATIVE_LDFLAGS)
PYCOMPILE_LDFLAGS += -lreadline -lm -lutil -lpthread
$(PYCOMPILE_DIR)/tree.tag:
mkdir -p $(PYCOMPILE_DIR)/bin
mkdir -p $(PYCOMPILE_DIR)/lib
mkdir -p $(PYCOMPILE_DIR)/core
mkdir -p $(PYCOMPILE_DIR)/core/Modules
mkdir -p $(PYCOMPILE_DIR)/core/Modules/_io
mkdir -p $(PYCOMPILE_DIR)/core/Objects
mkdir -p $(PYCOMPILE_DIR)/core/Parser
mkdir -p $(PYCOMPILE_DIR)/core/Python
mkdir -p $(PYCOMPILE_DIR)/core/Programs
mkdir -p $(PYCOMPILE_DIR)/pyext
mkdir -p $(PYCOMPILE_DIR)/pyext/obj
mkdir -p $(PYCOMPILE_DIR)/pyext/obj/_decimal
mkdir -p $(PYCOMPILE_DIR)/pyext/obj/_decimal/libmpdec
mkdir -p $(PYCOMPILE_DIR)/lib/$(NICKNAME)
mkdir -p $(PYCOMPILE_DIR)/lib/$(NICKNAME)/collections
mkdir -p $(PYCOMPILE_DIR)/lib/$(NICKNAME)/encodings
mkdir -p $(PYCOMPILE_DIR)/lib/$(NICKNAME)/importlib
mkdir -p $(PYCOMPILE_DIR)/lib/$(NICKNAME)/urllib
mkdir -p $(PYCOMPILE_DIR)/lib/$(NICKNAME)/lib-dynload
mkdir -p $(PYCOMPILE_DIR)/build
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 -p $(PROJECT_DIR)/config/$(CFGHOST)/config.c $(PYCOMPILE_DIR)/build/
cp -p $(PROJECT_DIR)/config/$(CFGHOST)/pyconfig.h $(PYCOMPILE_DIR)/build/
touch $(PYCOMPILE_DIR)/config.tag
touch $(PYCOMPILE_DIR)/build/config.c
touch $(PYCOMPILE_DIR)/build/pyconfig.h
endif
$(PYCOMPILE_DIR)/core/%.o: PYCOMPILE_CFLAGS += -DPy_BUILD_CORE
$(PYCOMPILE_DIR)/build/config.c: $(PYCOMPILE_DIR)/config.tag
$(PYCOMPILE_DIR)/build/pyconfig.h: $(PYCOMPILE_DIR)/config.tag
$(PYCOMPILE_DIR)/core/Modules/config.o: $(PYCOMPILE_DIR)/build/config.c $(ALL_HEADERS) $(PYCOMPILE_TAGS)
$(NATIVE_CC) -c -o $@ $< $(PYCOMPILE_CFLAGS)
$(PYCOMPILE_DIR)/core/%.o: $(SOURCE_DIR)/%.c $(ALL_HEADERS) $(PYCOMPILE_TAGS)
$(NATIVE_CC) -c -o $@ $< $(PYCOMPILE_CFLAGS)
$(PYCOMPILE_DIR)/pyext/obj/%.o: $(SOURCE_DIR)/Modules/%.c $(ALL_HEADERS) $(PYCOMPILE_TAGS)
$(NATIVE_CC) -c -o $@ $< $(PYCOMPILE_CFLAGS)
PYCOMPILE_PYEXT_SRCS = \
$(PYEXT_DECIMAL_SRCS) \
$(PYEXT_ELEMENTTREE_SRCS) \
$(PYEXT_HEAPQ_SRCS) \
$(PYEXT_POSIXSUBPROCESS_SRCS) \
$(PYEXT_MATH_SRCS) \
$(PYEXT_READLINE_SRCS) \
$(PYEXT_SELECT_SRCS) \
$(PYEXT_TERMIOS_SRCS) \
PYCOMPILE_SRCS = \
$(PYCOMPILE_APP_SRCS) \
$(PYCOMPILE_CONFIG_SRCS) \
$(PYCOMPILE_PYEXT_SRCS) \
$(MODULE_SRCS) \
$(OBJECT_SRCS) \
$(PARSER_SRCS) \
$(PYTHON_SRCS)
PYCOMPILE_OBJS = $(PYCOMPILE_SRCS:%.c=$(PYCOMPILE_DIR)/%.o)
ifeq ($(PYCOMPILE_CFGSTEP),)
$(PYCOMPILE): $(PYCOMPILE_OBJS)
$(MAKE) PYCOMPILE_CFGSTEP=yes \
PYCOMPILE_CFGHOST=$(PYCOMPILE_CFGHOST) \
CFGHOST=$(PYCOMPILE_CFGHOST) \
pycompile
else
$(PYCOMPILE): $(PYCOMPILE_OBJS)
$(NATIVE_CC) -o $@ $^ $(PYCOMPILE_LDFLAGS)
endif
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