File: rules.sh

package info (click to toggle)
rmatrix 1.7-4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,096 kB
  • sloc: ansic: 97,203; makefile: 280; sh: 165
file content (40 lines) | stat: -rw-r--r-- 1,007 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/sh

pkg=Matrix
if [ ! -f DESCRIPTION -o -z "$(grep "^Package: ${pkg}$" DESCRIPTION)" ]; then
	echo "script must be run in package [${pkg}] root directory"
	exit 1
fi
root=$(pwd)
smk=inst/scripts/sources.mk
rmk=inst/scripts/rules.mk
echo "Getting source file names from ${smk} ..."
lst=$(cat ${smk}| sed -E "1d;s/^[\t ]*([^ ]*[.]c).*$/\1/")
for file in ${lst}; do
	echo "  ${file}"
done
echo "done"
if [ -f ${out} ]; then
	echo "Moving existing ${rmk} to ${rmk}.bak ..."
	mv ${rmk} ${rmk}.bak
	echo "done"
fi
R=R
include1="$(${R} RHOME)/include"
include2="SuiteSparse/SuiteSparse_config"
echo "Writing gcc -MM output to ${rmk} for inclusion in src/Makevars ..."
echo "===="
echo "## Generated by ./rules.sh :" | tee ${rmk}
cd src
for file in ${lst}; do
	if [ -f ${file} ]; then
		gcc -I${include1} -I${include2} -MM ${file} |
			sed -E "s~${include1}/[^ ]*[.]h( |$)~~g;\~^[\t ]*\\\\$~d" |
			tee -a ../${rmk}
	else
		echo "## missing ${file}" | tee -a ../${rmk}
	fi
done
cd ..
echo "===="
echo "done"