nt-kit revision dafcb997e390efa4423883dafd100c975c4095d6
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#! /bin/sh -ex
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# Copyright (C) 1999-2001 Internet Software Consortium.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# Permission to use, copy, modify, and distribute this software for any
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# purpose with or without fee is hereby granted, provided that the above
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# copyright notice and this permission notice appear in all copies.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# PERFORMANCE OF THIS SOFTWARE.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# $Id: nt-kit,v 1.7 2004/03/05 05:14:16 marka Exp $
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# XXX no command line options at all. especially useful would be a way
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# to specify the target directory on the NT machine, since it is needed
7f667e74610492ddbce8ce60f52ece95d2401949jose borrego# in the Makefiles and otherwise config.status.win32 needs to be edited.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# XXX long term something different clearly needs to be done, so someone
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# without any Unix boxes at all could download the source kit and compile.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# it'll happen; it has been a higher priority just to try to work
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# on the code issues.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwZIP=bind9-nt.zip
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwDOZIP=false
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwcase "$1" in
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw-nozip) DOZIP=false; shift ;;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw-zip) DOZIP=true ; shift ;;
7f667e74610492ddbce8ce60f52ece95d2401949jose borregoesac
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbcase $# in
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw0)
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb dstdir=../bind9-nt
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw rmtdir=g:/proj/bind9-nt
2c2961f8403049d948b9f3e6c35d6488b6b7e1aajose borrego ;;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw1)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw dstdir=../bind9-nt
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw rmtdir="$1"
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States ;;
2c2961f8403049d948b9f3e6c35d6488b6b7e1aajose borrego2)
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb dstdir="$2"
7f667e74610492ddbce8ce60f52ece95d2401949jose borrego rmtdir="$1"
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ;;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw*)
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb echo "usage: $0 rmtdir [dstdir]" >&2
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw exit 99
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb ;;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwesac
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbtest -f version || {
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb echo "$0: must be run in bind9 top level directory" >&2
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw exit 1
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw}
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwset -- `ls -i version`
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbthis_version=$1
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbif test -e "$dstdir/version"; then
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb set -- `ls -i "$dstdir/version" 2>&1`
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbelse
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb set -- 0
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbfi
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbthat_version=$1
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# Try to make an effort to not wipe out current directory or non-bind directory
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbtest "0$this_version" -eq "0$that_version" && {
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb echo "$0: dstdir must not be current directory" >&2
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb exit 1
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb}
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbtest ! -d $dstdir -o "$that_version" -ne 0 || {
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb echo "$0: existing dstdir must be a bind9 source directory" >&2
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb exit 1
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb}
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbrm -rf $dstdir
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbmkdir $dstdir
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbtar cf - . | (cd $dstdir; tar xfp -)
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbcd $dstdir
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb# XXX Tale BSD/OS special
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbrm -f stdio.h
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb# Start with a clean slate. This is not done in the source tree before
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb# the copy so as not to disturb things there.
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb./configure
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbmake clean
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb# XXX header files that (currently) need to be built on Unix
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw##cd lib/isc
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb##make
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb##cd ../dns
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb##make code.h include/dns/enumtype.h include/dns/enumclass.h include/dns/rdatastruct.h
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb##cd ../..
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb# XXX Need a better way
faa1795a28a5c712eed6d0a3f84d98c368a316c6jbperl -pi -e '$_ = "" if /chmod\(.*\)/' lib/dns/sec/dst/dst_parse.c
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# XXX grrr.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwperl -pi -e 'last if /^##confparser\.c/' lib/dns/config/Makefile.in
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# Adjust Makefiles to have NT paths and nmake-compatible variable expansion.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwset +x
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwecho doing Makefile substitutions
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwwhile read file type dates; do
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw case $file in
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */Makefile.in|./make/includes.in|./version)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw echo $file
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw perl -pi -e 'tr%{}/%()\\%;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%(-I.*)unix%$1win32%;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%(-I.*)pthreads.*?(\\?)$%$2%;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%-I ?%/I %g;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%-D%/D %g;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%(\$\(ARFLAGS\)) \$@%$1 /out:\$@%;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%\$\(UNIXOBJS\)%\$(WIN32OBJS)%;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%\$\(PTHREADOBJS\)%%;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%^(SUBDIRS.*)(pthreads)(.*)%$1$3%;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%^(SUBDIRS.*)(unix)(.*)%$1win32$3%;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%rm -f%-del /q /f%;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%rm -rf%-rd /q /s%;
7f667e74610492ddbce8ce60f52ece95d2401949jose borrego s%touch%copy NUL:%' $file
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ;;
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb ./make/rules.in)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw echo frobbing conditionals in $file
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb # /K is specified in MAKEDEFS *YUCK* because nmake
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb # for some BRAINDAMAGED REASON does not put K
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw # in MAKEFLAGS (confirm with "nmake /PKN foo";
7f667e74610492ddbce8ce60f52ece95d2401949jose borrego # only P and N are in Makeflags.) However ... doing
7f667e74610492ddbce8ce60f52ece95d2401949jose borrego # things this way ends up putting /K when you might not
7f667e74610492ddbce8ce60f52ece95d2401949jose borrego # want it. Thanks, Microsoft.
7f667e74610492ddbce8ce60f52ece95d2401949jose borrego perl -pi -e \
7f667e74610492ddbce8ce60f52ece95d2401949jose borrego 'print "MAKEDEFS = /nologo /K\$(MAKEFLAGS)\n"
7f667e74610492ddbce8ce60f52ece95d2401949jose borrego if $. == 1;
7f667e74610492ddbce8ce60f52ece95d2401949jose borrego
7f667e74610492ddbce8ce60f52ece95d2401949jose borrego tr%{}/%()\\%;
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%-I%/I %g;
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb s%-D%/D %g;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%-c%/c %g;
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s/\.c\.o:/.c.obj:/;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%rm -f%-del /q /f%;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s%rm -rf%-rd /q /s%;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s/for\ i\ in\ \$\(ALL_SUBDIRS\).*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw /for %i in (\$(ALL_SUBDIRS)) do \\/x;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s/if\ \[\ (\S+)\ !=\ "nulldir".*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw /\@if NOT $1=="nulldir" \\/x;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s/^.*echo "making .* in .*\n//;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
21b7895d5162890490668032d92f9fbe941f02bbjb s/\(cd\ (\S+);\ (.*)\);\ \\
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw /pushd $1 && cd && $2 && popd || popd/x;
21b7895d5162890490668032d92f9fbe941f02bbjb
5cdbe942b031cac50f4252efc4371b15d624fcd1jb s/\$\$i/%i/g;
5cdbe942b031cac50f4252efc4371b15d624fcd1jb
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw s/^\t+(fi|done).*\n//' $file
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ;;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw esac
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwdone < util/copyrights
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwset -x
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# Make Makefiles
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw./config.status.win32 $rmtdir
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# Copy win32 special files
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwcp config.h.win32 config.h
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwif $DOZIP; then
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw dir="`basename $dstdir`"
21b7895d5162890490668032d92f9fbe941f02bbjb cd ..
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw rm -f $ZIP
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw # q = quiet
21b7895d5162890490668032d92f9fbe941f02bbjb # r = recurse
21b7895d5162890490668032d92f9fbe941f02bbjb # l = LF -> CRLF
21b7895d5162890490668032d92f9fbe941f02bbjb # 9 = highest compression
21b7895d5162890490668032d92f9fbe941f02bbjb zip -qrl9 $ZIP $dir
21b7895d5162890490668032d92f9fbe941f02bbjbfi
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwexit 0
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw