make/update-rules.sh

Wed, 18 Sep 2024 00:02:18 +0200

author
Mike Becker <universe@uap-core.de>
date
Wed, 18 Sep 2024 00:02:18 +0200
changeset 889
f549fd9fbd8f
parent 766
e59b76889f00
child 988
15b3ca7ee33f
permissions
-rwxr-xr-x

apply binary search in cx_array_insert_sorted()

resolves #416
relates to #424

#!/bin/sh

dir="$1"
target="$2"

if [ -z "$dir" ]; then
  echo "Usage: $0 <src_dir>"
  exit 1
fi

if [ -z "$target" ]; then
  target='$(build_dir)'
fi

if [ -d "$dir" ]; then
  :
else
  echo "'$dir' is not a directory"
  exit 1
fi

if [ -z "$CC" ]; then
  for cc in gcc clang ; do
    if command -v "$cc" > /dev/null ; then
      CC="$cc"
      break
    fi
  done
fi

if [ -z "$CC" ]; then
  echo "No suitable compiler found to generate make rules"
  exit 1
fi

if command -v sed > /dev/null ; then
  :
else
  echo "You need the 'sed' program for this script to work."
  exit 1
fi

cd "$dir"

mv Makefile Makefile.old
sed '/FORCE:/q' Makefile.old > Makefile
echo >> Makefile
for file in `ls *.c` ; do
  "$CC" -MT "$target/${file/.c/\$(OBJ_EXT)}" -MM $CFLAGS "$file"
  printf '\t@echo "Compiling $<"\n'
  printf '\t$(CC) -o $@ $(CFLAGS) -c $<\n\n'
done  >> Makefile
rm Makefile.old

mercurial