babeltrace.c
babeltrace_LDADD = \
- $(top_srcdir)/types/libtypes.a \
- $(top_srcdir)/formats/libregistry.a
-
+ $(top_builddir)/types/libbabeltrace_types.la \
+ $(top_builddir)/formats/libbabeltrace_registry.la \
+ $(top_builddir)/formats/ctf/libctf.la
*/
#include <babeltrace/babeltrace.h>
+#include <babeltrace/format.h>
#include <popt.h>
#include <errno.h>
#include <stdlib.h>
enum {
OPT_NONE = 0,
OPT_HELP,
+ OPT_LIST,
OPT_VERBOSE,
OPT_DEBUG,
};
{ "input-format", 'i', POPT_ARG_STRING, &opt_input_format, OPT_NONE, NULL, NULL },
{ "output-format", 'o', POPT_ARG_STRING, &opt_output_format, OPT_NONE, NULL, NULL },
{ "help", 'h', POPT_ARG_NONE, NULL, OPT_HELP, NULL, NULL },
+ { "list", 'l', POPT_ARG_NONE, NULL, OPT_LIST, NULL, NULL },
{ "verbose", 'v', POPT_ARG_NONE, NULL, OPT_VERBOSE, NULL, NULL },
{ "debug", 'd', POPT_ARG_NONE, NULL, OPT_DEBUG, NULL, NULL },
{ NULL, 0, 0, NULL, 0, NULL, NULL },
};
+static void list_formats(FILE *fp)
+{
+ fprintf(fp, "\n");
+ bt_fprintf_format_list(fp);
+}
+
static void usage(FILE *fp)
{
fprintf(fp, "Babeltrace %u.%u\n\n", BABELTRACE_VERSION_MAJOR,
fprintf(fp, " -o, --output-format Input trace path\n");
fprintf(fp, "\n");
fprintf(fp, " -h, --help This help message\n");
+ fprintf(fp, " -l, --list List available formats\n");
fprintf(fp, " -v, --verbose Verbose mode\n");
fprintf(fp, " -d, --debug Debug mode\n");
+ list_formats(fp);
fprintf(fp, "\n");
}
while ((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
case OPT_HELP:
- usage(stderr);
+ usage(stdout);
ret = 1; /* exit cleanly */
goto end;
+ case OPT_LIST:
+ list_formats(stdout);
+ ret = 1;
+ goto end;
case OPT_VERBOSE:
babeltrace_verbose = 1;
break;
SUBDIRS = . ctf
-noinst_LIBRARIES = libregistry.a
+lib_LTLIBRARIES = libbabeltrace_registry.la
-libregistry_a_SOURCES = registry.c
+libbabeltrace_registry_la_SOURCES = registry.c
AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include
-SUBDIRS = . types metadata
+SUBDIRS = types metadata .
lib_LTLIBRARIES = libctf.la
libctf_la_SOURCES = \
- ctf.c \
- types/libctf-types.a
- metadata/libctf-parser.a
+ ctf.c
+
+libctf_la_LIBADD = \
+ types/libctf-types.la \
+ metadata/libctf-parser.la \
+ metadata/libctf-ast.la
#include <babeltrace/format.h>
#include <babeltrace/ctf/types.h>
-void __attribute__((constructor)) ctf_init(void);
-
static struct format ctf_format = {
.uint_read = ctf_uint_read,
.int_read = ctf_int_read,
.sequence_end = ctf_sequence_end,
};
-void ctf_init(void)
+void __attribute__((constructor)) ctf_init(void)
{
int ret;
BUILT_SOURCES = ctf-parser.h
AM_YFLAGS = -t -d -v
-noinst_LIBRARIES = libctf-parser.a libctf-ast.a
+lib_LTLIBRARIES = libctf-parser.la libctf-ast.la
-libctf_parser_a_SOURCES = ctf-lexer.l ctf-parser.y
+libctf_parser_la_SOURCES = ctf-lexer.l ctf-parser.y
-libctf_ast_a_SOURCES = ctf-visitor-xml.c \
+libctf_ast_la_SOURCES = ctf-visitor-xml.c \
ctf-visitor-parent-links.c \
ctf-visitor-semantic-validator.c \
ctf-visitor-generate-io-struct.c
+libctf_ast_la_LIBADD = \
+ $(top_builddir)/types/libbabeltrace_types.la
+
bin_PROGRAMS = ctf-parser-test
ctf_parser_test_SOURCES = ctf-parser-test.c
-ctf_parser_test_LDADD = libctf-parser.a \
- libctf-ast.a \
- $(top_builddir)/types/libtypes.a
+
+ctf_parser_test_LDADD = \
+ libctf-parser.la \
+ libctf-ast.la
AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include
-noinst_LIBRARIES = libctf-types.a
+lib_LTLIBRARIES = libctf-types.la
-libctf_types_a_SOURCES = \
+libctf_types_la_SOURCES = \
array.c \
enum.c \
float.c \
#include <babeltrace/format.h>
#include <glib.h>
#include <errno.h>
+#include <stdio.h>
static int init_done;
void __attribute__((constructor)) format_init(void);
(gconstpointer) (unsigned long) qname);
}
+static void show_format(gpointer key, gpointer value, gpointer user_data)
+{
+ FILE *fp = user_data;
+
+ fprintf(fp, "format: %s\n",
+ g_quark_to_string((GQuark) (unsigned long) key));
+}
+
+void bt_fprintf_format_list(FILE *fp)
+{
+ fprintf(fp, "Formats available:\n");
+ if (!init_done)
+ return;
+ g_hash_table_foreach(format_registry, show_format, fp);
+ fprintf(fp, "End of formats available.\n");
+}
+
int bt_register_format(struct format *format)
{
if (!init_done)
#include <babeltrace/types.h>
#include <stdint.h>
+#include <stdio.h>
#include <glib.h>
struct format {
};
struct format *bt_lookup_format(GQuark qname);
+void bt_fprintf_format_list(FILE *fp);
int bt_register_format(struct format *format);
/* TBD: format unregistration */
AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include
-noinst_LIBRARIES = libtypes.a
+lib_LTLIBRARIES = libbabeltrace_types.la
-libtypes_a_SOURCES = \
+libbabeltrace_types_la_SOURCES = \
array.c \
enum.c \
float.c \