############################################################################### # # # IPFire.org - A linux based firewall # # Copyright (C) 2007-2020 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program. If not, see . # # # ############################################################################### ############################################################################### # Definitions ############################################################################### include Config VER = 3.10.8 THISAPP = Python-$(VER) DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = python3 DEPS = # Normal build or $(TOOLS_DIR) build. # ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) CONFIGURE_ARGS = \ --prefix=/usr \ --enable-shared \ --with-system-expat \ --with-system-ffi \ --with-ensurepip \ ax_cv_c_float_words_bigendian=no else TARGET = $(DIR_INFO)/$(THISAPP)-tools CONFIGURE_ARGS = \ --prefix=$(TOOLS_DIR) \ --without-ensurepip endif ############################################################################### # Top-level Rules ############################################################################### objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) $(DL_FILE)_BLAKE2 = 8bbfbae34fbc517c4a746e5e4c360efc57aca175c50fe46a378aa9d6d023a3d90c7df816149e4cca0c9b64ca0142267d8df552e8f8dc53a04b5251e8848dce74 install : $(TARGET) check : $(patsubst %,$(DIR_CHK)/%,$(objects)) download :$(patsubst %,$(DIR_DL)/%,$(objects)) b2 : $(subst %,%_BLAKE2,$(objects)) dist: @$(PAK) ############################################################################### # Downloading, checking, b2sum ############################################################################### $(patsubst %,$(DIR_CHK)/%,$(objects)) : @$(CHECK) $(patsubst %,$(DIR_DL)/%,$(objects)) : @$(LOAD) $(subst %,%_BLAKE2,$(objects)) : @$(B2SUM) ############################################################################### # Installation Details ############################################################################### $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) ifeq "$(ROOT)" "" rm -rf $(DIR_APP)/Modules/_ctypes/{darwin,libffi,libffi_arm_wince,libffi_msvc,libffi_osx} else cd $(DIR_APP) && sed -i '/def add_multiarch_paths/a \ return' setup.py endif cd $(DIR_APP) && OPT="$(CFLAGS)" ./configure $(CONFIGURE_ARGS) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install # Remove precompiled pycache at toolchain and tests ifneq "$(ROOT)" "" cd $(TOOLS_DIR)/lib/python3.10 && find . | grep -E "(/__pycache__|/test/)" | xargs rm -rf else cd /usr/lib/python3.10 && find . | grep -E "(/test/)" | xargs rm -rf endif @rm -rf $(DIR_APP) @$(POSTBUILD)