5 kx
5 kx COMPONENT_TARGETS = $(HARDWARE_BUILD)
5 kx
5 kx include ../../../../../build-system/constants.mk
5 kx
5 kx SOURCE_REQUIRES = build-system/3pp/sources/packages/python2
5 kx
5 kx
5 kx # ======= __END_OF_REQUIRES__ =======
5 kx
5 kx version = 2.7.18
5 kx tar_xz_archive = $(BUILDSYSTEM)/3pp/sources/packages/python2/Python-$(version).tar.xz
5 kx SRC_ARCHIVE = $(tar_xz_archive)
5 kx SRC_DIR = $(TARGET_BUILD_DIR)/Python-$(version)
5 kx src_done = $(TARGET_BUILD_DIR)/.source-done
5 kx
5 kx PATCHES = PATCHES
5 kx
5 kx build_target = $(TARGET_BUILD_DIR)/.built
5 kx install_target = $(TARGET_BUILD_DIR)/.installed
5 kx
5 kx BUILD_TARGETS = $(build_target)
5 kx BUILD_TARGETS += $(install_target)
5 kx
5 kx
5 kx include ../../../../../build-system/core.mk
5 kx
5 kx
5 kx LDFLAGS += -Wl,-rpath,$(BUILDSYSTEM)/usr/lib
5 kx
5 kx extra_configure_switches = --libdir=$(BUILDSYSTEM)/usr/lib
5 kx extra_configure_switches += --bindir=$(BUILDSYSTEM)/usr/bin
5 kx extra_configure_switches += --docdir=$(BUILDSYSTEM)/usr/share/doc/$(src_dir_name)
5 kx extra_configure_switches += --mandir=$(BUILDSYSTEM)/usr/share/man
5 kx extra_configure_switches += --with-system-expat
5 kx extra_configure_switches += --with-system-ffi
5 kx extra_configure_switches += --with-threads
5 kx extra_configure_switches += --enable-ipv6
5 kx extra_configure_switches += --enable-shared
5 kx
5 kx python_environment = RFS=$(BUILDSYSTEM)
5 kx python_environment += PYTHONHOME=$(BUILDSYSTEM)/usr/lib/python2.7
5 kx python_environment += LDFLAGS='$(LDFLAGS)'
5 kx
5 kx
5 kx $(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
5 kx $(UNPACK_SRC_ARCHIVE)
5 kx $(APPLY_PATCHES)
5 kx @touch $@
5 kx
5 kx $(build_target): $(src_done)
5 kx @cd $(SRC_DIR) && $(python_environment) ./configure \
5 kx --prefix=$(BUILDSYSTEM)/usr \
5 kx --exec-prefix=$(BUILDSYSTEM)/usr \
5 kx --build=$(BUILD) \
5 kx --host=$(BUILD) \
5 kx $(extra_configure_switches)
5 kx @cd $(SRC_DIR) && $(python_environment) $(MAKE)
5 kx @cd $(SRC_DIR) && $(python_environment) $(MAKE) Parser/pgen
5 kx @touch $@
5 kx
5 kx $(install_target): $(build_target)
5 kx @echo -e "\n======= Installing Python 2.7 binary =======\n"
5 kx @cd $(SRC_DIR) && $(MAKE) -j1 $(python_environment) install
5 kx @cp -a $(SRC_DIR)/Parser/pgen $(BUILDSYSTEM)/usr/bin/
5 kx @( cd $(BUILDSYSTEM)/usr/bin ; \
5 kx mv 2to3 2to3-2.7 ; ln -sf 2to3-2.7 2to3 ; \
5 kx mv idle idle2.7 ; ln -sf idle2.7 idle2 ; ln -sf idle2 idle ; \
5 kx mv pydoc pydoc2.7 ; ln -sf pydoc2.7 pydoc2 ; ln -sf pydoc2 pydoc; \
5 kx mv pgen pgen2.7 ; ln -sf pgen2.7 pgen2 ; ln -sf pgen2 pgen ; \
5 kx )
5 kx @( cd $(BUILDSYSTEM)/usr/include/python2.7 ; \
5 kx mv pyconfig.h pyconfig-64.h ; \
5 kx echo '' > pyconfig.h ; \
5 kx echo '/******************************' >> pyconfig.h ; \
5 kx echo ' pyconfig.h - Multilib Header' >> pyconfig.h ; \
5 kx echo ' ******************************/' >> pyconfig.h ; \
5 kx echo '' >> pyconfig.h ; \
5 kx echo '#ifndef __MULTILIB__PYCONFIG_H__' >> pyconfig.h ; \
5 kx echo '#define __MULTILIB__PYCONFIG_H__' >> pyconfig.h ; \
5 kx echo '' >> pyconfig.h ; \
5 kx echo '#if defined(__x86_64__) || \' >> pyconfig.h ; \
5 kx echo ' defined(__aarch64__) || \' >> pyconfig.h ; \
5 kx echo ' defined(__powerpc64__) || \' >> pyconfig.h ; \
5 kx echo ' defined(__sparc__) && defined(__arch64__) || \' >> pyconfig.h ; \
5 kx echo ' defined(__riscv_xlen) && __riscv_xlen == 64' >> pyconfig.h ; \
5 kx echo '#include "pyconfig-64.h"' >> pyconfig.h ; \
5 kx echo '#else' >> pyconfig.h ; \
5 kx echo '#include "pyconfig-32.h"' >> pyconfig.h ; \
5 kx echo '#endif' >> pyconfig.h ; \
5 kx echo '' >> pyconfig.h ; \
5 kx echo '#endif /* __MULTILIB__PYCONFIG_H__ */' >> pyconfig.h ; \
5 kx cat pyconfig-64.h | \
5 kx sed -e 's,^\/\* #undef HAVE_LARGEFILE_SUPPORT \*\/,#define HAVE_LARGEFILE_SUPPORT 1,' \
5 kx -e 's,^#define SIZEOF_LONG 8,#define SIZEOF_LONG 4,' \
5 kx -e 's,^#define SIZEOF_LONG_DOUBLE 16,#define SIZEOF_LONG_DOUBLE 12,' \
5 kx -e 's,^#define SIZEOF_PTHREAD_T 8,#define SIZEOF_PTHREAD_T 4,' \
5 kx -e 's,^#define SIZEOF_OFF_T 8,#define SIZEOF_OFF_T 4,' \
5 kx -e 's,^#define SIZEOF_SIZE_T 8,#define SIZEOF_SIZE_T 4,' \
5 kx -e 's,^#define SIZEOF_TIME_T 8,#define SIZEOF_TIME_T 4,' \
5 kx -e 's,^#define SIZEOF_UINTPTR_T 8,#define SIZEOF_UINTPTR_T 4,' \
5 kx -e 's,^#define SIZEOF_VOID_P 8,#define SIZEOF_VOID_P 4,' \
5 kx -e 's,^#define VA_LIST_IS_ARRAY 1,\/\* #undef VA_LIST_IS_ARRAY \*\/,' \
5 kx > pyconfig-32.h ; \
5 kx )
5 kx @echo -e "\n======= Setup PYTHON2 build-system variable =======\n"
5 kx @mkdir -p $(BUILDSYSTEM)/sbin && \
5 kx echo "PYTHON2 := $(BUILDSYSTEM)/usr/bin/python2" >> $(BUILDSYSTEM)/sbin/.config ; \
5 kx echo "PGEN2 := $(BUILDSYSTEM)/usr/bin/pgen2" >> $(BUILDSYSTEM)/sbin/.config
5 kx @touch $@