[tracker] Fixes to Meson build system
- From: Sam Thursfield <sthursfield src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] Fixes to Meson build system
- Date: Sat, 24 Jun 2017 00:04:29 +0000 (UTC)
commit 1ef2fb92c66078b9604ca7a1026f8e324f4495c3
Author: Sam Thursfield <sam thursfield codethink co uk>
Date: Sat Jun 24 00:56:35 2017 +0100
Fixes to Meson build system
First, instead of using add_global_arguments() we now use a variable
to set global compiler args. It turns out that add_global_arguments()
is broken if you ever want to include your project as a subproject of
something else.
Second, dependencies weren't being specified correctly. These are
hopefully now fixed to avoid any more random build failures.
meson.build | 15 +++++++++++----
src/libtracker-bus/meson.build | 6 ++----
src/libtracker-common/meson.build | 14 ++++++--------
src/libtracker-control/meson.build | 4 ++--
src/libtracker-data/meson.build | 15 ++++++---------
src/libtracker-direct/meson.build | 4 +---
src/libtracker-extract/meson.build | 3 +--
src/libtracker-fts/meson.build | 6 ++----
src/libtracker-miner/meson.build | 9 +++------
src/libtracker-remote/meson.build | 4 +---
src/libtracker-sparql-backend/meson.build | 1 +
src/libtracker-sparql/meson.build | 2 +-
src/miners/apps/meson.build | 2 +-
src/miners/fs/meson.build | 4 +---
src/miners/rss/meson.build | 2 +-
src/tracker-extract/meson.build | 5 +++--
src/tracker-preferences/meson.build | 3 +--
src/tracker-store/meson.build | 3 +--
src/tracker-writeback/meson.build | 5 ++---
src/tracker/meson.build | 3 +--
tests/libtracker-common/meson.build | 3 +--
tests/libtracker-data/meson.build | 3 +--
tests/libtracker-extract/meson.build | 3 +--
tests/libtracker-fts/meson.build | 3 +--
tests/libtracker-sparql/meson.build | 8 +++-----
tests/tracker-steroids/meson.build | 4 +---
utils/ontology/meson.build | 4 ++--
27 files changed, 58 insertions(+), 80 deletions(-)
---
diff --git a/meson.build b/meson.build
index da221d8..f29c7ec 100644
--- a/meson.build
+++ b/meson.build
@@ -461,10 +461,17 @@ configure_file(input: 'config.h.meson.in',
output: 'config.h',
configuration: conf)
-# Needed for O_NOATIME, and probably other stuff.
-add_global_arguments('-D_GNU_SOURCE', language: 'c')
-# Needed for statvfs64, and probably other stuff
-add_global_arguments('-D_LARGEFILE64_SOURCE', language: 'c')
+# Global compiler defines. We avoid add_global_arguments() as it breaks
+# when we are included by another project as a subproject.
+tracker_c_args = [
+ # Needed for O_NOATIME, and probably other stuff.
+ '-D_GNU_SOURCE',
+
+ # Needed for statvfs64, and probably other stuff
+ '-D_LARGEFILE64_SOURCE',
+
+ '-DTRACKER_COMPILATION'
+]
have_tracker_miner_fs = true
have_tracker_miner_apps = true
diff --git a/src/libtracker-bus/meson.build b/src/libtracker-bus/meson.build
index 695611a..025a1ff 100644
--- a/src/libtracker-bus/meson.build
+++ b/src/libtracker-bus/meson.build
@@ -4,9 +4,8 @@ libtracker_bus = static_library('tracker-bus',
'tracker-array-cursor.vala',
'tracker-bus-fd-cursor.vala',
'../libtracker-common/libtracker-common.vapi',
- c_args: [
- '-DTRACKER_COMPILATION',
- ],
+ tracker_common_enum_header, tracker_common_parser_sha1_header,
+ c_args: tracker_c_args,
vala_args: [
'--debug',
'--pkg', 'posix',
@@ -19,7 +18,6 @@ libtracker_bus = static_library('tracker-bus',
dependencies: [glib, gio, gio_unix, tracker_sparql_intermediate_dep],
include_directories: [commoninc, configinc, srcinc],
link_with: libtracker_common,
- sources: tracker_common_enum_header,
)
tracker_sparql_bus_dep = declare_dependency(
diff --git a/src/libtracker-common/meson.build b/src/libtracker-common/meson.build
index 8ab4af5..ddf0981 100644
--- a/src/libtracker-common/meson.build
+++ b/src/libtracker-common/meson.build
@@ -6,13 +6,13 @@ enums = gnome.mkenums('tracker-enum-types',
h_template: 'tracker-enum-types.h.template',
)
-tracker_common_enum_header = enums[1]
-
-parser_sha1_header = configure_file(
+tracker_common_parser_sha1_header = configure_file(
input: 'tracker-parser-sha1.h.in',
output: 'tracker-parser-sha1.h',
command: ['generate-tracker-parser-sha1-header.sh'])
+tracker_common_enum_header = enums[1]
+
tracker_common_sources = [
'tracker-date-time.c',
'tracker-dbus.c',
@@ -27,7 +27,7 @@ tracker_common_sources = [
'tracker-language.c',
'tracker-seccomp.c',
enums[0], enums[1],
- parser_sha1_header,
+ tracker_common_parser_sha1_header,
]
if unicode_library_name == 'icu'
@@ -42,9 +42,7 @@ tracker_common_dependencies = [glib, gio, gio_unix, libmath]
libtracker_common = library('tracker-common',
tracker_common_sources,
dependencies: tracker_common_dependencies + [unicode_library],
- c_args: [
- '-DTRACKER_COMPILATION',
- ],
+ c_args: tracker_c_args,
include_directories: [configinc, srcinc],
install: true,
install_dir: tracker_internal_libs_dir,
@@ -62,7 +60,7 @@ commoninc = include_directories('.')
#
# Upstream issue: https://github.com/mesonbuild/meson/issues/671
tracker_common_dep = declare_dependency(
- sources: enums[1],
+ sources: [tracker_common_enum_header, tracker_common_parser_sha1_header],
link_with: libtracker_common,
dependencies: tracker_common_dependencies,
include_directories: [configinc, srcinc, commoninc],
diff --git a/src/libtracker-control/meson.build b/src/libtracker-control/meson.build
index 5bb0b22..f7cb171 100644
--- a/src/libtracker-control/meson.build
+++ b/src/libtracker-control/meson.build
@@ -4,7 +4,8 @@ headers = ['tracker-control.h', 'tracker-miner-manager.h']
libtracker_control = library('tracker-control-' + tracker_api_version,
sources,
- c_args: '-DTRACKER_COMPILATION',
+ tracker_common_enum_header, tracker_common_parser_sha1_header,
+ c_args: tracker_c_args,
install: true,
install_rpath: tracker_internal_libs_dir,
# This doesn't depend on tracker_common_dep because of
@@ -12,7 +13,6 @@ libtracker_control = library('tracker-control-' + tracker_api_version,
dependencies: [gio, tracker_sparql_dep, tracker_miner_dep],
include_directories: [commoninc, configinc, srcinc],
link_with: libtracker_common,
- sources: tracker_common_enum_header,
)
tracker_control_dep = declare_dependency(
diff --git a/src/libtracker-data/meson.build b/src/libtracker-data/meson.build
index c787023..81548e8 100644
--- a/src/libtracker-data/meson.build
+++ b/src/libtracker-data/meson.build
@@ -10,9 +10,8 @@ libtracker_data_vala = static_library('tracker-sparql-query',
'tracker-turtle-reader.vala',
'../libtracker-common/libtracker-common.vapi',
'../libtracker-data/libtracker-data.vapi',
- c_args: [
- '-DTRACKER_COMPILATION',
- ],
+ tracker_common_enum_header, tracker_common_parser_sha1_header,
+ c_args: tracker_c_args,
vala_args: [
'--debug',
'--pkg', 'posix',
@@ -24,7 +23,6 @@ libtracker_data_vala = static_library('tracker-sparql-query',
# https://github.com/mesonbuild/meson/issues/671
dependencies: [glib, gio, tracker_sparql_intermediate_dep],
include_directories: [commoninc, configinc, srcinc],
- sources: tracker_common_enum_header,
)
tracker_data_dependencies = [
@@ -35,7 +33,6 @@ if get_option('fts')
tracker_data_dependencies += tracker_fts_dep
endif
- #[gio_unix, glib, libmath, sqlite, uuid]
libtracker_data = library('tracker-data',
'tracker-class.c',
'tracker-collation.c',
@@ -54,9 +51,8 @@ libtracker_data = library('tracker-data',
'tracker-ontology.c',
'tracker-ontologies.c',
'tracker-property.c',
- c_args: [
- '-DTRACKER_COMPILATION',
- ],
+ tracker_common_enum_header, tracker_common_parser_sha1_header,
+ c_args: tracker_c_args,
install: true,
install_dir: tracker_internal_libs_dir,
# This doesn't depend on tracker_common_dep because of
@@ -69,5 +65,6 @@ libtracker_data = library('tracker-data',
tracker_data_dep = declare_dependency(
link_with: [libtracker_data, libtracker_data_vala],
dependencies: tracker_data_dependencies,
- include_directories: include_directories('.')
+ include_directories: include_directories('.'),
+ source: enums[1],
)
diff --git a/src/libtracker-direct/meson.build b/src/libtracker-direct/meson.build
index 50c9f3c..8cf018c 100644
--- a/src/libtracker-direct/meson.build
+++ b/src/libtracker-direct/meson.build
@@ -3,9 +3,7 @@ libtracker_direct = static_library('tracker-direct',
'tracker-namespace.vala',
'../libtracker-common/libtracker-common.vapi',
'../libtracker-data/libtracker-data.vapi',
- c_args: [
- '-DTRACKER_COMPILATION',
- ],
+ c_args: tracker_c_args,
vala_args: [
'--debug',
'--pkg', 'posix',
diff --git a/src/libtracker-extract/meson.build b/src/libtracker-extract/meson.build
index 2ecd9d1..8de8cf2 100644
--- a/src/libtracker-extract/meson.build
+++ b/src/libtracker-extract/meson.build
@@ -33,8 +33,7 @@ endif
libtracker_extract = library('tracker-extract',
libtracker_extract_sources,
dependencies: [tracker_common_dep, tracker_sparql_dep] + tracker_extract_dependencies,
- c_args: [
- '-DTRACKER_COMPILATION',
+ c_args: tracker_c_args + [
'-DTRACKER_EXTRACTOR_RULES_DIR="@0@"'.format(tracker_extract_rules_dir),
'-DTRACKER_EXTRACTORS_DIR="@0@"'.format(tracker_extract_modules_dir)
],
diff --git a/src/libtracker-fts/meson.build b/src/libtracker-fts/meson.build
index d08bc5d..f826a2a 100644
--- a/src/libtracker-fts/meson.build
+++ b/src/libtracker-fts/meson.build
@@ -11,10 +11,8 @@ libtracker_fts = static_library('libtracker-fts',
'tracker-fts-config.c',
'tracker-fts-tokenizer.c',
libtracker_fts_fts5,
- dependencies: tracker_common_dep,
- c_args: [
- '-DTRACKER_COMPILATION',
- ],
+ dependencies: [tracker_common_dep, tracker_sparql_intermediate_dep],
+ c_args: tracker_c_args
)
tracker_fts_dep = declare_dependency(
diff --git a/src/libtracker-miner/meson.build b/src/libtracker-miner/meson.build
index 79ea723..40d5ac9 100644
--- a/src/libtracker-miner/meson.build
+++ b/src/libtracker-miner/meson.build
@@ -54,9 +54,7 @@ libtracker_miner_private = static_library(
'tracker-miner-private',
miner_enums[0], miner_enums[1], private_sources,
dependencies: [tracker_common_dep, tracker_sparql_dep],
- c_args: [
- '-DTRACKER_COMPILATION',
- ],
+ c_args: tracker_c_args,
)
tracker_miner_dependencies = []
@@ -67,7 +65,7 @@ endif
libtracker_miner = library(
'tracker-miner-' + tracker_api_version,
miner_enums[0], miner_enums[1], miner_sources,
- c_args: [ '-DTRACKER_COMPILATION', ],
+ c_args: tracker_c_args,
install: true,
install_rpath: tracker_internal_libs_dir,
# This doesn't depend on tracker_common_dep because of
@@ -93,9 +91,8 @@ tracker_miner_gir = gnome.generate_gir(libtracker_miner,
# but we can't currently access that from the Vala target
includes : ['GLib-2.0', 'GObject-2.0', 'Gio-2.0' ],
install: true,
- extra_args: [
+ extra_args: tracker_c_args + [
'--c-include=libtracker-miner/tracker-miner.h',
- '-D', 'TRACKER_COMPILATION',
])
configure_file(
diff --git a/src/libtracker-remote/meson.build b/src/libtracker-remote/meson.build
index 7a817c7..3735bdb 100644
--- a/src/libtracker-remote/meson.build
+++ b/src/libtracker-remote/meson.build
@@ -9,9 +9,7 @@ sources = [
libtracker_remote = static_library('tracker-remote', sources,
dependencies: tracker_remote_dependencies + [tracker_common_dep, tracker_sparql_intermediate_dep],
- c_args: [
- '-DTRACKER_COMPILATION',
- ],
+ c_args: tracker_c_args,
vala_args: [
'--debug',
'--pkg', 'posix',
diff --git a/src/libtracker-sparql-backend/meson.build b/src/libtracker-sparql-backend/meson.build
index cbbc890..b183096 100644
--- a/src/libtracker-sparql-backend/meson.build
+++ b/src/libtracker-sparql-backend/meson.build
@@ -2,6 +2,7 @@ libtracker_sparql = library('tracker-sparql-' + tracker_api_version,
'tracker-backend.vala',
install: true,
install_rpath: tracker_internal_libs_dir,
+ c_args: tracker_c_args,
dependencies: [tracker_sparql_intermediate_dep, tracker_sparql_remote_dep, tracker_sparql_bus_dep,
tracker_sparql_direct_dep],
)
diff --git a/src/libtracker-sparql/meson.build b/src/libtracker-sparql/meson.build
index 9c6c4a7..6aa2b89 100644
--- a/src/libtracker-sparql/meson.build
+++ b/src/libtracker-sparql/meson.build
@@ -22,7 +22,7 @@ libtracker_sparql_intermediate = static_library('tracker-sparql',
'tracker-uri.c',
'tracker-version.c',
vala_header: 'tracker-generated-no-checks.h',
- c_args: [ '-DTRACKER_COMPILATION', ],
+ c_args: tracker_c_args,
# FIXME: getting Vala to output the GIR means that the symbols from the
# C files aren't included. This problem seems to affect the Autotools
# build system as well.
diff --git a/src/miners/apps/meson.build b/src/miners/apps/meson.build
index 685efa4..51ddd52 100644
--- a/src/miners/apps/meson.build
+++ b/src/miners/apps/meson.build
@@ -5,7 +5,7 @@ sources = [
executable('tracker-miner-apps', sources,
dependencies: [tracker_common_dep, tracker_miner_dep, tracker_sparql_dep],
- c_args: [ '-DTRACKER_COMPILATION', ],
+ c_args: tracker_c_args,
install: true,
install_dir: get_option('libexecdir'),
install_rpath: tracker_internal_libs_dir,
diff --git a/src/miners/fs/meson.build b/src/miners/fs/meson.build
index c886ad6..8a44c7a 100644
--- a/src/miners/fs/meson.build
+++ b/src/miners/fs/meson.build
@@ -19,9 +19,7 @@ endif
executable('tracker-miner-fs', sources,
dependencies: [tracker_common_dep, tracker_miner_dep, tracker_extract_dep],
- c_args: [
- '-DTRACKER_COMPILATION',
- ],
+ c_args: tracker_c_args,
install: true,
install_dir: get_option('libexecdir'),
install_rpath: tracker_internal_libs_dir,
diff --git a/src/miners/rss/meson.build b/src/miners/rss/meson.build
index 536e1d8..1e1172f 100644
--- a/src/miners/rss/meson.build
+++ b/src/miners/rss/meson.build
@@ -5,7 +5,7 @@ sources = [
executable('tracker-miner-rss', sources,
dependencies: [libgrss, tracker_common_dep, tracker_miner_dep, tracker_extract_dep],
- c_args: [ '-DTRACKER_COMPILATION', ],
+ c_args: tracker_c_args,
install_rpath: tracker_internal_libs_dir,
)
diff --git a/src/tracker-extract/meson.build b/src/tracker-extract/meson.build
index 2ce2a92..f390733 100644
--- a/src/tracker-extract/meson.build
+++ b/src/tracker-extract/meson.build
@@ -117,7 +117,7 @@ foreach module : modules
dependencies = module[3]
shared_module(name, sources,
- c_args: [ '-DTRACKER_COMPILATION' ],
+ c_args: tracker_c_args,
dependencies: [tracker_extract_dep] + dependencies,
include_directories: configinc,
install: true,
@@ -155,7 +155,8 @@ endif
executable('tracker-extract',
tracker_extract_sources,
- c_args: [ '-DTRACKER_COMPILATION' ],
+ # Manually add the root dir to work around https://github.com/mesonbuild/meson/issues/1387
+ c_args: tracker_c_args + ['-I' + meson.build_root()],
dependencies: tracker_extract_dependencies,
install: true,
install_dir: join_paths(get_option('prefix'), get_option('libexecdir')))
diff --git a/src/tracker-preferences/meson.build b/src/tracker-preferences/meson.build
index 9ebe902..b193df0 100644
--- a/src/tracker-preferences/meson.build
+++ b/src/tracker-preferences/meson.build
@@ -4,10 +4,9 @@ executable(
'tracker-preferences.vala',
'../miners/fs/tracker-config.c',
dependencies: [tracker_common_dep, tracker_sparql_dep, gmodule, gtk3],
- c_args: [
+ c_args: tracker_c_args + [
'-D_XOPEN_SOURCE',
'-D_XOPEN_SOURCE_EXTENDED',
- '-DTRACKER_COMPILATION',
'-include', 'config.h'
],
vala_args: [
diff --git a/src/tracker-store/meson.build b/src/tracker-store/meson.build
index 6b1b540..1c5d374 100644
--- a/src/tracker-store/meson.build
+++ b/src/tracker-store/meson.build
@@ -20,8 +20,7 @@ tracker_store_sources = [
executable('tracker-store',
tracker_store_sources,
- c_args: [
- '-DTRACKER_COMPILATION',
+ c_args: tracker_c_args + [
'-include', 'config.h'
],
vala_args: [ '--pkg', 'posix' ],
diff --git a/src/tracker-writeback/meson.build b/src/tracker-writeback/meson.build
index a525f36..f5560be 100644
--- a/src/tracker-writeback/meson.build
+++ b/src/tracker-writeback/meson.build
@@ -20,7 +20,7 @@ foreach module : modules
dependencies = module[2]
shared_module(name, sources,
- c_args: [ '-DTRACKER_COMPILATION' ],
+ c_args: tracker_c_args,
dependencies: dependencies,
include_directories: configinc,
install: true,
@@ -41,8 +41,7 @@ tracker_writeback_sources = [
executable('tracker-writeback',
tracker_writeback_sources,
- c_args: [
- '-DTRACKER_COMPILATION',
+ c_args: tracker_c_args + [
'-DWRITEBACK_MODULES_DIR="@0@"'.format(tracker_writeback_modules_dir),
],
dependencies: [gmodule, tracker_common_dep, tracker_miner_dep, tracker_sparql_dep],
diff --git a/src/tracker/meson.build b/src/tracker/meson.build
index 68ab52e..f773d33 100644
--- a/src/tracker/meson.build
+++ b/src/tracker/meson.build
@@ -17,11 +17,10 @@ sources = [
]
executable('tracker', sources,
- c_args: [
+ c_args: tracker_c_args + [
'-DLIBEXECDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('libexecdir'))),
'-DMANDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('datadir'), 'man')),
'-DTRACKER_EXTRACTOR_RULES_DIR="@0@"'.format(tracker_extract_rules_dir),
- '-DTRACKER_COMPILATION',
],
install: true,
install_rpath: tracker_internal_libs_dir,
diff --git a/tests/libtracker-common/meson.build b/tests/libtracker-common/meson.build
index 03c9953..6e1588a 100644
--- a/tests/libtracker-common/meson.build
+++ b/tests/libtracker-common/meson.build
@@ -1,5 +1,4 @@
-test_c_args = [
- '-DTRACKER_COMPILATION',
+test_c_args = tracker_c_args + [
'-DTOP_BUILDDIR="@0@"'.format(meson.build_root()),
'-DTOP_SRCDIR="@0@"'.format(meson.source_root()),
]
diff --git a/tests/libtracker-data/meson.build b/tests/libtracker-data/meson.build
index 84a9e5b..29b720f 100644
--- a/tests/libtracker-data/meson.build
+++ b/tests/libtracker-data/meson.build
@@ -1,5 +1,4 @@
-test_c_args = [
- '-DTRACKER_COMPILATION',
+test_c_args = tracker_c_args + [
'-DTOP_BUILDDIR="@0@"'.format(meson.build_root()),
'-DTOP_SRCDIR="@0@"'.format(meson.source_root()),
]
diff --git a/tests/libtracker-extract/meson.build b/tests/libtracker-extract/meson.build
index 9c0a554..6859510 100644
--- a/tests/libtracker-extract/meson.build
+++ b/tests/libtracker-extract/meson.build
@@ -1,5 +1,4 @@
-test_c_args = [
- '-DTRACKER_COMPILATION',
+test_c_args = tracker_c_args + [
'-DTOP_BUILDDIR="@0@/"'.format(meson.build_root()),
'-DTOP_SRCDIR="@0@/"'.format(meson.source_root()),
]
diff --git a/tests/libtracker-fts/meson.build b/tests/libtracker-fts/meson.build
index ae6c6ec..09f6891 100644
--- a/tests/libtracker-fts/meson.build
+++ b/tests/libtracker-fts/meson.build
@@ -1,5 +1,4 @@
-test_c_args = [
- '-DTRACKER_COMPILATION',
+test_c_args = tracker_c_args + [
'-DTOP_BUILDDIR="@0@/"'.format(meson.build_root()),
'-DTOP_SRCDIR="@0@/"'.format(meson.source_root()),
]
diff --git a/tests/libtracker-sparql/meson.build b/tests/libtracker-sparql/meson.build
index 91ab4a0..c2806a7 100644
--- a/tests/libtracker-sparql/meson.build
+++ b/tests/libtracker-sparql/meson.build
@@ -1,19 +1,17 @@
-test_c_args = ['-DTRACKER_COMPILATION']
-
resource_test = executable('tracker-resource-test',
'tracker-resource-test.c',
dependencies: [tracker_common_dep, tracker_sparql_dep],
- c_args: test_c_args)
+ c_args: tracker_c_args)
test('sparql-resource', resource_test)
sparql_test = executable('tracker-sparql-test',
'tracker-sparql-test.c',
dependencies: [tracker_common_dep, tracker_sparql_dep],
- c_args: test_c_args)
+ c_args: tracker_c_args)
test('sparql', sparql_test)
gb_737023_test = executable('tracker-gb-737023-test',
'tracker-gb-737023.c',
dependencies: [tracker_common_dep, tracker_sparql_dep],
- c_args: test_c_args)
+ c_args: tracker_c_args)
test('gb_737023', sparql_test)
diff --git a/tests/tracker-steroids/meson.build b/tests/tracker-steroids/meson.build
index 4cc69dc..0cb06ab 100644
--- a/tests/tracker-steroids/meson.build
+++ b/tests/tracker-steroids/meson.build
@@ -1,7 +1,5 @@
-test_c_args = ['-DTRACKER_COMPILATION']
-
steroids_test = executable('tracker-steroids-test',
'tracker-test.c',
dependencies: [tracker_common_dep, tracker_sparql_dep],
- c_args: test_c_args)
+ c_args: tracker_c_args)
test('steroids', steroids_test)
diff --git a/utils/ontology/meson.build b/utils/ontology/meson.build
index 7ba45a1..b7e2ad1 100644
--- a/utils/ontology/meson.build
+++ b/utils/ontology/meson.build
@@ -1,7 +1,7 @@
executable('data-validator', 'data-validator.c',
dependencies: [tracker_common_dep, tracker_data_dep, tracker_sparql_dep],
- c_args: ['-DTRACKER_COMPILATION'])
+ c_args: tracker_c_args)
executable('ontology-validator', 'ontology-validator.c',
dependencies: [tracker_common_dep, tracker_data_dep, tracker_sparql_dep],
- c_args: ['-DTRACKER_COMPILATION'])
+ c_args: tracker_c_args)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]