summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoshihiro Takahashi <nyan@FreeBSD.org>2000-07-07 12:36:58 +0000
committerYoshihiro Takahashi <nyan@FreeBSD.org>2000-07-07 12:36:58 +0000
commit384f95dcd9a2053ecd6cd5bed601fbca06232cf9 (patch)
treec3b824b891e74db117ff9327f2cd0082ea74597d
parentce611ff881a06d0ca804eaf7daeaa2ca488595e4 (diff)
Notes
-rw-r--r--sys/conf/Makefile.pc9884
1 files changed, 69 insertions, 15 deletions
diff --git a/sys/conf/Makefile.pc98 b/sys/conf/Makefile.pc98
index b71f1ebf0cba..66b762fdfb9b 100644
--- a/sys/conf/Makefile.pc98
+++ b/sys/conf/Makefile.pc98
@@ -34,7 +34,8 @@ S= ../..
.endif
M= ${MACHINE_ARCH}
-SIZE?= size
+SIZE?= size
+OBJCOPY?= objcopy
COPTFLAGS?=-O
INCLUDES= -nostdinc -I- -I. -I$S
@@ -87,7 +88,8 @@ SYSTEM_OBJS= locore.o setdef0.o vnode_if.o ${OBJS} ioconf.o param.o config.o \
SYSTEM_LD= @${LD} ${FMT} -Bdynamic -T $S/conf/ldscript.$M \
-export-dynamic -dynamic-linker /red/herring \
-o ${.TARGET} -X ${SYSTEM_OBJS} vers.o
-SYSTEM_LD_TAIL= @${SIZE} ${FMT} ${.TARGET} ; chmod 755 ${.TARGET}
+SYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \
+ ${SIZE} ${FMT} ${.TARGET} ; chmod 755 ${.TARGET}
SYSTEM_DEP+= $S/conf/ldscript.$M
%BEFORE_DEPEND
@@ -102,14 +104,23 @@ SYSTEM_DEP+= $S/conf/ldscript.$M
%CLEAN
+.PHONY: all modules
+
all: ${KERNEL}
+depend: kernel-depend
+clean: kernel-clean
+cleandepend: kernel-cleandepend
+tags: kernel-tags
+install install.debug: kernel-install
+reinstall reinstall.debug: kernel-reinstall
+
.if !defined(DEBUG)
FULLKERNEL= ${KERNEL}
.else
FULLKERNEL= ${KERNEL}.debug
${KERNEL}: ${FULLKERNEL}
- objcopy --strip-debug ${FULLKERNEL} ${KERNEL}
+ ${OBJCOPY} --strip-debug ${FULLKERNEL} ${KERNEL}
.endif
${FULLKERNEL}: ${SYSTEM_DEP} vers.o
@@ -122,8 +133,8 @@ ${FULLKERNEL}: ${SYSTEM_DEP} vers.o
${SYSTEM_OBJS}: vnode_if.h ${BEFORE_DEPEND:M*.h}
.endif
-clean:
- rm -f *.o *.so *.So *.ko *.s eddep errs genassym \
+kernel-clean:
+ rm -f *.o *.so *.So *.ko *.s eddep errs \
${FULLKERNEL} ${KERNEL} linterrs makelinks param.c \
setdef[01].c setdefs.h tags \
vers.c vnode_if.c vnode_if.h ${CLEAN}
@@ -159,8 +170,8 @@ setdef0.c setdef1.c setdefs.h: ${OBJS}
# this rule stops ./assym.s in .depend from causing problems
./assym.s: assym.s
-assym.s: genassym.o
- genassym genassym.o >assym.s
+assym.s: $S/kern/genassym.sh genassym.o
+ sh $S/kern/genassym.sh genassym.o > ${.TARGET}
genassym.o: $S/$M/$M/genassym.c
rm -f ./machine ; ln -s $S/$M/include ./machine
@@ -168,7 +179,7 @@ genassym.o: $S/$M/$M/genassym.c
${SYSTEM_OBJS} genassym.o vers.o: opt_global.h
-depend: assym.s param.c vnode_if.h ${BEFORE_DEPEND} \
+kernel-depend: assym.s param.c vnode_if.h ${BEFORE_DEPEND} \
${CFILES} ${SYSTEM_CFILES} ${GEN_CFILES} ${SFILES} ${SYSTEM_SFILES}
rm -f .newdep
mkdep -a -f .newdep ${CFLAGS} ${CFILES} ${SYSTEM_CFILES} ${GEN_CFILES}
@@ -177,7 +188,7 @@ depend: assym.s param.c vnode_if.h ${BEFORE_DEPEND} \
rm -f .depend
mv -f .newdep .depend
-cleandepend:
+kernel-cleandepend:
rm -f .depend
links:
@@ -188,14 +199,14 @@ links:
sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks
sh makelinks && rm -f dontlink
-tags:
+kernel-tags:
@[ -f .depend ] || { echo "you must make depend first"; exit 1; }
sh $S/conf/systags.sh
rm -f tags1
sed -e 's, ../, ,' tags > tags1
-install install.debug:
- @if [ ! -f ${KERNEL}${.TARGET:S/install//} ] ; then \
+kernel-install kernel-install.debug:
+ @if [ ! -f ${KERNEL}${.TARGET:S/kernel-install//} ] ; then \
echo "You must build a kernel first." ; \
exit 1 ; \
fi
@@ -204,11 +215,54 @@ install install.debug:
mv ${DESTDIR}/${KERNEL} ${DESTDIR}/${KERNEL}.old
.endif
install -c -m 555 -o root -g wheel -fschg \
- ${KERNEL}${.TARGET:S/install//} ${DESTDIR}/${KERNEL}
+ ${KERNEL}${.TARGET:S/kernel-install//} ${DESTDIR}/${KERNEL}
-reinstall reinstall.debug:
+kernel-reinstall kernel-reinstall.debug:
install -c -m 555 -o root -g wheel -fschg \
- ${KERNEL}${.TARGET:S/reinstall//} ${DESTDIR}/${KERNEL}
+ ${KERNEL}${.TARGET:S/kernel-reinstall//} ${DESTDIR}/${KERNEL}
+
+.if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists($S/modules)
+all: modules
+depend: modules-depend
+clean: modules-clean
+cleandepend: modules-cleandepend
+cleandir: modules-cleandir
+tags: modules-tags
+install install.debug: modules-install
+reinstall reinstall.debug: modules-reinstall
+.endif
+
+modules:
+ @mkdir -p ${.OBJDIR}/modules
+ cd $S/modules && env MAKEOBJDIRPREFIX=${.OBJDIR}/modules ${MAKE} obj all
+
+modules-depend:
+ @mkdir -p ${.OBJDIR}/modules
+ cd $S/modules && env MAKEOBJDIRPREFIX=${.OBJDIR}/modules ${MAKE} obj depend
+
+modules-clean:
+ cd $S/modules && env MAKEOBJDIRPREFIX=${.OBJDIR}/modules ${MAKE} clean
+
+modules-cleandepend:
+ cd $S/modules && env MAKEOBJDIRPREFIX=${.OBJDIR}/modules ${MAKE} cleandepend
+
+modules-cleandir:
+ cd $S/modules && env MAKEOBJDIRPREFIX=${.OBJDIR}/modules ${MAKE} cleandir
+
+modules-tags:
+ cd $S/modules && env MAKEOBJDIRPREFIX=${.OBJDIR}/modules ${MAKE} tags
+
+modules-install modules-install.debug:
+.if !defined(NO_MODULES_OLD)
+ if [ -d ${DESTDIR}/modules -a -n "`ls ${DESTDIR}/modules`" ]; then \
+ mkdir -p ${DESTDIR}/modules.old; \
+ cp -p ${DESTDIR}/modules/* ${DESTDIR}/modules.old; \
+ fi;
+.endif
+ cd $S/modules && env MAKEOBJDIRPREFIX=${.OBJDIR}/modules ${MAKE} install
+
+modules-reinstall modules-reinstall.debug:
+ cd $S/modules && env MAKEOBJDIRPREFIX=${.OBJDIR}/modules ${MAKE} install
config.o:
${NORMAL_C}