blob: dabb555c2793ab6d283de5df9449c9cf4a0a83aa [file] [log] [blame]
Philip Tricca8777b5e2015-09-16 13:14:46 -07001#!/bin/sh
2set -e
Philip Triccad1952b42015-08-05 15:52:10 -07003
Philip Triccae690e082015-09-07 18:17:35 -07004# generate list of source files for use in Makefile.am
5# if you add new source files, you must run ./bootstrap again
Philip Tricca8777b5e2015-09-16 13:14:46 -07006src_listvar () {
Philip Triccae690e082015-09-07 18:17:35 -07007 basedir=$1
8 suffix=$2
9 var=$3
10
David R. Bild8b3c6d92017-11-28 10:34:23 -060011 find "${basedir}" -name "${suffix}" | LC_ALL=C sort | tr '\n' ' ' | (printf "${var} = " && cat)
Philip Triccae690e082015-09-07 18:17:35 -070012 echo ""
13}
14
Juergen Reppbebbc7a2018-06-22 14:03:12 +020015# remove source files from list if their usage depends on a configure option
16remove_src () {
17 files=$1
18 shift
19 for x in $*
20 do
21 x=$(echo "$x" | sed 's/\//\\\//g')
22 files=$(echo $files | sed -e "s/$x//")
23 done
24 echo $files
25}
26
27# generate list of eys source files for use in Makefile.am
28# if you add new source files, you must run ./bootstrap again
29# files after the var name will be elimenated from list list
30src_esys_listvar () {
31 basedir=$1;
32 shift;
33 suffix=$1
34 shift;
35 var=$1
36 shift;
37
38 files=$(find "${basedir}" -name "${suffix}" | LC_ALL=C sort | tr '\n' ' ')
39 files=$(remove_src "${files}" $*)
40 printf "${var} = ${files}"
41 echo ""
42}
43
Philip Triccae690e082015-09-07 18:17:35 -070044VARS_FILE=src_vars.mk
Daniel Mueller30794af2017-01-25 14:46:54 -080045AUTORECONF=${AUTORECONF:-autoreconf}
Philip Triccae690e082015-09-07 18:17:35 -070046
47echo "Generating file lists: ${VARS_FILE}"
Philip Tricca8777b5e2015-09-16 13:14:46 -070048(
Philip Tricca57360da2018-03-15 17:22:10 -070049 src_listvar "src/util" "*.c" "UTIL_C"
50 src_listvar "src/util" "*.h" "UTIL_H"
51 printf "UTIL_SRC = \$(UTIL_C) \$(UTIL_H)\n"
52
Philip Triccad5a6ff42018-03-13 18:19:42 -070053 src_listvar "src/tss2-sys/" "*.c" "TSS2_SYS_C"
54 src_listvar "src/tss2-sys/" "*.h" "TSS2_SYS_H"
55 printf "TSS2_SYS_SRC = \$(TSS2_SYS_H) \$(TSS2_SYS_C)\n"
Philip Triccae690e082015-09-07 18:17:35 -070056
Juergen Reppbebbc7a2018-06-22 14:03:12 +020057 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 src_esys_listvar "src/tss2-esys/" "*.c" "TSS2_ESYS_C" src/tss2-esys/esys_crypto_ossl.c src/tss2-esys/esys_crypto_gcrypt.c
Philip Tricca0013d842018-03-13 18:33:00 -070059 printf "TSS2_ESYS_SRC = \$(TSS2_ESYS_H) \$(TSS2_ESYS_C)\n"
Juergen Reppff821bd2017-12-11 15:21:42 +010060
Juergen Repp6da95b02019-10-10 11:46:03 +020061 src_listvar "src/tss2-fapi/" "*.h" "TSS2_FAPI_H"
62 src_listvar "src/tss2-fapi/" "*.c" "TSS2_FAPI_C"
63 printf "TSS2_FAPI_SRC = \$(TSS2_FAPI_H) \$(TSS2_FAPI_C)\n"
64
Philip Triccaee730622018-03-10 16:40:41 -080065 src_listvar "src/tss2-mu" "*.c" "TSS2_MU_C"
66 src_listvar "src/tss2-mu" "*.h" "TSS2_MU_H"
William Robertsbc76d5a2019-07-10 14:04:06 -050067 printf "TSS2_MU_SRC = \$(TSS2_MU_C) \$(TSS2_MU_H)\n"
68
69 src_listvar "src/tss2-rc" "*.c" "TSS2_RC_C"
70 src_listvar "src/tss2-rc" "*.h" "TSS2_RC_H"
71 printf "TSS2_RC_SRC = \$(TSS2_RC_C) \$(TSS2_RC_H)"
Philip Tricca8777b5e2015-09-16 13:14:46 -070072) > ${VARS_FILE}
Philip Triccae690e082015-09-07 18:17:35 -070073
John Andersen4eab6da2019-01-16 13:59:16 -080074# Do not generate fuzz tests unless environment variable GEN_FUZZ is set to 1
Tadeusz Strukb9d770f2020-02-20 12:55:21 -080075rm -rf Makefile-fuzz-generated.am
John Andersen4eab6da2019-01-16 13:59:16 -080076if test "${GEN_FUZZ}0" -eq 10; then
77 echo "Generating fuzz tests"
78 script/gen_fuzz.py
79else
80 touch Makefile-fuzz-generated.am
81fi
82
William Robertsdd212a22018-11-02 14:33:36 -070083${AUTORECONF} --install --sym $@
Andreas Fuchse460a5c2019-06-13 17:12:07 +020084
85if grep "Invalid policy. Valid policies: git-directory, minor-version." configure >/dev/null; then
86 echo "ERROR: ax_is_release.m4 is outdated. ./configure will fail."
87 echo "Please download from http://ftpmirror.gnu.org/autoconf-archive/autoconf-archive-2019.01.06.tar.xz"
88 exit 1
89fi