Subject: Re: self bootstrap on Interix 3.5
To: OBATA Akio <obata@lins.jp>
From: Simon Gerraty <sjg@juniper.net>
List: pkgsrc-users
Date: 04/10/2006 12:43:09
On Sat, 8 Apr 2006 21:57:41 +0900, OBATA Akio writes:
>Self bootstrap on Interix is succeed.
Cool!
>Please review following patches and check effect on other platforms.
>
>1. DEFAULT_MAKESYSPATH issue (devel/bmake)
>
>Interix have /usr/share/mk/sys.mk and it is no good for pkgsrc.
>for example,
> CC=c89
>
>I think MAKESYSPATH should be only ${PREFIX}/share/mk.
>Here is a patch.
Hmmm, the build isn't going to work unless a valid sys.mk is found,
and since DEFAULT_MAKESYSPATH is at the end of MAKESYSPATH, if
${PREFIX}/share/mk contains the right stuff, then DEFAULT_MAKESYSPATH
shouldn't make any difference (performance issues aside).
But since bmake was modified to default to ${PREFIX}/share/mk only,
(at least when built via its boot-strap script) I don't see a particular
problem with this patch. I'll test it out... (in bmake not pkgsrc).
>Index: devel/bmake/files/makefile.boot.in
>===================================================================
>RCS file: /home/cvsroot/NetBSD/pkgsrc/devel/bmake/files/makefile.boot.in,v
>retrieving revision 1.2
>diff -u -r1.2 makefile.boot.in
>--- devel/bmake/files/makefile.boot.in 10 Nov 2005 00:09:34 -0000 1.2
>+++ devel/bmake/files/makefile.boot.in 8 Apr 2006 11:14:19 -0000
>@@ -13,14 +13,13 @@
> MKDEP_OPTS=-A
> MK=${prefix}/share/mk
> MKSRC=@mksrc@
>-DEFAULT_MAKESYSPATH=/usr/share/mk:/usr/local/share/mk:/opt/share/mk
> CFLAGS=-I. -I$(srcdir) @DEFS@ @CPPFLAGS@ ${XDEFS} -D_PATH_DEFSYSPATH=\"@defau
>lt_sys_path@\"
> MDEFS="-D@force_machine@MACHINE=\"@machine@\"" "-DMACHINE_ARCH=\"@machine_arc
>h@\""
>
> OBJ=arch.o buf.o compat.o cond.o dir.o for.o hash.o job.o main.o make.o \
> parse.o str.o suff.o targ.o trace.o var.o util.o getopt.o sigcompat.o @LI
>BOBJS@
>
>-BMAKE_ENV= CC="$(CC)" LIBC= MAKEFLAGS= MAKESYSPATH=`pwd`/mk:${MKSRC}:${MK}:${
>DEFAULT_MAKESYSPATH}
>+BMAKE_ENV= CC="$(CC)" LIBC= MAKEFLAGS= MAKESYSPATH=`pwd`/mk:${MKSRC}:${MK}
>
> bootstrap: bmake.boot .mk.done
> ${BMAKE_ENV} ./bmake.boot -f Makefile
>===================================================================
>
>2. ${MAKEFILE} issue(devel/bmake)
>
>Unit test of bmake expect ${MAKEFILE} is defined, but not defined on Interix,
>so unit test is failed.
>
>I don't know why this hack exist.
>I think if it is enabled case-sensitivity for the file system,
>it can distinguish b/w [Mm]akefile.
That's handy to know.
>Here is a patch.
I think we need Todd's input here...
I don't have access to one of these systems, so have to go by the input
from those that do.
--sjg
>Index: devel/bmake/files/main.c
>===================================================================
>RCS file: /home/cvsroot/NetBSD/pkgsrc/devel/bmake/files/main.c,v
>retrieving revision 1.1
>diff -u -r1.1 main.c
>--- devel/bmake/files/main.c 31 Oct 2005 21:34:24 -0000 1.1
>+++ devel/bmake/files/main.c 8 Apr 2006 11:41:06 -0000
>@@ -1136,16 +1136,7 @@
> Parse_File("(stdin)", stdin);
> Var_Set("MAKEFILE", "", VAR_GLOBAL, 0);
> } else {
>-#ifdef __INTERIX
>- /*
>- * XXX Hack from tv:
>- * This system has broken filesystem support - can't
>- * always distinguish b/w [Mm]akefile.
>- */
>- setMAKEFILE = FALSE;
>-#else
> setMAKEFILE = strcmp(fname, ".depend");
>-#endif
>
> /* if we've chdir'd, rebuild the path name */
> if (strcmp(curdir, objdir) && *fname != '/') {