1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/make/update-rules.sh Thu Nov 23 23:33:09 2023 +0100 1.3 @@ -0,0 +1,48 @@ 1.4 +#!/bin/sh 1.5 + 1.6 +dir="$1" 1.7 + 1.8 +if [ -z "$dir" ]; then 1.9 + echo "Usage: $0 <src_dir>" 1.10 + exit 1 1.11 +fi 1.12 + 1.13 +if [ -d "$dir" ]; then 1.14 + : 1.15 +else 1.16 + echo "'$dir' is not a directory" 1.17 + exit 1 1.18 +fi 1.19 + 1.20 +if [ -z "$CC" ]; then 1.21 + for cc in gcc clang ; do 1.22 + if command -v "$cc" > /dev/null ; then 1.23 + CC="$cc" 1.24 + break 1.25 + fi 1.26 + done 1.27 +fi 1.28 + 1.29 +if [ -z "$CC" ]; then 1.30 + echo "No suitable compiler found to generate make rules" 1.31 + exit 1 1.32 +fi 1.33 + 1.34 +if command -v sed > /dev/null ; then 1.35 + : 1.36 +else 1.37 + echo "You need the 'sed' program for this script to work." 1.38 + exit 1 1.39 +fi 1.40 + 1.41 +cd "$dir" 1.42 + 1.43 +mv Makefile Makefile.old 1.44 +sed '/FORCE:/q' Makefile.old > Makefile 1.45 +echo >> Makefile 1.46 +for file in `ls *.c` ; do 1.47 + "$CC" -MT "\$(build_dir)/${file/.c/\$(OBJ_EXT)}" -MM $CFLAGS "$file" 1.48 + printf '\t@echo "Compiling $<"\n' 1.49 + printf '\t$(CC) -o $@ $(CFLAGS) -c $<\n\n' 1.50 +done >> Makefile 1.51 +rm Makefile.old