summaryrefslogtreecommitdiff
path: root/cflags.SH
diff options
context:
space:
mode:
Diffstat (limited to 'cflags.SH')
-rwxr-xr-xcflags.SH71
1 files changed, 47 insertions, 24 deletions
diff --git a/cflags.SH b/cflags.SH
index dc1c9deaf2..4a17475cb0 100755
--- a/cflags.SH
+++ b/cflags.SH
@@ -1,13 +1,15 @@
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
- . ./config.sh
- ;;
+ if test -f config.sh; then TOP=.;
+ elif test -f ../config.sh; then TOP=..;
+ elif test -f ../../config.sh; then TOP=../..;
+ elif test -f ../../../config.sh; then TOP=../../..;
+ elif test -f ../../../../config.sh; then TOP=../../../..;
+ else
+ echo "Can't find config.sh."; exit 1
+ fi
+ . $TOP/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.
@@ -19,25 +21,37 @@ echo "Extracting cflags (with variable substitutions)"
: 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.
-rm -f cflags
$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
- ;;
+ if test -f config.sh; then TOP=.;
+ elif test -f ../config.sh; then TOP=..;
+ elif test -f ../../config.sh; then TOP=../..;
+ elif test -f ../../../config.sh; then TOP=../../..;
+ elif test -f ../../../../config.sh; then TOP=../../../..;
+ else
+ echo "Can't find config.sh."; exit 1
+ fi
+ . $TOP/config.sh
+ ;;
+esac
+
+perltype=''
+optdebug='' # ensure -g used if building a -DDEBUGGING libperl
+case $# in
+2) case $1 in
+ *perl.*) perltype='';;
+ *perld.*) perltype='-DDEBUGGING'; optdebug='-g' ;;
+ *perle.*) perltype='-DEMBED';;
+ *perlde.*) perltype='-DDEBUGGING -DEMBED'; optdebug='-g' ;;
+ *perlm.*) perltype='-DEMBED -DMULTIPLICITY';;
+ *perldm.*) perltype='-DDEBUGGING -DEMBED -DMULTIPLICITY'; optdebug='-g' ;;
+ esac
+ shift ;;
esac
also=': '
@@ -65,6 +79,8 @@ for file do
: or customize here
case "$file" in
+ DB_File) ;;
+ GDBM_File) ;;
NDBM_File) ;;
ODBM_File) ;;
POSIX) ;;
@@ -86,6 +102,9 @@ for file do
perlmain) ;;
perly) ;;
pp) ;;
+ pp_ctl) ;;
+ pp_hot) ;;
+ pp_sys) ;;
regcomp) ;;
regexec) ;;
run) ;;
@@ -98,12 +117,16 @@ for file do
*) ;;
esac
- echo "$cc -c $ccflags $optimize $large $split"
- eval "$also "'"$cc -c $ccflags $optimize $large $split"'
+ if test "X$optdebug" != "X"; then
+ optimize="$optdebug"
+ fi
+
+ echo "$cc -c $ccflags $optimize $perltype $large $split"
+ eval "$also "'"$cc -c $ccflags $optimize $perltype $large $split"'
- . ./config.sh
+ . $TOP/config.sh
done
!NO!SUBS!
-chmod +x cflags
+chmod 755 cflags
$eunicefix cflags