summaryrefslogtreecommitdiff
path: root/sys/arch/alpha/conf
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/alpha/conf')
-rw-r--r--sys/arch/alpha/conf/Makefile.alpha46
1 files changed, 27 insertions, 19 deletions
diff --git a/sys/arch/alpha/conf/Makefile.alpha b/sys/arch/alpha/conf/Makefile.alpha
index eb485f74fb5..5e866b24cb5 100644
--- a/sys/arch/alpha/conf/Makefile.alpha
+++ b/sys/arch/alpha/conf/Makefile.alpha
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile.alpha,v 1.73 2010/12/30 18:49:29 deraadt Exp $
+# $OpenBSD: Makefile.alpha,v 1.74 2011/04/15 02:41:27 guenther Exp $
# For instructions on building kernels consult the config(8) and options(4)
# manual pages.
@@ -23,7 +23,7 @@ _machdir?= $S/arch/${_mach}
_archdir?= $S/arch/${_arch}
INCLUDES= -nostdinc -I. -I$S -I$S/arch
-CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL
+CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -MD -MP
CWARNFLAGS= -Werror -Wall -Wstrict-prototypes -Wmissing-prototypes \
-Wno-main -Wno-uninitialized -Wno-format \
-Wstack-larger-than-2047
@@ -68,7 +68,8 @@ NORMAL_S= ${CC} ${AFLAGS} ${CPPFLAGS} -c $<
# ${SYSTEM_LD} swapxxx.o
# ${SYSTEM_LD_TAIL}
SYSTEM_HEAD= locore.o param.o ioconf.o
-SYSTEM_DEP= Makefile ${SYSTEM_HEAD} ${OBJS}
+SYSTEM_OBJ= ${SYSTEM_HEAD} ${OBJS}
+SYSTEM_DEP= Makefile ${SYSTEM_OBJ}
SYSTEM_LD_HEAD= @rm -f $@
SYSTEM_LD= @echo ${LD} ${LINKFLAGS} -o $@ '$${SYSTEM_HEAD} vers.o $${OBJS}'; \
${LD} ${LINKFLAGS} -o $@ ${SYSTEM_HEAD} vers.o ${OBJS}
@@ -88,10 +89,16 @@ LINKFLAGS+= -S -x
%LOAD
+# cc's -MD puts the source and output paths in the dependency file;
+# since those are temp files here we need to fix it up. It also
+# puts the file in /tmp, so we use -MF to put it in the current
+# directory as assym.P and then generate assym.d from it with a
+# good target name
assym.h: $S/kern/genassym.sh Makefile \
${_archdir}/${_arch}/genassym.cf ${_machdir}/${_mach}/genassym.cf
cat ${_archdir}/${_arch}/genassym.cf ${_machdir}/${_mach}/genassym.cf | \
- sh $S/kern/genassym.sh ${CC} ${CFLAGS} ${CPPFLAGS} > assym.h.tmp
+ sh $S/kern/genassym.sh ${CC} ${CFLAGS} ${CPPFLAGS} -MF assym.P > assym.h.tmp
+ sed '1s/.*/assym.h: \\/' assym.P > assym.d
sort -u assym.h.tmp > assym.h
param.c: $S/conf/param.c
@@ -120,25 +127,14 @@ lint:
${CFILES} ioconf.c param.c | \
grep -v 'static function .* unused'
+depend:
+ @touch $@
+
tags:
@echo "see $S/kern/Makefile for tags"
-AFILES= ${_machdir}/${_mach}/locore.s
-depend:: .depend
-.depend: ${AFILES} param.c ioconf.c ${CFILES} ${SFILES} assym.h ${DB_STRUCTINFO}
- ${MKDEP} ${AFLAGS} ${CPPFLAGS} ${AFILES}
- ${MKDEP} -a ${CFLAGS} ${CPPFLAGS} param.c ioconf.c ${CFILES}
-.if !empty(SFILES)
- ${MKDEP} -a ${AFLAGS} ${CPPFLAGS} ${SFILES}
-.endif
- cat ${_archdir}/${_arch}/genassym.cf ${_machdir}/${_mach}/genassym.cf | \
- sh $S/kern/genassym.sh ${MKDEP} -f assym.dep ${CFLAGS} ${CPPFLAGS}
- @sed -e 's/.*\.o: /assym.h: /' -e 's/\/tmp\/genassym_c.[^ ]*//' \
- < assym.dep >> .depend
- @rm -f assym.dep
-
db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.awk
- ${CC} ${CFLAGS} ${CPPFLAGS} -gstabs -c $S/ddb/db_structinfo.c
+ ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
objdump -g db_structinfo.o | awk -f $S/ddb/parse_structinfo.awk > $@
rm -f db_structinfo.o
@@ -156,4 +152,16 @@ install-kernel-${MACHINE_NAME}:
mv /nbsd /bsd
.endif
+# pull in the dependency information
+.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
+ ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
+.endif
+.ifnmake clean
+. for o in ${SYSTEM_OBJ:.o=.d} assym.d ${DB_STRUCTINFO:.h=.d}
+. if exists($o)
+. include "$o"
+. endif
+. endfor
+.endif
+
%RULES