11556Srgrimes#!/bin/csh -f
21556Srgrimes#
31556Srgrimesset dir=`pwd`
41556Srgrimesset karch=`uname -m`
51556Srgrimesif ( -d /sys/arch/$karch ) set archdir="/sys/arch/$karch"
61556Srgrimesif ( -d /sys/$karch ) set archdir="/sys/$karch"
71556Srgrimesset confdir="$archdir/conf"
81556Srgrimes
91556Srgrimesif ( $dir =~ */FreeBSD ) cd ..
101556Srgrimesecho -n "Installing "
111556Srgrimesforeach i (ip_{auth,fil,frag,nat,pool,proxy,scan,state,sync}.[ch] fil.c \
121556Srgrimes	   ip_*_pxy.c ip_compat.h ip_log.c )
131556Srgrimes	echo -n "$i ";
141556Srgrimes	cp $i /sys/netinet
151556Srgrimes	chmod 644 /sys/netinet/$i
161556Srgrimes	switch ($i)
171556Srgrimes	case *.h:
181556Srgrimes		/bin/cp $i /usr/include/netinet/$i
191556Srgrimes		chmod 644 /usr/include/netinet/$i
201556Srgrimes		breaksw 
211556Srgrimes	endsw   
221556Srgrimesend
231556Srgrimesecho ""
241556Srgrimesgrep iplopen $archdir/$karch/conf.c >& /dev/null
251556Srgrimesif ( $status != 0 ) then
261556Srgrimes	echo "Patching $archdir/$karch/conf.c"
271556Srgrimes	cat FreeBSD/conf.c.diffs | (cd $archdir/$karch; patch)
281556Srgrimesendif
291556Srgrimesgrep fr_checkp /sys/netinet/ip_input.c >& /dev/null
301556Srgrimesif ( $status != 0 ) then
311556Srgrimes	echo "Patching ip_input.c, ip_output.c and in_proto.c"
321556Srgrimes	cat FreeBSD/ip_{in,out}put.c.diffs FreeBSD/in_proto.c.diffs | \
331556Srgrimes	(cd /sys/netinet; patch)
341556Srgrimesendif
3520418Ssteveif ( -f /sys/conf/files.newconf ) then
361556Srgrimes	echo "Patching /sys/conf/files.newconf"
371556Srgrimes	cat FreeBSD/files.newconf.diffs | (cd /sys/conf; patch)
381556Srgrimes	echo "Patching /sys/conf/files"
391556Srgrimes	cat FreeBSD/files.diffs | (cd /sys/conf; patch)
401556Srgrimesendif
4136048Scharnierif ( -f /sys/conf/files.oldconf ) then
4236048Scharnier	echo "Patching /sys/conf/files.oldconf"
4336048Scharnier	cat FreeBSD/files.oldconf.diffs | (cd /sys/conf; patch)
4436048Scharnier	echo "Patching /sys/conf/files"
4550471Speter	cat FreeBSD/filez.diffs | (cd /sys/conf; patch)
461556Srgrimesendif
471556Srgrimes
481556Srgrimesset config=`(cd $confdir; /bin/ls -1t [0-9A-Z_]*) | head -1`
491556Srgrimesecho -n "Kernel configuration to update [$config] "
501556Srgrimesset newconfig=$<
511556Srgrimesif ( "$newconfig" != "" ) then
521556Srgrimes	set config="$confdir/$newconfig"
531556Srgrimeselse
541556Srgrimes	set newconfig=$config
551556Srgrimesendif
561556Srgrimesecho "Re-config'ing $newconfig..."
571556Srgrimesif ( -f $confdir/$newconfig ) then
5824524Smpp	mv $confdir/$newconfig $confdir/$newconfig.bak
591556Srgrimesendif
601556Srgrimesif ( -d $archdir/../compile/$newconfig ) then
611556Srgrimes	set bak=".bak"
621556Srgrimes	set dot=0
631556Srgrimes	while ( -d $archdir/../compile/${newconfig}.${bak} )
641556Srgrimes		set bak=".bak.$dot"
651556Srgrimes		set dot=`expr 1 + $dot`
6640606Smsmith	end
672923Sphk	mv $archdir/../compile/$newconfig $archdir/../compile/${newconfig}.${bak}
6824524Smppendif
691556Srgrimesawk '{print $0;if($2=="INET"){print"options IPFILTER"}}' \
702923Sphk	$confdir/$newconfig.bak > $confdir/$newconfig
711556Srgrimesecho 'You will now need to run "config" and build a new kernel.'
7224348Simpexit 0
731556Srgrimes