From 558aab1be0e18dd2145daeabb1c37cf18bdb68ed Mon Sep 17 00:00:00 2001 From: uebayasi Date: Wed, 2 Sep 2015 13:42:14 +0000 Subject: [PATCH] Output relative path for ${CFILES} and ${SFILES} in generated `Makefile'. `Makefile.kern.inc' knows how to deal with $S prefix, so don't bother it in config(1). --- sys/conf/Makefile.kern.inc | 37 ++++++++++++++++++++----------------- sys/conf/files | 4 ++-- usr.bin/config/defs.h | 4 ++-- usr.bin/config/mkmakefile.c | 21 ++++++++++++++++++--- 4 files changed, 42 insertions(+), 24 deletions(-) diff --git a/sys/conf/Makefile.kern.inc b/sys/conf/Makefile.kern.inc index 9d56ee3f62f2..0ee1e76a4b92 100644 --- a/sys/conf/Makefile.kern.inc +++ b/sys/conf/Makefile.kern.inc @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.kern.inc,v 1.220 2015/09/02 12:38:48 uebayasi Exp $ +# $NetBSD: Makefile.kern.inc,v 1.221 2015/09/02 13:42:14 uebayasi Exp $ # # This file contains common `MI' targets and definitions and it is included # at the bottom of each `MD' ${MACHINE}/conf/Makefile.${MACHINE}. @@ -160,20 +160,6 @@ LINK_O?= @${_MKSHMSG} " link ${.CURDIR:T}/${.TARGET}" && \ ${LD} -r ${LINKFORMAT} -Map=${.TARGET}.map -o ${.TARGET} ${.ALLSRC} && \ ${LD} -r ${LINKFORMAT} -Map=${.TARGET}.map -o ${.TARGET} ${.ALLSRC} -.for _s in ${CFILES} -.if !commands(${_s:T:R}.o) -${_s:T:R}.o: ${_s} - ${NORMAL_C} -.endif -.endfor - -.for _s in ${SFILES} -.if !commands(${_s:T:R}.o) -${_s:T:R}.o: ${_s} - ${NORMAL_S} -.endif -.endfor - ## ## (3) libkern and compat ## @@ -317,6 +303,23 @@ SYSTEM_LD_TAIL_STAGE2+= ${SYSTEM_LD_TAIL_EXTRA} ## (6) port independent targets and dependencies: assym.h, vers.o ## +_CFILES=${CFILES:M/*} ${CFILES:Nswapnetbsd*:N/*:C|^|$S/|} +_SFILES=${SFILES:M/*} ${SFILES:N/*:C|^|$S/|} + +.for _s in ${_CFILES} +.if !commands(${_s:T:R}.o) +${_s:T:R}.o: ${_s} + ${NORMAL_C} +.endif +.endfor + +.for _s in ${_SFILES} +.if !commands(${_s:T:R}.o) +${_s:T:R}.o: ${_s} + ${NORMAL_S} +.endif +.endfor + assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS} $S/conf/genassym.cf ${_MKTARGET_CREATE} cat ${GENASSYM_CONF} ${GENASSYM_EXTRAS} $S/conf/genassym.cf | \ @@ -388,8 +391,8 @@ dependall: depend .WAIT all .if !target(.depend) MKDEP_AFLAGS?= ${AFLAGS} MKDEP_CFLAGS?= ${CFLAGS} -SSRCS=${MD_SFILES} ${SFILES} -CSRCS=${MD_CFILES} ${MI_CFILES} ${CFILES} +SSRCS=${MD_SFILES} ${_SFILES} +CSRCS=${MD_CFILES} ${MI_CFILES} ${_CFILES} SRCS=${SSRCS} ${CSRCS} DEPS= ${SRCS:T:u:R:S/$/.d/g} diff --git a/sys/conf/files b/sys/conf/files index 650bfb2c4121..edd6a15c1bd6 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -1,7 +1,7 @@ -# $NetBSD: files,v 1.1144 2015/08/30 07:52:30 uebayasi Exp $ +# $NetBSD: files,v 1.1145 2015/09/02 13:42:14 uebayasi Exp $ # @(#)files.newconf 7.5 (Berkeley) 5/10/93 -version 20150832 +version 20150841 # # device classes diff --git a/usr.bin/config/defs.h b/usr.bin/config/defs.h index 7d1d649939c9..5fbd27b796cf 100644 --- a/usr.bin/config/defs.h +++ b/usr.bin/config/defs.h @@ -1,4 +1,4 @@ -/* $NetBSD: defs.h,v 1.84 2015/09/02 05:09:25 uebayasi Exp $ */ +/* $NetBSD: defs.h,v 1.85 2015/09/02 13:42:14 uebayasi Exp $ */ /* * Copyright (c) 1992, 1993 @@ -107,7 +107,7 @@ extern const char *progname; * The next two lines define the current version of the config(1) binary, * and the minimum version of the configuration files it supports. */ -#define CONFIG_VERSION 20150840 +#define CONFIG_VERSION 20150841 #define CONFIG_MINVERSION 0 /* diff --git a/usr.bin/config/mkmakefile.c b/usr.bin/config/mkmakefile.c index a543777f7bcf..b3bae5aa5864 100644 --- a/usr.bin/config/mkmakefile.c +++ b/usr.bin/config/mkmakefile.c @@ -1,4 +1,4 @@ -/* $NetBSD: mkmakefile.c,v 1.57 2015/09/02 13:06:06 uebayasi Exp $ */ +/* $NetBSD: mkmakefile.c,v 1.58 2015/09/02 13:42:14 uebayasi Exp $ */ /* * Copyright (c) 1992, 1993 @@ -45,7 +45,7 @@ #endif #include -__RCSID("$NetBSD: mkmakefile.c,v 1.57 2015/09/02 13:06:06 uebayasi Exp $"); +__RCSID("$NetBSD: mkmakefile.c,v 1.58 2015/09/02 13:42:14 uebayasi Exp $"); #include #include @@ -316,6 +316,21 @@ emitfile(FILE *fp, struct files *fi) fprintf(fp, "%s%s%s%s", prologue, prefix, sep, fi->fi_path); } +static void +emitfilerel(FILE *fp, struct files *fi) +{ + const char *prefix, *sep; + + prefix = sep = ""; + if (*fi->fi_path != '/') { + if (fi->fi_prefix != NULL) { + prefix = fi->fi_prefix; + sep = "/"; + } + } + fprintf(fp, "%s%s%s", prefix, sep, fi->fi_path); +} + static void emitobjs(FILE *fp) { @@ -475,7 +490,7 @@ emitfiles(FILE *fp, struct filelist *filelist, int suffix) if ((fi->fi_flags & FI_SEL) == 0) continue; putc('\t', fp); - emitfile(fp, fi); + emitfilerel(fp, fi); fputs(" \\\n", fp); }