| #!/bin/sh |
| set -e |
| |
| # generate list of source files for use in Makefile.am |
| # if you add new source files, you must run ./bootstrap again |
| src_listvar () { |
| basedir=$1 |
| suffix=$2 |
| var=$3 |
| |
| find "${basedir}" -name "${suffix}" | LC_ALL=C sort | tr '\n' ' ' | (printf "${var} = " && cat) |
| echo "" |
| } |
| |
| # remove source files from list if their usage depends on a configure option |
| remove_src () { |
| files=$1 |
| shift |
| for x in $* |
| do |
| x=$(echo "$x" | sed 's/\//\\\//g') |
| files=$(echo $files | sed -e "s/$x//") |
| done |
| echo $files |
| } |
| |
| # generate list of eys source files for use in Makefile.am |
| # if you add new source files, you must run ./bootstrap again |
| # files after the var name will be elimenated from list list |
| src_esys_listvar () { |
| basedir=$1; |
| shift; |
| suffix=$1 |
| shift; |
| var=$1 |
| shift; |
| |
| files=$(find "${basedir}" -name "${suffix}" | LC_ALL=C sort | tr '\n' ' ') |
| files=$(remove_src "${files}" $*) |
| printf "${var} = ${files}" |
| echo "" |
| } |
| |
| VARS_FILE=src_vars.mk |
| AUTORECONF=${AUTORECONF:-autoreconf} |
| |
| echo "Generating file lists: ${VARS_FILE}" |
| ( |
| src_listvar "src/util" "*.c" "UTIL_C" |
| src_listvar "src/util" "*.h" "UTIL_H" |
| printf "UTIL_SRC = \$(UTIL_C) \$(UTIL_H)\n" |
| |
| src_listvar "src/tss2-sys/" "*.c" "TSS2_SYS_C" |
| src_listvar "src/tss2-sys/" "*.h" "TSS2_SYS_H" |
| printf "TSS2_SYS_SRC = \$(TSS2_SYS_H) \$(TSS2_SYS_C)\n" |
| |
| src_esys_listvar "src/tss2-esys/" "*.h" "TSS2_ESYS_H" src/tss2-esys/esys_crypto_ossl.h src/tss2-esys/esys_crypto_gcrypt.h |
| src_esys_listvar "src/tss2-esys/" "*.c" "TSS2_ESYS_C" src/tss2-esys/esys_crypto_ossl.c src/tss2-esys/esys_crypto_gcrypt.c |
| printf "TSS2_ESYS_SRC = \$(TSS2_ESYS_H) \$(TSS2_ESYS_C)\n" |
| |
| src_listvar "src/tss2-mu" "*.c" "TSS2_MU_C" |
| src_listvar "src/tss2-mu" "*.h" "TSS2_MU_H" |
| printf "TSS2_MU_SRC = \$(TSS2_MU_C) \$(TSS2_MU_H)" |
| ) > ${VARS_FILE} |
| |
| ${AUTORECONF} --install --sym $@ |