Subject: Re: ${ARCHSUBDIR}
To: None <sommerfeld@orchard.arlington.ma.us>
From: None <itojun@iijlab.net>
List: tech-userlevel
Date: 01/05/2001 10:38:28
>> 	- look at arch/${MACHINE_ARCH}, then arch/${MACHINE_CPU}
>> 	  (need better error trap - .INIT target seem to do nothing)
>our make uses .BEGIN for this.

	thanks.  updated.  if it does not bite anyone, i'd like to commit it.
	into the tree.
	- is MACHINE_CPU okay?  is MACHINE_CPUTYPE better?  (I like MACHINE_CPU
	  better)

itojun


Index: gnu/lib/libg2c/Makefile
===================================================================
RCS file: /cvsroot/gnusrc/gnu/lib/libg2c/Makefile,v
retrieving revision 1.8
diff -u -r1.8 Makefile
--- gnu/lib/libg2c/Makefile	2001/01/04 09:22:06	1.8
+++ gnu/lib/libg2c/Makefile	2001/01/05 01:37:05
@@ -70,14 +70,6 @@
 
 MKLINT=		no
 
-.if (${MACHINE_ARCH} == "mipsel") || (${MACHINE_ARCH} == "mipseb")
-ARCHSUBDIR= mips
-.elif (${MACHINE_ARCH} == "sh3el") || (${MACHINE_ARCH} == "sh3eb")
-ARCHSUBDIR= sh3
-.else
-ARCHSUBDIR= ${MACHINE_ARCH}
-.endif
-
 CPPFLAGS+=	-I. -I${.CURDIR} -I${ARCH} -I${ARCH}/${ARCHSUBDIR} \
 		-I${DIST}/libf2c -I${DIST}/libf2c/libF77 \
 		-I${DIST}/libf2c/libI77 -I${DIST}/libf2c/libU77 \
@@ -96,6 +88,16 @@
 
 DIST=		${.CURDIR}/../../dist
 ARCH=		${.CURDIR}/../../usr.bin/egcs/arch
+
+.if exists(${ARCH}/${MACHINE_ARCH})
+ARCHSUBDIR= ${MACHINE_ARCH}
+.elif exists(${ARCH}/${MACHINE_CPU})
+ARCHSUBDIR= ${MACHINE_CPU}
+.else
+.BEGIN:
+	@echo no egcs/arch/${MACHINE_ARCH} nor egcs/arch/${MACHINE_CPU} exists
+	@false
+.endif
 
 .PATH:${DIST}/libf2c ${DIST}/gcc/f
 
Index: gnu/lib/libgcc/Makefile
===================================================================
RCS file: /cvsroot/gnusrc/gnu/lib/libgcc/Makefile,v
retrieving revision 1.15
diff -u -r1.15 Makefile
--- gnu/lib/libgcc/Makefile	2001/01/04 09:17:42	1.15
+++ gnu/lib/libgcc/Makefile	2001/01/05 01:37:05
@@ -1,5 +1,7 @@
 #	$NetBSD: Makefile,v 1.15 2001/01/04 09:17:42 itojun Exp $
 
+.include <bsd.own.mk>
+
 HAVE_GCC28!=	${CXX} --version | egrep "^(2\.8|egcs)" ; echo
 
 LIB=		gcc
@@ -9,12 +11,14 @@
 DIST=		${.CURDIR}/../../dist/gcc
 ARCH=		${.CURDIR}/../../usr.bin/egcs/arch
 
-.if (${MACHINE_ARCH} == "mipsel") || (${MACHINE_ARCH} == "mipseb")
-ARCHSUBDIR= mips
-.elif (${MACHINE_ARCH} == "sh3el") || (${MACHINE_ARCH} == "sh3eb")
-ARCHSUBDIR= sh3
-.else
+.if exists(${ARCH}/${MACHINE_ARCH})
 ARCHSUBDIR= ${MACHINE_ARCH}
+.elif exists(${ARCH}/${MACHINE_CPU})
+ARCHSUBDIR= ${MACHINE_CPU}
+.else
+.BEGIN:
+	@echo no egcs/arch/${MACHINE_ARCH} nor egcs/arch/${MACHINE_CPU} exists
+	@false
 .endif
 
 CPPFLAGS+=	-I${ARCH}/${ARCHSUBDIR} -I${ARCH} \
Index: gnu/lib/libobjc/Makefile
===================================================================
RCS file: /cvsroot/gnusrc/gnu/lib/libobjc/Makefile,v
retrieving revision 1.9
diff -u -r1.9 Makefile
--- gnu/lib/libobjc/Makefile	2001/01/04 09:22:06	1.9
+++ gnu/lib/libobjc/Makefile	2001/01/05 01:37:05
@@ -15,12 +15,14 @@
 		Object.h Protocol.h encoding.h typedstream.h thr.h
 INCSDIR=	/usr/include/objc
 
-.if (${MACHINE_ARCH} == "mipsel") || (${MACHINE_ARCH} == "mipseb")
-ARCHSUBDIR= mips
-.elif (${MACHINE_ARCH} == "sh3el") || (${MACHINE_ARCH} == "sh3eb")
-ARCHSUBDIR= sh3
-.else
+.if exists(${ARCH}/${MACHINE_ARCH})
 ARCHSUBDIR= ${MACHINE_ARCH}
+.elif exists(${ARCH}/${MACHINE_CPU})
+ARCHSUBDIR= ${MACHINE_CPU}
+.else
+.BEGIN:
+	@echo no egcs/arch/${MACHINE_ARCH} nor egcs/arch/${MACHINE_CPU} exists
+	@false
 .endif
 
 CPPFLAGS+=	-I. -I${ARCH}/${ARCHSUBDIR} -I${ARCH} \
Index: gnu/usr.bin/egcs/Makefile.inc
===================================================================
RCS file: /cvsroot/gnusrc/gnu/usr.bin/egcs/Makefile.inc,v
retrieving revision 1.27
diff -u -r1.27 Makefile.inc
--- gnu/usr.bin/egcs/Makefile.inc	2001/01/04 10:43:24	1.27
+++ gnu/usr.bin/egcs/Makefile.inc	2001/01/05 01:37:05
@@ -21,12 +21,14 @@
 COMMONOBJ!=	cd ${.CURDIR}/../common; ${MAKE} print-objdir
 .endif
 
-.if (${MACHINE_ARCH} == "mipsel") || (${MACHINE_ARCH} == "mipseb")
-ARCHSUBDIR= mips
-.elif (${MACHINE_ARCH} == "sh3el") || (${MACHINE_ARCH} == "sh3eb")
-ARCHSUBDIR= sh3
-.else
+.if exists(${.CURDIR}/../arch/${MACHINE_ARCH})
 ARCHSUBDIR= ${MACHINE_ARCH}
+.elif exists(${.CURDIR}/../arch/${MACHINE_CPU})
+ARCHSUBDIR= ${MACHINE_CPU}
+.else
+.BEGIN:
+	@echo no ../arch/${MACHINE_ARCH} nor ../arch/${MACHINE_CPU} exists
+	@false
 .endif
 
 CPPFLAGS+=	-I${.CURDIR}/../arch \
@@ -46,11 +48,11 @@
 CPPFLAGS+=-DDEFAULT_ELF
 .endif
 
-.if (${MACHINE_ARCH} == "mipseb")
+.if (${MACHINE_ARCH} == "mipseb") || (${MACHINE_ARCH} == "sh3eb")
 CPPFLAGS+=-DTARGET_BIG_ENDIAN_DEFAULT
 .endif
 
-.if (${MACHINE_ARCH} == "mipsel")
+.if (${MACHINE_ARCH} == "mipsel") || (${MACHINE_ARCH} == "sh3el")
 CPPFLAGS+=-DTARGET_LITTLE_ENDIAN_DEFAULT
 .endif
 
Index: gnu/usr.bin/gas.new/Makefile
===================================================================
RCS file: /cvsroot/gnusrc/gnu/usr.bin/gas.new/Makefile,v
retrieving revision 1.15
diff -u -r1.15 Makefile
--- gnu/usr.bin/gas.new/Makefile	2001/01/04 08:08:39	1.15
+++ gnu/usr.bin/gas.new/Makefile	2001/01/05 01:37:05
@@ -4,12 +4,14 @@
 .include <bsd.own.mk>
 
 # Override to make a cross assembler.
-.if ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb"
-TARGET_ARCH ?=	mips
-.elif ${MACHINE_ARCH} == "sh3eb" || ${MACHINE_ARCH} == "sh3el"
-TARGET_ARCH ?=	sh3
+.if exists(${.CURDIR}/arch/${MACHINE_ARCH})
+TARGET_ARCH= ${MACHINE_ARCH}
+.elif exists(${.CURDIR}/arch/${MACHINE_CPU})
+TARGET_ARCH= ${MACHINE_CPU}
 .else
-TARGET_ARCH ?=	${MACHINE_ARCH}
+.BEGIN:
+	@echo no arch/${MACHINE_ARCH} nor arch/${MACHINE_CPU} exists
+	@false
 .endif
 
 .if (${MACHINE_ARCH} != "m68k" && ${MACHINE_ARCH} != "ns32k") ||	\
Index: lib/csu/Makefile
===================================================================
RCS file: /cvsroot/basesrc/lib/csu/Makefile,v
retrieving revision 1.21
diff -u -r1.21 Makefile
--- lib/csu/Makefile	2001/01/04 08:01:49	1.21
+++ lib/csu/Makefile	2001/01/05 01:37:05
@@ -4,8 +4,14 @@
 
 .if ${OBJECT_FMT} == "ELF" && exists(${MACHINE_ARCH}_elf)
 SUBDIR=	${MACHINE_ARCH}_elf
+.elif exists(${MACHINE_ARCH})
+SUBDIR=	${MACHINE_ARCH}
+.elif exists(${MACHINE_CPU})
+SUBDIR=	${MACHINE_CPU}
 .else
-SUBDIR=	${MACHINE_ARCH:C/mipse[bl]/mips/:C/sh3e[bl]/sh3/}
+.BEGIN:
+	@echo no SUBDIR for ${MACHINE_ARCH}_elf, ${MACHINE_ARCH} nor ${MACHINE_CPU}
+	@false
 .endif
 
 .if (${OBJECT_FMT} != "ELF" && ${MACHINE_ARCH} != "arm32")
Index: lib/libc/Makefile
===================================================================
RCS file: /cvsroot/basesrc/lib/libc/Makefile,v
retrieving revision 1.94
diff -u -r1.94 Makefile
--- lib/libc/Makefile	2001/01/04 06:53:45	1.94
+++ lib/libc/Makefile	2001/01/05 01:37:06
@@ -27,7 +27,16 @@
 #LINTFLAGS+=	-w
 LINTFLAGS+=-X 272
 
-ARCHSUBDIR=	${MACHINE_ARCH:C/mipse[bl]/mips/:S/arm26/arm/:C/sh3e[bl]/sh3/}
+.if exists(${.CURDIR}/arch/${MACHINE_ARCH})
+ARCHSUBDIR=	${MACHINE_ARCH}
+.elif exists(${.CURDIR}/arch/${MACHINE_CPU}) 
+ARCHSUBDIR=	${MACHINE_CPU}
+.else
+.BEGIN:
+	@echo no ARCHSUBDIR for ${MACHINE_ARCH} nor ${MACHINE_CPU}
+	@false
+.endif
+
 ARCHDIR=	${.CURDIR}/arch/${ARCHSUBDIR}
 AINC=		-I${ARCHDIR}
 .if defined(DESTDIR)
Index: lib/libkvm/Makefile
===================================================================
RCS file: /cvsroot/basesrc/lib/libkvm/Makefile,v
retrieving revision 1.33
diff -u -r1.33 Makefile
--- lib/libkvm/Makefile	2001/01/04 08:59:24	1.33
+++ lib/libkvm/Makefile	2001/01/05 01:37:06
@@ -11,14 +11,17 @@
 # If it is necessary to run different code based on ${MACHINE} then
 # the dispatch on ${MACHINE} should be done at run time (see m68k).
 
-.if ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb"
-SRCS+=	kvm_mips.c
-.elif ${MACHINE_ARCH} == "arm26"
+.include <bsd.own.mk>
+.if ${MACHINE_ARCH} == "arm26"
 SRCS+=	kvm_arm32.c
-.elif ${MACHINE_ARCH} == "sh3eb" || ${MACHINE_ARCH} == "sh3el"
-SRCS+=	kvm_sh3.c
-.else
+.elif exists(kvm_${MACHINE_ARCH}.c)
 SRCS+=	kvm_${MACHINE_ARCH}.c
+.elif  exists(kvm_${MACHINE_CPU}.c)
+SRCS+=	kvm_${MACHINE_CPU}.c
+.else
+.BEGIN:
+	@echo no kvm_xx.c for ${MACHINE_ARCH} nor ${MACHINE_CPU}
+	@false
 .endif
 
 # Additional modules needed for m68k
Index: lib/libposix/Makefile
===================================================================
RCS file: /cvsroot/basesrc/lib/libposix/Makefile,v
retrieving revision 1.7
diff -u -r1.7 Makefile
--- lib/libposix/Makefile	2001/01/04 09:00:24	1.7
+++ lib/libposix/Makefile	2001/01/05 01:37:06
@@ -5,13 +5,16 @@
 .include <bsd.own.mk>
 
 CPPFLAGS+=-D_REENTRANT -I${.CURDIR}/../libc/include
-.if ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb"
-ARCHDIR=	${.CURDIR}/../libc/arch/mips
-.elif ${MACHINE_ARCH} == "sh3el" || ${MACHINE_ARCH} == "sh3eb"
-ARCHDIR=	${.CURDIR}/../libc/arch/sh3
-.else
+.if exists(${.CURDIR}/../libc/arch/${MACHINE_ARCH})
 ARCHDIR=	${.CURDIR}/../libc/arch/${MACHINE_ARCH}
+.elif exists(${.CURDIR}/../libc/arch/${MACHINE_CPU})
+ARCHDIR=	${.CURDIR}/../libc/arch/${MACHINE_CPU}
+.else
+.BEGIN:
+	@echo no ARCHDIR for ${MACHINE_ARCH} nor ${MACHINE_CPU}
+	@false
 .endif
+
 AINC=	-I${ARCHDIR}
 .if defined(DESTDIR)
 AINC+=	-nostdinc -idirafter ${DESTDIR}/usr/include
Index: share/mk/bsd.own.mk
===================================================================
RCS file: /cvsroot/sharesrc/share/mk/bsd.own.mk,v
retrieving revision 1.152
diff -u -r1.152 bsd.own.mk
--- share/mk/bsd.own.mk	2001/01/05 00:25:59	1.152
+++ share/mk/bsd.own.mk	2001/01/05 01:37:08
@@ -132,6 +132,10 @@
 GNU_ARCH.sparc=sparc
 GNU_ARCH.sparc64=sparc
 GNU_ARCH.vax=vax
+
+# CPU model, derived from MACHINE_ARCH
+MACHINE_CPU=	${MACHINE_ARCH:C/mipse[bl]/mips/:S/arm26/arm/:C/sh3e[bl]/sh3/}
+
 .if ${MACHINE_ARCH} == "mips"
 .BEGIN:
 	@echo Must set MACHINE_ARCH to one of mipseb or mipsel