r10093: Fix the HF_FIELD conformance file command
[Samba/aatanasov.git] / source4 / pidl / README
blob745834476115f1bae8e0c300527217262ca59833
1 Introduction:
2 =============
3 This directory contains the source code of the pidl (Perl IDL) 
4 compiler for Samba 4. 
6 The main sources for pidl are available by Subversion on
7 svn+ssh://svnanon.samba.org/samba/branches/SAMBA_4_0/source/pidl
9 Pidl works by building a parse tree from a .pidl file (a simple 
10 dump of it's internal parse tree) or a .idl file 
11 (a file format mostly like the IDL file format midl uses). 
12 The IDL file parser is in idl.yp (a yacc file converted to 
13 perl code by yapp)
15 After a parse tree is present, pidl will call one of it's backends 
16 (which one depends on the options given on the command-line). Here is 
17 a list of current backends:
19 Standalone installation:
20 ========================
21 Run Makefile.PL to generate the Makefile. 
23 Then run "make install" (as root) to install.
25 Documentation:
26 ==============
27 Run 'make doc' to generate the manpage and a HTML version of the manpage.
28 This requires the xsltproc utility to be installed.
30 Internals overview:
31 ===================
33 -- Generic --
34 Parse::Pidl::Dump - Converts the parse tree back to an IDL file
35 Parse::Pidl::Samba::Header - Generates header file with data structures defined in IDL file
36 Parse::Pidl::NDR - Generates intermediate datastructures for use by NDR parses/generators
37 Parse::Pidl::ODL - Generates IDL structures from ODL structures for use in the NDR parser generator
38 Parse::Pidl::Test - Utility functions for use in pidl's testsuite
40 -- Samba NDR --
41 Parse::Pidl::Samba::NDR::Client - Generates client call functions in C using the NDR parser
42 Parse::Pidl::Samba::SWIG - Generates SWIG interface files (.i)
43 Parse::Pidl::Samba::NDR::Header - Generates a header file with NDR-parser specific data
44 Parse::Pidl::Samba::NDR::Parser - Generates pull/push functions for parsing NDR
45 Parse::Pidl::Samba::NDR::Server - Generates server side implementation in C
46 Parse::Pidl::Samba::TDR - Parser generator for the "Trivial Data Representation"
47 Parse::Pidl::Samba::Template - Generates stubs in C for server implementation
48 Parse::Pidl::Samba::EJS - Generates bindings for Embedded JavaScript (EJS)
49 Parse::Pidl::Samba::EJSHeader - Generates headers for the EJS bindings
51 -- Samba COM / DCOM --
52 Parse::Pidl::Samba::COM::Proxy - Generates proxy object for DCOM (client-side)
53 Parse::Pidl::Samba::COM::Stub - Generates stub call handler for DCOM (server-side)
54 Parse::Pidl::Samba::COM::Header - Generates header file for COM interface(s)
56 -- Ethereal --
57 Parse::Pidl::Ethereal::NDR - Generates a parser for the ethereal network sniffer
58 Parse::Pidl::Ethereal::Conformance - Reads conformance files containing additional data for generating Ethereal parsers
60 -- Utility modules --
61 Parse::Pidl::Util - Misc utility functions used by *.pm and pidl.pl
62 Parse::Pidl::Typelist - Utility functions for keeping track of known types and their representation in C
64 Tips for hacking on pidl:
65  - Look at the pidl's parse tree by using the --keep option and looking 
66    at the generated .pidl file. 
67  - The various backends have a lot in common, if you don't understand how one 
68    implements something, look at the others
69  - See pidl(1) and the documentation on midl
70  - See 'info bison' and yapp(1) for information on the file format of idl.yp