1*758e9fbaSOystein Eftevaag#!/bin/sh 2*758e9fbaSOystein Eftevaagset -e 3*758e9fbaSOystein Eftevaag 4*758e9fbaSOystein Eftevaag# generate list of source files for use in Makefile.am 5*758e9fbaSOystein Eftevaag# if you add new source files, you must run ./bootstrap again 6*758e9fbaSOystein Eftevaagsrc_listvar () { 7*758e9fbaSOystein Eftevaag basedir=$1 8*758e9fbaSOystein Eftevaag suffix=$2 9*758e9fbaSOystein Eftevaag var=$3 10*758e9fbaSOystein Eftevaag 11*758e9fbaSOystein Eftevaag find "${basedir}" -name "${suffix}" | LC_ALL=C sort | tr '\n' ' ' | (printf "${var} = " && cat) 12*758e9fbaSOystein Eftevaag echo "" 13*758e9fbaSOystein Eftevaag} 14*758e9fbaSOystein Eftevaag 15*758e9fbaSOystein Eftevaag# remove source files from list if their usage depends on a configure option 16*758e9fbaSOystein Eftevaagremove_src () { 17*758e9fbaSOystein Eftevaag files=$1 18*758e9fbaSOystein Eftevaag shift 19*758e9fbaSOystein Eftevaag for x in $* 20*758e9fbaSOystein Eftevaag do 21*758e9fbaSOystein Eftevaag x=$(echo "$x" | sed 's/\//\\\//g') 22*758e9fbaSOystein Eftevaag files=$(echo $files | sed -e "s/$x//") 23*758e9fbaSOystein Eftevaag done 24*758e9fbaSOystein Eftevaag echo $files 25*758e9fbaSOystein Eftevaag} 26*758e9fbaSOystein Eftevaag 27*758e9fbaSOystein Eftevaag# generate list of eys source files for use in Makefile.am 28*758e9fbaSOystein Eftevaag# if you add new source files, you must run ./bootstrap again 29*758e9fbaSOystein Eftevaag# files after the var name will be elimenated from list list 30*758e9fbaSOystein Eftevaagsrc_esys_listvar () { 31*758e9fbaSOystein Eftevaag basedir=$1; 32*758e9fbaSOystein Eftevaag shift; 33*758e9fbaSOystein Eftevaag suffix=$1 34*758e9fbaSOystein Eftevaag shift; 35*758e9fbaSOystein Eftevaag var=$1 36*758e9fbaSOystein Eftevaag shift; 37*758e9fbaSOystein Eftevaag 38*758e9fbaSOystein Eftevaag files=$(find "${basedir}" -name "${suffix}" | LC_ALL=C sort | tr '\n' ' ') 39*758e9fbaSOystein Eftevaag files=$(remove_src "${files}" $*) 40*758e9fbaSOystein Eftevaag printf "${var} = ${files}" 41*758e9fbaSOystein Eftevaag echo "" 42*758e9fbaSOystein Eftevaag} 43*758e9fbaSOystein Eftevaag 44*758e9fbaSOystein EftevaagVARS_FILE=src_vars.mk 45*758e9fbaSOystein EftevaagAUTORECONF=${AUTORECONF:-autoreconf} 46*758e9fbaSOystein Eftevaag 47*758e9fbaSOystein Eftevaagecho "Generating file lists: ${VARS_FILE}" 48*758e9fbaSOystein Eftevaag( 49*758e9fbaSOystein Eftevaag src_listvar "src/util" "*.c" "UTIL_C" 50*758e9fbaSOystein Eftevaag src_listvar "src/util" "*.h" "UTIL_H" 51*758e9fbaSOystein Eftevaag printf "UTIL_SRC = \$(UTIL_C) \$(UTIL_H)\n" 52*758e9fbaSOystein Eftevaag 53*758e9fbaSOystein Eftevaag src_listvar "src/tss2-sys/" "*.c" "TSS2_SYS_C" 54*758e9fbaSOystein Eftevaag src_listvar "src/tss2-sys/" "*.h" "TSS2_SYS_H" 55*758e9fbaSOystein Eftevaag printf "TSS2_SYS_SRC = \$(TSS2_SYS_H) \$(TSS2_SYS_C)\n" 56*758e9fbaSOystein Eftevaag 57*758e9fbaSOystein Eftevaag src_esys_listvar "src/tss2-esys/" "*.h" "TSS2_ESYS_H" src/tss2-esys/esys_crypto_ossl.h src/tss2-esys/esys_crypto_gcrypt.h 58*758e9fbaSOystein Eftevaag src_esys_listvar "src/tss2-esys/" "*.c" "TSS2_ESYS_C" src/tss2-esys/esys_crypto_ossl.c src/tss2-esys/esys_crypto_gcrypt.c 59*758e9fbaSOystein Eftevaag printf "TSS2_ESYS_SRC = \$(TSS2_ESYS_H) \$(TSS2_ESYS_C)\n" 60*758e9fbaSOystein Eftevaag 61*758e9fbaSOystein Eftevaag src_listvar "src/tss2-fapi/" "*.h" "TSS2_FAPI_H" 62*758e9fbaSOystein Eftevaag src_listvar "src/tss2-fapi/" "*.c" "TSS2_FAPI_C" 63*758e9fbaSOystein Eftevaag printf "TSS2_FAPI_SRC = \$(TSS2_FAPI_H) \$(TSS2_FAPI_C)\n" 64*758e9fbaSOystein Eftevaag 65*758e9fbaSOystein Eftevaag src_listvar "src/tss2-mu" "*.c" "TSS2_MU_C" 66*758e9fbaSOystein Eftevaag src_listvar "src/tss2-mu" "*.h" "TSS2_MU_H" 67*758e9fbaSOystein Eftevaag printf "TSS2_MU_SRC = \$(TSS2_MU_C) \$(TSS2_MU_H)\n" 68*758e9fbaSOystein Eftevaag 69*758e9fbaSOystein Eftevaag src_listvar "src/tss2-rc" "*.c" "TSS2_RC_C" 70*758e9fbaSOystein Eftevaag src_listvar "src/tss2-rc" "*.h" "TSS2_RC_H" 71*758e9fbaSOystein Eftevaag printf "TSS2_RC_SRC = \$(TSS2_RC_C) \$(TSS2_RC_H)" 72*758e9fbaSOystein Eftevaag) > ${VARS_FILE} 73*758e9fbaSOystein Eftevaag 74*758e9fbaSOystein Eftevaag# Do not generate fuzz tests unless environment variable GEN_FUZZ is set to 1 75*758e9fbaSOystein Eftevaagrm -rf Makefile-fuzz-generated.am 76*758e9fbaSOystein Eftevaagif test "${GEN_FUZZ}0" -eq 10; then 77*758e9fbaSOystein Eftevaag echo "Generating fuzz tests" 78*758e9fbaSOystein Eftevaag script/gen_fuzz.py 79*758e9fbaSOystein Eftevaagelse 80*758e9fbaSOystein Eftevaag touch Makefile-fuzz-generated.am 81*758e9fbaSOystein Eftevaagfi 82*758e9fbaSOystein Eftevaag 83*758e9fbaSOystein Eftevaag${AUTORECONF} --install --sym $@ 84*758e9fbaSOystein Eftevaag 85*758e9fbaSOystein Eftevaagif grep "Invalid policy. Valid policies: git-directory, minor-version." configure >/dev/null; then 86*758e9fbaSOystein Eftevaag echo "ERROR: ax_is_release.m4 is outdated. ./configure will fail." 87*758e9fbaSOystein Eftevaag echo "Please download from http://ftpmirror.gnu.org/autoconf-archive/autoconf-archive-2019.01.06.tar.xz" 88*758e9fbaSOystein Eftevaag exit 1 89*758e9fbaSOystein Eftevaagfi 90