posix_spawn_file_actions_* tests: Fix module dependencies.
[gnulib.git] / modules / parse-datetime
blob820bc6ca96aad65b3d5384f5093ef1533cad7b02
1 Description:
2 Convert a date/time string to linear time.
4 Files:
5 doc/parse-datetime.texi
6 lib/parse-datetime.h
7 lib/parse-datetime.y
8 m4/tm_gmtoff.m4
9 m4/parse-datetime.m4
11 Depends-on:
12 bison
13 c99
14 c-ctype
15 stdbool
16 gettime
17 gettext-h
18 idx
19 intprops
20 inttypes
21 mktime
22 nstrftime
23 setenv
24 unsetenv
25 time
26 time_r
27 time_rz
28 timegm
29 verify
31 configure.ac:
32 gl_PARSE_DATETIME
34 Makefile.am:
35 # The Automake generated .y.c rule is broken: When executed in a VPATH build,
36 #   - The .c file gets generated in the build directory. But since it requires
37 #     special tools to rebuild it, we need to distribute it in the tarballs,
38 #     and by the GNU Coding Standards
39 #     <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>
40 #     the file should be generated in the source directory.
41 #   - The #line numbers in the .c file refer to a nonexistent file once it
42 #     has been moved from the build directory to the source directory. This
43 #     leads to error if 'lcov' is used later.
44 # Additionally, here we assume GNU Bison and therefore don't need the ylwrap
45 # script.
46 # Therefore we override this rule.
47 # Since this is a rule that produces multiple files, we apply the idiom from
48 # <https://lists.gnu.org/archive/html/bug-make/2020-09/msg00008.html>, so that
49 # it works also in parallel 'make'.
50 generate-parse-datetime:
51         $(AM_V_YACC)$(PARSE_DATETIME_BISON) -d $(YFLAGS) $(AM_YFLAGS) $(srcdir)/parse-datetime.y \
52         && test ':' = '$(PARSE_DATETIME_BISON)' || { \
53           sed -e 's|".*/parse-datetime\.y"|"parse-datetime.y"|' \
54               -e 's|"parse-datetime\.tab\.c"|"parse-datetime.c"|' \
55               -e 's|"parse-datetime\.tab\.h"|"parse-datetime-gen.h"|' \
56               < parse-datetime.tab.c > parse-datetime.c-tmp \
57           && sed -e 's|".*/parse-datetime\.y"|"parse-datetime.y"|' \
58                  -e 's|"parse-datetime\.tab\.h"|"parse-datetime-gen.h"|' \
59                  < parse-datetime.tab.h > parse-datetime-gen.h-tmp \
60           && rm -f parse-datetime.tab.c parse-datetime.tab.h \
61           && mv parse-datetime.c-tmp $(srcdir)/parse-datetime.c \
62           && mv parse-datetime-gen.h-tmp $(srcdir)/parse-datetime-gen.h; \
63         }
64 .PHONY: generate-parse-datetime
65 # The above rule will generate files with time stamp order
66 # parse-datetime.y <= parse-datetime.c <= parse-datetime-gen.h.
67 parse-datetime.c: parse-datetime.y
68         @{ test -f $(srcdir)/parse-datetime.c && test ! $(srcdir)/parse-datetime.c -ot $(srcdir)/parse-datetime.y; } || $(MAKE) generate-parse-datetime
69 parse-datetime-gen.h: parse-datetime.c
70         @{ test -f $(srcdir)/parse-datetime-gen.h && test ! $(srcdir)/parse-datetime-gen.h -ot $(srcdir)/parse-datetime.c; } || $(MAKE) generate-parse-datetime
71 lib_SOURCES += parse-datetime.y
72 BUILT_SOURCES += parse-datetime.c parse-datetime-gen.h
73 MOSTLYCLEANFILES += parse-datetime.tab.c parse-datetime.tab.h parse-datetime.c-tmp parse-datetime-gen.h-tmp
74 MAINTAINERCLEANFILES += parse-datetime.c parse-datetime-gen.h
75 EXTRA_DIST += parse-datetime.c parse-datetime-gen.h
77 Include:
78 "parse-datetime.h"
80 License:
81 LGPLv2+
83 Maintainer:
84 Paul Eggert