Radix cross Linux Build System

Cross-platform build system is designed to build distributions of different operating systems for a set of target devices

74 Commits   2 Branches   2 Tags
     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 $@