xref: /aosp_15_r20/external/tpm2-tss/bootstrap (revision 758e9fba6fc9adbf15340f70c73baee7b168b1c9)
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