title: Macro wrongly defined in Makefile of Openwrt package
body: <p>In the openwrt package that I'm working on, I defined a new config flag by adding following bloc to the Config.in file:</p>
  
  <pre><code>config VENDOR_PREFIX
      string "Vendor Prefix"
      default "X_Custom_SE_"
  </code></pre>
  
  <p>The flag is well added in the menuconfig:</p>
  
  <p><a href="https://i.stack.imgur.com/mw0ba.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/mw0ba.png" alt="enter image description here"></a></p>
  
  <p>I want that the value of this config flag is viewed in my C code as a macro. So I defined a macro CUSTOM_PREFIX  in the Makefile of the package and assigned to it the value of the defined flag with this way:</p>
  
  <pre><code>TARGET_CFLAGS += -DCUSTOM_PREFIX=\"$(CONFIG_VENDOR_PREFIX)\"
  </code></pre>
  
  <p>and then I tried to use my macro in my C code by calling it in a structure variable initiation like that:</p>
  
  <pre><code>struct parameter_struct param1= {CUSTOM_PREFIX"param1", 4};
  </code></pre>
  
  <p>After that I tried to compile it. But I got this compilation error:</p>
  
  <pre><code>/home/user/openwrt//staging_dir/toolchain-mips_mips32_gcc-5.5.0_musl/usr/include -I/home/user/openwrt/staging_dir/toolchain-mips_mips32_gcc-5.5.0_musl/include/fortify -I/home/user/openwrt/staging_dir/toolchain-mips_mips32_gcc-5.5.0_musl/include -I/home/user/openwrt/staging_dir/target-mips_mips32_musl/usr/include -I/home/user/openwrt/staging_dir/target-mips_mips32_musl/usr/include -I/home/user/openwrt/staging_dir/target-mips_mips32_musl/usr/include -DCWMP_VERSION=\"3.0.0\" -I../inc/ -I../dm/ -I../dm/dmtree/ -I../dm/dmtree/common -I../dm/dmtree/tr098 -I../dm/dmtree/tr181 -I../dm/dmtree/upnp -Os -pipe -mips32 -mtune=mips32 -fno-caller-saves -DCONFIG_TARGET_iopsys_brcm63xx_mips -g3 -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float -iremap/home/user/openwrt/build_dir/target-mips_mips32_musl/icwmp-curl/icwmp-4.0-2018-03-21:icwmp-4.0-2018-03-21 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DCUSTOM_PREFIX=X_CUSTOM1_SE_ -D_GNU_SOURCE -D_AADJ -MT ../dm/dmtree/common/libdatamodel_la-deviceinfo.lo -MD -MP -MF ../dm/dmtree/common/.deps/libdatamodel_la-deviceinfo.Tpo -c ../dm/dmtree/common/deviceinfo.c  -fPIC -DPIC -o ../dm/dmtree/common/.libs/libdatamodel_la-deviceinfo.o
                   ^
  ../dm/dmtree/common/deviceinfo.c: At top level:
  &lt;command-line&gt;:0:15: error: 'X_CUSTOM1_SE_' undeclared here (not in a function)
  ../dm/dmtree/common/deviceinfo.c:28:2: note: in expansion of macro 'CUSTOM_PREFIX'
   {CUSTOM_PREFIX"param1", 4}
  </code></pre>
  
  <p>struct parameter_struct param1= {CUSTOM_PREFIX"param1", 4};
  seems like that the c program doesn't accept it as a string.
  Is there something wrong in my macro definition?</p>