tnef 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. data/ext/tnef/AUTHORS +7 -0
  2. data/ext/tnef/BUGS.in +5 -0
  3. data/ext/tnef/COPYING +340 -0
  4. data/ext/tnef/ChangeLog +1550 -0
  5. data/ext/tnef/INSTALL +234 -0
  6. data/ext/tnef/Makefile.am +7 -0
  7. data/ext/tnef/Makefile.in +699 -0
  8. data/ext/tnef/NEWS +177 -0
  9. data/ext/tnef/README +39 -0
  10. data/ext/tnef/THANKS +1 -0
  11. data/ext/tnef/TODO +7 -0
  12. data/ext/tnef/acinclude.m4 +47 -0
  13. data/ext/tnef/aclocal.m4 +1012 -0
  14. data/ext/tnef/configure +6815 -0
  15. data/ext/tnef/configure.in +67 -0
  16. data/ext/tnef/depcomp +584 -0
  17. data/ext/tnef/doc/FAQ +25 -0
  18. data/ext/tnef/doc/Makefile.am +6 -0
  19. data/ext/tnef/doc/Makefile.in +623 -0
  20. data/ext/tnef/doc/file-format.tex +139 -0
  21. data/ext/tnef/doc/tnef.1.in +183 -0
  22. data/ext/tnef/doc/www/Makefile.am +14 -0
  23. data/ext/tnef/doc/www/Makefile.in +542 -0
  24. data/ext/tnef/doc/www/cgi-bin/Makefile.am +14 -0
  25. data/ext/tnef/doc/www/cgi-bin/Makefile.in +340 -0
  26. data/ext/tnef/doc/www/htdocs/Makefile.am +14 -0
  27. data/ext/tnef/doc/www/htdocs/Makefile.in +340 -0
  28. data/ext/tnef/extconf.rb +3 -0
  29. data/ext/tnef/install-sh +507 -0
  30. data/ext/tnef/missing +367 -0
  31. data/ext/tnef/mkinstalldirs +161 -0
  32. data/ext/tnef/src/Makefile.am +48 -0
  33. data/ext/tnef/src/Makefile.in +700 -0
  34. data/ext/tnef/src/alloc.c +107 -0
  35. data/ext/tnef/src/alloc.h +54 -0
  36. data/ext/tnef/src/attr.c +270 -0
  37. data/ext/tnef/src/attr.h +74 -0
  38. data/ext/tnef/src/common.h +101 -0
  39. data/ext/tnef/src/config.h.in +111 -0
  40. data/ext/tnef/src/date.c +66 -0
  41. data/ext/tnef/src/date.h +43 -0
  42. data/ext/tnef/src/debug.c +45 -0
  43. data/ext/tnef/src/debug.h +32 -0
  44. data/ext/tnef/src/file.c +259 -0
  45. data/ext/tnef/src/file.h +48 -0
  46. data/ext/tnef/src/main.c +386 -0
  47. data/ext/tnef/src/mapi-names.data +430 -0
  48. data/ext/tnef/src/mapi-types.data +19 -0
  49. data/ext/tnef/src/mapi_attr.c +419 -0
  50. data/ext/tnef/src/mapi_attr.h +78 -0
  51. data/ext/tnef/src/mkdata.awk +100 -0
  52. data/ext/tnef/src/options.c +32 -0
  53. data/ext/tnef/src/options.h +67 -0
  54. data/ext/tnef/src/path.c +397 -0
  55. data/ext/tnef/src/path.h +34 -0
  56. data/ext/tnef/src/replace/Makefile.am +8 -0
  57. data/ext/tnef/src/replace/Makefile.in +435 -0
  58. data/ext/tnef/src/replace/basename.c +45 -0
  59. data/ext/tnef/src/replace/dummy.c +7 -0
  60. data/ext/tnef/src/replace/getopt_long.c +940 -0
  61. data/ext/tnef/src/replace/getopt_long.h +141 -0
  62. data/ext/tnef/src/replace/malloc.c +41 -0
  63. data/ext/tnef/src/replace/strdup.c +51 -0
  64. data/ext/tnef/src/rtf.c +362 -0
  65. data/ext/tnef/src/rtf.h +36 -0
  66. data/ext/tnef/src/tnef-names.data +34 -0
  67. data/ext/tnef/src/tnef-types.data +12 -0
  68. data/ext/tnef/src/tnef.c +396 -0
  69. data/ext/tnef/src/tnef.h +45 -0
  70. data/ext/tnef/src/util.c +112 -0
  71. data/ext/tnef/src/util.h +42 -0
  72. data/ext/tnef/src/write.c +136 -0
  73. data/ext/tnef/src/write.h +25 -0
  74. data/ext/tnef/src/xstrdup.c +41 -0
  75. data/ext/tnef/tests/Makefile.am +4 -0
  76. data/ext/tnef/tests/Makefile.in +530 -0
  77. data/ext/tnef/tests/cmdline/AUTHORS +8 -0
  78. data/ext/tnef/tests/cmdline/AUTHORS.baseline +8 -0
  79. data/ext/tnef/tests/cmdline/Makefile.am +33 -0
  80. data/ext/tnef/tests/cmdline/Makefile.in +455 -0
  81. data/ext/tnef/tests/cmdline/basic.baseline +4 -0
  82. data/ext/tnef/tests/cmdline/basic.test +39 -0
  83. data/ext/tnef/tests/cmdline/body-test.html.baseline +95 -0
  84. data/ext/tnef/tests/cmdline/body.baseline +929 -0
  85. data/ext/tnef/tests/cmdline/body.test +55 -0
  86. data/ext/tnef/tests/cmdline/debug.baseline +155 -0
  87. data/ext/tnef/tests/cmdline/debug.test +14 -0
  88. data/ext/tnef/tests/cmdline/directory.baseline +3 -0
  89. data/ext/tnef/tests/cmdline/directory.test +35 -0
  90. data/ext/tnef/tests/cmdline/help.baseline +63 -0
  91. data/ext/tnef/tests/cmdline/help.test +12 -0
  92. data/ext/tnef/tests/cmdline/interactive.test +5 -0
  93. data/ext/tnef/tests/cmdline/list.baseline +5 -0
  94. data/ext/tnef/tests/cmdline/list.test +21 -0
  95. data/ext/tnef/tests/cmdline/maxsize.baseline +828 -0
  96. data/ext/tnef/tests/cmdline/maxsize.test +43 -0
  97. data/ext/tnef/tests/cmdline/message.html.baseline +95 -0
  98. data/ext/tnef/tests/cmdline/mime-types.baseline +3 -0
  99. data/ext/tnef/tests/cmdline/mime-types.test +11 -0
  100. data/ext/tnef/tests/cmdline/overwrite.baseline +8 -0
  101. data/ext/tnef/tests/cmdline/overwrite.test +40 -0
  102. data/ext/tnef/tests/cmdline/rtf-test.rtf.baseline +0 -0
  103. data/ext/tnef/tests/cmdline/stdin.baseline +2 -0
  104. data/ext/tnef/tests/cmdline/stdin.test +18 -0
  105. data/ext/tnef/tests/cmdline/test.tnef +0 -0
  106. data/ext/tnef/tests/cmdline/triples-test-2.rtf.baseline +0 -0
  107. data/ext/tnef/tests/cmdline/triples-test-2.txt.baseline +0 -0
  108. data/ext/tnef/tests/cmdline/triples-test.txt.baseline +0 -0
  109. data/ext/tnef/tests/cmdline/use-path.baseline +0 -0
  110. data/ext/tnef/tests/cmdline/use-path.test +5 -0
  111. data/ext/tnef/tests/cmdline/verbose.baseline +5 -0
  112. data/ext/tnef/tests/cmdline/verbose.test +19 -0
  113. data/ext/tnef/tests/cmdline/version.baseline +17 -0
  114. data/ext/tnef/tests/cmdline/version.test +14 -0
  115. data/ext/tnef/tests/files/MAPI_ATTACH_DATA_OBJ.test +9 -0
  116. data/ext/tnef/tests/files/MAPI_OBJECT.test +9 -0
  117. data/ext/tnef/tests/files/Makefile.am +16 -0
  118. data/ext/tnef/tests/files/Makefile.in +636 -0
  119. data/ext/tnef/tests/files/baselines/AUTHORS.baseline +8 -0
  120. data/ext/tnef/tests/files/baselines/AUTOEXEC.BAT.baseline +0 -0
  121. data/ext/tnef/tests/files/baselines/CONFIG.SYS.baseline +0 -0
  122. data/ext/tnef/tests/files/baselines/MAPI_ATTACH_DATA_OBJ-body.rtf.baseline +0 -0
  123. data/ext/tnef/tests/files/baselines/MAPI_ATTACH_DATA_OBJ.baseline +229 -0
  124. data/ext/tnef/tests/files/baselines/MAPI_OBJECT-body.rtf.baseline +0 -0
  125. data/ext/tnef/tests/files/baselines/MAPI_OBJECT.baseline +153 -0
  126. data/ext/tnef/tests/files/baselines/Makefile.am +35 -0
  127. data/ext/tnef/tests/files/baselines/Makefile.in +361 -0
  128. data/ext/tnef/tests/files/baselines/README.baseline +31 -0
  129. data/ext/tnef/tests/files/baselines/TechlibDEC99-JAN00.doc.baseline +0 -0
  130. data/ext/tnef/tests/files/baselines/TechlibDEC99.doc.baseline +0 -0
  131. data/ext/tnef/tests/files/baselines/TechlibNOV99.doc.baseline +0 -0
  132. data/ext/tnef/tests/files/baselines/Untitled_Attachment.baseline +0 -0
  133. data/ext/tnef/tests/files/baselines/VIA_Nytt_1402.doc.baseline +0 -0
  134. data/ext/tnef/tests/files/baselines/VIA_Nytt_1402.pdf.baseline +0 -0
  135. data/ext/tnef/tests/files/baselines/VIA_Nytt_14021.htm.baseline +1914 -0
  136. data/ext/tnef/tests/files/baselines/body-body.html.baseline +95 -0
  137. data/ext/tnef/tests/files/baselines/body.baseline +124 -0
  138. data/ext/tnef/tests/files/baselines/boot.ini.baseline +6 -0
  139. data/ext/tnef/tests/files/baselines/data-before-name-body.rtf.baseline +0 -0
  140. data/ext/tnef/tests/files/baselines/data-before-name.baseline +213 -0
  141. data/ext/tnef/tests/files/baselines/garbage-at-end.baseline +73 -0
  142. data/ext/tnef/tests/files/baselines/generpts.src.baseline +1691 -0
  143. data/ext/tnef/tests/files/baselines/long-filename-body.rtf.baseline +26 -0
  144. data/ext/tnef/tests/files/baselines/long-filename.baseline +218 -0
  145. data/ext/tnef/tests/files/baselines/message.rtf.baseline +0 -0
  146. data/ext/tnef/tests/files/baselines/missing-filenames-body.rtf.baseline +20 -0
  147. data/ext/tnef/tests/files/baselines/missing-filenames.baseline +252 -0
  148. data/ext/tnef/tests/files/baselines/multi-name-property.baseline +243 -0
  149. data/ext/tnef/tests/files/baselines/one-file.baseline +155 -0
  150. data/ext/tnef/tests/files/baselines/rtf-body.rtf.baseline +0 -0
  151. data/ext/tnef/tests/files/baselines/rtf.baseline +167 -0
  152. data/ext/tnef/tests/files/baselines/triples-body.rtf.baseline +0 -0
  153. data/ext/tnef/tests/files/baselines/triples.baseline +254 -0
  154. data/ext/tnef/tests/files/baselines/two-files.baseline +186 -0
  155. data/ext/tnef/tests/files/body.test +9 -0
  156. data/ext/tnef/tests/files/data-before-name.test +9 -0
  157. data/ext/tnef/tests/files/datafiles/MAPI_ATTACH_DATA_OBJ.list +4 -0
  158. data/ext/tnef/tests/files/datafiles/MAPI_ATTACH_DATA_OBJ.tnef +0 -0
  159. data/ext/tnef/tests/files/datafiles/MAPI_OBJECT.list +2 -0
  160. data/ext/tnef/tests/files/datafiles/MAPI_OBJECT.tnef +0 -0
  161. data/ext/tnef/tests/files/datafiles/Makefile.am +27 -0
  162. data/ext/tnef/tests/files/datafiles/Makefile.in +351 -0
  163. data/ext/tnef/tests/files/datafiles/body.list +1 -0
  164. data/ext/tnef/tests/files/datafiles/body.tnef +0 -0
  165. data/ext/tnef/tests/files/datafiles/data-before-name.list +4 -0
  166. data/ext/tnef/tests/files/datafiles/data-before-name.tnef +0 -0
  167. data/ext/tnef/tests/files/datafiles/garbage-at-end.list +0 -0
  168. data/ext/tnef/tests/files/datafiles/garbage-at-end.tnef +0 -0
  169. data/ext/tnef/tests/files/datafiles/long-filename.list +1 -0
  170. data/ext/tnef/tests/files/datafiles/long-filename.tnef +0 -0
  171. data/ext/tnef/tests/files/datafiles/missing-filenames.list +1 -0
  172. data/ext/tnef/tests/files/datafiles/missing-filenames.tnef +0 -0
  173. data/ext/tnef/tests/files/datafiles/multi-name-property.list +0 -0
  174. data/ext/tnef/tests/files/datafiles/multi-name-property.tnef +0 -0
  175. data/ext/tnef/tests/files/datafiles/one-file.list +1 -0
  176. data/ext/tnef/tests/files/datafiles/one-file.tnef +0 -0
  177. data/ext/tnef/tests/files/datafiles/rtf.list +1 -0
  178. data/ext/tnef/tests/files/datafiles/rtf.tnef +0 -0
  179. data/ext/tnef/tests/files/datafiles/triples.list +1 -0
  180. data/ext/tnef/tests/files/datafiles/triples.tnef +0 -0
  181. data/ext/tnef/tests/files/datafiles/two-files.list +2 -0
  182. data/ext/tnef/tests/files/datafiles/two-files.tnef +0 -0
  183. data/ext/tnef/tests/files/file-util.sh +38 -0
  184. data/ext/tnef/tests/files/garbage-at-end.test +9 -0
  185. data/ext/tnef/tests/files/long-filename.test +9 -0
  186. data/ext/tnef/tests/files/missing-filenames.test +9 -0
  187. data/ext/tnef/tests/files/multi-name-property.test +9 -0
  188. data/ext/tnef/tests/files/one-file.test +9 -0
  189. data/ext/tnef/tests/files/rtf.test +9 -0
  190. data/ext/tnef/tests/files/triples.test +9 -0
  191. data/ext/tnef/tests/files/two-files.test +9 -0
  192. data/ext/tnef/tests/util.sh +32 -0
  193. data/ext/tnef/tnef.spec.in +44 -0
  194. data/lib/tnef.rb +30 -0
  195. data/lib/tnef/executable.rb +27 -0
  196. data/lib/tnef/version.rb +3 -0
  197. metadata +243 -0
@@ -0,0 +1,139 @@
1
+ \documentclass{article}
2
+ \title{TNEF File Format}
3
+ \author{Mark Simpson}
4
+ \begin{document}
5
+ \maketitle
6
+ \newcommand{\obj}[1]{\textsf{\textsl{#1}}}
7
+ \newcommand{\literal}[1]{\textsf{\textbf{#1}}}
8
+ \newcommand{\expl}[1]{\small{\textsf{\textsc{#1}}}}
9
+ \newcommand{\code}[1]{\literal{#1}}
10
+
11
+ \section{Overview}
12
+ This document defines the {\bf TNEF} file format.
13
+
14
+ \section{File Format}
15
+
16
+ \begin{tabular}{l@{ : }l}
17
+ \obj{tnef\_stream} & \literal{TNEF\_SIGNATURE} \obj{key} \obj{object} \\
18
+
19
+ \obj{key} & \expl{nonzero 16 bit integer} \\
20
+
21
+ \obj{object} & \obj{message\_seq} \\
22
+ & \obj{message\_seq} \obj{attach\_seq} \\
23
+ & \obj{attach\_seq} \\
24
+
25
+ \obj{message\_seq} & \obj{att\_tnef\_version} \\
26
+ & \obj{att\_tnef\_version} \obj{msg\_attr\_seq} \\
27
+ & \obj{att\_tnef\_version} \obj{att\_msg\_class} \\
28
+ & \obj{att\_tnef\_version} \obj{att\_msg\_class}
29
+ \obj{msg\_attr\_seq} \\
30
+ & \obj{att\_msg\_class} \\
31
+ & \obj{att\_msg\_class} \obj{msg\_attr\_seq} \\
32
+ & \obj{msg\_attr\_seq} \\
33
+
34
+ \obj{att\_tnef\_version}
35
+ & \literal{LVL\_MESSAGE} \literal{attTNEFVersion}
36
+ \expl{sizeof(ULONG)} \literal{0x000010000}
37
+ \obj{checksum} \\
38
+
39
+ \obj{msg\_attr\_seq}& \obj{msg\_attr}+ \\
40
+
41
+ \obj{msg\_attr} & \literal{LVL\_MESSAGE}
42
+ \obj{attr\_id} \obj{attr\_len}
43
+ \obj{attr\_data} \obj{checksum} \\
44
+
45
+ \obj{attr\_name} & \expl{One of the defined attribute} \\
46
+
47
+ \obj{attr\_type} & \expl{One of the defined attribute types} \\
48
+
49
+ \obj{attr\_len} & \expl{length in bytes of attr data} \\
50
+
51
+ \obj{attr\_data} & \expl{data associated with the attr,
52
+ \obj{attr\_len} bytes of data} \\
53
+
54
+ \obj{attach\_seq} & \obj{att\_rend\_data} \\
55
+ & \obj{att\_rend\_data} \obj{att\_attr\_seq} \\
56
+
57
+ \obj{att\_rend\_data}&\literal{LVL\_MESSAGE} \literal{attRendData}
58
+ \expl{sizeof(RENDDATA)} \obj{renddata}
59
+ \obj{checksum} \\
60
+
61
+ \obj{renddata} & \expl{contents of RENDDATA structure} \\
62
+
63
+ \obj{att\_attr\_seq}& \obj{att\_attr}+ \\
64
+
65
+ \obj{att\_attr} & \literal{LVL\_ATTACHMENT} \obj{attr\_id}
66
+ \obj{attr\_len} \obj{attr\_data} \obj{checksum} \\
67
+
68
+ \obj{checksum} & \expl{integer which is the sum of bytes \% 65536} \\
69
+
70
+ \literal{TNEF\_SIGNATURE}&\literal{0x223e9f78} \\
71
+
72
+ \literal{LVL\_MESSAGE}&\literal{0x01} \\
73
+
74
+ \literal{LVL\_ATTACHMENT}&\literal{0x02} \\
75
+
76
+ \end{tabular}
77
+
78
+ All attributes names are defined in \code{src/names.data}; all
79
+ attribute types in \code{src/types.data}.
80
+
81
+ \section{Notes on Attributes}
82
+
83
+ This sections describes special handling needed for some attributes.
84
+
85
+ \subsection{\literal{attATTACHMENT} (\code{0x9005})}
86
+
87
+ This attribute has some interesting MAPI properties in it. Most
88
+ importantly is the long filename MAPI property. The MAPI proerties have
89
+ the following structure:
90
+
91
+ \begin{tabular}{l@{ : }l}
92
+ \obj{Property\_seq} & \expl{integer property count}
93
+ \obj{Property\_value} \\
94
+
95
+ \obj{Property\_value} & \obj{property\_tag} \obj{Property} \\
96
+ & \obj{property\_tag} \obj{Proptag\_name}
97
+ \obj{Property} \\
98
+
99
+ \obj{Property} & \obj{Value} \\
100
+ & \expl{value\_count} \obj{Value} \\
101
+
102
+ \obj{Value} & \obj{value\_data} \\
103
+ & \obj{value\_size} \obj{value\_data} \obj{padding} \\
104
+ & \obj{value\_size} \obj{value\_IID} \obj{value\_data}
105
+ \obj{padding} \\
106
+
107
+ \obj{Proptag\_name} & \obj{name\_guid} \obj{name\_kind} \obj{name\_id} \\
108
+ & \obj{name\_guid} \obj{name\_kind}
109
+ \obj{name\_string\_length}
110
+ \obj{name\_string}
111
+ \obj{padding} \\
112
+
113
+ \end{tabular}
114
+
115
+ \section{Data Structures}
116
+
117
+ In some cases the attribute data is structured data. This section
118
+ describes those data structures.
119
+
120
+ \subsection{\code{date}}
121
+
122
+ \begin{verbatim}
123
+ struct date
124
+ {
125
+ int16 year, month, day;
126
+ int16 hour, min, sec;
127
+ int16 dow;
128
+ };
129
+ \end{verbatim}
130
+
131
+ The \code{dow} member is zero based with Sunday equal to zero.
132
+
133
+ \subsection{\code{RENDDATA}}
134
+
135
+ This data structure is not currently defined since it is unclear that it is
136
+ needed by anything other than Microsoft\textsuperscript{TM} Outlook.
137
+
138
+
139
+ \end{document}
@@ -0,0 +1,183 @@
1
+ .TH TNEF 1 "TNEF MIME Decoder" "Filter" \" -*- nroff -*-
2
+ .SH NAME
3
+ .nf \" fill off
4
+ tnef \- decode Microsoft's Transport Neutral Encapsulation Format
5
+ .fi \" fill on
6
+ .SH SYNOPSIS
7
+ .BR tnef " [options] [FILE]"
8
+ .PP
9
+ .B tnef
10
+ {\fB\-\-help\fP | \fB\-\-version\fP}
11
+ .SH DESCRIPTION
12
+ This manual page documents the
13
+ .B tnef
14
+ filter.
15
+ .B tnef
16
+ decodes e-mail attachments encoded in Microsoft's Transport Neutral
17
+ Encapsulation Format (hereafter, TNEF), which "wraps"
18
+ Microsoft e-mail attachments.
19
+ .PP
20
+ .IR Unfortunately "," these "wrapped" attachments are inaccessible to
21
+ any e-mail client that does not understand TNEF.
22
+ .IR Fortunately ","
23
+ the
24
+ .B tnef
25
+ filter can be used by any MIME-aware client to unpack these attachments.
26
+ .SH OPTIONS
27
+ .TP
28
+ \fB\-f\fP FILE, \fB\-\-file\fP=FILE
29
+ use FILE as input ('-' denotes stdin). When this option is omitted,
30
+ .B tnef
31
+ reads data from stdin.
32
+ .TP
33
+ \fB\-C\fP DIR, \-\-\fBdirectory\fP=DIR
34
+ unpack file attachments into DIR.
35
+ .TP
36
+ \fB\-x SIZE, \-\-maxsize=SIZE\fP
37
+ limit maximum size of extracted archive (bytes)
38
+ .TP
39
+ \fB\-t, \-\-list\fP
40
+ list attached files, do not extract.
41
+ .TP
42
+ \fB\-w, \-\-interactive, \-\-confirmation\fP
43
+ ask for confirmation for every action.
44
+ .TP
45
+ \fB\-\-overwrite\fP
46
+ when extracting attachments, overwrite existing files.
47
+ .TP
48
+ \fB\-\-number\-backups\fP
49
+ when extracting attachments, if file FOO will be overwritten,
50
+ create FOO.n instead.
51
+ .TP
52
+ \fB\-\-use\-paths\fP
53
+ honor file pathnames specified in the TNEF attachment.
54
+ For security reasons, paths to attached files are
55
+ ignored by default.
56
+ .TP
57
+ \fB\-\-save\-body FILE\fP
58
+ Save message body data found in the TNEF data. There can be up to
59
+ three message bodies in the file, plain text, HTML encoded, and RTF
60
+ encoded. Which are saved is specified by the \-\-body-pref option.
61
+ By default the message bodies are written to a file named message with
62
+ an extension based upon the type (txt, html, rtf).
63
+ .TP
64
+ \fB\-\-body\-pref PREF\fP
65
+ Specifies which of the possibly three message body formats will be
66
+ saved. PREF can be up to three characters long and each character
67
+ must be one of 'r', 'h', or 't' specifying RTF, HTML or text. The
68
+ order is the order that the data will be checked, the first type found
69
+ will be saved. If PREF is the special value of 'all' then any and all
70
+ message body data found will be saved. The default is 'rht'.
71
+ .TP
72
+ \fB\-\-save-rtf FILE\fP
73
+ DEPRECATED. Equivalent to \-\-save-body=FILE \-\-body-pref=r
74
+ .TP
75
+ \fB\-h, \-\-help\fP
76
+ show usage message.
77
+ .TP
78
+ \fB\-V, \-\-version\fP
79
+ display version and copyright.
80
+ .TP
81
+ \fB\-v, \-\-verbose\fP
82
+ produce verbose output.
83
+ .TP
84
+ \fB\-\-debug\fP
85
+ enable debug output.
86
+ .SH "EXAMPLE"
87
+ The following example demonstrates typical
88
+ .B tnef
89
+ usage with a popular Unix mail client called "mutt".
90
+ .nf
91
+ .SS "Step 1 \-\- Configure ~/.mailcap"
92
+ .fi
93
+ Mutt can't use
94
+ .B tnef
95
+ for its intended purpose until an appropriate content type definition
96
+ exists in ~/.mailcap . Here's a sample definition:
97
+ .PP
98
+ .RS
99
+ application/ms\-tnef; tnef \-w %s
100
+ .RE
101
+ .PP
102
+ This mailcap entry says that whenever the MIME content type:
103
+ .PP
104
+ .RS
105
+ application/ms\-tnef
106
+ .RE
107
+ .PP
108
+ is encountered, use this command to decode it:
109
+ .PP
110
+ .RS
111
+ tnef \-w %s
112
+ .RE
113
+ .PP
114
+ The latter command string invokes
115
+ .BR tnef ","
116
+ specifying both the \fB\-w\fP option and the attachment (created as a
117
+ temporary file) as command line arguments.
118
+ .nf
119
+ .SS "Step 2 \-\- Add The Filter To $PATH"
120
+ .fi
121
+ Mutt can't invoke
122
+ .B
123
+ tnef
124
+ if the filter isn't accessible via $PATH.
125
+ .nf
126
+ .SS "Step 3 \-\- Test Mutt"
127
+ .fi
128
+ Use mutt to read a message that includes a TNEF attachment. Mutt will
129
+ note that an attachment of type "application/ms\-tnef is unsupported".
130
+ .PP
131
+ Press the "v" key to open mutt's "view attachment" menu.
132
+ .PP
133
+ Move the cursor over the TNEF attachment and press the enter key to "view"
134
+ the attachment.
135
+ Mutt will launch
136
+ .B tnef
137
+ and invoke it
138
+ using the command line syntax specified in ~/.mailcap (step 1).
139
+ .B tnef
140
+ then decodes all file(s) included in the TNEF attachment, prompting
141
+ for confirmation prior to creating an individual file (refer to
142
+ .B \-w
143
+ option above).
144
+ .B \-w
145
+ is useful here because it gives the end user a chance to
146
+ view the filename(s) included in the mail message.
147
+ .PP
148
+ Note that Mutt's attachment menu also supports a pipe option, which permits
149
+ the user to pipe attachments to an external filter (how convenient).
150
+ So, to list the contents of a TNEF attachment prior to decoding it, press
151
+ the "|" key and enter this command:
152
+ .PP
153
+ .RS
154
+ tnef \-t
155
+ .RE
156
+ .PP
157
+ .SH "SEE ALSO"
158
+ .BR metamail (1),
159
+ .BR mailcap (4),
160
+ .BR mutt (1),
161
+ other email clients.
162
+ .SH "AUTHOR"
163
+ Mark Simpson.
164
+ .SH "REPORTING BUGS"
165
+ Report bugs to
166
+ .nh \"no hyphenation
167
+ Mark Simpson <@PACKAGE_BUGREPORT@>
168
+ .hy 1 \"enable hyphenation
169
+ .SH "OTHER REFERENCES"
170
+ This web page:
171
+ .PP
172
+ .nf
173
+ .nh \"no hyphenation
174
+ http://support.microsoft.com/support/kb/articles/Q136/2/04.asp
175
+ .hy 1 \"enable hyphenation
176
+ .fi
177
+ .PP
178
+ describes how to configure Microsoft email clients so that the TNEF format
179
+ is disabled when sending messages
180
+ to non-TNEF-compatible clients.
181
+
182
+
183
+
@@ -0,0 +1,14 @@
1
+ EXTRA_DIST =
2
+ SUBDIRS = cgi-bin htdocs
3
+ WEB_LOC = verdammelt@tnef.sf.net:/home/groups/t/tn/tnef/
4
+ WEB_TEST_LOC = ~damned/public_html/tnef-www/
5
+
6
+ web-build web-test web-push:
7
+ list='$(SUBDIRS)'; for subdir in $$list; do \
8
+ test "$$subdir" = . \
9
+ || (cd $$subdir \
10
+ && $(MAKE) $(AM_MAKEFLAGS) \
11
+ WEB_LOC=$(WEB_LOC)$$subdir/ \
12
+ WEB_TEST_LOC=$(WEB_TEST_LOC)$$subdir/ \
13
+ $@); \
14
+ done
@@ -0,0 +1,542 @@
1
+ # Makefile.in generated by automake 1.11.3 from Makefile.am.
2
+ # @configure_input@
3
+
4
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
+ # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
6
+ # Foundation, Inc.
7
+ # This Makefile.in is free software; the Free Software Foundation
8
+ # gives unlimited permission to copy and/or distribute it,
9
+ # with or without modifications, as long as this notice is preserved.
10
+
11
+ # This program is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14
+ # PARTICULAR PURPOSE.
15
+
16
+ @SET_MAKE@
17
+ VPATH = @srcdir@
18
+ pkgdatadir = $(datadir)/@PACKAGE@
19
+ pkgincludedir = $(includedir)/@PACKAGE@
20
+ pkglibdir = $(libdir)/@PACKAGE@
21
+ pkglibexecdir = $(libexecdir)/@PACKAGE@
22
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
23
+ install_sh_DATA = $(install_sh) -c -m 644
24
+ install_sh_PROGRAM = $(install_sh) -c
25
+ install_sh_SCRIPT = $(install_sh) -c
26
+ INSTALL_HEADER = $(INSTALL_DATA)
27
+ transform = $(program_transform_name)
28
+ NORMAL_INSTALL = :
29
+ PRE_INSTALL = :
30
+ POST_INSTALL = :
31
+ NORMAL_UNINSTALL = :
32
+ PRE_UNINSTALL = :
33
+ POST_UNINSTALL = :
34
+ subdir = doc/www
35
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
36
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
37
+ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
38
+ $(top_srcdir)/configure.in
39
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
40
+ $(ACLOCAL_M4)
41
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
42
+ CONFIG_HEADER = $(top_builddir)/src/config.h
43
+ CONFIG_CLEAN_FILES =
44
+ CONFIG_CLEAN_VPATH_FILES =
45
+ SOURCES =
46
+ DIST_SOURCES =
47
+ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
48
+ html-recursive info-recursive install-data-recursive \
49
+ install-dvi-recursive install-exec-recursive \
50
+ install-html-recursive install-info-recursive \
51
+ install-pdf-recursive install-ps-recursive install-recursive \
52
+ installcheck-recursive installdirs-recursive pdf-recursive \
53
+ ps-recursive uninstall-recursive
54
+ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
55
+ distclean-recursive maintainer-clean-recursive
56
+ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
57
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
58
+ distdir
59
+ ETAGS = etags
60
+ CTAGS = ctags
61
+ DIST_SUBDIRS = $(SUBDIRS)
62
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
63
+ am__relativize = \
64
+ dir0=`pwd`; \
65
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
66
+ sed_rest='s,^[^/]*/*,,'; \
67
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
68
+ sed_butlast='s,/*[^/]*$$,,'; \
69
+ while test -n "$$dir1"; do \
70
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
71
+ if test "$$first" != "."; then \
72
+ if test "$$first" = ".."; then \
73
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
74
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
75
+ else \
76
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
77
+ if test "$$first2" = "$$first"; then \
78
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
79
+ else \
80
+ dir2="../$$dir2"; \
81
+ fi; \
82
+ dir0="$$dir0"/"$$first"; \
83
+ fi; \
84
+ fi; \
85
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
86
+ done; \
87
+ reldir="$$dir2"
88
+ ACLOCAL = @ACLOCAL@
89
+ AMTAR = @AMTAR@
90
+ AUTOCONF = @AUTOCONF@
91
+ AUTOHEADER = @AUTOHEADER@
92
+ AUTOMAKE = @AUTOMAKE@
93
+ AWK = @AWK@
94
+ CC = @CC@
95
+ CCDEPMODE = @CCDEPMODE@
96
+ CFLAGS = @CFLAGS@
97
+ CPP = @CPP@
98
+ CPPFLAGS = @CPPFLAGS@
99
+ CXX = @CXX@
100
+ CXXDEPMODE = @CXXDEPMODE@
101
+ CXXFLAGS = @CXXFLAGS@
102
+ CYGPATH_W = @CYGPATH_W@
103
+ DEFS = @DEFS@
104
+ DEPDIR = @DEPDIR@
105
+ ECHO_C = @ECHO_C@
106
+ ECHO_N = @ECHO_N@
107
+ ECHO_T = @ECHO_T@
108
+ EGREP = @EGREP@
109
+ EXEEXT = @EXEEXT@
110
+ GREP = @GREP@
111
+ INSTALL = @INSTALL@
112
+ INSTALL_DATA = @INSTALL_DATA@
113
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
114
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
115
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
116
+ LDFLAGS = @LDFLAGS@
117
+ LIBOBJS = @LIBOBJS@
118
+ LIBS = @LIBS@
119
+ LN_S = @LN_S@
120
+ LTLIBOBJS = @LTLIBOBJS@
121
+ MAINT = @MAINT@
122
+ MAKEINFO = @MAKEINFO@
123
+ MKDIR_P = @MKDIR_P@
124
+ OBJEXT = @OBJEXT@
125
+ PACKAGE = @PACKAGE@
126
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
127
+ PACKAGE_NAME = @PACKAGE_NAME@
128
+ PACKAGE_STRING = @PACKAGE_STRING@
129
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
130
+ PACKAGE_URL = @PACKAGE_URL@
131
+ PACKAGE_VERSION = @PACKAGE_VERSION@
132
+ PATH_SEPARATOR = @PATH_SEPARATOR@
133
+ RANLIB = @RANLIB@
134
+ SET_MAKE = @SET_MAKE@
135
+ SHELL = @SHELL@
136
+ STRIP = @STRIP@
137
+ VERSION = @VERSION@
138
+ abs_builddir = @abs_builddir@
139
+ abs_srcdir = @abs_srcdir@
140
+ abs_top_builddir = @abs_top_builddir@
141
+ abs_top_srcdir = @abs_top_srcdir@
142
+ ac_ct_CC = @ac_ct_CC@
143
+ ac_ct_CXX = @ac_ct_CXX@
144
+ am__include = @am__include@
145
+ am__leading_dot = @am__leading_dot@
146
+ am__quote = @am__quote@
147
+ am__tar = @am__tar@
148
+ am__untar = @am__untar@
149
+ bindir = @bindir@
150
+ build_alias = @build_alias@
151
+ builddir = @builddir@
152
+ datadir = @datadir@
153
+ datarootdir = @datarootdir@
154
+ docdir = @docdir@
155
+ dvidir = @dvidir@
156
+ exec_prefix = @exec_prefix@
157
+ host_alias = @host_alias@
158
+ htmldir = @htmldir@
159
+ includedir = @includedir@
160
+ infodir = @infodir@
161
+ install_sh = @install_sh@
162
+ libdir = @libdir@
163
+ libexecdir = @libexecdir@
164
+ localedir = @localedir@
165
+ localstatedir = @localstatedir@
166
+ mandir = @mandir@
167
+ mkdir_p = @mkdir_p@
168
+ oldincludedir = @oldincludedir@
169
+ pdfdir = @pdfdir@
170
+ prefix = @prefix@
171
+ program_transform_name = @program_transform_name@
172
+ psdir = @psdir@
173
+ sbindir = @sbindir@
174
+ sharedstatedir = @sharedstatedir@
175
+ srcdir = @srcdir@
176
+ sysconfdir = @sysconfdir@
177
+ target_alias = @target_alias@
178
+ top_build_prefix = @top_build_prefix@
179
+ top_builddir = @top_builddir@
180
+ top_srcdir = @top_srcdir@
181
+ EXTRA_DIST =
182
+ SUBDIRS = cgi-bin htdocs
183
+ WEB_LOC = verdammelt@tnef.sf.net:/home/groups/t/tn/tnef/
184
+ WEB_TEST_LOC = ~damned/public_html/tnef-www/
185
+ all: all-recursive
186
+
187
+ .SUFFIXES:
188
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
189
+ @for dep in $?; do \
190
+ case '$(am__configure_deps)' in \
191
+ *$$dep*) \
192
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
193
+ && { if test -f $@; then exit 0; else break; fi; }; \
194
+ exit 1;; \
195
+ esac; \
196
+ done; \
197
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/www/Makefile'; \
198
+ $(am__cd) $(top_srcdir) && \
199
+ $(AUTOMAKE) --gnu doc/www/Makefile
200
+ .PRECIOUS: Makefile
201
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
202
+ @case '$?' in \
203
+ *config.status*) \
204
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
205
+ *) \
206
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
207
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
208
+ esac;
209
+
210
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
211
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
212
+
213
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
214
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
215
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
216
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
217
+ $(am__aclocal_m4_deps):
218
+
219
+ # This directory's subdirectories are mostly independent; you can cd
220
+ # into them and run `make' without going through this Makefile.
221
+ # To change the values of `make' variables: instead of editing Makefiles,
222
+ # (1) if the variable is set in `config.status', edit `config.status'
223
+ # (which will cause the Makefiles to be regenerated when you run `make');
224
+ # (2) otherwise, pass the desired values on the `make' command line.
225
+ $(RECURSIVE_TARGETS):
226
+ @fail= failcom='exit 1'; \
227
+ for f in x $$MAKEFLAGS; do \
228
+ case $$f in \
229
+ *=* | --[!k]*);; \
230
+ *k*) failcom='fail=yes';; \
231
+ esac; \
232
+ done; \
233
+ dot_seen=no; \
234
+ target=`echo $@ | sed s/-recursive//`; \
235
+ list='$(SUBDIRS)'; for subdir in $$list; do \
236
+ echo "Making $$target in $$subdir"; \
237
+ if test "$$subdir" = "."; then \
238
+ dot_seen=yes; \
239
+ local_target="$$target-am"; \
240
+ else \
241
+ local_target="$$target"; \
242
+ fi; \
243
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
244
+ || eval $$failcom; \
245
+ done; \
246
+ if test "$$dot_seen" = "no"; then \
247
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
248
+ fi; test -z "$$fail"
249
+
250
+ $(RECURSIVE_CLEAN_TARGETS):
251
+ @fail= failcom='exit 1'; \
252
+ for f in x $$MAKEFLAGS; do \
253
+ case $$f in \
254
+ *=* | --[!k]*);; \
255
+ *k*) failcom='fail=yes';; \
256
+ esac; \
257
+ done; \
258
+ dot_seen=no; \
259
+ case "$@" in \
260
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
261
+ *) list='$(SUBDIRS)' ;; \
262
+ esac; \
263
+ rev=''; for subdir in $$list; do \
264
+ if test "$$subdir" = "."; then :; else \
265
+ rev="$$subdir $$rev"; \
266
+ fi; \
267
+ done; \
268
+ rev="$$rev ."; \
269
+ target=`echo $@ | sed s/-recursive//`; \
270
+ for subdir in $$rev; do \
271
+ echo "Making $$target in $$subdir"; \
272
+ if test "$$subdir" = "."; then \
273
+ local_target="$$target-am"; \
274
+ else \
275
+ local_target="$$target"; \
276
+ fi; \
277
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
278
+ || eval $$failcom; \
279
+ done && test -z "$$fail"
280
+ tags-recursive:
281
+ list='$(SUBDIRS)'; for subdir in $$list; do \
282
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
283
+ done
284
+ ctags-recursive:
285
+ list='$(SUBDIRS)'; for subdir in $$list; do \
286
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
287
+ done
288
+
289
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
290
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
291
+ unique=`for i in $$list; do \
292
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
293
+ done | \
294
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
295
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
296
+ mkid -fID $$unique
297
+ tags: TAGS
298
+
299
+ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
300
+ $(TAGS_FILES) $(LISP)
301
+ set x; \
302
+ here=`pwd`; \
303
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
304
+ include_option=--etags-include; \
305
+ empty_fix=.; \
306
+ else \
307
+ include_option=--include; \
308
+ empty_fix=; \
309
+ fi; \
310
+ list='$(SUBDIRS)'; for subdir in $$list; do \
311
+ if test "$$subdir" = .; then :; else \
312
+ test ! -f $$subdir/TAGS || \
313
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
314
+ fi; \
315
+ done; \
316
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
317
+ unique=`for i in $$list; do \
318
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
319
+ done | \
320
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
321
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
322
+ shift; \
323
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
324
+ test -n "$$unique" || unique=$$empty_fix; \
325
+ if test $$# -gt 0; then \
326
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
327
+ "$$@" $$unique; \
328
+ else \
329
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
330
+ $$unique; \
331
+ fi; \
332
+ fi
333
+ ctags: CTAGS
334
+ CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
335
+ $(TAGS_FILES) $(LISP)
336
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
337
+ unique=`for i in $$list; do \
338
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
339
+ done | \
340
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
341
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
342
+ test -z "$(CTAGS_ARGS)$$unique" \
343
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
344
+ $$unique
345
+
346
+ GTAGS:
347
+ here=`$(am__cd) $(top_builddir) && pwd` \
348
+ && $(am__cd) $(top_srcdir) \
349
+ && gtags -i $(GTAGS_ARGS) "$$here"
350
+
351
+ distclean-tags:
352
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
353
+
354
+ distdir: $(DISTFILES)
355
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
356
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
357
+ list='$(DISTFILES)'; \
358
+ dist_files=`for file in $$list; do echo $$file; done | \
359
+ sed -e "s|^$$srcdirstrip/||;t" \
360
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
361
+ case $$dist_files in \
362
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
363
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
364
+ sort -u` ;; \
365
+ esac; \
366
+ for file in $$dist_files; do \
367
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
368
+ if test -d $$d/$$file; then \
369
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
370
+ if test -d "$(distdir)/$$file"; then \
371
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
372
+ fi; \
373
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
374
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
375
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
376
+ fi; \
377
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
378
+ else \
379
+ test -f "$(distdir)/$$file" \
380
+ || cp -p $$d/$$file "$(distdir)/$$file" \
381
+ || exit 1; \
382
+ fi; \
383
+ done
384
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
385
+ if test "$$subdir" = .; then :; else \
386
+ test -d "$(distdir)/$$subdir" \
387
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
388
+ || exit 1; \
389
+ fi; \
390
+ done
391
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
392
+ if test "$$subdir" = .; then :; else \
393
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
394
+ $(am__relativize); \
395
+ new_distdir=$$reldir; \
396
+ dir1=$$subdir; dir2="$(top_distdir)"; \
397
+ $(am__relativize); \
398
+ new_top_distdir=$$reldir; \
399
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
400
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
401
+ ($(am__cd) $$subdir && \
402
+ $(MAKE) $(AM_MAKEFLAGS) \
403
+ top_distdir="$$new_top_distdir" \
404
+ distdir="$$new_distdir" \
405
+ am__remove_distdir=: \
406
+ am__skip_length_check=: \
407
+ am__skip_mode_fix=: \
408
+ distdir) \
409
+ || exit 1; \
410
+ fi; \
411
+ done
412
+ check-am: all-am
413
+ check: check-recursive
414
+ all-am: Makefile
415
+ installdirs: installdirs-recursive
416
+ installdirs-am:
417
+ install: install-recursive
418
+ install-exec: install-exec-recursive
419
+ install-data: install-data-recursive
420
+ uninstall: uninstall-recursive
421
+
422
+ install-am: all-am
423
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
424
+
425
+ installcheck: installcheck-recursive
426
+ install-strip:
427
+ if test -z '$(STRIP)'; then \
428
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
429
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
430
+ install; \
431
+ else \
432
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
433
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
434
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
435
+ fi
436
+ mostlyclean-generic:
437
+
438
+ clean-generic:
439
+
440
+ distclean-generic:
441
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
442
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
443
+
444
+ maintainer-clean-generic:
445
+ @echo "This command is intended for maintainers to use"
446
+ @echo "it deletes files that may require special tools to rebuild."
447
+ clean: clean-recursive
448
+
449
+ clean-am: clean-generic mostlyclean-am
450
+
451
+ distclean: distclean-recursive
452
+ -rm -f Makefile
453
+ distclean-am: clean-am distclean-generic distclean-tags
454
+
455
+ dvi: dvi-recursive
456
+
457
+ dvi-am:
458
+
459
+ html: html-recursive
460
+
461
+ html-am:
462
+
463
+ info: info-recursive
464
+
465
+ info-am:
466
+
467
+ install-data-am:
468
+
469
+ install-dvi: install-dvi-recursive
470
+
471
+ install-dvi-am:
472
+
473
+ install-exec-am:
474
+
475
+ install-html: install-html-recursive
476
+
477
+ install-html-am:
478
+
479
+ install-info: install-info-recursive
480
+
481
+ install-info-am:
482
+
483
+ install-man:
484
+
485
+ install-pdf: install-pdf-recursive
486
+
487
+ install-pdf-am:
488
+
489
+ install-ps: install-ps-recursive
490
+
491
+ install-ps-am:
492
+
493
+ installcheck-am:
494
+
495
+ maintainer-clean: maintainer-clean-recursive
496
+ -rm -f Makefile
497
+ maintainer-clean-am: distclean-am maintainer-clean-generic
498
+
499
+ mostlyclean: mostlyclean-recursive
500
+
501
+ mostlyclean-am: mostlyclean-generic
502
+
503
+ pdf: pdf-recursive
504
+
505
+ pdf-am:
506
+
507
+ ps: ps-recursive
508
+
509
+ ps-am:
510
+
511
+ uninstall-am:
512
+
513
+ .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
514
+ install-am install-strip tags-recursive
515
+
516
+ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
517
+ all all-am check check-am clean clean-generic ctags \
518
+ ctags-recursive distclean distclean-generic distclean-tags \
519
+ distdir dvi dvi-am html html-am info info-am install \
520
+ install-am install-data install-data-am install-dvi \
521
+ install-dvi-am install-exec install-exec-am install-html \
522
+ install-html-am install-info install-info-am install-man \
523
+ install-pdf install-pdf-am install-ps install-ps-am \
524
+ install-strip installcheck installcheck-am installdirs \
525
+ installdirs-am maintainer-clean maintainer-clean-generic \
526
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
527
+ tags-recursive uninstall uninstall-am
528
+
529
+
530
+ web-build web-test web-push:
531
+ list='$(SUBDIRS)'; for subdir in $$list; do \
532
+ test "$$subdir" = . \
533
+ || (cd $$subdir \
534
+ && $(MAKE) $(AM_MAKEFLAGS) \
535
+ WEB_LOC=$(WEB_LOC)$$subdir/ \
536
+ WEB_TEST_LOC=$(WEB_TEST_LOC)$$subdir/ \
537
+ $@); \
538
+ done
539
+
540
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
541
+ # Otherwise a system limit (for SysV at least) may be exceeded.
542
+ .NOEXPORT: