<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to SyntaxConfigure</title><link>https://sourceforge.net/p/mkconf/wiki/SyntaxConfigure/</link><description>Recent changes to SyntaxConfigure</description><atom:link href="https://sourceforge.net/p/mkconf/wiki/SyntaxConfigure/feed" rel="self"/><language>en</language><lastBuildDate>Sat, 04 Jul 2026 16:23:54 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/mkconf/wiki/SyntaxConfigure/feed" rel="self" type="application/rss+xml"/><item><title>SyntaxConfigure modified by Brad Lanam</title><link>https://sourceforge.net/p/mkconf/wiki/SyntaxConfigure/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v7
+++ v8
@@ -10,16 +10,30 @@

 If the __method__ attribute is _manual_, the input file is processed and all variable names are substituted.

+##### Manual Replacement Strings
+

+    configure {
+      method manual;
+      replace '@install-dir@' ${my_install_dir};
+      replace '@HAVE_MALLOC@' ${_function_malloc};
+    }
+
+When using the __manual__ method, replacement strings can be specified in the attribute list.  This is useful when configuring pkg-config (.pc) files or shell scripts that may have
+`${variable}` strings in them.
+
+When one or more __replace__ attributes are specified, the strings specified by the replacement attributes will be substituted, and no variable substitution will be performed.
+
 ##### Attributes

-* [method](SyntaxAttrrMethod) (required)
+* [method](SyntaxAttrMethod) (required)

 * [input](SyntaxAttrInput) (required for manual method)
 * [output](SyntaxAttrOutput) (required for manual method)
+* [replace](SyntaxAttrReplace) (manual only)
 * define_zero

 ##### Examples

-###### Example 1:
+###### Example 1: Auto, with define_zero

     project {
       name mkctest;
@@ -44,7 +58,7 @@

     #endif /* INC_MKCTEST_CONFIG_H */

-###### Example 2:
+###### Example 2: Auto, without define_zero

     project {
       name mkctest;
@@ -67,10 +81,9 @@

     #endif /* INC_MYCONFIG_H */

-###### Example 3:
+###### Example 3: Manual

     check_function malloc;

-    check_function junk;

     configure {
       method manual;
@@ -98,5 +111,40 @@

     #endif /* INC_CONFIG_H */

+###### Example 4: Manual, with __replace__ attribute
+

+    check_function malloc;
+    set something 'abc';
+
+    configure {
+      method manual;
+      replace '@malloc@' ${_function_malloc};
+      replace '@shlibext@' ${MKC_SHARED_LIBRARY_EXTENSION}
+      input 'config.h.in';
+      output 'config.h';
+    }
+
+config.h.in:
+
+    #ifndef INC_CONFIG_H
+    #define INC_CONFIG_H
+
+    #define HAVE_MALLOC @malloc@
+    #define SHLIBEXT "@shlibext@"
+    #define something "${something}"
+
+    #endif /* INC_CONFIG_H */
+
+config.h:
+
+    #ifndef INC_CONFIG_H
+    #define INC_CONFIG_H
+
+    #define HAVE_MALLOC 1
+    #define SHLIBEXT ".so"
+    #define something "${something}"
+
+    #endif /* INC_CONFIG_H */
+
 [Wiki Home](Home) &lt;br/&gt;[Syntax](Syntax)

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Lanam</dc:creator><pubDate>Sat, 04 Jul 2026 16:23:54 -0000</pubDate><guid>https://sourceforge.net237c73d325a01bb0f005297409833fd34230c04e</guid></item><item><title>SyntaxConfigure modified by Brad Lanam</title><link>https://sourceforge.net/p/mkconf/wiki/SyntaxConfigure/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -12,9 +12,9 @@

 ##### Attributes

-* [method](SyntaxMethod) (required)
-* [input](SyntaxInput) (required for manual method)
-* [output](SyntaxOutput) (required for manual method)
+* [method](SyntaxAttrrMethod) (required)
+* [input](SyntaxAttrInput) (required for manual method)
+* [output](SyntaxAttrOutput) (required for manual method)

 * define_zero

 ##### Examples
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Lanam</dc:creator><pubDate>Sat, 04 Jul 2026 13:44:42 -0000</pubDate><guid>https://sourceforge.net091a42f22db48800a532c53e195658c0e4fd914f</guid></item><item><title>SyntaxConfigure modified by Brad Lanam</title><link>https://sourceforge.net/p/mkconf/wiki/SyntaxConfigure/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Lanam</dc:creator><pubDate>Fri, 03 Jul 2026 14:08:54 -0000</pubDate><guid>https://sourceforge.netefc3ae54a22c09078dd2ec359640c21835cdbe49</guid></item><item><title>SyntaxConfigure modified by Brad Lanam</title><link>https://sourceforge.net/p/mkconf/wiki/SyntaxConfigure/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Lanam</dc:creator><pubDate>Sun, 28 Jun 2026 15:21:46 -0000</pubDate><guid>https://sourceforge.net3069dd1b19c1b283afc2038248a6aceaeb605228</guid></item><item><title>SyntaxConfigure modified by Brad Lanam</title><link>https://sourceforge.net/p/mkconf/wiki/SyntaxConfigure/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -8,11 +8,9 @@

 If the _method_ attribute is _auto_, the filename will be automatically generated based on the project name: _project_\_config.h .

-If the _method_ attribute is _manual_, the input file should contain
+If the __method__ attribute is _manual_, the input file is processed and all variable names are substituted.

-##### Allowed Attributes
-
-The __configure__ statement allows the following attribute statements:
+##### Attributes


 * [method](SyntaxMethod) (required)
 * [input](SyntaxInput) (required for manual method)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Lanam</dc:creator><pubDate>Wed, 24 Jun 2026 13:32:03 -0000</pubDate><guid>https://sourceforge.net9593fbc6e5031604fdf968c6b53604a86f6b35f7</guid></item><item><title>SyntaxConfigure modified by Brad Lanam</title><link>https://sourceforge.net/p/mkconf/wiki/SyntaxConfigure/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -31,15 +31,20 @@

     configure {
       method auto;

-      # the _define\_zero_ attribute will output defines if the
+      # the define_zero attribute will output defines if the
       # check failed.
       define_zero;
     }

 mkctest_config.h:


+    #ifndef INC_MKCTEST_CONFIG_H
+    #define INC_MKCTEST_CONFIG_H
+
     #define _function_malloc 1
     #define _function_junk 0
+
+    #endif /* INC_MKCTEST_CONFIG_H */

 ###### Example 2:

@@ -57,7 +62,12 @@

 myconfig.h:


+    #ifndef INC_MYCONFIG_H
+    #define INC_MYCONFIG_H
+
     #define _function_malloc 1
+
+    #endif /* INC_MYCONFIG_H */

 ###### Example 3:

@@ -72,14 +82,23 @@

 config.h.in:


+    #ifndef INC_CONFIG_H
+    #define INC_CONFIG_H
+
     #define HAVE_MALLOC ${_function_malloc}
     #define SHLIBEXT ${MKC_SHARED_LIBRARY_EXTENSION}


+    #endif /* INC_CONFIG_H */
+
 config.h:
+
+    #ifndef INC_CONFIG_H
+    #define INC_CONFIG_H

     #define HAVE_MALLOC 1
     #define SHLIBEXT ".so"


+    #endif /* INC_CONFIG_H */

 [Wiki Home](Home) &lt;br/&gt;[Syntax](Syntax)

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Lanam</dc:creator><pubDate>Wed, 24 Jun 2026 13:04:11 -0000</pubDate><guid>https://sourceforge.net1802631613444bf134040baead8f09e827f9d13c</guid></item><item><title>SyntaxConfigure modified by Brad Lanam</title><link>https://sourceforge.net/p/mkconf/wiki/SyntaxConfigure/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -2,21 +2,22 @@

 ### Syntax: configure

-_configure_ generates a configuration file for use by the project.
+__configure__ generates a configuration file for use by the project.

     configure { &amp;lt;attribute-list&amp;gt; };

-If the _method_ attribute is _auto_ or _auto-nozero_, the filename will be automatically generated based on the project name: _project_\_config.h .
+If the _method_ attribute is _auto_, the filename will be automatically generated based on the project name: _project_\_config.h .

 If the _method_ attribute is _manual_, the input file should contain

 ##### Allowed Attributes

-The _configure_ statement allows the following attribute statements:
+The __configure__ statement allows the following attribute statements:


 * [method](SyntaxMethod) (required)
 * [input](SyntaxInput) (required for manual method)
 * [output](SyntaxOutput) (required for manual method)
+* define_zero

 ##### Examples

@@ -30,8 +31,9 @@

     configure {
       method auto;

-      # an output attribute overrides automatic generation of the filename
-      # output 'config.h';
+      # the _define\_zero_ attribute will output defines if the
+      # check failed.
+      define_zero;
     }

 mkctest_config.h:
@@ -48,10 +50,12 @@
     check_function junk;

     configure {

-      method auto-nozero;
+      method auto;
+      # an output attribute overrides automatic generation of the filename
+      output 'myconfig.h';
     }

-mkctest_config.h:
+myconfig.h:

     #define _function_malloc 1

&amp;lt;/attribute-list&amp;gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Lanam</dc:creator><pubDate>Fri, 19 Jun 2026 13:48:20 -0000</pubDate><guid>https://sourceforge.net13eca3a63738d2e732c53c146a00ebf80312ff48</guid></item><item><title>SyntaxConfigure modified by Brad Lanam</title><link>https://sourceforge.net/p/mkconf/wiki/SyntaxConfigure/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;a href="/p/mkconf/wiki/Home/"&gt;Wiki Home&lt;/a&gt; &lt;br/&gt;&lt;a href="/p/mkconf/wiki/Syntax/"&gt;Syntax&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="h-syntax-configure"&gt;Syntax: configure&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;configure&lt;/em&gt; generates a configuration file for use by the project.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;configure { &amp;lt;attribute-list&amp;gt; };
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;If the &lt;em&gt;method&lt;/em&gt; attribute is &lt;em&gt;auto&lt;/em&gt; or &lt;em&gt;auto-nozero&lt;/em&gt;, the filename will be automatically generated based on the project name: &lt;em&gt;project&lt;/em&gt;_config.h .&lt;/p&gt;
&lt;p&gt;If the &lt;em&gt;method&lt;/em&gt; attribute is &lt;em&gt;manual&lt;/em&gt;, the input file should contain&lt;/p&gt;
&lt;h5 id="h-allowed-attributes"&gt;Allowed Attributes&lt;/h5&gt;
&lt;p&gt;The &lt;em&gt;configure&lt;/em&gt; statement allows the following attribute statements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/p/mkconf/wiki/SyntaxMethod/"&gt;method&lt;/a&gt; (required)&lt;/li&gt;
&lt;li&gt;&lt;a href="/p/mkconf/wiki/SyntaxInput/"&gt;input&lt;/a&gt; (required for manual method)&lt;/li&gt;
&lt;li&gt;&lt;a href="/p/mkconf/wiki/SyntaxOutput/"&gt;output&lt;/a&gt; (required for manual method)&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id="h-examples"&gt;Examples&lt;/h5&gt;
&lt;h6 id="h-example-1"&gt;Example 1:&lt;/h6&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;project {
  name mkctest;
}
check_function malloc;
check_function junk;

configure {
  method auto;
  # an output attribute overrides automatic generation of the filename
  # output 'config.h';
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;mkctest_config.h:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gh"&gt;#&lt;/span&gt;define _function_malloc 1
&lt;span class="gh"&gt;#&lt;/span&gt;define _function_junk 0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h6 id="h-example-2"&gt;Example 2:&lt;/h6&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;project {
  name mkctest;
}
check_function malloc;
check_function junk;

configure {
  method auto-nozero;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;mkctest_config.h:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gh"&gt;#&lt;/span&gt;define _function_malloc 1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h6 id="h-example-3"&gt;Example 3:&lt;/h6&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;check_function malloc;
check_function junk;

configure {
  method manual;
  input 'config.h.in';
  output 'config.h';
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;config.h.in:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;#define&lt;span class="w"&gt; &lt;/span&gt;HAVE_MALLOC&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;_function_malloc&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;
#define&lt;span class="w"&gt; &lt;/span&gt;SHLIBEXT&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;MKC_SHARED_LIBRARY_EXTENSION&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;config.h:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gh"&gt;#&lt;/span&gt;define HAVE_MALLOC 1
&lt;span class="gh"&gt;#&lt;/span&gt;define SHLIBEXT ".so"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="/p/mkconf/wiki/Home/"&gt;Wiki Home&lt;/a&gt; &lt;br/&gt;&lt;a href="/p/mkconf/wiki/Syntax/"&gt;Syntax&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Lanam</dc:creator><pubDate>Thu, 18 Jun 2026 16:55:20 -0000</pubDate><guid>https://sourceforge.neted00617275a830368b9830d296a0e7895f343d3a</guid></item></channel></rss>