On Thu, Oct 25, 2001 at 11:37:28AM -0400, Andrew Gallatin wrote:
> 
> 
> x86 sysinstall seems to have a hardcoded reference to /boot. Eg:
> 
> ===> usr.sbin/spray
> rm -f .depend
> mkdep -f .depend -a   -nostdinc 
>-I/usr/obj/i386/home/gallatin/current/src/alpha/usr/include  
>/home/gallatin/current/src/usr.sbin/spray/spray.c
> cd /home/gallatin/current/src/usr.sbin/spray; make _EXTRADEPEND
> echo spray: /usr/obj/i386/home/gallatin/current/src/alpha/usr/lib/libc.a 
>/usr/obj/i386/home/gallatin/current/src/alpha/usr/lib/librpcsvc.a >> .depend
> ===> usr.sbin/sysinstall
> rm -f makedevs.tmp
> echo '#include <sys/types.h>' > makedevs.tmp
> ./rtermcap ansi |  file2c 'const char termcap_ansi[] = {' ',0};'  >> makedevs.tmp
> ./rtermcap cons25w |  file2c 'const char termcap_cons25w[] = {' ',0};'  >> 
>makedevs.tmp
> ./rtermcap cons25 |  file2c 'const char termcap_cons25[] = {' ',0};'  >> makedevs.tmp
> ./rtermcap cons25-m |  file2c 'const char termcap_cons25_m[] = {' ',0};'  >> 
>makedevs.tmp
> ./rtermcap cons25r |  file2c 'const char termcap_cons25r[] = {' ',0};'  >> 
>makedevs.tmp
> ./rtermcap cons25r-m |  file2c 'const char termcap_cons25r_m[] = {' ',0};'  >> 
>makedevs.tmp
> ./rtermcap cons25l1 |  file2c 'const char termcap_cons25l1[] = {' ',0};'  >> 
>makedevs.tmp
> ./rtermcap cons25l1-m |  file2c 'const char termcap_cons25l1_m[] = {' ',0};'  >> 
>makedevs.tmp
> ./rtermcap vt100 |  file2c 'const char termcap_vt100[] = {' ',0};'  >> makedevs.tmp
> ./rtermcap xterm |  file2c 'const char termcap_xterm[] = {' ',0};'  >> makedevs.tmp
> file2c 'u_char boot0[] = {' '};' < /boot/boot0 >> makedevs.tmp
> cannot open /boot/boot0: no such file
> *** Error code 2
> 
> Stop in /home/gallatin/current/src/usr.sbin/sysinstall.
> *** Error code 1
> 
> Stop in /home/gallatin/current/src/usr.sbin.
> *** Error code 1
> 
> Stop in /home/gallatin/current/src.
> *** Error code 1
> 
> Stop in /home/gallatin/current/src.
> *** Error code 1
> 
> Stop in /home/gallatin/current/src.
> 
That's the bug in Makefile.  We can abuse the fact that sys/ is listed
first in Makefile.inc1, and use the version from ${.OBJDIR} if it
exists.  Could you please try this patch:

Index: Makefile
===================================================================
RCS file: /home/ncvs/src/usr.sbin/sysinstall/Makefile,v
retrieving revision 1.117
diff -u -r1.117 Makefile
--- Makefile    2001/09/05 07:12:19     1.117
+++ Makefile    2001/10/25 16:59:05
@@ -21,6 +21,27 @@
 CLEANFILES=    makedevs.c rtermcap rtermcap.tmp dumpnlist
 CLEANFILES+=   keymap.tmp keymap.h
 
+.if ${MACHINE_ARCH} == i386
+.if exists(${.OBJDIR}/../../sys/boot/${MACHINE}/boot0/boot0)
+BOOT0= ${.OBJDIR}/../../sys/boot/${MACHINE}/boot0/boot0
+.else
+BOOT0= /boot/boot0
+.endif
+.if ${MACHINE} == "i386"
+.if exists(${.OBJDIR}/../../sys/boot/i386/mbr/mbr)
+MBR=   ${.OBJDIR}/../../sys/boot/i386/mbr/mbr
+.else
+MBR=   /boot/mbr
+.endif
+.elif ${MACHINE} == "pc98"
+.if exists(${.OBJDIR}/../../sys/boot/pc98/boot0.5/boot0.5)
+BOOT05=        ${.OBJDIR}/../../sys/boot/pc98/boot0.5/boot0.5
+.else
+BOOT05=        /boot/boot0.5
+.endif
+.endif
+.endif
+
 makedevs.c:    Makefile rtermcap
        rm -f makedevs.tmp
        echo '#include <sys/types.h>' > makedevs.tmp
@@ -54,17 +75,16 @@
        ./rtermcap xterm | \
                file2c 'const char termcap_xterm[] = {' ',0};' \
                >> makedevs.tmp
-.if ${MACHINE} == "i386"
-       file2c 'u_char boot0[] = {' '};' < /boot/boot0 >> makedevs.tmp
+.if ${MACHINE_ARCH} == i386
+       file2c 'u_char boot0[] = {' '};' < ${BOOT0} >> makedevs.tmp
        echo "size_t boot0_size = sizeof(boot0);" >> makedevs.tmp
-       file2c 'u_char mbr[] = {' '};' < /boot/mbr >> makedevs.tmp
+.if ${MACHINE} == i386
+       file2c 'u_char mbr[] = {' '};' < ${MBR} >> makedevs.tmp
        echo "size_t mbr_size = sizeof(mbr);" >> makedevs.tmp
-.endif
-.if ${MACHINE} == "pc98"
-       file2c 'u_char boot0[] = {' '};' < /boot/boot0 >> makedevs.tmp
-       echo "size_t boot0_size = sizeof(boot0);" >> makedevs.tmp
-       file2c 'u_char boot05[] = {' '};' < /boot/boot0.5 >> makedevs.tmp
+.elif ${MACHINE} == "pc98"
+       file2c 'u_char boot05[] = {' '};' < ${BOOT05} >> makedevs.tmp
        echo "size_t boot05_size = sizeof(boot05);" >> makedevs.tmp
+.endif
 .endif
        mv makedevs.tmp makedevs.c
 


Cheers,
-- 
Ruslan Ermilov          Oracle Developer/DBA,
[EMAIL PROTECTED]           Sunbay Software AG,
[EMAIL PROTECTED]          FreeBSD committer,
+380.652.512.251        Simferopol, Ukraine

http://www.FreeBSD.org  The Power To Serve
http://www.oracle.com   Enabling The Information Age

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to