Subject: Re: self bootstrap on Interix 3.5
To: None <sjg@juniper.net>
From: OBATA Akio <obata@lins.jp>
List: pkgsrc-users
Date: 04/13/2006 15:17:43
Hi!

On Thu, 13 Apr 2006 14:28:12, Simon Gerraty wrote:
> I've just posted bmake-20060412.tar.gz to
> ftp.netbsd.org:/pub/NetBSD/misc/sjg/
> 
> I've tested this on NetBSD, FreeBSD, Linux and SunOS.
> If you could try ./bmake/boot-strap on Interix I'd be interested in the
> result.

Also get mk-20060318.tar.gz and extrat then:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
obata@POM[/var/tmp/test] ./bmake/boot-strap
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
>>>(snip)<<<
checking for MACHINE & MACHINE_ARCH...
defaults: MACHINE=i386, MACHINE_ARCH=i386
Using: MACHINE=i386, MACHINE_ARCH=i386
Using: MKSRC=/var/tmp/test/mk
configure: creating ./config.status
config.status: creating Makefile
config.status: creating makefile.boot
config.status: creating lst.lib/makefile.boot
config.status: creating unit-tests/Makefile
config.status: creating config.h
config.status: config.h is unchanged

You can now run

        make -f makefile.boot bootstrap

to produce a fully functional bmake. You can then use:

        make -f makefile.boot install

for an initial installation.  If you already have macros installed
you can use:

        ./bmake -f Makefile

to install etc.

rm -f bmake *.[ado] */*.[ado] .*.done .depend
gcc -I. -I/var/tmp/test/bmake -DHAVE_CONFIG_H  -I/var/tmp/test/bmake/missing -DNEED_H
OST_CDEFS_H  -D_PATH_DEFSYSPATH=\"/usr/pkg/share/mk\" -c /var/tmp/test/bmake/arch.c
/var/tmp/test/bmake/arch.c: __ `Arch_ParseArchive' _:
/var/tmp/test/bmake/arch.c:430: error: `MAXPATHLEN' undeclared (first use in this fun
ction)
/var/tmp/test/bmake/arch.c:430: error: (Each undeclared identifier is reported only o
nce
/var/tmp/test/bmake/arch.c:430: error: for each function it appears in.)
/var/tmp/test/bmake/arch.c: __ `ArchStatMember' _:
/var/tmp/test/bmake/arch.c:565: error: `MAXPATHLEN' undeclared (first use in this fun
ction)
/var/tmp/test/bmake/arch.c: __ `ArchFindMember' _:
/var/tmp/test/bmake/arch.c:955: error: `MAXPATHLEN' undeclared (first use in this fun
ction)
*** Error code 1

Stop.
obata@POM[/var/tmp/test]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


MAXPATHLEN is defined in /usr/include/limits.h in #ifdef _ALL_SOURCE

Add 
#include <limits.h>
to arch.c

then
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
obata@POM[/var/tmp/test] env CC="gcc -D_ALL_SOURCE" ./bmake/boot-strap
checking for gcc... gcc -D_ALL_SOURCE
checking for C compiler default output... a.out
checking whether the C compiler works... yes
>>>(snip)<<<
checking for MACHINE & MACHINE_ARCH...
defaults: MACHINE=i386, MACHINE_ARCH=i386
Using: MACHINE=i386, MACHINE_ARCH=i386
Using: MKSRC=/var/tmp/test/mk
configure: creating ./config.status
config.status: creating Makefile
config.status: creating makefile.boot
config.status: creating lst.lib/makefile.boot
config.status: creating unit-tests/Makefile
config.status: creating config.h
config.status: config.h is unchanged

You can now run

        make -f makefile.boot bootstrap

to produce a fully functional bmake. You can then use:

        make -f makefile.boot install

for an initial installation.  If you already have macros installed
you can use:

        ./bmake -f Makefile

to install etc.

rm -f bmake *.[ado] */*.[ado] .*.done .depend
gcc -D_ALL_SOURCE -I. -I/var/tmp/test/bmake -DHAVE_CONFIG_H  -I/var/tmp/test/bma
ke/missing -DNEED_HOST_CDEFS_H  -D_PATH_DEFSYSPATH=\"/usr/pkg/share/mk\" -c /var
/tmp/test/bmake/arch.c
gcc -D_ALL_SOURCE -I. -I/var/tmp/test/bmake -DHAVE_CONFIG_H  -I/var/tmp/test/bma
ke/missing -DNEED_HOST_CDEFS_H  -D_PATH_DEFSYSPATH=\"/usr/pkg/share/mk\" -c /var
/tmp/test/bmake/buf.c
>>>(snip)<<<
gcc -D_ALL_SOURCE -I.. -I..//var/tmp/test/bmake -I/var/tmp/test/bmake -I. -I/var
/tmp/test/bmake -DHAVE_CONFIG_H  -I/var/tmp/test/bmake/missing -DNEED_HOST_CDEFS
_H  -D_PATH_DEFSYSPATH="/usr/pkg/share/mk" -c /var/tmp/test/bmake/lst.lib/lstNex
t.c
gcc -D_ALL_SOURCE *.o lst.lib/*.o -o bmake.boot
rm -f *.[ado] */*.[ado]
cp -f autodep.mk dep.mk doc.mk dpadd.mk host-target.mk init.mk java.mk lib.mk li
nks.mk man.mk nls.mk obj.mk own.mk prog.mk subdir.mk target-flags.mk warnings.mk
 yacc.mk AIX.sys.mk HP-UX.sys.mk Linux.sys.mk NetBSD.sys.mk OSF1.sys.mk SunOS.4.
sys.mk SunOS.5.sys.mk Darwin.sys.mk IRIX.sys.mk OpenBSD.sys.mk Generic.sys.mk Un
ixWare.sys.mk /var/tmp/test/Interix/mk
chmod 644 autodep.mk dep.mk doc.mk dpadd.mk host-target.mk init.mk java.mk lib.m
k links.mk man.mk nls.mk obj.mk own.mk prog.mk subdir.mk target-flags.mk warning
s.mk yacc.mk
CC="gcc -D_ALL_SOURCE" LIBC= MAKEFLAGS= MAKESYSPATH=`pwd`/mk:/var/tmp/test/mk:/u
sr/pkg/share/mk:/usr/share/mk:/usr/local/share/mk:/opt/share/mk ./bmake.boot -f
Makefile
gcc -D_ALL_SOURCE -O -D_PATH_DEFSYSPATH=\"/usr/pkg/share/mk\" -I. -I/var/tmp/tes
t/bmake -DHAVE_CONFIG_H  -I/var/tmp/test/bmake/missing -DNEED_HOST_CDEFS_H  -DMA
KE_NATIVE  -DSIGNAL_FLAGS=SA_RESTART  -MD   -c /var/tmp/test/bmake/arch.c
>>>(snip)<<<
gcc -D_ALL_SOURCE -O -D_PATH_DEFSYSPATH=\"/usr/pkg/share/mk\" -I. -I/var/tmp/tes
t/bmake -DHAVE_CONFIG_H  -I/var/tmp/test/bmake/missing -DNEED_HOST_CDEFS_H  -DMA
KE_NATIVE  -DSIGNAL_FLAGS=SA_RESTART  -MD   -c /var/tmp/test/bmake/getenv.c
gcc -D_ALL_SOURCE -O -D_PATH_DEFSYSPATH=\"/usr/pkg/share/mk\" -I. -I/var/tmp/tes
t/bmake -DHAVE_CONFIG_H  -I/var/tmp/test/bmake/missing -DNEED_HOST_CDEFS_H  -DMA
KE_NATIVE  -DSIGNAL_FLAGS=SA_RESTART  -MD   -c /var/tmp/test/bmake/sigcompat.c
gcc -D_ALL_SOURCE   -o bmake  arch.o buf.o compat.o cond.o dir.o for.o hash.o jo
b.o main.o make.o parse.o str.o suff.o targ.o trace.o var.o util.o lstAppend.o l
stAtEnd.o lstAtFront.o lstClose.o lstConcat.o lstDatum.o lstDeQueue.o lstDestroy
.o lstDupl.o lstEnQueue.o lstFind.o lstFindFrom.o lstFirst.o lstForEach.o lstFor
EachFrom.o lstInit.o lstInsert.o lstIsAtEnd.o lstIsEmpty.o lstLast.o lstMember.o
 lstNext.o lstOpen.o lstRemove.o lstReplace.o lstSucc.o getenv.o sigcompat.o
CC="gcc -D_ALL_SOURCE" LIBC= MAKEFLAGS= MAKESYSPATH=`pwd`/mk:/var/tmp/test/mk:/u
sr/pkg/share/mk:/usr/share/mk:/usr/local/share/mk:/opt/share/mk `pwd`/bmake -f M
akefile test
cd /var/tmp/test/Interix/unit-tests && /var/tmp/test/Interix/bmake TEST_MAKE=/va
r/tmp/test/Interix/bmake test
/var/tmp/test/Interix/bmake -f Makefile > test.out 2>&1
diff -u /var/tmp/test/bmake/unit-tests/test.exp test.out

Commands to install into /dev/fs/C/Documents/

mkdir -p /dev/fs/C/Documents/bin
cp Interix/bmake /dev/fs/C/Documents/bin/bmake-20060412
rm -f /dev/fs/C/Documents/bin/bmake
ln -s bmake-20060412 /dev/fs/C/Documents/bin/bmake
/var/tmp/test/mk/install-mk /dev/fs/C/Documents/share/mk

Commands to install into /usr/pkg/

mkdir -p /usr/pkg/bin
cp Interix/bmake /usr/pkg/bin/bmake-20060412
rm -f /usr/pkg/bin/bmake
ln -s bmake-20060412 /usr/pkg/bin/bmake
/var/tmp/test/mk/install-mk /usr/pkg/share/mk
obata@POM[/var/tmp/test] echo $HOME
/dev/fs/C/Documents and Settings/obata
obata@POM[/var/tmp/test]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Build seem to be OK!

--
"Of course I love NetBSD":-)
OBATA Akio / obata@lins.jp