nt-kit revision 9c3531d72aeaad6c5f01efe6a1c82023e1379e4d
#
# Copyright (C) 1999, 2000 Internet Software Consortium.
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
# ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
# CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
# PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
# SOFTWARE.
# $Id: nt-kit,v 1.3 2000/06/22 22:00:42 tale Exp $
# XXX no command line options at all. especially useful would be a way
# to specify the target directory on the NT machine, since it is needed
# in the Makefiles and otherwise config.status.win32 needs to be edited.
# XXX long term something different clearly needs to be done, so someone
# without any Unix boxes at all could download the source kit and compile.
# it'll happen; it has been a higher priority just to try to work
# on the code issues.
DOZIP=false
case "$1" in
esac
case $# in
0)
;;
1)
rmtdir="$1"
;;
2)
dstdir="$2"
rmtdir="$1"
;;
*)
echo "usage: $0 rmtdir [dstdir]" >&2
exit 99
;;
esac
test -f version || {
echo "$0: must be run in bind9 top level directory" >&2
exit 1
}
this_version=$1
if test -e "$dstdir/version"; then
else
set -- 0
fi
that_version=$1
# Try to make an effort to not wipe out current directory or non-bind directory
echo "$0: dstdir must not be current directory" >&2
exit 1
}
echo "$0: existing dstdir must be a bind9 source directory" >&2
exit 1
}
cd $dstdir
# Start with a clean slate. This is not done in the source tree before
# the copy so as not to disturb things there.
# XXX header files that (currently) need to be built on Unix
##make
##cd ../dns
##cd ../..
# XXX Need a better way
# XXX grrr.
# Adjust Makefiles to have NT paths and nmake-compatible variable expansion.
set +x
echo $file
s%(-I.*)unix%$1win32%;
s%(-I.*)pthreads.*?(\\?)$%$2%;
s%-I ?%/I %g;
s%-D%/D %g;
s%(\$\(ARFLAGS\)) \$@%$1 /out:\$@%;
s%\$\(UNIXOBJS\)%\$(WIN32OBJS)%;
s%\$\(PTHREADOBJS\)%%;
s%^(SUBDIRS.*)(pthreads)(.*)%$1$3%;
s%^(SUBDIRS.*)(unix)(.*)%$1win32$3%;
s%rm -f%-del /q /f%;
s%rm -rf%-rd /q /s%;
s%touch%copy NUL:%' $file
;;
# /K is specified in MAKEDEFS *YUCK* because nmake
# for some BRAINDAMAGED REASON does not put K
# in MAKEFLAGS (confirm with "nmake /PKN foo";
# only P and N are in Makeflags.) However ... doing
# things this way ends up putting /K when you might not
# want it. Thanks, Microsoft.
'print "MAKEDEFS = /nologo /K\$(MAKEFLAGS)\n"
if $. == 1;
tr%{}/%()\\%;
s%-I%/I %g;
s%-D%/D %g;
s%-c%/c %g;
s/\.c\.o:/.c.obj:/;
s%rm -f%-del /q /f%;
s%rm -rf%-rd /q /s%;
/for %i in (\$(ALL_SUBDIRS)) do \\/x;
/\@if NOT $1=="nulldir" \\/x;
s/^.*echo "making .* in .*\n//;
s/\(cd\ (\S+);\ (.*)\);\ \\
/pushd $1 && cd && $2 && popd || popd/x;
s/\$\$i/%i/g;
s/^\t+(fi|done).*\n//' $file
;;
esac
done < util/copyrights
set -x
# Make Makefiles
# Copy win32 special files
if $DOZIP; then
cd ..
# q = quiet
# r = recurse
# l = LF -> CRLF
# 9 = highest compression
fi
exit 0