add script to update make rules

Tue, 07 Nov 2023 20:24:08 +0100

author
Mike Becker <universe@uap-core.de>
date
Tue, 07 Nov 2023 20:24:08 +0100
changeset 8
756b49205a29
parent 7
9dd76cbd6c90
child 9
6ad1a4213954

add script to update make rules

Makefile file | annotate | diff | comparison | revisions
make/update-rules.sh file | annotate | diff | comparison | revisions
     1.1 --- a/Makefile	Wed Nov 01 21:00:33 2023 +0100
     1.2 +++ b/Makefile	Tue Nov 07 20:24:08 2023 +0100
     1.3 @@ -47,5 +47,9 @@
     1.4  	@echo "create config"
     1.5  	@./configure
     1.6  
     1.7 +update-rules:
     1.8 +	make/update-rules.sh src
     1.9 +	CFLAGS=-I../src make/update-rules.sh test
    1.10 +
    1.11  FORCE:
    1.12  
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/make/update-rules.sh	Tue Nov 07 20:24:08 2023 +0100
     2.3 @@ -0,0 +1,48 @@
     2.4 +#!/bin/sh
     2.5 +
     2.6 +dir="$1"
     2.7 +
     2.8 +if [ -z "$dir" ]; then
     2.9 +  echo "Usage: $0 <src_dir>"
    2.10 +  exit 1
    2.11 +fi
    2.12 +
    2.13 +if [ -d "$dir" ]; then
    2.14 +  :
    2.15 +else
    2.16 +  echo "'$dir' is not a directory"
    2.17 +  exit 1
    2.18 +fi
    2.19 +
    2.20 +if [ -z "$CC" ]; then
    2.21 +  for cc in gcc clang ; do
    2.22 +    if command -v "$cc" > /dev/null ; then
    2.23 +      CC="$cc"
    2.24 +      break
    2.25 +    fi
    2.26 +  done
    2.27 +fi
    2.28 +
    2.29 +if [ -z "$CC" ]; then
    2.30 +  echo "No suitable compiler found to generate make rules"
    2.31 +  exit 1
    2.32 +fi
    2.33 +
    2.34 +if command -v sed > /dev/null ; then
    2.35 +  :
    2.36 +else
    2.37 +  echo "You need the 'sed' program for this script to work."
    2.38 +  exit 1
    2.39 +fi
    2.40 +
    2.41 +cd "$dir"
    2.42 +
    2.43 +mv Makefile Makefile.old
    2.44 +sed '/FORCE:/q' Makefile.old > Makefile
    2.45 +echo >> Makefile
    2.46 +for file in `ls *.c` ; do
    2.47 +  "$CC" -MT "\$(BUILD_DIR)/${file/.c/.o}" -MM $CFLAGS "$file"
    2.48 +  printf '\t@echo "Compiling $<"\n'
    2.49 +  printf '\t$(CC) -o $@ $(CFLAGS) -c $<\n\n'
    2.50 +done  >> Makefile
    2.51 +rm Makefile.old

mercurial