Hi,

Take a look on https://github.com/zeromq/malamute/blob/master/doc/mkman
This is a script to generate documentation. It parses comments from various
sections from header and c file.

Pieter mentioned that update is triggered by make clean (unless someone
have changed it. In doubts, read the makefile).
Dne 19. 4. 2016 7:08 PM napsal uživatel "Matjaž Ostroveršnik" <
matjaz.ostrovers...@gmail.com>:

> Hi Kevin,
>
> Thanks for the reply. So to change the mlm_client api, one needs to insert
> /update api/mlm_client?
> Are you sure? This document is generated according to the header comment.
>
> Id'd like to add few methods to mlm_client.
> 1. Which files needs to be updated?
> 2. How the updated files can be regenerated in order to get c and header
> files?
>
> I do not care whether the build is performed via autotools or cmake.
>
> Thanks in advance
>
> Matjaž
>
> On 19.4.2016 11:44, Kevin Sapper wrote:
>
> The header section in mlm_client_custom.xml needs to escape the xml char
> '<' and '>' as they would otherwise be read by gsl. When using zproto
> client with zproject it will generate an API otherwise it will generate a C
> header file. Thus no XML is inserted into the header file. This mix of old
> (before zproject) and new generation is indeed confusing, so instead of
> defining custom API in mlm_client_custom.xml we could place it into
> mlm_client_custom.api. Thereby keeping mlm_client_custom.xml free of any
> XML strings. The custom API functionality would of course only work if
> using it with zproject.
>
> 2016-04-18 21:34 GMT+02:00 Matjaž Ostroveršnik <
> matjaz.ostrovers...@gmail.com>:
>
>> Hi Veterans,
>>
>> The bug is clearer now. The generator includes xml tags into c header
>> (mlm_client.h) instead of generated c function prototypes.
>>
>> see /usr/local/bin/zproto_client_c.gsl line 528
>>
>> .for class.custom
>> .   for header
>> $(header.:)     <--- problematic line
>> .   endfor
>> .endfor
>>
>> The bug manifests itself only if the custom code is included
>> (mlm_client_custom.xml). When you check the file it becomes fishy.
>> The header tag contains &lt; and &gt; markers instead of < and >. It
>> seems somebody wanted to include the xml definition and one step (as string)
>>
>> What the "custom" xml definition should contain in header and source tag?
>> (C code or xml definitions?)
>>
>> I started to fix with that, but I do not want to reinvent the wheel. I am
>> sure that there is already a gsl function which from method definition
>> outputs C function prototype. Am I wrong?
>>
>> Best regards
>>
>> Matjaž
>>
>>
>> On 14.4.2016 17:05, Matjaž Ostroveršnik wrote:
>>
>> In the mean time I found out that it is not necessary to change anything.
>> Just do gsl on mlm_client.xml (started from src folder as required by
>> Pieter).
>> I am working on ostri/malamute, but it should be in sync with
>> zeromq/malamute.
>>
>> On 14.4.2016 16:33, Osiris Pedroso wrote:
>>
>> Hi Matjaz,
>>
>> Can you provide a repository with the modified file checked in?
>>
>> I would like to try it as well.
>>
>> Thanks,
>> Osiris
>>
>> On Thu, Apr 14, 2016 at 9:12 AM Matjaž Ostroveršnik <
>> matjaz.ostrovers...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I tried to add a new method to the mlm_client.xml and then regenerate
>>> all dependant files.
>>> Generation of include/mlm_client.h is unsuccesful (i.e. one gets xml
>>> garbage within the c header sources)
>>>
>>> Am I doing something wrong or this is a bug?
>>> Guys how do you regenerate when you change some xml file (ok I know for
>>> project.xml)
>>> I think it is something wrong with an inclusion of custom file
>>>     <custom filename = "mlm_client_custom.xml" language = "C" />
>>> It seems that gsl is including header tag instead of source tag.
>>>
>>> How to reproduce:
>>> *git reset --hard*
>>> HEAD is now at c097dcf Merge pull request #164 from
>>> opedroso/WIN_CRLF_REGEN
>>> *git status*
>>> On branch master
>>> Your branch is up-to-date with 'origin/master'.
>>> nothing to commit, working directory clean
>>> *cd src*
>>> *gsl mlm_client.xml                                     *
>>> GSL/4.1c Copyright (c) 1996-2016 iMatix Corporation
>>> gsl/4 I: Processing mlm_client.xml...
>>> *cd ..*
>>> *make*
>>> Making all in doc
>>> make[1]: Entering directory '/home/ostri/zstuff/malamute/doc'
>>> make[1]: Nothing to be done for 'all'.
>>> make[1]: Leaving directory '/home/ostri/zstuff/malamute/doc'
>>> make[1]: Entering directory '/home/ostri/zstuff/malamute'
>>>   CC       src/src_libmlm_la-mlm_msg.lo
>>> In file included from src/../include/mlm_library.h:66:0,
>>>                  from src/../include/malamute.h:17,
>>>                  from src/mlm_classes.h:24,
>>>                  from src/mlm_msg.c:20:
>>> src/../include/mlm_client.h:157:5: error: expected identifier or ‘(’
>>> before ‘<’ token
>>>      <method name = "sendx">
>>>      ^
>>> src/../include/mlm_client.h:159:61: error: identifier "or" is a special
>>> operator name in C++ [-Werror=c++-compat]
>>>          Returns 0 if OK, -1 if failed due to lack of memory or other
>>> error.
>>>                                                              ^
>>> src/../include/mlm_client.h:167:61: error: identifier "or" is a special
>>> operator name in C++ [-Werror=c++-compat]
>>>          Returns 0 if OK, -1 if failed due to lack of memory or other
>>> error.
>>>                                                              ^
>>> src/../include/mlm_client.h:176:61: error: identifier "or" is a special
>>> operator name in C++ [-Werror=c++-compat]
>>>          Returns 0 if OK, -1 if failed due to lack of memory or other
>>> error.
>>>                                                              ^
>>> src/../include/mlm_client.h:184:27: error: identifier "and" is a special
>>> operator name in C++ [-Werror=c++-compat]
>>>          Receive a subject and string content from the server. The
>>> content may be
>>>                            ^
>>> src/../include/mlm_client.h:185:11: error: identifier "or" is a special
>>> operator name in C++ [-Werror=c++-compat]
>>>          1 or more string frames. This method is orthogonal to the sendx
>>> methods.
>>>            ^
>>> src/../include/mlm_client.h:186:58: error: identifier "not" is a special
>>> operator name in C++ [-Werror=c++-compat]
>>>          End the string arguments with NULL. If there are not enough
>>> frames in
>>>                                                           ^
>>> src/../include/mlm_client.h:188:38: error: identifier "or" is a special
>>> operator name in C++ [-Werror=c++-compat]
>>>          of string contents received, or -1 in case of error. Free the
>>> returned
>>>                                       ^
>>> src/../include/mlm_client.h:189:17: error: identifier "and" is a special
>>> operator name in C++ [-Werror=c++-compat]
>>>          subject and content strings when finished with them. To get the
>>> type of
>>>                  ^
>>> cc1: all warnings being treated as errors
>>> Makefile:1027: recipe for target 'src/src_libmlm_la-mlm_msg.lo' failed
>>> make[1]: *** [src/src_libmlm_la-mlm_msg.lo] Error 1
>>> make[1]: Leaving directory '/home/ostri/zstuff/malamute'
>>> Makefile:1260: recipe for target 'all-recursive' failed
>>> make: *** [all-recursive] Error 1
>>>
>>> *gsl -v*
>>> GSL/4.1c
>>> Built from http://github.com/imatix/gsl.git master
>>> Copyright (c) 1996-2016 iMatix Corporation
>>> Compiler: gcc -c -O2 -D_REENTRANT -D_GNU_SOURCE -Wall -Wno-unused
>>> -fno-strict-aliasing -DBASE_THREADSAFE -I. gsl.c
>>>
>>>
>>>
>>> Best regards
>>>
>>> Matjaž
>>>
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> zeromq-dev@lists.zeromq.org
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>
>>
>>
>> _______________________________________________
>> zeromq-dev mailing 
>> listzeromq-dev@lists.zeromq.orghttp://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>>
>>
>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev@lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>>
>
>
> _______________________________________________
> zeromq-dev mailing 
> listzeromq-dev@lists.zeromq.orghttp://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev@lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to