#!/bin/bash

# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)

. config/options "${1}"

RECONF_DIR="${3}"

if [ ! -f "${RECONF_DIR}/configure.in" \
  -a ! -f "${RECONF_DIR}/configure.ac" ]; then
  die "configure.in or configure.ac not found"
fi

if [ ! -f "${RECONF_DIR}/.autoreconf-done" ]; then
  PARENT_PKG="${2}"

  # lock package during autoreconf otherwise it is racy, eg. glib:host/glib:target building concurrently
  pkg_lock "${PKG_NAME}" "reconf" "${PARENT_PKG}"

  if [ ! -f "${RECONF_DIR}/.autoreconf-done" ]; then
    pkg_lock_status "ACTIVE" "${PKG_NAME}" "reconf"

    touch "${RECONF_DIR}/NEWS" "${RECONF_DIR}/AUTHORS" "${RECONF_DIR}/ChangeLog"
    mkdir -p "${RECONF_DIR}/m4"

    build_msg "CLR_AUTORECONF" "AUTORECONF" "${PKG_NAME}" "indent"

    do_autoreconf "${RECONF_DIR}"
    touch "${RECONF_DIR}/.autoreconf-done"

    pkg_lock_status "UNLOCK" "${PKG_NAME}" "reconf" "configured"
  else
    pkg_lock_status "UNLOCK" "${PKG_NAME}" "reconf" "already configured"
  fi
fi
