#!/bin/sh

# Copyright 2015 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Generates a header file with a named constant table made up of "name", value
# entries by including several build target header files and emitting the list
# of defines.  Use of the preprocessor is needed to recursively include all
# relevant headers.

set -e

if [ $# -ne 1 ] && [ $# -ne 2 ]; then
  echo "Usage: $(basename "$0") OUTFILE"
  echo "Usage: $(basename "$0") CC OUTFILE"
  exit 1
fi

if [ $# -eq 2 ]; then
  CC="$1"
  shift
fi
OUTFILE="$1"

INCLUDES='
#include <errno.h>
#include <fcntl.h>
#include <linux/prctl.h>
#include <linux/sched.h>
#include <stddef.h>
#include <signal.h>
#include <sys/stat.h>
#include <sys/types.h>'

# sed expression which extracts constants and converts them from:
#   #define AT_FDWCD foo
# to:
# #ifdef AT_FDCWD
#   { "AT_FDWCD", AT_FDCWD },
# endif
SED_MULTILINE='s/#define \([A-Z][A-Z0-9_]*\).*/#ifdef \1\
  { "\1", \1 },\
#endif  \/\/ \1/'

# Passes the previous list of #includes to the C preprocessor and prints out
# all #defines whose name is all-caps.  Excludes a few symbols that are known
# macro functions that don't evaluate to a constant.
cat <<-EOF > "${OUTFILE}"
/* GENERATED BY MAKEFILE */
$INCLUDES

#include "libconstants.h"
const struct constant_entry constant_table[] = {
$(echo "$INCLUDES" | \
  ${CC} -dD - -E | \
  grep '^#define [A-Z][A-Z0-9_]* ' | \
  grep -v '\(SIGRTMAX\|SIGRTMIN\|SIG_\|NULL\)' | \
  sort | \
  uniq | \
  sed -e "${SED_MULTILINE}")
  { NULL, 0 },
};
EOF
