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,67 @@
1
+ AC_PREREQ(2.59)
2
+ AC_INIT([tnef],[1.4.9],[verdammelt@users.sourceforge.net])
3
+ AC_CONFIG_SRCDIR([src/tnef.c])
4
+ AM_INIT_AUTOMAKE
5
+ AC_CONFIG_HEADER([src/config.h])
6
+ AC_CONFIG_LIBOBJ_DIR(src/replace)
7
+
8
+ dnl check for programs
9
+ AC_PROG_AWK
10
+ AC_PROG_CC
11
+ AC_PROG_CPP
12
+ AC_PROG_CXX
13
+ AC_PROG_INSTALL
14
+ AC_PROG_LN_S
15
+ AC_PROG_RANLIB
16
+
17
+ dnl check for libraries
18
+ AC_CHECK_LIB([intl],gettext)
19
+
20
+ dnl check for headers
21
+ AC_HEADER_STDC
22
+ AC_CHECK_HEADERS([libintl.h])
23
+ AC_CHECK_DECLS([basename])
24
+
25
+ dnl check for typedefs
26
+ AC_TYPE_SIZE_T
27
+ AC_HEADER_STAT
28
+
29
+ dnl check for structures
30
+
31
+ dnl check for compiler characteristics.
32
+ AC_C_CONST
33
+ AC_CHECK_SIZEOF(int)
34
+
35
+ dnl check for library functions
36
+ AC_REPLACE_FUNCS(strdup getopt_long basename)
37
+ AC_CHECK_FUNCS(strrchr memmove memset strtoul)
38
+ AC_FUNC_VPRINTF
39
+ AC_FUNC_MALLOC
40
+
41
+ dnl do not use this, will try to add in lstat.c which is unnecessary
42
+ dnl AC_FUNC_STAT
43
+
44
+ dnl check for system services
45
+
46
+ dnl extra arguments:
47
+ AM_MAINTAINER_MODE
48
+ AC_ARG_ENABLE( warnings,
49
+ [ --enable-warnings enable compile warnings],
50
+ AC_COMPILE_WARNINGS)
51
+ AC_ARG_ENABLE( debug,
52
+ [ --enable-debug enable debug build],
53
+ AC_DEBUG_COMPILE)
54
+
55
+ dnl output
56
+ AC_CONFIG_FILES([Makefile BUGS tnef.spec
57
+ doc/Makefile doc/tnef.1 doc/www/Makefile
58
+ doc/www/cgi-bin/Makefile doc/www/htdocs/Makefile
59
+ src/Makefile src/replace/Makefile
60
+ tests/Makefile
61
+ tests/cmdline/Makefile
62
+ tests/files/Makefile
63
+ tests/files/baselines/Makefile
64
+ tests/files/datafiles/Makefile])
65
+
66
+ AC_OUTPUT
67
+
data/ext/tnef/depcomp ADDED
@@ -0,0 +1,584 @@
1
+ #! /bin/sh
2
+ # depcomp - compile a program generating dependencies as side-effects
3
+
4
+ scriptversion=2006-10-15.18
5
+
6
+ # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
7
+ # Foundation, Inc.
8
+
9
+ # This program is free software; you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation; either version 2, or (at your option)
12
+ # any later version.
13
+
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program; if not, write to the Free Software
21
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22
+ # 02110-1301, USA.
23
+
24
+ # As a special exception to the GNU General Public License, if you
25
+ # distribute this file as part of a program that contains a
26
+ # configuration script generated by Autoconf, you may include it under
27
+ # the same distribution terms that you use for the rest of that program.
28
+
29
+ # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
30
+
31
+ case $1 in
32
+ '')
33
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
34
+ exit 1;
35
+ ;;
36
+ -h | --h*)
37
+ cat <<\EOF
38
+ Usage: depcomp [--help] [--version] PROGRAM [ARGS]
39
+
40
+ Run PROGRAMS ARGS to compile a file, generating dependencies
41
+ as side-effects.
42
+
43
+ Environment variables:
44
+ depmode Dependency tracking mode.
45
+ source Source file read by `PROGRAMS ARGS'.
46
+ object Object file output by `PROGRAMS ARGS'.
47
+ DEPDIR directory where to store dependencies.
48
+ depfile Dependency file to output.
49
+ tmpdepfile Temporary file to use when outputing dependencies.
50
+ libtool Whether libtool is used (yes/no).
51
+
52
+ Report bugs to <bug-automake@gnu.org>.
53
+ EOF
54
+ exit $?
55
+ ;;
56
+ -v | --v*)
57
+ echo "depcomp $scriptversion"
58
+ exit $?
59
+ ;;
60
+ esac
61
+
62
+ if test -z "$depmode" || test -z "$source" || test -z "$object"; then
63
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
64
+ exit 1
65
+ fi
66
+
67
+ # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
68
+ depfile=${depfile-`echo "$object" |
69
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
70
+ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
71
+
72
+ rm -f "$tmpdepfile"
73
+
74
+ # Some modes work just like other modes, but use different flags. We
75
+ # parameterize here, but still list the modes in the big case below,
76
+ # to make depend.m4 easier to write. Note that we *cannot* use a case
77
+ # here, because this file can only contain one case statement.
78
+ if test "$depmode" = hp; then
79
+ # HP compiler uses -M and no extra arg.
80
+ gccflag=-M
81
+ depmode=gcc
82
+ fi
83
+
84
+ if test "$depmode" = dashXmstdout; then
85
+ # This is just like dashmstdout with a different argument.
86
+ dashmflag=-xM
87
+ depmode=dashmstdout
88
+ fi
89
+
90
+ case "$depmode" in
91
+ gcc3)
92
+ ## gcc 3 implements dependency tracking that does exactly what
93
+ ## we want. Yay! Note: for some reason libtool 1.4 doesn't like
94
+ ## it if -MD -MP comes after the -MF stuff. Hmm.
95
+ ## Unfortunately, FreeBSD c89 acceptance of flags depends upon
96
+ ## the command line argument order; so add the flags where they
97
+ ## appear in depend2.am. Note that the slowdown incurred here
98
+ ## affects only configure: in makefiles, %FASTDEP% shortcuts this.
99
+ for arg
100
+ do
101
+ case $arg in
102
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
103
+ *) set fnord "$@" "$arg" ;;
104
+ esac
105
+ shift # fnord
106
+ shift # $arg
107
+ done
108
+ "$@"
109
+ stat=$?
110
+ if test $stat -eq 0; then :
111
+ else
112
+ rm -f "$tmpdepfile"
113
+ exit $stat
114
+ fi
115
+ mv "$tmpdepfile" "$depfile"
116
+ ;;
117
+
118
+ gcc)
119
+ ## There are various ways to get dependency output from gcc. Here's
120
+ ## why we pick this rather obscure method:
121
+ ## - Don't want to use -MD because we'd like the dependencies to end
122
+ ## up in a subdir. Having to rename by hand is ugly.
123
+ ## (We might end up doing this anyway to support other compilers.)
124
+ ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
125
+ ## -MM, not -M (despite what the docs say).
126
+ ## - Using -M directly means running the compiler twice (even worse
127
+ ## than renaming).
128
+ if test -z "$gccflag"; then
129
+ gccflag=-MD,
130
+ fi
131
+ "$@" -Wp,"$gccflag$tmpdepfile"
132
+ stat=$?
133
+ if test $stat -eq 0; then :
134
+ else
135
+ rm -f "$tmpdepfile"
136
+ exit $stat
137
+ fi
138
+ rm -f "$depfile"
139
+ echo "$object : \\" > "$depfile"
140
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
141
+ ## The second -e expression handles DOS-style file names with drive letters.
142
+ sed -e 's/^[^:]*: / /' \
143
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
144
+ ## This next piece of magic avoids the `deleted header file' problem.
145
+ ## The problem is that when a header file which appears in a .P file
146
+ ## is deleted, the dependency causes make to die (because there is
147
+ ## typically no way to rebuild the header). We avoid this by adding
148
+ ## dummy dependencies for each header file. Too bad gcc doesn't do
149
+ ## this for us directly.
150
+ tr ' ' '
151
+ ' < "$tmpdepfile" |
152
+ ## Some versions of gcc put a space before the `:'. On the theory
153
+ ## that the space means something, we add a space to the output as
154
+ ## well.
155
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
156
+ ## correctly. Breaking it into two sed invocations is a workaround.
157
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
158
+ rm -f "$tmpdepfile"
159
+ ;;
160
+
161
+ hp)
162
+ # This case exists only to let depend.m4 do its work. It works by
163
+ # looking at the text of this script. This case will never be run,
164
+ # since it is checked for above.
165
+ exit 1
166
+ ;;
167
+
168
+ sgi)
169
+ if test "$libtool" = yes; then
170
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
171
+ else
172
+ "$@" -MDupdate "$tmpdepfile"
173
+ fi
174
+ stat=$?
175
+ if test $stat -eq 0; then :
176
+ else
177
+ rm -f "$tmpdepfile"
178
+ exit $stat
179
+ fi
180
+ rm -f "$depfile"
181
+
182
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
183
+ echo "$object : \\" > "$depfile"
184
+
185
+ # Clip off the initial element (the dependent). Don't try to be
186
+ # clever and replace this with sed code, as IRIX sed won't handle
187
+ # lines with more than a fixed number of characters (4096 in
188
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
189
+ # the IRIX cc adds comments like `#:fec' to the end of the
190
+ # dependency line.
191
+ tr ' ' '
192
+ ' < "$tmpdepfile" \
193
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
194
+ tr '
195
+ ' ' ' >> $depfile
196
+ echo >> $depfile
197
+
198
+ # The second pass generates a dummy entry for each header file.
199
+ tr ' ' '
200
+ ' < "$tmpdepfile" \
201
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
202
+ >> $depfile
203
+ else
204
+ # The sourcefile does not contain any dependencies, so just
205
+ # store a dummy comment line, to avoid errors with the Makefile
206
+ # "include basename.Plo" scheme.
207
+ echo "#dummy" > "$depfile"
208
+ fi
209
+ rm -f "$tmpdepfile"
210
+ ;;
211
+
212
+ aix)
213
+ # The C for AIX Compiler uses -M and outputs the dependencies
214
+ # in a .u file. In older versions, this file always lives in the
215
+ # current directory. Also, the AIX compiler puts `$object:' at the
216
+ # start of each line; $object doesn't have directory information.
217
+ # Version 6 uses the directory in both cases.
218
+ stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
219
+ tmpdepfile="$stripped.u"
220
+ if test "$libtool" = yes; then
221
+ "$@" -Wc,-M
222
+ else
223
+ "$@" -M
224
+ fi
225
+ stat=$?
226
+
227
+ if test -f "$tmpdepfile"; then :
228
+ else
229
+ stripped=`echo "$stripped" | sed 's,^.*/,,'`
230
+ tmpdepfile="$stripped.u"
231
+ fi
232
+
233
+ if test $stat -eq 0; then :
234
+ else
235
+ rm -f "$tmpdepfile"
236
+ exit $stat
237
+ fi
238
+
239
+ if test -f "$tmpdepfile"; then
240
+ outname="$stripped.o"
241
+ # Each line is of the form `foo.o: dependent.h'.
242
+ # Do two passes, one to just change these to
243
+ # `$object: dependent.h' and one to simply `dependent.h:'.
244
+ sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
245
+ sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
246
+ else
247
+ # The sourcefile does not contain any dependencies, so just
248
+ # store a dummy comment line, to avoid errors with the Makefile
249
+ # "include basename.Plo" scheme.
250
+ echo "#dummy" > "$depfile"
251
+ fi
252
+ rm -f "$tmpdepfile"
253
+ ;;
254
+
255
+ icc)
256
+ # Intel's C compiler understands `-MD -MF file'. However on
257
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
258
+ # ICC 7.0 will fill foo.d with something like
259
+ # foo.o: sub/foo.c
260
+ # foo.o: sub/foo.h
261
+ # which is wrong. We want:
262
+ # sub/foo.o: sub/foo.c
263
+ # sub/foo.o: sub/foo.h
264
+ # sub/foo.c:
265
+ # sub/foo.h:
266
+ # ICC 7.1 will output
267
+ # foo.o: sub/foo.c sub/foo.h
268
+ # and will wrap long lines using \ :
269
+ # foo.o: sub/foo.c ... \
270
+ # sub/foo.h ... \
271
+ # ...
272
+
273
+ "$@" -MD -MF "$tmpdepfile"
274
+ stat=$?
275
+ if test $stat -eq 0; then :
276
+ else
277
+ rm -f "$tmpdepfile"
278
+ exit $stat
279
+ fi
280
+ rm -f "$depfile"
281
+ # Each line is of the form `foo.o: dependent.h',
282
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
283
+ # Do two passes, one to just change these to
284
+ # `$object: dependent.h' and one to simply `dependent.h:'.
285
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
286
+ # Some versions of the HPUX 10.20 sed can't process this invocation
287
+ # correctly. Breaking it into two sed invocations is a workaround.
288
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
289
+ sed -e 's/$/ :/' >> "$depfile"
290
+ rm -f "$tmpdepfile"
291
+ ;;
292
+
293
+ hp2)
294
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
295
+ # compilers, which have integrated preprocessors. The correct option
296
+ # to use with these is +Maked; it writes dependencies to a file named
297
+ # 'foo.d', which lands next to the object file, wherever that
298
+ # happens to be.
299
+ # Much of this is similar to the tru64 case; see comments there.
300
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
301
+ test "x$dir" = "x$object" && dir=
302
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
303
+ if test "$libtool" = yes; then
304
+ tmpdepfile1=$dir$base.d
305
+ tmpdepfile2=$dir.libs/$base.d
306
+ "$@" -Wc,+Maked
307
+ else
308
+ tmpdepfile1=$dir$base.d
309
+ tmpdepfile2=$dir$base.d
310
+ "$@" +Maked
311
+ fi
312
+ stat=$?
313
+ if test $stat -eq 0; then :
314
+ else
315
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
316
+ exit $stat
317
+ fi
318
+
319
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
320
+ do
321
+ test -f "$tmpdepfile" && break
322
+ done
323
+ if test -f "$tmpdepfile"; then
324
+ sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
325
+ # Add `dependent.h:' lines.
326
+ sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
327
+ else
328
+ echo "#dummy" > "$depfile"
329
+ fi
330
+ rm -f "$tmpdepfile" "$tmpdepfile2"
331
+ ;;
332
+
333
+ tru64)
334
+ # The Tru64 compiler uses -MD to generate dependencies as a side
335
+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
336
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
337
+ # dependencies in `foo.d' instead, so we check for that too.
338
+ # Subdirectories are respected.
339
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
340
+ test "x$dir" = "x$object" && dir=
341
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
342
+
343
+ if test "$libtool" = yes; then
344
+ # With Tru64 cc, shared objects can also be used to make a
345
+ # static library. This mechanism is used in libtool 1.4 series to
346
+ # handle both shared and static libraries in a single compilation.
347
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
348
+ #
349
+ # With libtool 1.5 this exception was removed, and libtool now
350
+ # generates 2 separate objects for the 2 libraries. These two
351
+ # compilations output dependencies in $dir.libs/$base.o.d and
352
+ # in $dir$base.o.d. We have to check for both files, because
353
+ # one of the two compilations can be disabled. We should prefer
354
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
355
+ # automatically cleaned when .libs/ is deleted, while ignoring
356
+ # the former would cause a distcleancheck panic.
357
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
358
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
359
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
360
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
361
+ "$@" -Wc,-MD
362
+ else
363
+ tmpdepfile1=$dir$base.o.d
364
+ tmpdepfile2=$dir$base.d
365
+ tmpdepfile3=$dir$base.d
366
+ tmpdepfile4=$dir$base.d
367
+ "$@" -MD
368
+ fi
369
+
370
+ stat=$?
371
+ if test $stat -eq 0; then :
372
+ else
373
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
374
+ exit $stat
375
+ fi
376
+
377
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
378
+ do
379
+ test -f "$tmpdepfile" && break
380
+ done
381
+ if test -f "$tmpdepfile"; then
382
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
383
+ # That's a tab and a space in the [].
384
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
385
+ else
386
+ echo "#dummy" > "$depfile"
387
+ fi
388
+ rm -f "$tmpdepfile"
389
+ ;;
390
+
391
+ #nosideeffect)
392
+ # This comment above is used by automake to tell side-effect
393
+ # dependency tracking mechanisms from slower ones.
394
+
395
+ dashmstdout)
396
+ # Important note: in order to support this mode, a compiler *must*
397
+ # always write the preprocessed file to stdout, regardless of -o.
398
+ "$@" || exit $?
399
+
400
+ # Remove the call to Libtool.
401
+ if test "$libtool" = yes; then
402
+ while test $1 != '--mode=compile'; do
403
+ shift
404
+ done
405
+ shift
406
+ fi
407
+
408
+ # Remove `-o $object'.
409
+ IFS=" "
410
+ for arg
411
+ do
412
+ case $arg in
413
+ -o)
414
+ shift
415
+ ;;
416
+ $object)
417
+ shift
418
+ ;;
419
+ *)
420
+ set fnord "$@" "$arg"
421
+ shift # fnord
422
+ shift # $arg
423
+ ;;
424
+ esac
425
+ done
426
+
427
+ test -z "$dashmflag" && dashmflag=-M
428
+ # Require at least two characters before searching for `:'
429
+ # in the target name. This is to cope with DOS-style filenames:
430
+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
431
+ "$@" $dashmflag |
432
+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
433
+ rm -f "$depfile"
434
+ cat < "$tmpdepfile" > "$depfile"
435
+ tr ' ' '
436
+ ' < "$tmpdepfile" | \
437
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
438
+ ## correctly. Breaking it into two sed invocations is a workaround.
439
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
440
+ rm -f "$tmpdepfile"
441
+ ;;
442
+
443
+ dashXmstdout)
444
+ # This case only exists to satisfy depend.m4. It is never actually
445
+ # run, as this mode is specially recognized in the preamble.
446
+ exit 1
447
+ ;;
448
+
449
+ makedepend)
450
+ "$@" || exit $?
451
+ # Remove any Libtool call
452
+ if test "$libtool" = yes; then
453
+ while test $1 != '--mode=compile'; do
454
+ shift
455
+ done
456
+ shift
457
+ fi
458
+ # X makedepend
459
+ shift
460
+ cleared=no
461
+ for arg in "$@"; do
462
+ case $cleared in
463
+ no)
464
+ set ""; shift
465
+ cleared=yes ;;
466
+ esac
467
+ case "$arg" in
468
+ -D*|-I*)
469
+ set fnord "$@" "$arg"; shift ;;
470
+ # Strip any option that makedepend may not understand. Remove
471
+ # the object too, otherwise makedepend will parse it as a source file.
472
+ -*|$object)
473
+ ;;
474
+ *)
475
+ set fnord "$@" "$arg"; shift ;;
476
+ esac
477
+ done
478
+ obj_suffix="`echo $object | sed 's/^.*\././'`"
479
+ touch "$tmpdepfile"
480
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
481
+ rm -f "$depfile"
482
+ cat < "$tmpdepfile" > "$depfile"
483
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
484
+ ' | \
485
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
486
+ ## correctly. Breaking it into two sed invocations is a workaround.
487
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
488
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
489
+ ;;
490
+
491
+ cpp)
492
+ # Important note: in order to support this mode, a compiler *must*
493
+ # always write the preprocessed file to stdout.
494
+ "$@" || exit $?
495
+
496
+ # Remove the call to Libtool.
497
+ if test "$libtool" = yes; then
498
+ while test $1 != '--mode=compile'; do
499
+ shift
500
+ done
501
+ shift
502
+ fi
503
+
504
+ # Remove `-o $object'.
505
+ IFS=" "
506
+ for arg
507
+ do
508
+ case $arg in
509
+ -o)
510
+ shift
511
+ ;;
512
+ $object)
513
+ shift
514
+ ;;
515
+ *)
516
+ set fnord "$@" "$arg"
517
+ shift # fnord
518
+ shift # $arg
519
+ ;;
520
+ esac
521
+ done
522
+
523
+ "$@" -E |
524
+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
525
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
526
+ sed '$ s: \\$::' > "$tmpdepfile"
527
+ rm -f "$depfile"
528
+ echo "$object : \\" > "$depfile"
529
+ cat < "$tmpdepfile" >> "$depfile"
530
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
531
+ rm -f "$tmpdepfile"
532
+ ;;
533
+
534
+ msvisualcpp)
535
+ # Important note: in order to support this mode, a compiler *must*
536
+ # always write the preprocessed file to stdout, regardless of -o,
537
+ # because we must use -o when running libtool.
538
+ "$@" || exit $?
539
+ IFS=" "
540
+ for arg
541
+ do
542
+ case "$arg" in
543
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
544
+ set fnord "$@"
545
+ shift
546
+ shift
547
+ ;;
548
+ *)
549
+ set fnord "$@" "$arg"
550
+ shift
551
+ shift
552
+ ;;
553
+ esac
554
+ done
555
+ "$@" -E |
556
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
557
+ rm -f "$depfile"
558
+ echo "$object : \\" > "$depfile"
559
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
560
+ echo " " >> "$depfile"
561
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
562
+ rm -f "$tmpdepfile"
563
+ ;;
564
+
565
+ none)
566
+ exec "$@"
567
+ ;;
568
+
569
+ *)
570
+ echo "Unknown depmode $depmode" 1>&2
571
+ exit 1
572
+ ;;
573
+ esac
574
+
575
+ exit 0
576
+
577
+ # Local Variables:
578
+ # mode: shell-script
579
+ # sh-indentation: 2
580
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
581
+ # time-stamp-start: "scriptversion="
582
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
583
+ # time-stamp-end: "$"
584
+ # End: