#!/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 ""
}

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_listvar "src/tss2-esys/" "*.h" "TSS2_ESYS_H"
  src_listvar "src/tss2-esys/" "*.c" "TSS2_ESYS_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
