Introduction:
=============
-This directory contains the source code of the pidl (Perl IDL)
-compiler for Samba 4.
+This directory contains the source code of the pidl (Perl IDL)
+compiler for Samba 4.
-The main sources for pidl are available by Subversion on
-svn://svnanon.samba.org/samba/branches/SAMBA_4_0/source/pidl
+The main sources for pidl are available using Git as part of
+the Samba source tree. Use:
+git clone git://git.samba.org/samba.git
-Pidl works by building a parse tree from a .pidl file (a simple
-dump of it's internal parse tree) or a .idl file
-(a file format mostly like the IDL file format midl uses).
-The IDL file parser is in idl.yp (a yacc file converted to
+Pidl works by building a parse tree from a .pidl file (a simple
+dump of it's internal parse tree) or a .idl file
+(a file format mostly like the IDL file format midl uses).
+The IDL file parser is in idl.yp (a yacc file converted to
perl code by yapp)
-After a parse tree is present, pidl will call one of it's backends
-(which one depends on the options given on the command-line). Here is
-a list of current backends:
-
Standalone installation:
========================
-Run Makefile.PL to generate the Makefile.
+Run Makefile.PL to generate the Makefile.
Then run "make install" (as root) to install.
Internals overview:
===================
+After a parse tree is present, pidl will call one of it's backends
+(which one depends on the options given on the command-line). Here is
+a list of current backends:
+
-- Generic --
Parse::Pidl::Dump - Converts the parse tree back to an IDL file
Parse::Pidl::Samba4::Header - Generates header file with data structures defined in IDL file
-- Samba NDR --
Parse::Pidl::Samba4::NDR::Client - Generates client call functions in C using the NDR parser
-Parse::Pidl::Samba4::SWIG - Generates SWIG interface files (.i)
Parse::Pidl::Samba4::NDR::Parser - Generates pull/push functions for parsing NDR
Parse::Pidl::Samba4::NDR::Server - Generates server side implementation in C
Parse::Pidl::Samba4::TDR - Parser generator for the "Trivial Data Representation"
Parse::Pidl::Samba4::Template - Generates stubs in C for server implementation
-Parse::Pidl::Samba4::EJS - Generates bindings for Embedded JavaScript (EJS)
Parse::Pidl::Samba4::Python - Generates bindings for Python
-- Samba COM / DCOM --
Parse::Pidl::Typelist - Utility functions for keeping track of known types and their representation in C
Tips for hacking on pidl:
- - Look at the pidl's parse tree by using the --keep option and looking
- at the generated .pidl file.
- - The various backends have a lot in common, if you don't understand how one
- implements something, look at the others
+ - Inspect pidl's parse tree by using the --keep option and looking at the
+ generated .pidl file.
+ - The various backends have a lot in common, if you don't understand how one
+ implements something, look at the others.
- See pidl(1) and the documentation on midl
- - See 'info bison' and yapp(1) for information on the file format of idl.yp
+ - See 'info bison' and yapp(1) for information on the file format of idl.yp
+ - Run the tests (all in tests/)