summaryrefslogtreecommitdiff
path: root/cflags.SH
diff options
context:
space:
mode:
authorLarry Wall <lwall@netlabs.com>1991-06-06 23:27:54 +0000
committerLarry Wall <lwall@netlabs.com>1991-06-06 23:27:54 +0000
commit2b317908ea5309ab202d1cdbadccfdf42d10e2b1 (patch)
treef523f01a4205f56f5435a39161acb4020ad5bc5b /cflags.SH
parent132b68a5c516d31aa5abdbca3bb36ded2c13b4cc (diff)
downloadperl-2b317908ea5309ab202d1cdbadccfdf42d10e2b1.tar.gz
perl 4.0 patch 5: patch #4, continued
See patch #4.
Diffstat (limited to 'cflags.SH')
-rw-r--r--cflags.SH138
1 files changed, 89 insertions, 49 deletions
diff --git a/cflags.SH b/cflags.SH
index 52a122eb1e..d01bad8f4f 100644
--- a/cflags.SH
+++ b/cflags.SH
@@ -5,76 +5,116 @@ case $CONFIG in
ln ../../config.sh . || \
ln ../../../config.sh . || \
(echo "Can't find config.sh."; exit 1)
- fi 2>/dev/null
- . ./config.sh
+ fi
+ . config.sh
;;
esac
+: This forces SH files to create target in same directory as SH file.
+: This is so that make depend always knows where to find SH derivatives.
case "$0" in
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
esac
+echo "Extracting cflags (with variable substitutions)"
+: This section of the file will have variable substitutions done on it.
+: Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!.
+: Protect any dollar signs and backticks that you do not want interpreted
+: by putting a backslash in front. You may delete these comments.
+$spitshell >cflags <<!GROK!THIS!
+!GROK!THIS!
+
+: In the following dollars and backticks do not need the extra backslash.
+$spitshell >>cflags <<'!NO!SUBS!'
+case "$0" in
+*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
+esac
+case $CONFIG in
+'')
+ if test ! -f config.sh; then
+ ln ../config.sh . || \
+ ln ../../config.sh . || \
+ ln ../../../config.sh . || \
+ (echo "Can't find config.sh."; exit 1)
+ fi 2>/dev/null
+ . ./config.sh
+ ;;
+esac
also=': '
case $# in
-1) also='echo 1>&2 " CFLAGS = "'
+1) also='echo 1>&2 " CCCMD = "'
esac
case $# in
0) set *.c; echo "The current C flags are:" ;;
-*) set `echo "$* " | sed 's/\.o /.c /g'`
esac
+
+set `echo "$* " | sed 's/\.[oc] / /g'`
+
for file do
case "$#" in
1) ;;
- *) echo $n " $file $c" ;;
+ *) echo $n " $file.c $c" ;;
esac
+ : allow variables like toke_cflags to be evaluated
+
+ eval 'eval ${'"${file}_cflags"'-""}'
+
+ : or customize here
+
case "$file" in
- array.c) ;;
- cmd.c) ;;
- cons.c) ;;
- consarg.c) ;;
- doarg.c) ;;
- doio.c) ;;
- dolist.c) ;;
- dump.c) ;;
- eval.c) ;;
- form.c) ;;
- hash.c) ;;
- malloc.c) ;;
- perl.c) ;;
- perly.c) ;;
- regcomp.c) ;;
- regexec.c) ;;
- stab.c) ;;
- str.c) ;;
- toke.c) ;;
- usersub.c) ;;
- util.c) ;;
- tarray.c) ;;
- tcmd.c) ;;
- tcons.c) ;;
- tconsarg.c) ;;
- tdoarg.c) ;;
- tdoio.c) ;;
- tdolist.c) ;;
- tdump.c) ;;
- teval.c) ;;
- tform.c) ;;
- thash.c) ;;
- tmalloc.c) ;;
- tperl.c) ;;
- tperly.c) ;;
- tregcomp.c) ;;
- tregexec.c) ;;
- tstab.c) ;;
- tstr.c) ;;
- ttoke.c) ;;
- tusersub.c) ;;
- tutil.c) ;;
+ array) ;;
+ cmd) ;;
+ cons) ;;
+ consarg) ;;
+ doarg) ;;
+ doio) ;;
+ dolist) ;;
+ dump) ;;
+ eval) ;;
+ form) ;;
+ hash) ;;
+ malloc) ;;
+ perl) ;;
+ perly) ;;
+ regcomp) ;;
+ regexec) ;;
+ stab) ;;
+ str) ;;
+ toke) ;;
+ usersub) ;;
+ util) ;;
+ tarray) ;;
+ tcmd) ;;
+ tcons) ;;
+ tconsarg) ;;
+ tdoarg) ;;
+ tdoio) ;;
+ tdolist) ;;
+ tdump) ;;
+ teval) ;;
+ tform) ;;
+ thash) ;;
+ tmalloc) ;;
+ tperl) ;;
+ tperly) ;;
+ tregcomp) ;;
+ tregexec) ;;
+ tstab) ;;
+ tstr) ;;
+ ttoke) ;;
+ tusersub) ;;
+ tutil) ;;
*) ;;
esac
- echo "$ccflags $optimize $large $split"
- eval "$also $ccflags $optimize $large $split"
+ echo "$cc -c $ccflags $optimize $large $split"
+ eval "$also "'"$cc -c $ccflags $optimize $large $split"'
+
+ . ./config.sh
+
done
+!NO!SUBS!
+chmod +x cflags
+$eunicefix cflags