nutcracker 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. data/README.md +22 -0
  2. data/Rakefile +55 -0
  3. data/bin/nutcracker +2 -0
  4. data/ext/nutcracker/ChangeLog +66 -0
  5. data/ext/nutcracker/LICENSE +177 -0
  6. data/ext/nutcracker/Makefile.am +7 -0
  7. data/ext/nutcracker/Makefile.in +726 -0
  8. data/ext/nutcracker/NOTICE +124 -0
  9. data/ext/nutcracker/README.md +240 -0
  10. data/ext/nutcracker/aclocal.m4 +956 -0
  11. data/ext/nutcracker/conf/nutcracker.leaf.yml +10 -0
  12. data/ext/nutcracker/conf/nutcracker.root.yml +8 -0
  13. data/ext/nutcracker/conf/nutcracker.yml +67 -0
  14. data/ext/nutcracker/config.h.in +316 -0
  15. data/ext/nutcracker/config/config.guess +1561 -0
  16. data/ext/nutcracker/config/config.sub +1686 -0
  17. data/ext/nutcracker/config/depcomp +630 -0
  18. data/ext/nutcracker/config/install-sh +520 -0
  19. data/ext/nutcracker/config/ltmain.sh +8413 -0
  20. data/ext/nutcracker/config/missing +376 -0
  21. data/ext/nutcracker/configure +18862 -0
  22. data/ext/nutcracker/configure.ac +155 -0
  23. data/ext/nutcracker/contrib/Makefile.am +3 -0
  24. data/ext/nutcracker/contrib/Makefile.in +560 -0
  25. data/ext/nutcracker/contrib/yaml-0.1.4.tar.gz +0 -0
  26. data/ext/nutcracker/contrib/yaml-0.1.4/LICENSE +19 -0
  27. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.am +20 -0
  28. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.in +736 -0
  29. data/ext/nutcracker/contrib/yaml-0.1.4/README +27 -0
  30. data/ext/nutcracker/contrib/yaml-0.1.4/aclocal.m4 +956 -0
  31. data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in +80 -0
  32. data/ext/nutcracker/contrib/yaml-0.1.4/config/config.guess +1561 -0
  33. data/ext/nutcracker/contrib/yaml-0.1.4/config/config.sub +1686 -0
  34. data/ext/nutcracker/contrib/yaml-0.1.4/config/depcomp +630 -0
  35. data/ext/nutcracker/contrib/yaml-0.1.4/config/install-sh +520 -0
  36. data/ext/nutcracker/contrib/yaml-0.1.4/config/ltmain.sh +8406 -0
  37. data/ext/nutcracker/contrib/yaml-0.1.4/config/missing +376 -0
  38. data/ext/nutcracker/contrib/yaml-0.1.4/configure +13085 -0
  39. data/ext/nutcracker/contrib/yaml-0.1.4/configure.ac +75 -0
  40. data/ext/nutcracker/contrib/yaml-0.1.4/doc/doxygen.cfg +222 -0
  41. data/ext/nutcracker/contrib/yaml-0.1.4/include/yaml.h +1971 -0
  42. data/ext/nutcracker/contrib/yaml-0.1.4/m4/libtool.m4 +7357 -0
  43. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltoptions.m4 +368 -0
  44. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltsugar.m4 +123 -0
  45. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltversion.m4 +23 -0
  46. data/ext/nutcracker/contrib/yaml-0.1.4/m4/lt~obsolete.m4 +92 -0
  47. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.am +4 -0
  48. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.in +484 -0
  49. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.c +1392 -0
  50. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.c +394 -0
  51. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.c +2329 -0
  52. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.c +432 -0
  53. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.c +1374 -0
  54. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.c +465 -0
  55. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.c +3570 -0
  56. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.c +141 -0
  57. data/ext/nutcracker/contrib/yaml-0.1.4/src/yaml_private.h +640 -0
  58. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.am +8 -0
  59. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.in +675 -0
  60. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.c +800 -0
  61. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.c +1130 -0
  62. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.c +217 -0
  63. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.c +202 -0
  64. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.c +311 -0
  65. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.c +327 -0
  66. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.c +63 -0
  67. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.c +63 -0
  68. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.c +63 -0
  69. data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-reader.c +354 -0
  70. data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-version.c +29 -0
  71. data/ext/nutcracker/extconf.rb +5 -0
  72. data/ext/nutcracker/m4/libtool.m4 +7376 -0
  73. data/ext/nutcracker/m4/ltoptions.m4 +368 -0
  74. data/ext/nutcracker/m4/ltsugar.m4 +123 -0
  75. data/ext/nutcracker/m4/ltversion.m4 +23 -0
  76. data/ext/nutcracker/m4/lt~obsolete.m4 +92 -0
  77. data/ext/nutcracker/notes/c-styleguide.txt +425 -0
  78. data/ext/nutcracker/notes/debug.txt +96 -0
  79. data/ext/nutcracker/notes/memcache.txt +123 -0
  80. data/ext/nutcracker/notes/recommendation.md +118 -0
  81. data/ext/nutcracker/notes/redis.md +415 -0
  82. data/ext/nutcracker/notes/socket.txt +131 -0
  83. data/ext/nutcracker/scripts/multi_get.sh +26 -0
  84. data/ext/nutcracker/scripts/nutcracker.init +73 -0
  85. data/ext/nutcracker/scripts/nutcracker.spec +52 -0
  86. data/ext/nutcracker/scripts/pipelined_read.sh +23 -0
  87. data/ext/nutcracker/scripts/pipelined_write.sh +29 -0
  88. data/ext/nutcracker/scripts/populate_memcached.sh +24 -0
  89. data/ext/nutcracker/scripts/redis-check.py +23 -0
  90. data/ext/nutcracker/scripts/redis-check.sh +564 -0
  91. data/ext/nutcracker/src/Makefile.am +46 -0
  92. data/ext/nutcracker/src/Makefile.in +726 -0
  93. data/ext/nutcracker/src/hashkit/Makefile.am +22 -0
  94. data/ext/nutcracker/src/hashkit/Makefile.in +501 -0
  95. data/ext/nutcracker/src/hashkit/nc_crc32.c +105 -0
  96. data/ext/nutcracker/src/hashkit/nc_fnv.c +82 -0
  97. data/ext/nutcracker/src/hashkit/nc_hashkit.h +74 -0
  98. data/ext/nutcracker/src/hashkit/nc_hsieh.c +93 -0
  99. data/ext/nutcracker/src/hashkit/nc_jenkins.c +230 -0
  100. data/ext/nutcracker/src/hashkit/nc_ketama.c +240 -0
  101. data/ext/nutcracker/src/hashkit/nc_md5.c +379 -0
  102. data/ext/nutcracker/src/hashkit/nc_modula.c +144 -0
  103. data/ext/nutcracker/src/hashkit/nc_murmur.c +99 -0
  104. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.c +51 -0
  105. data/ext/nutcracker/src/hashkit/nc_random.c +146 -0
  106. data/ext/nutcracker/src/nc.c +573 -0
  107. data/ext/nutcracker/src/nc_array.c +204 -0
  108. data/ext/nutcracker/src/nc_array.h +73 -0
  109. data/ext/nutcracker/src/nc_client.c +189 -0
  110. data/ext/nutcracker/src/nc_client.h +28 -0
  111. data/ext/nutcracker/src/nc_conf.c +1766 -0
  112. data/ext/nutcracker/src/nc_conf.h +134 -0
  113. data/ext/nutcracker/src/nc_connection.c +392 -0
  114. data/ext/nutcracker/src/nc_connection.h +99 -0
  115. data/ext/nutcracker/src/nc_core.c +334 -0
  116. data/ext/nutcracker/src/nc_core.h +131 -0
  117. data/ext/nutcracker/src/nc_event.c +214 -0
  118. data/ext/nutcracker/src/nc_event.h +39 -0
  119. data/ext/nutcracker/src/nc_log.c +254 -0
  120. data/ext/nutcracker/src/nc_log.h +120 -0
  121. data/ext/nutcracker/src/nc_mbuf.c +285 -0
  122. data/ext/nutcracker/src/nc_mbuf.h +67 -0
  123. data/ext/nutcracker/src/nc_message.c +828 -0
  124. data/ext/nutcracker/src/nc_message.h +253 -0
  125. data/ext/nutcracker/src/nc_proxy.c +359 -0
  126. data/ext/nutcracker/src/nc_proxy.h +34 -0
  127. data/ext/nutcracker/src/nc_queue.h +788 -0
  128. data/ext/nutcracker/src/nc_rbtree.c +348 -0
  129. data/ext/nutcracker/src/nc_rbtree.h +47 -0
  130. data/ext/nutcracker/src/nc_request.c +588 -0
  131. data/ext/nutcracker/src/nc_response.c +332 -0
  132. data/ext/nutcracker/src/nc_server.c +841 -0
  133. data/ext/nutcracker/src/nc_server.h +143 -0
  134. data/ext/nutcracker/src/nc_signal.c +131 -0
  135. data/ext/nutcracker/src/nc_signal.h +34 -0
  136. data/ext/nutcracker/src/nc_stats.c +1188 -0
  137. data/ext/nutcracker/src/nc_stats.h +206 -0
  138. data/ext/nutcracker/src/nc_string.c +109 -0
  139. data/ext/nutcracker/src/nc_string.h +112 -0
  140. data/ext/nutcracker/src/nc_util.c +619 -0
  141. data/ext/nutcracker/src/nc_util.h +214 -0
  142. data/ext/nutcracker/src/proto/Makefile.am +14 -0
  143. data/ext/nutcracker/src/proto/Makefile.in +482 -0
  144. data/ext/nutcracker/src/proto/nc_memcache.c +1306 -0
  145. data/ext/nutcracker/src/proto/nc_proto.h +155 -0
  146. data/ext/nutcracker/src/proto/nc_redis.c +2102 -0
  147. data/lib/nutcracker.rb +7 -0
  148. data/lib/nutcracker/version.rb +3 -0
  149. metadata +194 -0
@@ -0,0 +1,22 @@
1
+ # Nutcracker
2
+ This "library" wraps Twitter's [Nutcracker](https://github.com/twitter/twemproxy) in a gem package and provides ( in the near future I hope ) simple ruby API to the `nutcracker` executable.
3
+
4
+ ## Motivation
5
+ The main motivation here is to take the advantages of working with Bundler's dependencies management and to be able to embed Twitter's [Nutcracker](https://github.com/twitter/twemproxy) as a dependency to any Ruby project, this allow you to create small-configuration-only-apps tied to specific version of Nutcracker as I show in the example bellow.
6
+
7
+ ## Installation
8
+
9
+ `gem install nutcracker`
10
+
11
+ Or if you are using a `Gemfile`
12
+
13
+ ```ruby
14
+ source :rubygems
15
+
16
+ gem 'nutcracker'
17
+ ```
18
+
19
+ ## Wanna build a new version?
20
+ * Set the version @ `lib/nutcracker/version.rb` ( [Available Versions](https://code.google.com/p/twemproxy/downloads/list) )
21
+ * run the `rake build` command
22
+ * look for `nutcracker-X.Y.Z` gem under the pkg folder
@@ -0,0 +1,55 @@
1
+ $:.unshift File.expand_path '../lib', __FILE__
2
+ require 'nutcracker'
3
+ require 'rake'
4
+ require 'rubygems/package_task'
5
+
6
+ Nutcracker::GemSpec = Gem::Specification.new do |s|
7
+ s.name = "nutcracker"
8
+ s.version = Nutcracker.version.dup
9
+ s.platform = Gem::Platform::RUBY
10
+ s.summary = "Twitter's Nutcraker Gem Wrapper"
11
+ s.description = "Gem/Bundler benefits for Twitter's Nutcraker C app"
12
+ s.author = "Eran Barak Levi"
13
+ s.email = "eran@kontera.com"
14
+ s.homepage = 'http://www.kontera.com'
15
+ s.required_ruby_version = '>= 1.8.5'
16
+ s.rubyforge_project = "ruby-nutcracker"
17
+ s.files = %w(README.md Rakefile) + Dir.glob("{bin,lib,ext}/**/*")
18
+ s.require_path = "lib"
19
+ s.extensions = ['ext/nutcracker/extconf.rb']
20
+ s.executables = ['nutcracker']
21
+ s.require_paths = ['lib']
22
+ end
23
+
24
+ task :download do
25
+ "nutcracker-#{Nutcracker.version}.tar.gz".tap do |tarball|
26
+ sh "mkdir ext" unless File.directory? "ext"
27
+ sh "rm -rf ext/nutcracker"
28
+ sh "wget https://twemproxy.googlecode.com/files/#{tarball}"
29
+ sh "tar -zxvf #{tarball}"
30
+ sh "mv nutcracker-#{Nutcracker.version} ext/nutcracker"
31
+ File.open("ext/nutcracker/extconf.rb",'w') do |file|
32
+ file.puts %q{
33
+ raise "no support for #{RUBY_PLATFORM}" if RUBY_PLATFORM =~ /darwin|mswin|mingw/
34
+ system './configure'
35
+ system 'make'
36
+ }
37
+ end
38
+ sh "rm #{tarball}"
39
+ end
40
+ end
41
+
42
+ task :build => :download do
43
+ sh "rake gem"
44
+ end
45
+
46
+ task :gem => [:clobber_package]
47
+
48
+ Gem::PackageTask.new Nutcracker::GemSpec do |p|
49
+ p.gem_spec = Nutcracker::GemSpec
50
+ end
51
+
52
+ task :install => [:gem] do
53
+ sh "gem install pkg/nutcracker"
54
+ Rake::Task['clobber_package'].execute
55
+ end
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ruby
2
+ exec File.expand_path('../../ext/nutcracker/src/nutcracker', __FILE__ ), *ARGV
@@ -0,0 +1,66 @@
1
+ 2013-31-01 Manju Rajashekhar <manj@twitter.com>
2
+ * twemproxy: version 0.2.3 release
3
+ RPOPLPUSH, SDIFF, SDIFFSTORE, SINTER, SINTERSTORE, SMOVE, SUNION, SUNIONSTORE, ZINTERSTORE, and ZUNIONSTORE support (dcartoon)
4
+ EVAL and EVALSHA support (ferenyx)
5
+ exit 1 if configuration file is invalid (cofyc)
6
+ return non-zero exit status when nutcracker cannot start for some reason
7
+ use server names in stats (charsyam)
8
+ Fix failure to resolve long FQDN name resolve (conmame)
9
+ add support for hash tags
10
+
11
+ 2012-18-10 Manju Rajashekhar <manj@twitter.com>
12
+
13
+ * twemproxy: version 0.2.2 release
14
+ fix the off-by-one error when calculating redis key length
15
+
16
+ 2012-12-10 Manju Rajashekhar <manj@twitter.com>
17
+
18
+ * twemproxy: version 0.2.1 release
19
+ don't use buf in conf_add_server
20
+ allow an optional instance name for consistent hashing (charsyam)
21
+ add --stats-addr=S option
22
+ add stats-bind-any -a option (charsyam)
23
+
24
+ 2012-12-03 Manju Rajashekhar <manj@twitter.com>
25
+
26
+ * twemproxy: version 0.2.0 release
27
+ add -D or --describe-stats command-line argument to print stats description
28
+ redis support in twemproxy
29
+ setup pre/post splitcopy and pre/post coalesce handlers in msg struct
30
+ memcache pre_splitcopy, post_splitcopy, pre_coalesce and post_coalesce handlers
31
+ every fragment of a msg vector keeps track of the first/last fragment, number of fragments and fragment owner
32
+ set up msg parser handler for memcache connections
33
+ refactor parsing code and create header file nc_proto.h
34
+ stats_listen should use st->addr as the listening address string
35
+ delete stats tracking memcache requests and responses; stats module no longer tracks protocol related stats
36
+
37
+ 2012-10-27 Manju Rajashekhar <manj@twitter.com>
38
+
39
+ * twemproxy: version 0.1.20 release
40
+ on msg_repair, msg->pos should point to nbuf->pos and not nbuf->last
41
+ refactor memcache parsing code into proto directory
42
+ add redis option to configuration file
43
+ fix macro definition strXcmp error for big endian
44
+ fix log_hexdump and loga_hexdump
45
+
46
+ 2012-07-31 Manju Rajashekhar <manj@twitter.com>
47
+
48
+ * twemproxy: version 0.1.19 release
49
+ close server connection on a stray response (yashh, bmatheny)
50
+
51
+ 2012-06-19 Manju Rajashekhar <manj@twitter.com>
52
+
53
+ * twemproxy: version 0.1.18 release
54
+ command line option to set mbuf chunk size
55
+
56
+ 2012-05-09 Manju Rajashekhar <manj@twitter.com>
57
+
58
+ * twemproxy: version 0.1.17 release
59
+ use _exit(0) instead of exit(0) when daemonizing
60
+ use loga instead of log_stderr in nc_stacktrace
61
+
62
+ 2012-02-09 Manju Rajashekhar <manj@twitter.com>
63
+
64
+ * twemproxy: version 0.1.16 release
65
+ twemproxy (aka nutcracker) is a fast and lightweight proxy for memcached protocol.
66
+
@@ -0,0 +1,177 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
@@ -0,0 +1,7 @@
1
+ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure config.h.in config.h.in~ stamp-h.in
2
+
3
+ ACLOCAL_AMFLAGS = -I m4
4
+
5
+ SUBDIRS = contrib src
6
+
7
+ EXTRA_DIST = README.md NOTICE LICENSE ChangeLog conf scripts notes
@@ -0,0 +1,726 @@
1
+ # Makefile.in generated by automake 1.11 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 Free Software Foundation,
6
+ # 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
+ build_triplet = @build@
35
+ host_triplet = @host@
36
+ subdir = .
37
+ DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
38
+ $(srcdir)/Makefile.in $(srcdir)/config.h.in \
39
+ $(top_srcdir)/configure ChangeLog config/config.guess \
40
+ config/config.sub config/depcomp config/install-sh \
41
+ config/ltmain.sh config/missing
42
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
43
+ am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
44
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
45
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
46
+ $(top_srcdir)/configure.ac
47
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
48
+ $(ACLOCAL_M4)
49
+ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
50
+ configure.lineno config.status.lineno
51
+ mkinstalldirs = $(install_sh) -d
52
+ CONFIG_HEADER = config.h
53
+ CONFIG_CLEAN_FILES =
54
+ CONFIG_CLEAN_VPATH_FILES =
55
+ SOURCES =
56
+ DIST_SOURCES =
57
+ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
58
+ html-recursive info-recursive install-data-recursive \
59
+ install-dvi-recursive install-exec-recursive \
60
+ install-html-recursive install-info-recursive \
61
+ install-pdf-recursive install-ps-recursive install-recursive \
62
+ installcheck-recursive installdirs-recursive pdf-recursive \
63
+ ps-recursive uninstall-recursive
64
+ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
65
+ distclean-recursive maintainer-clean-recursive
66
+ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
67
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
68
+ distdir dist dist-all distcheck
69
+ ETAGS = etags
70
+ CTAGS = ctags
71
+ DIST_SUBDIRS = $(SUBDIRS)
72
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
73
+ distdir = $(PACKAGE)-$(VERSION)
74
+ top_distdir = $(distdir)
75
+ am__remove_distdir = \
76
+ { test ! -d "$(distdir)" \
77
+ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
78
+ && rm -fr "$(distdir)"; }; }
79
+ am__relativize = \
80
+ dir0=`pwd`; \
81
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
82
+ sed_rest='s,^[^/]*/*,,'; \
83
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
84
+ sed_butlast='s,/*[^/]*$$,,'; \
85
+ while test -n "$$dir1"; do \
86
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
87
+ if test "$$first" != "."; then \
88
+ if test "$$first" = ".."; then \
89
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
90
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
91
+ else \
92
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
93
+ if test "$$first2" = "$$first"; then \
94
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
95
+ else \
96
+ dir2="../$$dir2"; \
97
+ fi; \
98
+ dir0="$$dir0"/"$$first"; \
99
+ fi; \
100
+ fi; \
101
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
102
+ done; \
103
+ reldir="$$dir2"
104
+ DIST_ARCHIVES = $(distdir).tar.gz
105
+ GZIP_ENV = --best
106
+ distuninstallcheck_listfiles = find . -type f -print
107
+ distcleancheck_listfiles = find . -type f -print
108
+ ACLOCAL = @ACLOCAL@
109
+ AMTAR = @AMTAR@
110
+ AR = @AR@
111
+ AUTOCONF = @AUTOCONF@
112
+ AUTOHEADER = @AUTOHEADER@
113
+ AUTOMAKE = @AUTOMAKE@
114
+ AWK = @AWK@
115
+ CC = @CC@
116
+ CCDEPMODE = @CCDEPMODE@
117
+ CFLAGS = @CFLAGS@
118
+ CPP = @CPP@
119
+ CPPFLAGS = @CPPFLAGS@
120
+ CXX = @CXX@
121
+ CXXCPP = @CXXCPP@
122
+ CXXDEPMODE = @CXXDEPMODE@
123
+ CXXFLAGS = @CXXFLAGS@
124
+ CYGPATH_W = @CYGPATH_W@
125
+ DEFS = @DEFS@
126
+ DEPDIR = @DEPDIR@
127
+ DSYMUTIL = @DSYMUTIL@
128
+ DUMPBIN = @DUMPBIN@
129
+ ECHO_C = @ECHO_C@
130
+ ECHO_N = @ECHO_N@
131
+ ECHO_T = @ECHO_T@
132
+ EGREP = @EGREP@
133
+ EXEEXT = @EXEEXT@
134
+ FGREP = @FGREP@
135
+ GREP = @GREP@
136
+ INSTALL = @INSTALL@
137
+ INSTALL_DATA = @INSTALL_DATA@
138
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
139
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
140
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
141
+ LD = @LD@
142
+ LDFLAGS = @LDFLAGS@
143
+ LIBOBJS = @LIBOBJS@
144
+ LIBS = @LIBS@
145
+ LIBTOOL = @LIBTOOL@
146
+ LIPO = @LIPO@
147
+ LN_S = @LN_S@
148
+ LTLIBOBJS = @LTLIBOBJS@
149
+ MAKEINFO = @MAKEINFO@
150
+ MKDIR_P = @MKDIR_P@
151
+ NM = @NM@
152
+ NMEDIT = @NMEDIT@
153
+ OBJDUMP = @OBJDUMP@
154
+ OBJEXT = @OBJEXT@
155
+ OTOOL = @OTOOL@
156
+ OTOOL64 = @OTOOL64@
157
+ PACKAGE = @PACKAGE@
158
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
159
+ PACKAGE_NAME = @PACKAGE_NAME@
160
+ PACKAGE_STRING = @PACKAGE_STRING@
161
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
162
+ PACKAGE_URL = @PACKAGE_URL@
163
+ PACKAGE_VERSION = @PACKAGE_VERSION@
164
+ PATH_SEPARATOR = @PATH_SEPARATOR@
165
+ RANLIB = @RANLIB@
166
+ SED = @SED@
167
+ SET_MAKE = @SET_MAKE@
168
+ SHELL = @SHELL@
169
+ STRIP = @STRIP@
170
+ VERSION = @VERSION@
171
+ abs_builddir = @abs_builddir@
172
+ abs_srcdir = @abs_srcdir@
173
+ abs_top_builddir = @abs_top_builddir@
174
+ abs_top_srcdir = @abs_top_srcdir@
175
+ ac_ct_CC = @ac_ct_CC@
176
+ ac_ct_CXX = @ac_ct_CXX@
177
+ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
178
+ am__include = @am__include@
179
+ am__leading_dot = @am__leading_dot@
180
+ am__quote = @am__quote@
181
+ am__tar = @am__tar@
182
+ am__untar = @am__untar@
183
+ bindir = @bindir@
184
+ build = @build@
185
+ build_alias = @build_alias@
186
+ build_cpu = @build_cpu@
187
+ build_os = @build_os@
188
+ build_vendor = @build_vendor@
189
+ builddir = @builddir@
190
+ datadir = @datadir@
191
+ datarootdir = @datarootdir@
192
+ docdir = @docdir@
193
+ dvidir = @dvidir@
194
+ exec_prefix = @exec_prefix@
195
+ host = @host@
196
+ host_alias = @host_alias@
197
+ host_cpu = @host_cpu@
198
+ host_os = @host_os@
199
+ host_vendor = @host_vendor@
200
+ htmldir = @htmldir@
201
+ includedir = @includedir@
202
+ infodir = @infodir@
203
+ install_sh = @install_sh@
204
+ libdir = @libdir@
205
+ libexecdir = @libexecdir@
206
+ localedir = @localedir@
207
+ localstatedir = @localstatedir@
208
+ lt_ECHO = @lt_ECHO@
209
+ mandir = @mandir@
210
+ mkdir_p = @mkdir_p@
211
+ oldincludedir = @oldincludedir@
212
+ pdfdir = @pdfdir@
213
+ prefix = @prefix@
214
+ program_transform_name = @program_transform_name@
215
+ psdir = @psdir@
216
+ sbindir = @sbindir@
217
+ sharedstatedir = @sharedstatedir@
218
+ srcdir = @srcdir@
219
+ subdirs = @subdirs@
220
+ sysconfdir = @sysconfdir@
221
+ target_alias = @target_alias@
222
+ top_build_prefix = @top_build_prefix@
223
+ top_builddir = @top_builddir@
224
+ top_srcdir = @top_srcdir@
225
+ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure config.h.in config.h.in~ stamp-h.in
226
+ ACLOCAL_AMFLAGS = -I m4
227
+ SUBDIRS = contrib src
228
+ EXTRA_DIST = README.md NOTICE LICENSE ChangeLog conf scripts notes
229
+ all: config.h
230
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
231
+
232
+ .SUFFIXES:
233
+ am--refresh:
234
+ @:
235
+ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
236
+ @for dep in $?; do \
237
+ case '$(am__configure_deps)' in \
238
+ *$$dep*) \
239
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
240
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
241
+ && exit 0; \
242
+ exit 1;; \
243
+ esac; \
244
+ done; \
245
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
246
+ $(am__cd) $(top_srcdir) && \
247
+ $(AUTOMAKE) --foreign Makefile
248
+ .PRECIOUS: Makefile
249
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
250
+ @case '$?' in \
251
+ *config.status*) \
252
+ echo ' $(SHELL) ./config.status'; \
253
+ $(SHELL) ./config.status;; \
254
+ *) \
255
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
256
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
257
+ esac;
258
+
259
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
260
+ $(SHELL) ./config.status --recheck
261
+
262
+ $(top_srcdir)/configure: $(am__configure_deps)
263
+ $(am__cd) $(srcdir) && $(AUTOCONF)
264
+ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
265
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
266
+ $(am__aclocal_m4_deps):
267
+
268
+ config.h: stamp-h1
269
+ @if test ! -f $@; then \
270
+ rm -f stamp-h1; \
271
+ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
272
+ else :; fi
273
+
274
+ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
275
+ @rm -f stamp-h1
276
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
277
+ $(srcdir)/config.h.in: $(am__configure_deps)
278
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
279
+ rm -f stamp-h1
280
+ touch $@
281
+
282
+ distclean-hdr:
283
+ -rm -f config.h stamp-h1
284
+
285
+ mostlyclean-libtool:
286
+ -rm -f *.lo
287
+
288
+ clean-libtool:
289
+ -rm -rf .libs _libs
290
+
291
+ distclean-libtool:
292
+ -rm -f libtool config.lt
293
+
294
+ # This directory's subdirectories are mostly independent; you can cd
295
+ # into them and run `make' without going through this Makefile.
296
+ # To change the values of `make' variables: instead of editing Makefiles,
297
+ # (1) if the variable is set in `config.status', edit `config.status'
298
+ # (which will cause the Makefiles to be regenerated when you run `make');
299
+ # (2) otherwise, pass the desired values on the `make' command line.
300
+ $(RECURSIVE_TARGETS):
301
+ @failcom='exit 1'; \
302
+ for f in x $$MAKEFLAGS; do \
303
+ case $$f in \
304
+ *=* | --[!k]*);; \
305
+ *k*) failcom='fail=yes';; \
306
+ esac; \
307
+ done; \
308
+ dot_seen=no; \
309
+ target=`echo $@ | sed s/-recursive//`; \
310
+ list='$(SUBDIRS)'; for subdir in $$list; do \
311
+ echo "Making $$target in $$subdir"; \
312
+ if test "$$subdir" = "."; then \
313
+ dot_seen=yes; \
314
+ local_target="$$target-am"; \
315
+ else \
316
+ local_target="$$target"; \
317
+ fi; \
318
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
319
+ || eval $$failcom; \
320
+ done; \
321
+ if test "$$dot_seen" = "no"; then \
322
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
323
+ fi; test -z "$$fail"
324
+
325
+ $(RECURSIVE_CLEAN_TARGETS):
326
+ @failcom='exit 1'; \
327
+ for f in x $$MAKEFLAGS; do \
328
+ case $$f in \
329
+ *=* | --[!k]*);; \
330
+ *k*) failcom='fail=yes';; \
331
+ esac; \
332
+ done; \
333
+ dot_seen=no; \
334
+ case "$@" in \
335
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
336
+ *) list='$(SUBDIRS)' ;; \
337
+ esac; \
338
+ rev=''; for subdir in $$list; do \
339
+ if test "$$subdir" = "."; then :; else \
340
+ rev="$$subdir $$rev"; \
341
+ fi; \
342
+ done; \
343
+ rev="$$rev ."; \
344
+ target=`echo $@ | sed s/-recursive//`; \
345
+ for subdir in $$rev; do \
346
+ echo "Making $$target in $$subdir"; \
347
+ if test "$$subdir" = "."; then \
348
+ local_target="$$target-am"; \
349
+ else \
350
+ local_target="$$target"; \
351
+ fi; \
352
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
353
+ || eval $$failcom; \
354
+ done && test -z "$$fail"
355
+ tags-recursive:
356
+ list='$(SUBDIRS)'; for subdir in $$list; do \
357
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
358
+ done
359
+ ctags-recursive:
360
+ list='$(SUBDIRS)'; for subdir in $$list; do \
361
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
362
+ done
363
+
364
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
365
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
366
+ unique=`for i in $$list; do \
367
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
368
+ done | \
369
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
370
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
371
+ mkid -fID $$unique
372
+ tags: TAGS
373
+
374
+ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
375
+ $(TAGS_FILES) $(LISP)
376
+ set x; \
377
+ here=`pwd`; \
378
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
379
+ include_option=--etags-include; \
380
+ empty_fix=.; \
381
+ else \
382
+ include_option=--include; \
383
+ empty_fix=; \
384
+ fi; \
385
+ list='$(SUBDIRS)'; for subdir in $$list; do \
386
+ if test "$$subdir" = .; then :; else \
387
+ test ! -f $$subdir/TAGS || \
388
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
389
+ fi; \
390
+ done; \
391
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
392
+ unique=`for i in $$list; do \
393
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
394
+ done | \
395
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
396
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
397
+ shift; \
398
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
399
+ test -n "$$unique" || unique=$$empty_fix; \
400
+ if test $$# -gt 0; then \
401
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
402
+ "$$@" $$unique; \
403
+ else \
404
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
405
+ $$unique; \
406
+ fi; \
407
+ fi
408
+ ctags: CTAGS
409
+ CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
410
+ $(TAGS_FILES) $(LISP)
411
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
412
+ unique=`for i in $$list; do \
413
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
414
+ done | \
415
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
416
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
417
+ test -z "$(CTAGS_ARGS)$$unique" \
418
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
419
+ $$unique
420
+
421
+ GTAGS:
422
+ here=`$(am__cd) $(top_builddir) && pwd` \
423
+ && $(am__cd) $(top_srcdir) \
424
+ && gtags -i $(GTAGS_ARGS) "$$here"
425
+
426
+ distclean-tags:
427
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
428
+
429
+ distdir: $(DISTFILES)
430
+ $(am__remove_distdir)
431
+ test -d "$(distdir)" || mkdir "$(distdir)"
432
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
433
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
434
+ list='$(DISTFILES)'; \
435
+ dist_files=`for file in $$list; do echo $$file; done | \
436
+ sed -e "s|^$$srcdirstrip/||;t" \
437
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
438
+ case $$dist_files in \
439
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
440
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
441
+ sort -u` ;; \
442
+ esac; \
443
+ for file in $$dist_files; do \
444
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
445
+ if test -d $$d/$$file; then \
446
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
447
+ if test -d "$(distdir)/$$file"; then \
448
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
449
+ fi; \
450
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
451
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
452
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
453
+ fi; \
454
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
455
+ else \
456
+ test -f "$(distdir)/$$file" \
457
+ || cp -p $$d/$$file "$(distdir)/$$file" \
458
+ || exit 1; \
459
+ fi; \
460
+ done
461
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
462
+ if test "$$subdir" = .; then :; else \
463
+ test -d "$(distdir)/$$subdir" \
464
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
465
+ || exit 1; \
466
+ fi; \
467
+ done
468
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
469
+ if test "$$subdir" = .; then :; else \
470
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
471
+ $(am__relativize); \
472
+ new_distdir=$$reldir; \
473
+ dir1=$$subdir; dir2="$(top_distdir)"; \
474
+ $(am__relativize); \
475
+ new_top_distdir=$$reldir; \
476
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
477
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
478
+ ($(am__cd) $$subdir && \
479
+ $(MAKE) $(AM_MAKEFLAGS) \
480
+ top_distdir="$$new_top_distdir" \
481
+ distdir="$$new_distdir" \
482
+ am__remove_distdir=: \
483
+ am__skip_length_check=: \
484
+ am__skip_mode_fix=: \
485
+ distdir) \
486
+ || exit 1; \
487
+ fi; \
488
+ done
489
+ -test -n "$(am__skip_mode_fix)" \
490
+ || find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
491
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
492
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
493
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
494
+ || chmod -R a+r "$(distdir)"
495
+ dist-gzip: distdir
496
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
497
+ $(am__remove_distdir)
498
+
499
+ dist-bzip2: distdir
500
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
501
+ $(am__remove_distdir)
502
+
503
+ dist-lzma: distdir
504
+ tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
505
+ $(am__remove_distdir)
506
+
507
+ dist-xz: distdir
508
+ tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
509
+ $(am__remove_distdir)
510
+
511
+ dist-tarZ: distdir
512
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
513
+ $(am__remove_distdir)
514
+
515
+ dist-shar: distdir
516
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
517
+ $(am__remove_distdir)
518
+
519
+ dist-zip: distdir
520
+ -rm -f $(distdir).zip
521
+ zip -rq $(distdir).zip $(distdir)
522
+ $(am__remove_distdir)
523
+
524
+ dist dist-all: distdir
525
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
526
+ $(am__remove_distdir)
527
+
528
+ # This target untars the dist file and tries a VPATH configuration. Then
529
+ # it guarantees that the distribution is self-contained by making another
530
+ # tarfile.
531
+ distcheck: dist
532
+ case '$(DIST_ARCHIVES)' in \
533
+ *.tar.gz*) \
534
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
535
+ *.tar.bz2*) \
536
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
537
+ *.tar.lzma*) \
538
+ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
539
+ *.tar.xz*) \
540
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
541
+ *.tar.Z*) \
542
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
543
+ *.shar.gz*) \
544
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
545
+ *.zip*) \
546
+ unzip $(distdir).zip ;;\
547
+ esac
548
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
549
+ mkdir $(distdir)/_build
550
+ mkdir $(distdir)/_inst
551
+ chmod a-w $(distdir)
552
+ test -d $(distdir)/_build || exit 0; \
553
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
554
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
555
+ && am__cwd=`pwd` \
556
+ && $(am__cd) $(distdir)/_build \
557
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
558
+ $(DISTCHECK_CONFIGURE_FLAGS) \
559
+ && $(MAKE) $(AM_MAKEFLAGS) \
560
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
561
+ && $(MAKE) $(AM_MAKEFLAGS) check \
562
+ && $(MAKE) $(AM_MAKEFLAGS) install \
563
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
564
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
565
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
566
+ distuninstallcheck \
567
+ && chmod -R a-w "$$dc_install_base" \
568
+ && ({ \
569
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
570
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
571
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
572
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
573
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
574
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
575
+ && rm -rf "$$dc_destdir" \
576
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
577
+ && rm -rf $(DIST_ARCHIVES) \
578
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
579
+ && cd "$$am__cwd" \
580
+ || exit 1
581
+ $(am__remove_distdir)
582
+ @(echo "$(distdir) archives ready for distribution: "; \
583
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
584
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
585
+ distuninstallcheck:
586
+ @$(am__cd) '$(distuninstallcheck_dir)' \
587
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
588
+ || { echo "ERROR: files left after uninstall:" ; \
589
+ if test -n "$(DESTDIR)"; then \
590
+ echo " (check DESTDIR support)"; \
591
+ fi ; \
592
+ $(distuninstallcheck_listfiles) ; \
593
+ exit 1; } >&2
594
+ distcleancheck: distclean
595
+ @if test '$(srcdir)' = . ; then \
596
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
597
+ exit 1 ; \
598
+ fi
599
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
600
+ || { echo "ERROR: files left in build directory after distclean:" ; \
601
+ $(distcleancheck_listfiles) ; \
602
+ exit 1; } >&2
603
+ check-am: all-am
604
+ check: check-recursive
605
+ all-am: Makefile config.h
606
+ installdirs: installdirs-recursive
607
+ installdirs-am:
608
+ install: install-recursive
609
+ install-exec: install-exec-recursive
610
+ install-data: install-data-recursive
611
+ uninstall: uninstall-recursive
612
+
613
+ install-am: all-am
614
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
615
+
616
+ installcheck: installcheck-recursive
617
+ install-strip:
618
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
619
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
620
+ `test -z '$(STRIP)' || \
621
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
622
+ mostlyclean-generic:
623
+
624
+ clean-generic:
625
+
626
+ distclean-generic:
627
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
628
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
629
+
630
+ maintainer-clean-generic:
631
+ @echo "This command is intended for maintainers to use"
632
+ @echo "it deletes files that may require special tools to rebuild."
633
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
634
+ clean: clean-recursive
635
+
636
+ clean-am: clean-generic clean-libtool mostlyclean-am
637
+
638
+ distclean: distclean-recursive
639
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
640
+ -rm -f Makefile
641
+ distclean-am: clean-am distclean-generic distclean-hdr \
642
+ distclean-libtool distclean-tags
643
+
644
+ dvi: dvi-recursive
645
+
646
+ dvi-am:
647
+
648
+ html: html-recursive
649
+
650
+ html-am:
651
+
652
+ info: info-recursive
653
+
654
+ info-am:
655
+
656
+ install-data-am:
657
+
658
+ install-dvi: install-dvi-recursive
659
+
660
+ install-dvi-am:
661
+
662
+ install-exec-am:
663
+
664
+ install-html: install-html-recursive
665
+
666
+ install-html-am:
667
+
668
+ install-info: install-info-recursive
669
+
670
+ install-info-am:
671
+
672
+ install-man:
673
+
674
+ install-pdf: install-pdf-recursive
675
+
676
+ install-pdf-am:
677
+
678
+ install-ps: install-ps-recursive
679
+
680
+ install-ps-am:
681
+
682
+ installcheck-am:
683
+
684
+ maintainer-clean: maintainer-clean-recursive
685
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
686
+ -rm -rf $(top_srcdir)/autom4te.cache
687
+ -rm -f Makefile
688
+ maintainer-clean-am: distclean-am maintainer-clean-generic
689
+
690
+ mostlyclean: mostlyclean-recursive
691
+
692
+ mostlyclean-am: mostlyclean-generic mostlyclean-libtool
693
+
694
+ pdf: pdf-recursive
695
+
696
+ pdf-am:
697
+
698
+ ps: ps-recursive
699
+
700
+ ps-am:
701
+
702
+ uninstall-am:
703
+
704
+ .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
705
+ ctags-recursive install-am install-strip tags-recursive
706
+
707
+ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
708
+ all all-am am--refresh check check-am clean clean-generic \
709
+ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
710
+ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
711
+ distcheck distclean distclean-generic distclean-hdr \
712
+ distclean-libtool distclean-tags distcleancheck distdir \
713
+ distuninstallcheck dvi dvi-am html html-am info info-am \
714
+ install install-am install-data install-data-am install-dvi \
715
+ install-dvi-am install-exec install-exec-am install-html \
716
+ install-html-am install-info install-info-am install-man \
717
+ install-pdf install-pdf-am install-ps install-ps-am \
718
+ install-strip installcheck installcheck-am installdirs \
719
+ installdirs-am maintainer-clean maintainer-clean-generic \
720
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
721
+ ps ps-am tags tags-recursive uninstall uninstall-am
722
+
723
+
724
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
725
+ # Otherwise a system limit (for SysV at least) may be exceeded.
726
+ .NOEXPORT: