home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
unix
/
volume24
/
yabbawhap
/
part03
/
sysconf
< prev
next >
Wrap
Text File
|
1991-10-09
|
5KB
|
110 lines
#!/bin/sh
# Public domain.
# Configure, eat your heart out.
# make sure we're using sh (stolen from Configure)
PATH='.:/bin:/usr/bin:/usr/local/bin:/usr/ucb:/usr/local:/usr/lbin:/etc'
export PATH || (echo "Aargh! This isn't sh. Desperation time. I will now feed myself to sh..."; exec sh $0; sh $0; kill $$)
echo "We're using sh. Good."
# make sure cmp works
if cmp README README >/dev/null 2>&1
then if cmp README FORMLETTER >/dev/null 2>&1
then echo 'Aargh! cmp returns a zero exit code for different files. This is hopeless.'
exit 1
else echo 'You have a normal cmp. Good.'
fi
else echo 'Aargh! cmp returns a nonzero exit code for the same file. This is hopeless.'
exit 1
fi
# test for bzero()
cat > .bzero.$$.c << 'YOW'
extern bzero(); main() { char c = 1; bzero(&c,1); printf("%d\n",c); }
YOW
if cc -o .bzero.$$ .bzero.$$.c >/dev/null 2>&1
then ./.bzero.$$ > .bzero.$$.out
echo 0 > .zero.$$.out
if cmp .zero.$$.out .bzero.$$.out >/dev/null 2>&1
then echo 'You have bzero(). Enabling it...'
sed '2s/$/ -DBZERO/' < Makefile | sed '2s/-UBZERO /-DBZERO /g' | sed '2s/-DBZERO\(.*\) -DBZERO$/-DBZERO\1/' > Makefile.new
mv Makefile.new Makefile
else echo 'You seem to have bzero(), but it doesn'\''t work. Disabling it...'
sed '2s/$/ -UBZERO/' < Makefile | sed '2s/-DBZERO /-UBZERO /g' | sed '2s/-UBZERO\(.*\) -UBZERO$/-UBZERO\1/' > Makefile.new
mv Makefile.new Makefile
fi
else echo 'You do not have bzero(). Disabling it...'
sed '2s/$/ -UBZERO/' < Makefile | sed '2s/-DBZERO /-UBZERO /g' | sed '2s/-UBZERO\(.*\) -UBZERO$/-UBZERO\1/' > Makefile.new
mv Makefile.new Makefile
fi
rm -f .bzero.$$ .bzero.$$.out .bzero.$$.c .zero.$$.out
# test for memset()
cat > .mmset.$$.c << 'YOW'
extern memset(); main() { char c = 1; memset(&c,0,1); printf("%d\n",c); }
YOW
if cc -o .mmset.$$ .mmset.$$.c >/dev/null 2>&1
then ./.mmset.$$ > .mmset.$$.out
echo 0 > .zero.$$.out
if cmp .zero.$$.out .mmset.$$.out >/dev/null 2>&1
then echo 'You have memset(). Enabling it...'
sed '2s/$/ -DMEMZERO/' < Makefile | sed '2s/-UMEMZERO /-DMEMZERO /g' | sed '2s/-DMEMZERO\(.*\) -DMEMZERO$/-DMEMZERO\1/' > Makefile.new
mv Makefile.new Makefile
else echo 'You seem to have memset(), but it doesn'\''t work. Disabling it...'
sed '2s/$/ -UMEMZERO/' < Makefile | sed '2s/-DMEMZERO /-UMEMZERO /g' | sed '2s/-UMEMZERO\(.*\) -UMEMZERO$/-UMEMZERO\1/' > Makefile.new
mv Makefile.new Makefile
fi
else echo 'You do not have memset(). Disabling it...'
sed '2s/$/ -UMEMZERO/' < Makefile | sed '2s/-DMEMZERO /-UMEMZERO /g' | sed '2s/-UMEMZERO\(.*\) -UMEMZERO$/-UMEMZERO\1/' > Makefile.new
mv Makefile.new Makefile
fi
rm -f .mmset.$$ .mmset.$$.out .mmset.$$.c .zero.$$.out
# test for putchar not sign-extending correctly
cat > .bozo.$$.c << 'YOW'
#include <stdio.h>
main() { int i=255; putchar(25); exit(putchar((char)i) != EOF); }
YOW
if cc -o .bozo.$$ .bozo.$$.c >/dev/null 2>&1
then if ./.bozo.$$ >/dev/null
then echo 'You have the putchar((char) 255) == EOF bug.'
echo 'Let me put -DBRAINDAMAGED into the Makefile for you...'
sed '2s/$/ -DBRAINDAMAGED/' < Makefile | sed '2s/-UBRAINDAMAGED /-DBRAINDAMAGED /g' | sed '2s/-DBRAINDAMAGED\(.*\) -DBRAINDAMAGED$/-DBRAINDAMAGED\1/' > Makefile.new
mv Makefile.new Makefile
echo 'You *must* make sure to leave this defined.'
else echo 'You do not have the putchar((char) 255) == EOF bug.'
echo 'Making sure -DBRAINDAMAGED is not in the Makefile...'
sed '2s/$/ -UBRAINDAMAGED/' < Makefile | sed '2s/-DBRAINDAMAGED /-UBRAINDAMAGED /g' | sed '2s/-UBRAINDAMAGED\(.*\) -UBRAINDAMAGED$/-UBRAINDAMAGED\1/' > Makefile.new
mv Makefile.new Makefile
fi
else echo 'Weird, cannot compile normal stdio program.'
echo 'Making sure -DBRAINDAMAGED is not in the Makefile...'
sed '2s/$/ -UBRAINDAMAGED/' < Makefile | sed '2s/-DBRAINDAMAGED /-UBRAINDAMAGED /g' | sed '2s/-UBRAINDAMAGED\(.*\) -UBRAINDAMAGED$/-UBRAINDAMAGED\1/' > Makefile.new
mv Makefile.new Makefile
fi
rm -f .bozo.$$ .bozo.$$.out .bozo.$$.c .zero.$$.out
# set ZEROFILLED
echo "Since you're running this script, I assume that you're on a UNIX machine,"
echo "and static arrays are zero-filled by default. Enabling -DZEROFILLED..."
sed '2s/$/ -DZEROFILLED/' < Makefile | sed '2s/-UZEROFILLED /-DZEROFILLED /g' | sed '2s/-DZEROFILLED\(.*\) -DZEROFILLED$/-DZEROFILLED\1/' > Makefile.new
mv Makefile.new Makefile
echo ' '
echo 'Okay, now you should make checkconf and run it.'
echo 'If you would like me to do this for you, press return.'
echo 'Otherwise type no and press return, or just interrupt this script.'
read foo
case x"$foo"y in
xy) echo 'make checkconf'
if make checkconf
then echo './checkconf'
./checkconf
else echo 'Oops, make checkconf failed. I give up: you figure it out.'
fi
;;
esac
exit 0