summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2010-11-01 17:34:04 +0000
committerjhb <jhb@FreeBSD.org>2010-11-01 17:34:04 +0000
commit8372ad0fde50dc7d92cb1ab2439d7ba31188817f (patch)
tree9d99f0a93a1824d7b71e1332560f719227daaf0f
parent9e9b0f2c8aa9159675e231c2a511e3f76436a43e (diff)
downloadFreeBSD-src-8372ad0fde50dc7d92cb1ab2439d7ba31188817f.zip
FreeBSD-src-8372ad0fde50dc7d92cb1ab2439d7ba31188817f.tar.gz
Add an x86/include directory to the kernel to hold headers that are common
to amd64, i386, and pc98. The headers are installed to /usr/include/x86 during an installworld, and an 'x86' symlink is created for kernel builds similar to 'machine' so that the headers can be included as <x86/foo.h>. Reviewed by: imp
-rw-r--r--include/Makefile17
-rw-r--r--sys/conf/kern.post.mk7
-rw-r--r--sys/conf/kmod.mk7
3 files changed, 22 insertions, 9 deletions
diff --git a/include/Makefile b/include/Makefile
index 4e7fd93..8a325a2 100644
--- a/include/Makefile
+++ b/include/Makefile
@@ -116,7 +116,10 @@ INCSLINKS+= sys/$i ${INCLUDEDIR}/$i
.endfor
.if ${MACHINE} != ${MACHINE_CPUARCH}
-_MARCH=${MACHINE_CPUARCH}
+_MARCHS= ${MACHINE_CPUARCH}
+.endif
+.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
+_MARCHS+= x86
.endif
.include <bsd.prog.mk>
@@ -126,7 +129,7 @@ ${SHARED}: compat
# Take care of stale directory-level symlinks.
compat:
-.for i in ${LDIRS} ${LSUBDIRS} machine ${_MARCH} crypto
+.for i in ${LDIRS} ${LSUBDIRS} machine ${_MARCHS} crypto
if [ -L ${DESTDIR}${INCLUDEDIR}/$i ]; then \
rm -f ${DESTDIR}${INCLUDEDIR}/$i; \
fi
@@ -142,7 +145,7 @@ compat:
copies:
.for i in ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS} altq crypto machine machine/pc \
- ${_MARCH}
+ ${_MARCHS}
.if exists(${DESTDIR}${INCLUDEDIR}/$i)
cd ${DESTDIR}${INCLUDEDIR}/$i; \
for h in *.h; do \
@@ -189,7 +192,8 @@ copies:
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
${DESTDIR}${INCLUDEDIR}/machine/pc
.endif
-.if defined(_MARCH) && exists(${.CURDIR}/../sys/${_MARCH}/include)
+.for _MARCH in ${_MARCHS}
+.if exists(${.CURDIR}/../sys/${_MARCH}/include)
${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
${DESTDIR}${INCLUDEDIR}/${_MARCH}; \
cd ${.CURDIR}/../sys/${_MARCH}/include; \
@@ -203,6 +207,7 @@ copies:
${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc
.endif
.endif
+.endfor
cd ${.CURDIR}/../sys/rpc; \
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 types.h \
${DESTDIR}${INCLUDEDIR}/rpc
@@ -276,7 +281,8 @@ symlinks:
${DESTDIR}${INCLUDEDIR}/machine/pc; \
done
.endif
-.if defined(_MARCH) && exists(${.CURDIR}/../sys/${_MARCH}/include)
+.for _MARCH in ${_MARCHS}
+.if exists(${.CURDIR}/../sys/${_MARCH}/include)
${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
${DESTDIR}${INCLUDEDIR}/${_MARCH}; \
cd ${.CURDIR}/../sys/${_MARCH}/include; \
@@ -294,6 +300,7 @@ symlinks:
done
.endif
.endif
+.endfor
cd ${.CURDIR}/../sys/fs/cd9660; \
for h in *.h; do \
ln -fs ../../../../sys/fs/cd9660/$$h \
diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk
index c7e6281..80b1bc2 100644
--- a/sys/conf/kern.post.mk
+++ b/sys/conf/kern.post.mk
@@ -169,6 +169,9 @@ _ILINKS= machine
.if ${MACHINE} != ${MACHINE_CPUARCH}
_ILINKS+= ${MACHINE_CPUARCH}
.endif
+.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
+_ILINKS+= x86
+.endif
# Ensure that the link exists without depending on it when it exists.
.for _link in ${_ILINKS}
@@ -181,8 +184,8 @@ ${_ILINKS}:
@case ${.TARGET} in \
machine) \
path=${S}/${MACHINE}/include ;; \
- ${MACHINE_CPUARCH}) \
- path=${S}/${MACHINE_CPUARCH}/include ;; \
+ *) \
+ path=${S}/${.TARGET}/include ;; \
esac ; \
${ECHO} ${.TARGET} "->" $$path ; \
ln -s $$path ${.TARGET}
diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk
index de4ba36..2239d66 100644
--- a/sys/conf/kmod.mk
+++ b/sys/conf/kmod.mk
@@ -238,6 +238,9 @@ _ILINKS=@ machine
.if ${MACHINE} != ${MACHINE_CPUARCH}
_ILINKS+=${MACHINE_CPUARCH}
.endif
+.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
+_ILINKS+=x86
+.endif
all: objwarn ${PROG}
@@ -263,12 +266,12 @@ SYSDIR= ${_dir}
${_ILINKS}:
@case ${.TARGET} in \
- ${MACHINE_CPUARCH}) \
- path=${SYSDIR}/${MACHINE_CPUARCH}/include ;; \
machine) \
path=${SYSDIR}/${MACHINE}/include ;; \
@) \
path=${SYSDIR} ;; \
+ *) \
+ path=${SYSDIR}/${.TARGET}/include ;; \
esac ; \
path=`(cd $$path && /bin/pwd)` ; \
${ECHO} ${.TARGET} "->" $$path ; \
OpenPOWER on IntegriCloud