.\" libctl: flexible Guile-based control files for scientific software .\" Copyright (C) 1998-2020 Steven G. Johnson .\" .\" This library is free software; you can redistribute it and/or .\" modify it under the terms of the GNU Lesser General Public .\" License as published by the Free Software Foundation; either .\" version 2 of the License, or (at your option) any later version. .\" .\" This library is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU .\" Lesser General Public License for more details. .\" .\" You should have received a copy of the GNU Lesser General Public .\" License along with this library; if not, write to the .\" Free Software Foundation, Inc., 59 Temple Place - Suite 330, .\" Boston, MA 02111-1307, USA. .\" .\" Steven G. Johnson can be contacted at stevenj@alum.mit.edu. .\" .TH GEN-CTL-IO 1 "March 27, 2006" "libctl" "libctl" .SH NAME gen-ctl-io \- generate C interface code for libctl control files .SH SYNOPSIS .B gen-ctl-io [OPTION]... [\fIspec-file\fR] .SH DESCRIPTION .PP .B gen-ctl-io generates C code to import/export the input/output variables used in a libctl control file. .B gen-ctl-io generates files like \fIctl-io.h\fP and \fIctl-io.c\fP. These files define global variables, data structures, and functions for the input/output variables, classes, and function interfaces defined in the .I spec-file argument, automating the interaction between C and Guile. The arguments such as .B --code and .B --header are used to control whether \fIctl-io.c\fP or \fIctl-io.h\fP, etcetera, are generated. If no argument is specified then both of these files are generated by default, for backwards compatibility. libctl is a free library to aid in interfacing scientific software with the GNU Guile scripting and extension language. Documentation for it may be found online at the libctl home page: .I http://ab-initio.mit.edu/libctl .SH OPTIONS .TP \fB\--code\fR Generate C (or C++) source code to implement the Guile interface functions. The default output file name is ctl-io.c (in C) or ctl-io.cpp (in C++). .TP \fB\--header\fR Generate the header file declaring the interface data types and functions. The default output file name is ctl-io.h (in C) or ctl-io.hpp (in C++). .TP \fB\--swig\fR Generate a SWIG interface definition file declaring automatic conversions for the various libctl data types. The default output file name is ctl-io.i. .TP \fB\--cxx\fR Generate C++ code instead of C code. .TP \fB\-o\fR \fIfile\fR Use .I file as the output file name instead of the defaults (above). .SH BUGS Send bug reports to S. G. Johnson, stevenj@alum.mit.edu. .SH AUTHORS Written by Steven G. Johnson.