############################################################################### # # # IPFire.org - A linux based firewall # # Copyright (C) 2007-2018 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.8.1 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 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)_MD5 = b3fb85fd479c0bf950c626ef80cacb57 install : $(TARGET) check : $(patsubst %,$(DIR_CHK)/%,$(objects)) download :$(patsubst %,$(DIR_DL)/%,$(objects)) md5 : $(subst %,%_MD5,$(objects)) dist: @$(PAK) ############################################################################### # Downloading, checking, md5sum ############################################################################### $(patsubst %,$(DIR_CHK)/%,$(objects)) : @$(CHECK) $(patsubst %,$(DIR_DL)/%,$(objects)) : @$(LOAD) $(subst %,%_MD5,$(objects)) : @$(MD5) ############################################################################### # 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.8 && find . | grep -E "(/__pycache__|/test/)" | xargs rm -rf else cd /usr/lib/python3.8 && find . | grep -E "(/test/)" | xargs rm -rf endif @rm -rf $(DIR_APP) @$(POSTBUILD)