mirror of
https://github.com/yaml/libyaml.git
synced 2026-01-26 11:14:28 +00:00
Add the basic autoconf infrastructure.
This commit is contained in:
parent
9e05b78ca5
commit
cec6fc98eb
19
LICENSE
Normal file
19
LICENSE
Normal file
@ -0,0 +1,19 @@
|
||||
Copyright (c) 2006 Kirill Simonov
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
4
Makefile.am
Normal file
4
Makefile.am
Normal file
@ -0,0 +1,4 @@
|
||||
## Run `./bootstrap` to generate the "Makefile.in" files in this directory and
|
||||
## the "$SUBDIR" subdirectories.
|
||||
|
||||
SUBDIRS = include src . tests
|
||||
22
README
Normal file
22
README
Normal file
@ -0,0 +1,22 @@
|
||||
libyaml - A C library for parsing and emitting YAML.
|
||||
|
||||
The project is in an early stage of development and not usable for end users.
|
||||
|
||||
To build and install the library, run:
|
||||
$ ./bootstrap
|
||||
$ ./configure
|
||||
$ make
|
||||
$ make check
|
||||
# make install
|
||||
|
||||
For more information, check the libyaml homepage:
|
||||
'http://pyyaml.org/wiki/LibYAML'.
|
||||
|
||||
Post your questions and opinions to the YAML-Core mailing list:
|
||||
'http://lists.sourceforge.net/lists/listinfo/yaml-core'.
|
||||
|
||||
Submit bug reports and feature requests to the libyaml bug tracker:
|
||||
'http://pyyaml.org/newticket?component=libyaml'.
|
||||
|
||||
libyaml is written by Kirill Simonov <xi@resolvent.net>. It is released
|
||||
under the MIT license. See the file LICENSE for more details.
|
||||
70
configure.ac
Normal file
70
configure.ac
Normal file
@ -0,0 +1,70 @@
|
||||
# Run `./bootstrap` to generate the "configure" script.
|
||||
|
||||
# Define the package version numbers and the bug reporting link.
|
||||
m4_define([YAML_MAJOR], 0)
|
||||
m4_define([YAML_MINOR], 0)
|
||||
m4_define([YAML_PATCH], 1)
|
||||
m4_define([YAML_BUGS], [http://pyyaml.org/newticket?component=libyaml])
|
||||
|
||||
# Define the libtool version numbers; check the Autobook, Section 11.4.
|
||||
# Bump the libtool version numbers using the following algorithm:
|
||||
# if (the current interface has not been changed):
|
||||
# YAML_REVISION += 1
|
||||
# else:
|
||||
# YAML_REVISION = 0
|
||||
# YAML_CURRENT += 1
|
||||
# if (this release is backward compatible with the previous release):
|
||||
# YAML_AGE += 1
|
||||
# else:
|
||||
# YAML_AGE = 0
|
||||
m4_define([YAML_RELEASE], 0)
|
||||
m4_define([YAML_CURRENT], 0)
|
||||
m4_define([YAML_REVISION], 0)
|
||||
m4_define([YAML_AGE], 0)
|
||||
|
||||
# Initialize autoconf & automake.
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT([yaml], [YAML_MAJOR.YAML_MINOR.YAML_PATCH], [YAML_BUGS])
|
||||
AC_CONFIG_AUX_DIR([config])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AM_INIT_AUTOMAKE([1.9 foreign])
|
||||
|
||||
# Define macro variables for the package version numbers.
|
||||
AC_DEFINE(YAML_VERSION_MAJOR, YAML_MAJOR, [Define the major version number.])
|
||||
AC_DEFINE(YAML_VERSION_MINOR, YAML_MINOR, [Define the minor version number.])
|
||||
AC_DEFINE(YAML_VERSION_PATCH, YAML_PATCH, [Define the patch version number.])
|
||||
AC_DEFINE(YAML_VERSION_STRING, "YAML_MAJOR.YAML_MINOR.YAML_PATCH", [Define the version string.])
|
||||
|
||||
# Define substitutions for the libtool version numbers.
|
||||
YAML_LT_RELEASE=YAML_RELEASE
|
||||
YAML_LT_CURRENT=YAML_CURRENT
|
||||
YAML_LT_REVISION=YAML_REVISION
|
||||
YAML_LT_AGE=YAML_AGE
|
||||
AC_SUBST(YAML_LT_RELEASE)
|
||||
AC_SUBST(YAML_LT_CURRENT)
|
||||
AC_SUBST(YAML_LT_REVISION)
|
||||
AC_SUBST(YAML_LT_AGE)
|
||||
|
||||
# Note: in order to update checks, run `autoscan` and look through "configure.scan".
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PROG_CPP
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
# Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_HEADERS([stdlib.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_TYPE_SIZE_T
|
||||
|
||||
# Define Makefiles.
|
||||
AC_CONFIG_FILES([include/Makefile src/Makefile Makefile tests/Makefile])
|
||||
|
||||
# Generate the "configure" script.
|
||||
AC_OUTPUT
|
||||
1
include/Makefile.am
Normal file
1
include/Makefile.am
Normal file
@ -0,0 +1 @@
|
||||
nobase_include_HEADERS = yaml/yaml.h yaml/yaml_version.h yaml/yaml_error.h
|
||||
@ -1,25 +1,25 @@
|
||||
|
||||
#ifndef _YAML_H
|
||||
#define _YAML_H
|
||||
#ifndef YAML_H
|
||||
#define YAML_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
YAML_READER_ERROR,
|
||||
YAML_SCANNER_ERROR,
|
||||
YAML_PARSER_ERROR,
|
||||
YAML_EMITTER_ERROR
|
||||
} yaml_error_type_t;
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "yaml_version.h"
|
||||
#include "yaml_error.h"
|
||||
|
||||
typedef enum {
|
||||
YAML_DETECT_ENCODING,
|
||||
YAML_UTF8_ENCODING,
|
||||
YAML_UTF16LE_ENCODING,
|
||||
YAML_UTF16BE_ENCODING
|
||||
} yaml_encoding_t;
|
||||
|
||||
typedef enum {
|
||||
YAML_ANY_SCALAR_STYLE,
|
||||
YAML_PLAIN_SCALAR_STYLE,
|
||||
YAML_SINGLE_QUOTED_SCALAR_STYLE,
|
||||
YAML_DOUBLE_QUOTED_SCALAR_STYLE,
|
||||
@ -28,11 +28,13 @@ typedef enum {
|
||||
} yaml_scalar_style_t;
|
||||
|
||||
typedef enum {
|
||||
YAML_ANY_SEQUENCE_STYLE,
|
||||
YAML_BLOCK_SEQUENCE_STYLE,
|
||||
YAML_FLOW_SEQUENCE_STYLE
|
||||
} yaml_sequence_style_t;
|
||||
|
||||
typedef enum {
|
||||
YAML_ANY_MAPPING_STYLE,
|
||||
YAML_BLOCK_MAPPING_STYLE,
|
||||
YAML_FLOW_MAPPING_STYLE
|
||||
} yaml_mapping_style_t;
|
||||
@ -40,21 +42,26 @@ typedef enum {
|
||||
typedef enum {
|
||||
YAML_STREAM_START_TOKEN,
|
||||
YAML_STREAM_END_TOKEN,
|
||||
|
||||
YAML_VERSION_DIRECTIVE_TOKEN,
|
||||
YAML_TAG_DIRECTIVE_TOKEN,
|
||||
YAML_DOCUMENT_START_TOKEN,
|
||||
YAML_DOCUMENT_END_TOKEN,
|
||||
|
||||
YAML_BLOCK_SEQUENCE_START_TOKEN,
|
||||
YAML_BLOCK_MAPPING_START_TOKEN,
|
||||
YAML_BLOCK_END_TOKEN,
|
||||
|
||||
YAML_FLOW_SEQUENCE_START_TOKEN,
|
||||
YAML_FLOW_SEQUENCE_END_TOKEN,
|
||||
YAML_FLOW_MAPPING_START_TOKEN,
|
||||
YAML_FLOW_MAPPING_END_TOKEN,
|
||||
|
||||
YAML_BLOCK_ENTRY_TOKEN,
|
||||
YAML_FLOW_ENTRY_TOKEN,
|
||||
YAML_KEY_TOKEN,
|
||||
YAML_VALUE_TOKEN,
|
||||
|
||||
YAML_ALIAS_TOKEN,
|
||||
YAML_ANCHOR_TOKEN,
|
||||
YAML_TAG_TOKEN,
|
||||
@ -64,22 +71,22 @@ typedef enum {
|
||||
typedef enum {
|
||||
YAML_STREAM_START_EVENT,
|
||||
YAML_STREAM_END_EVENT,
|
||||
|
||||
YAML_DOCUMENT_START_EVENT,
|
||||
YAML_DOCUMENT_END_EVENT,
|
||||
|
||||
YAML_ALIAS_EVENT,
|
||||
YAML_SCALAR_EVENT,
|
||||
|
||||
YAML_SEQUENCE_START_EVENT,
|
||||
YAML_SEQUENCE_END_EVENT,
|
||||
|
||||
YAML_MAPPING_START_EVENT,
|
||||
YAML_MAPPING_END_EVENT,
|
||||
YAML_SCALAR_EVENT
|
||||
YAML_MAPPING_END_EVENT
|
||||
} yaml_event_type_t;
|
||||
|
||||
typedef struct {
|
||||
char *value;
|
||||
size_t length;
|
||||
} yaml_string_t;
|
||||
|
||||
typedef struct {
|
||||
size_t offset;
|
||||
size_t index;
|
||||
size_t line;
|
||||
size_t column;
|
||||
@ -97,10 +104,11 @@ typedef struct {
|
||||
yaml_token_type_t type;
|
||||
union {
|
||||
yaml_encoding_t encoding;
|
||||
yaml_string_t anchor;
|
||||
yaml_string_t tag;
|
||||
char *anchor;
|
||||
char *tag;
|
||||
struct {
|
||||
yaml_string_t value;
|
||||
char *value;
|
||||
size_t length;
|
||||
yaml_scalar_style_t style;
|
||||
} scalar;
|
||||
struct {
|
||||
@ -108,8 +116,8 @@ typedef struct {
|
||||
int minor;
|
||||
} version;
|
||||
struct {
|
||||
yaml_string_t handle;
|
||||
yaml_string_t prefix;
|
||||
char *handle;
|
||||
char *prefix;
|
||||
} tag_pair;
|
||||
} data;
|
||||
yaml_mark_t start_mark;
|
||||
@ -128,8 +136,8 @@ typedef struct {
|
||||
int minor;
|
||||
} version;
|
||||
struct {
|
||||
yaml_string_t handle;
|
||||
yaml_string_t prefix;
|
||||
char *handle;
|
||||
char *prefix;
|
||||
} **tag_pairs;
|
||||
int implicit;
|
||||
} document_start;
|
||||
@ -137,24 +145,26 @@ typedef struct {
|
||||
int implicit;
|
||||
} document_end;
|
||||
struct {
|
||||
yaml_string_t anchor;
|
||||
char *anchor;
|
||||
} alias;
|
||||
struct {
|
||||
yaml_string_t anchor;
|
||||
yaml_string_t tag;
|
||||
char *anchor;
|
||||
char *tag;
|
||||
char *value;
|
||||
size_t length;
|
||||
int plain_implicit;
|
||||
int quoted_implicit;
|
||||
yaml_scalar_style_t style;
|
||||
} scalar;
|
||||
struct {
|
||||
yaml_string_t anchor;
|
||||
yaml_string_t tag;
|
||||
char *anchor;
|
||||
char *tag;
|
||||
int implicit;
|
||||
yaml_sequence_style_t style;
|
||||
} sequence_start;
|
||||
struct {
|
||||
yaml_string_t anchor;
|
||||
yaml_string_t tag;
|
||||
char *anchor;
|
||||
char *tag;
|
||||
int implicit;
|
||||
yaml_mapping_style_t style;
|
||||
} mapping_start;
|
||||
@ -163,24 +173,17 @@ typedef struct {
|
||||
yaml_mark_t end_mark;
|
||||
} yaml_event_t;
|
||||
|
||||
typedef struct {
|
||||
} yaml_scanner_t;
|
||||
|
||||
/*
|
||||
typedef struct {
|
||||
} yaml_parser_t;
|
||||
|
||||
typedef struct {
|
||||
} yaml_composer_t;
|
||||
|
||||
typedef struct {
|
||||
} yaml_emitter_t;
|
||||
|
||||
typedef struct {
|
||||
} yaml_serializer_t;
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* #ifndef _YAML_H */
|
||||
#endif /* #ifndef YAML_H */
|
||||
|
||||
25
include/yaml/yaml_error.h
Normal file
25
include/yaml/yaml_error.h
Normal file
@ -0,0 +1,25 @@
|
||||
#ifndef YAML_ERROR_H
|
||||
#define YAML_ERROR_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
YAML_NO_ERROR,
|
||||
|
||||
YAML_MEMORY_ERROR,
|
||||
|
||||
YAML_READER_ERROR,
|
||||
YAML_SCANNER_ERROR,
|
||||
YAML_PARSER_ERROR,
|
||||
|
||||
YAML_WRITER_ERROR,
|
||||
YAML_EMITTER_ERROR
|
||||
} yaml_error_type_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* #ifndef YAML_ERROR_H */
|
||||
21
include/yaml/yaml_version.h
Normal file
21
include/yaml/yaml_version.h
Normal file
@ -0,0 +1,21 @@
|
||||
#ifndef YAML_VERSION_H
|
||||
#define YAML_VERSION_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
const char *
|
||||
yaml_get_version_string(void);
|
||||
|
||||
void
|
||||
yaml_get_version(int *major, int *minor, int *patch);
|
||||
|
||||
int
|
||||
yaml_check_version(int major, int minor, int patch);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* #ifndef YAML_VERSION_H */
|
||||
4
src/Makefile.am
Normal file
4
src/Makefile.am
Normal file
@ -0,0 +1,4 @@
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/include
|
||||
lib_LTLIBRARIES = libyaml.la
|
||||
libyaml_la_SOURCES = version.c
|
||||
libyaml_la_LDFLAGS = -release $(YAML_LT_RELEASE) -version-info $(YAML_LT_CURRENT):$(YAML_LT_REVISION):$(YAML_LT_AGE)
|
||||
29
src/version.c
Normal file
29
src/version.c
Normal file
@ -0,0 +1,29 @@
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <yaml/yaml.h>
|
||||
|
||||
const char *
|
||||
yaml_get_version_string(void)
|
||||
{
|
||||
return YAML_VERSION_STRING;
|
||||
}
|
||||
|
||||
void
|
||||
yaml_get_version(int *major, int *minor, int *patch)
|
||||
{
|
||||
*major = YAML_VERSION_MAJOR;
|
||||
*minor = YAML_VERSION_MINOR;
|
||||
*patch = YAML_VERSION_PATCH;
|
||||
}
|
||||
|
||||
int
|
||||
yaml_check_version(int major, int minor, int patch)
|
||||
{
|
||||
return (major == YAML_VERSION_MAJOR
|
||||
&& minor == YAML_VERSION_MINOR
|
||||
&& patch >= YAML_VERSION_PATCH);
|
||||
}
|
||||
|
||||
4
tests/Makefile.am
Normal file
4
tests/Makefile.am
Normal file
@ -0,0 +1,4 @@
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/include
|
||||
LDADD = $(top_srcdir)/src/libyaml.la
|
||||
TESTS = test-version
|
||||
check_PROGRAMS = test-version
|
||||
23
tests/test-version.c
Normal file
23
tests/test-version.c
Normal file
@ -0,0 +1,23 @@
|
||||
#include <yaml/yaml.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
int major, minor, patch;
|
||||
char buf[64];
|
||||
|
||||
yaml_get_version(&major, &minor, &patch);
|
||||
sprintf(buf, "%d.%d.%d", major, minor, patch);
|
||||
assert(strcmp(buf, yaml_get_version_string()) == 0);
|
||||
assert(yaml_check_version(major+1, minor, patch) == 0);
|
||||
assert(yaml_check_version(major, minor+1, patch) == 0);
|
||||
assert(yaml_check_version(major, minor, patch+1) == 1);
|
||||
assert(yaml_check_version(major, minor, patch) == 1);
|
||||
assert(yaml_check_version(major, minor, patch-1) == 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user