Making WITH_DEBUG less magical

Eitan Adler lists at eitanadler.com
Tue Nov 26 05:14:45 UTC 2013


Hi all,

At the moment WITH_DEBUG is treated specially by the ports system.  I
propose to turn the old WITH_DEBUG into a port option 'DEBUG' which is
understood by the port system as a whole (similar to DOCS, etc.)

This change also changes what DEBUG does: it only appends
DEBUG_{CFLAGS,CPPFLAGS,CXXFLAGS} to the appropriate variable.  It does
not any longer strip off -O*.

My first attempt is below.  One known problem is that requires the
option DEBUG to be in OPTIONS_DEFINE. I am not sure how to change this
(or if we want to change it).  I am also unsure if the code changes
should live above or below the inclusion of Mk/bsd.options.mk.

Documentation changes are intentionally ignored at the moment.

Thoughts?

Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk (revision 334916)
+++ Mk/bsd.port.mk (working copy)
@@ -1311,17 +1311,6 @@ MAKE_ENV+= TMPDIR="${TMPDIR}"
 CONFIGURE_ENV+= TMPDIR="${TMPDIR}"
 .endif # defined(TMPDIR)

-.if defined(WITH_DEBUG_PORTS)
-.if ${WITH_DEBUG_PORTS:M${PKGORIGIN}}
-WITH_DEBUG= yes
-.endif
-.endif
-
-# Reset value from bsd.own.mk.
-.if defined(WITH_DEBUG) && !defined(WITHOUT_DEBUG)
-STRIP= #none
-.endif
-
 .include "${PORTSDIR}/Mk/bsd.options.mk"

 # Start of pre-makefile section.
@@ -1603,11 +1592,25 @@ CFLAGS:= ${CFLAGS:C/${_CPUCFLAGS}//}
 .endif
 .endif

-.if defined(WITH_DEBUG) && !defined(WITHOUT_DEBUG)
+.if defined(WITH_DEBUG_PORTS)
+.if ${WITH_DEBUG_PORTS:M${PKGORIGIN}}
+WITH_DEBUG= yes
+.endif
+.endif
+
+DEBUG_CFLAGS?= -g
+DEBUG_CXXFLAGS?= -g
+DEBUG_CPPFLAGS?= -g
+
+.if defined(PORT_OPTIONS)
+.if ${PORT_OPTIONS:MDEBUG} || defined(WITH_DEBUG)
+STRIP= #none
 STRIP_CMD= ${TRUE}
-DEBUG_FLAGS?= -g
-CFLAGS:= ${CFLAGS:N-O*:N-fno-strict*} ${DEBUG_FLAGS}
+CFLAGS+= ${DEBUG_CFLAGS}
+CXXFLAGS+= ${DEBUG_CXXFLAGS}
+CPPFLAGS+= ${DEBUG_CPPFLAGS}
 .endif
+.endif

 .if defined(WITH_SSP) || defined(WITH_SSP_PORTS)
 .include "${PORTSDIR}/Mk/bsd.ssp.mk"


-- 
Eitan Adler


More information about the freebsd-ports mailing list