I find myself adding the following to many ports files nowadays

.include <bsd.port.arch.mk>
.if !${PROPERTIES:Mclang}
CFLAGS +=       -std=gnu99
.endif

Rather than continue this, I'd like to propose adding BASE_C99 to bsd.port.mk

When BASE_C99= Yes, if on a non-base-clang arch, it will add the same to
CFLAGS, but without including bsd.port.arch.mk by hand.

Included are patches to add this to bsd.port.mk and a diff for bsd.port.mk(5)
to include it in the man page.

Once this is in, I'll sweep the tree for the boilerplate and replace it all
with this.

ok?

--Kurt
Index: bsd.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v
retrieving revision 1.1564
diff -u -p -r1.1564 bsd.port.mk
--- bsd.port.mk 14 Dec 2021 14:21:41 -0000      1.1564
+++ bsd.port.mk 23 Dec 2021 16:34:42 -0000
@@ -736,6 +736,13 @@ CFLAGS += ${CDIAGFLAGS}
 CXXFLAGS += ${CXXDIAGFLAGS}
 .endif
 
+# Add -std=gnu99 to CFLAGS if requested and arch is base-gcc
+BASE_C99 ?= no
+.if !${PROPERTIES:Mclang} && ${BASE_C99:L} == "yes"
+CFLAGS +=      -std=gnu99
+.endif
+
+
 # XXX trick ports into trying to write into / instead of the current user's
 # homedir.
 PORTHOME ?= /${PKGNAME}_writes_to_HOME
Index: bsd.port.mk.5
===================================================================
RCS file: /cvs/src/share/man/man5/bsd.port.mk.5,v
retrieving revision 1.550
diff -u -p -r1.550 bsd.port.mk.5
--- bsd.port.mk.5       22 Nov 2021 11:17:39 -0000      1.550
+++ bsd.port.mk.5       28 Dec 2021 02:34:51 -0000
@@ -966,6 +966,21 @@ Can be set to
 .Sq autogen.sh
 if such a script is available.
 Defaults to autoreconf --force --install.
+.It Ev BASE_C99
+Defaults to
+.Sq \&No .
+Set to
+.Sq Yes
+for ports needing c99 constructs while using base-gcc.
+.Pp
+When
+.Ev BASE_C99
+is set to
+.Sq Yes ,
+.Ev CFLAGS
+has
+.Sq -std=gnu99
+added to it if building on a base-gcc architecture.
 .It Ev BASE_PKGPATH
 Full
 .Xr pkgpath 7

Reply via email to