Module Name:    src
Committed By:   uebayasi
Date:           Sun Aug 30 01:33:20 UTC 2015

Modified Files:
        src/usr.bin/config: config.5 defs.h main.c

Log Message:
Define `makeoptions' values as parameters with "makeoptions_" prefix too.
C sources are encouraged to include relevant opt_*.h files rather than relying
on -DXXX passed via makefiles.


To generate a diff of this commit:
cvs rdiff -u -r1.28 -r1.29 src/usr.bin/config/config.5
cvs rdiff -u -r1.70 -r1.71 src/usr.bin/config/defs.h
cvs rdiff -u -r1.79 -r1.80 src/usr.bin/config/main.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/config/config.5
diff -u src/usr.bin/config/config.5:1.28 src/usr.bin/config/config.5:1.29
--- src/usr.bin/config/config.5:1.28	Sat Aug 29 02:54:07 2015
+++ src/usr.bin/config/config.5	Sun Aug 30 01:33:20 2015
@@ -1,4 +1,4 @@
-.\" $NetBSD: config.5,v 1.28 2015/08/29 02:54:07 uebayasi Exp $
+.\" $NetBSD: config.5,v 1.29 2015/08/30 01:33:20 uebayasi Exp $
 .\"
 .\"  Copyright (c) 2006, 2007 The NetBSD Foundation.
 .\"  All rights reserved.
@@ -24,7 +24,7 @@
 .\"  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\"  POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd August 28, 2015
+.Dd August 31, 2015
 .Dt CONFIG 5
 .Os
 .Sh NAME
@@ -551,10 +551,6 @@ indicates when the relevant line should 
 and works just like the
 .Ic file
 statement.
-.It Ic makeoptions Ar condition name Ns += Ns Ar value Op , Ar condition \
-    name Ns += Ns Ar value
-Appends to a definition in the generated
-.Pa Makefile .
 .El
 .Ss OPTIONS SELECTION
 .Bl -ohang
@@ -703,6 +699,17 @@ Adds or appends to a definition in the g
 .Pa Makefile .
 A definition cannot be overriden, it must be removed before it can be added
 again.
+Optionally, if an option
+.Pa makeoptions_\*[Lt]name\*[Gt]
+is defined with
+.Ic defparam ,
+the
+Ns value
+is defined as an option too.
+.It Ic makeoptions Ar condition name Ns += Ns Ar value Op , Ar condition \
+    name Ns += Ns Ar value
+Appends to a definition in the generated
+.Pa Makefile .
 .It Ic no makeoptions Ar name Op , Ar name Op , Ar ...
 Removes one or more definitions from the generated
 .Pa Makefile .

Index: src/usr.bin/config/defs.h
diff -u src/usr.bin/config/defs.h:1.70 src/usr.bin/config/defs.h:1.71
--- src/usr.bin/config/defs.h:1.70	Sat Aug 29 14:07:45 2015
+++ src/usr.bin/config/defs.h	Sun Aug 30 01:33:20 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: defs.h,v 1.70 2015/08/29 14:07:45 uebayasi Exp $	*/
+/*	$NetBSD: defs.h,v 1.71 2015/08/30 01:33:20 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		20150830
+#define CONFIG_VERSION		20150831
 #define CONFIG_MINVERSION	0
 
 /*
@@ -610,6 +610,7 @@ int	devbase_has_instances(struct devbase
 int	is_declared_option(const char *);
 int	deva_has_instances(struct deva *, int);
 void	setupdirs(void);
+void	fixmkoption(void);
 const char *strtolower(const char *);
 
 /* tests on option types */

Index: src/usr.bin/config/main.c
diff -u src/usr.bin/config/main.c:1.79 src/usr.bin/config/main.c:1.80
--- src/usr.bin/config/main.c:1.79	Sat Aug 29 13:34:21 2015
+++ src/usr.bin/config/main.c	Sun Aug 30 01:33:20 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.79 2015/08/29 13:34:21 uebayasi Exp $	*/
+/*	$NetBSD: main.c,v 1.80 2015/08/30 01:33:20 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -45,7 +45,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: main.c,v 1.79 2015/08/29 13:34:21 uebayasi Exp $");
+__RCSID("$NetBSD: main.c,v 1.80 2015/08/30 01:33:20 uebayasi Exp $");
 
 #ifndef MAKE_BOOTSTRAP
 #include <sys/cdefs.h>
@@ -429,6 +429,12 @@ main(int argc, char **argv)
 		stop();
 
 	/*
+	 * Copy makeoptions to params
+	 */
+	yyfile = "fixmkoption";
+	fixmkoption();
+
+	/*
 	 * If working on an ioconf-only config, process here and exit
 	 */
 	if (ioconfname) {
@@ -1098,6 +1104,25 @@ appendcondmkoption(struct condexpr *cond
 }
 
 /*
+ * Copy makeoptions to params with "makeoptions_" prefix.
+ */
+void
+fixmkoption(void)
+{
+	struct nvlist *nv;
+	char buf[100];
+	const char *name;
+
+	for (nv = mkoptions; nv != NULL; nv = nv->nv_next) {
+		snprintf(buf, sizeof(buf), "makeoptions_%s", nv->nv_name);
+		name = intern(buf);
+		if (!DEFINED_OPTION(name) || !OPT_DEFPARAM(name))
+			continue;
+		addoption(name, intern(nv->nv_str));
+	}
+}
+
+/*
  * Add a name=value pair to an option list.  The value may be NULL.
  */
 static int

Reply via email to