WaveSwissKnife 0.0.1.20101110-x86-cygwin

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/AUTHORS +1 -0
  2. data/ChangeLog +5 -0
  3. data/Credits +3 -0
  4. data/LICENSE +31 -0
  5. data/README +18 -0
  6. data/ReleaseInfo +8 -0
  7. data/TODO +2 -0
  8. data/bin/WSK.rb +14 -0
  9. data/ext/WSK/AnalyzeUtils/AnalyzeUtils.c +272 -0
  10. data/ext/WSK/AnalyzeUtils/AnalyzeUtils.o +0 -0
  11. data/ext/WSK/AnalyzeUtils/AnalyzeUtils.so +0 -0
  12. data/ext/WSK/AnalyzeUtils/Makefile +149 -0
  13. data/ext/WSK/AnalyzeUtils/build.rb +18 -0
  14. data/ext/WSK/ArithmUtils/ArithmUtils.c +862 -0
  15. data/ext/WSK/ArithmUtils/ArithmUtils.o +0 -0
  16. data/ext/WSK/ArithmUtils/ArithmUtils.so +0 -0
  17. data/ext/WSK/ArithmUtils/Makefile +149 -0
  18. data/ext/WSK/ArithmUtils/build.rb +20 -0
  19. data/ext/WSK/FFTUtils/FFTUtils.c +662 -0
  20. data/ext/WSK/FFTUtils/FFTUtils.o +0 -0
  21. data/ext/WSK/FFTUtils/FFTUtils.so +0 -0
  22. data/ext/WSK/FFTUtils/Makefile +149 -0
  23. data/ext/WSK/FFTUtils/build.rb +20 -0
  24. data/ext/WSK/FunctionUtils/FunctionUtils.c +182 -0
  25. data/ext/WSK/FunctionUtils/FunctionUtils.o +0 -0
  26. data/ext/WSK/FunctionUtils/FunctionUtils.so +0 -0
  27. data/ext/WSK/FunctionUtils/Makefile +149 -0
  28. data/ext/WSK/FunctionUtils/build.rb +20 -0
  29. data/ext/WSK/SilentUtils/Makefile +149 -0
  30. data/ext/WSK/SilentUtils/SilentUtils.c +431 -0
  31. data/ext/WSK/SilentUtils/SilentUtils.o +0 -0
  32. data/ext/WSK/SilentUtils/SilentUtils.so +0 -0
  33. data/ext/WSK/SilentUtils/build.rb +18 -0
  34. data/ext/WSK/VolumeUtils/Makefile +149 -0
  35. data/ext/WSK/VolumeUtils/VolumeUtils.c +494 -0
  36. data/ext/WSK/VolumeUtils/VolumeUtils.o +0 -0
  37. data/ext/WSK/VolumeUtils/VolumeUtils.so +0 -0
  38. data/ext/WSK/VolumeUtils/build.rb +20 -0
  39. data/lib/WSK/Actions/Analyze.rb +176 -0
  40. data/lib/WSK/Actions/ApplyMap.desc.rb +15 -0
  41. data/lib/WSK/Actions/ApplyMap.rb +57 -0
  42. data/lib/WSK/Actions/ApplyVolumeFct.desc.rb +30 -0
  43. data/lib/WSK/Actions/ApplyVolumeFct.rb +72 -0
  44. data/lib/WSK/Actions/Compare.desc.rb +25 -0
  45. data/lib/WSK/Actions/Compare.rb +238 -0
  46. data/lib/WSK/Actions/ConstantCompare.desc.rb +20 -0
  47. data/lib/WSK/Actions/ConstantCompare.rb +61 -0
  48. data/lib/WSK/Actions/Cut.desc.rb +20 -0
  49. data/lib/WSK/Actions/Cut.rb +60 -0
  50. data/lib/WSK/Actions/CutFirstSignal.desc.rb +25 -0
  51. data/lib/WSK/Actions/CutFirstSignal.rb +72 -0
  52. data/lib/WSK/Actions/DCShifter.desc.rb +15 -0
  53. data/lib/WSK/Actions/DCShifter.rb +67 -0
  54. data/lib/WSK/Actions/DrawFct.desc.rb +20 -0
  55. data/lib/WSK/Actions/DrawFct.rb +59 -0
  56. data/lib/WSK/Actions/FFT.rb +104 -0
  57. data/lib/WSK/Actions/GenAllValues.rb +67 -0
  58. data/lib/WSK/Actions/GenConstant.desc.rb +20 -0
  59. data/lib/WSK/Actions/GenConstant.rb +56 -0
  60. data/lib/WSK/Actions/GenSawtooth.rb +57 -0
  61. data/lib/WSK/Actions/GenSine.desc.rb +20 -0
  62. data/lib/WSK/Actions/GenSine.rb +73 -0
  63. data/lib/WSK/Actions/Identity.rb +43 -0
  64. data/lib/WSK/Actions/Mix.desc.rb +15 -0
  65. data/lib/WSK/Actions/Mix.rb +149 -0
  66. data/lib/WSK/Actions/Multiply.desc.rb +15 -0
  67. data/lib/WSK/Actions/Multiply.rb +73 -0
  68. data/lib/WSK/Actions/NoiseGate.desc.rb +35 -0
  69. data/lib/WSK/Actions/NoiseGate.rb +129 -0
  70. data/lib/WSK/Actions/SilenceInserter.desc.rb +20 -0
  71. data/lib/WSK/Actions/SilenceInserter.rb +87 -0
  72. data/lib/WSK/Actions/SilenceRemover.desc.rb +30 -0
  73. data/lib/WSK/Actions/SilenceRemover.rb +74 -0
  74. data/lib/WSK/Actions/VolumeProfile.desc.rb +35 -0
  75. data/lib/WSK/Actions/VolumeProfile.rb +63 -0
  76. data/lib/WSK/Common.rb +292 -0
  77. data/lib/WSK/FFT.rb +527 -0
  78. data/lib/WSK/Functions.rb +770 -0
  79. data/lib/WSK/Launcher.rb +216 -0
  80. data/lib/WSK/Maps.rb +29 -0
  81. data/lib/WSK/Model/CachedBufferReader.rb +151 -0
  82. data/lib/WSK/Model/Header.rb +133 -0
  83. data/lib/WSK/Model/InputData.rb +193 -0
  84. data/lib/WSK/Model/RawReader.rb +78 -0
  85. data/lib/WSK/Model/WaveReader.rb +91 -0
  86. data/lib/WSK/OutputInterfaces/DirectStream.rb +146 -0
  87. data/lib/WSK/RIFFReader.rb +60 -0
  88. metadata +151 -0
data/AUTHORS ADDED
@@ -0,0 +1 @@
1
+ = Muriel Salvan (murielsalvan@users.sourceforge.net)
data/ChangeLog ADDED
@@ -0,0 +1,5 @@
1
+ = WaveSwissKnife Release History
2
+
3
+ == 0.0.1.20101110 (Alpha)
4
+
5
+ * Initial public release.
data/Credits ADDED
@@ -0,0 +1,3 @@
1
+ = Projects used by WaveSwissKnife
2
+
3
+ = People that helped a lot in developing WaveSwissKnife
data/LICENSE ADDED
@@ -0,0 +1,31 @@
1
+
2
+ The license stated herein is a copy of the BSD License (modified on July 1999).
3
+ The AUTHOR mentionned below refers to the list of people involved in the
4
+ creation and modification of any file included in the delivered package.
5
+ This list is found in the file named AUTHORS.
6
+ The AUTHORS and LICENSE files have to be included in any release of software
7
+ embedding source code of this package, or using it as a derivative software.
8
+
9
+ Copyright (c) 2010 Muriel Salvan (murielsalvan@users.sourceforge.net)
10
+
11
+ Redistribution and use in source and binary forms, with or without
12
+ modification, are permitted provided that the following conditions are met:
13
+
14
+ 1. Redistributions of source code must retain the above copyright notice,
15
+ this list of conditions and the following disclaimer.
16
+ 2. Redistributions in binary form must reproduce the above copyright notice,
17
+ this list of conditions and the following disclaimer in the documentation
18
+ and/or other materials provided with the distribution.
19
+ 3. The name of the author may not be used to endorse or promote products
20
+ derived from this software without specific prior written permission.
21
+
22
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
23
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
24
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
25
+ EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
27
+ OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
30
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
31
+ OF SUCH DAMAGE.
data/README ADDED
@@ -0,0 +1,18 @@
1
+ -- This file is best viewed when processed by rdoc.
2
+ ++
3
+
4
+ = WaveSwissKnife
5
+
6
+ Command-line utility handling Wave files.
7
+
8
+ == Where is the documentation ?
9
+
10
+ Check the website at http://waveswissknife.sourceforge.net
11
+
12
+ == Who wrote it ?
13
+
14
+ Check the AUTHORS[link:files/AUTHORS.html] file.
15
+
16
+ == What is the license ?
17
+
18
+ You can find out in the LICENSE[link:files/LICENSE.html] file.
data/ReleaseInfo ADDED
@@ -0,0 +1,8 @@
1
+
2
+ # This file has been generated by RubyPackager during a delivery.
3
+ # More info about RubyPackager: http://rubypackager.sourceforge.net
4
+ {
5
+ :Version => '0.0.1.20101110',
6
+ :Tags => [ 'Alpha' ],
7
+ :DevStatus => 'Alpha'
8
+ }
data/TODO ADDED
@@ -0,0 +1,2 @@
1
+ * Make regression.
2
+ * Implement Functions methods in C as they can become costly (use mpq_t from GMP).
data/bin/WSK.rb ADDED
@@ -0,0 +1,14 @@
1
+ #!env ruby
2
+ #--
3
+ # Copyright (c) 2009-2010 Muriel Salvan (murielsalvan@users.sourceforge.net)
4
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
5
+ #++
6
+
7
+ # Main file
8
+
9
+ require 'rUtilAnts/Logging'
10
+ RUtilAnts::Logging::initializeLogging('', '')
11
+ require 'WSK/Common'
12
+ require 'WSK/Launcher'
13
+
14
+ exit WSK::Launcher.new.execute(ARGV)
@@ -0,0 +1,272 @@
1
+ /**
2
+ * Copyright (c) 2009-2010 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ * Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ **/
5
+
6
+ #include "ruby.h"
7
+ #include <math.h>
8
+ #include <stdio.h>
9
+ #include <CommonUtils.h>
10
+
11
+ // Structure used to compute sum of squares
12
+ typedef struct {
13
+ unsigned long long int high;
14
+ unsigned long long int low;
15
+ } t128bits;
16
+
17
+ // Structure used to give variables to iteration process
18
+ typedef struct {
19
+ long long int * maxValues;
20
+ long long int * minValues;
21
+ long long int * sumValues;
22
+ long long int * absSumValues;
23
+ t128bits * squareSumValues;
24
+ } tAnalyzeStruct;
25
+
26
+ /** Add a 64 bits unsigned integer to a 128 bits unsigned integer
27
+ *
28
+ * Parameters:
29
+ * * *ioPtrVal* (<em>t128bits*</em>): The 128 bits integer to modify
30
+ * * *iAddValue* (<em>const unsigned long long int</em>): The value to add
31
+ **/
32
+ inline void add128bits(t128bits* ioPtrVal, const unsigned long long int iAddValue) {
33
+ unsigned long long int lOldLow = ioPtrVal->low;
34
+
35
+ ioPtrVal->low += iAddValue;
36
+ // check for overflow of low 64 bits, add carry to high
37
+ if (ioPtrVal->low < lOldLow)
38
+ ++ioPtrVal->high;
39
+ }
40
+
41
+ /** Create empty arrays of long long integers to be used for various sums
42
+ *
43
+ * Parameters:
44
+ * * *iSelf* (_FFT_): Self
45
+ * * *iValNbrChannels* (_Integer_): Number of channels
46
+ * * *iValInitialValue* (_Integer_): Initial value
47
+ * Return:
48
+ * * _Object_: An encapsulated array for computation
49
+ **/
50
+ static VALUE analyzeutils_init64bitsArray(
51
+ VALUE iSelf,
52
+ VALUE iValNbrChannels,
53
+ VALUE iValInitialValue) {
54
+ VALUE rValContainer;
55
+ int lNbrChannels = FIX2INT(iValNbrChannels);
56
+ long long int lInitialValue = FIX2LONG(iValInitialValue);
57
+
58
+ long long int * lSumArray = ALLOC_N(long long int, lNbrChannels);
59
+ int lIdxChannel;
60
+ for (lIdxChannel = 0; lIdxChannel < lNbrChannels; ++lIdxChannel) {
61
+ lSumArray[lIdxChannel] = lInitialValue;
62
+ }
63
+
64
+ // Encapsulate it
65
+ rValContainer = Data_Wrap_Struct(rb_cObject, NULL, free, lSumArray);
66
+
67
+ return rValContainer;
68
+ }
69
+
70
+ /** Create empty arrays of 128 bits integers to be used for various sums
71
+ *
72
+ * Parameters:
73
+ * * *iSelf* (_FFT_): Self
74
+ * * *iValNbrChannels* (_Integer_): Number of channels
75
+ * Return:
76
+ * * _Object_: An encapsulated array for computation
77
+ **/
78
+ static VALUE analyzeutils_init128bitsArray(
79
+ VALUE iSelf,
80
+ VALUE iValNbrChannels) {
81
+ VALUE rValContainer;
82
+ int lNbrChannels = FIX2INT(iValNbrChannels);
83
+
84
+ t128bits * lSumArray = ALLOC_N(t128bits, lNbrChannels);
85
+ // Fill it with 0
86
+ memset(lSumArray, 0, lNbrChannels*sizeof(t128bits));
87
+
88
+ // Encapsulate it
89
+ rValContainer = Data_Wrap_Struct(rb_cObject, NULL, free, lSumArray);
90
+
91
+ return rValContainer;
92
+ }
93
+
94
+ /**
95
+ * Process a value read from an input buffer for the Analyze function.
96
+ * Use the trigo cache.
97
+ *
98
+ * Parameters:
99
+ * * *iValue* (<em>const tSampleValue</em>): The value being read
100
+ * * *iIdxSample* (<em>const tSampleIndex</em>): Index of this sample
101
+ * * *iIdxChannel* (<em>const int</em>): Channel corresponding to the value being read
102
+ * * *iPtrArgs* (<em>void*</em>): additional arguments. In fact a <em>tAnalyzeStruct*</em>.
103
+ * Return:
104
+ * * _int_: The return code:
105
+ * ** 0: Continue iteration
106
+ * ** 1: Break all iterations
107
+ * ** 2: Skip directly to the next sample (don't call us for other channels of this sample)
108
+ */
109
+ int analyzeutils_processValue_Analyze(
110
+ const tSampleValue iValue,
111
+ const tSampleIndex iIdxSample,
112
+ const int iIdxChannel,
113
+ void* iPtrArgs) {
114
+ // Interpret parameters
115
+ tAnalyzeStruct* lPtrVariables = (tAnalyzeStruct*)iPtrArgs;
116
+
117
+ if (iValue > lPtrVariables->maxValues[iIdxChannel]) {
118
+ lPtrVariables->maxValues[iIdxChannel] = iValue;
119
+ }
120
+ if (iValue < lPtrVariables->minValues[iIdxChannel]) {
121
+ lPtrVariables->minValues[iIdxChannel] = iValue;
122
+ }
123
+ lPtrVariables->sumValues[iIdxChannel] += iValue;
124
+ lPtrVariables->absSumValues[iIdxChannel] += abs(iValue);
125
+ add128bits(&(lPtrVariables->squareSumValues[iIdxChannel]), ((long long int)iValue)*((long long int)iValue));
126
+
127
+ return 0;
128
+ }
129
+
130
+ /** Complete the arrays of sums for analyzis
131
+ *
132
+ * Parameters:
133
+ * * *iSelf* (_FFT_): Self
134
+ * * *iValInputRawBuffer* (_String_): The input raw buffer
135
+ * * *iValNbrBitsPerSample* (_Integer_): The number of bits per sample
136
+ * * *iValNbrSamples* (_Integer_): The number of samples
137
+ * * *iValNbrChannels* (_Integer_): The number of channels
138
+ * * *ioValMaxValues* (_Object_): Container of the max values array (should be initialized with init64bitsArray)
139
+ * * *ioValMinValues* (_Object_): Container of the min values array (should be initialized with init64bitsArray)
140
+ * * *ioValSumValues* (_Object_): Container of the sum values array (should be initialized with init64bitsArray)
141
+ * * *ioValAbsSumValues* (_Object_): Container of the abs sum values array (should be initialized with init64bitsArray)
142
+ * * *ioValSquareSumValues* (_Object_): Container of the square sum values array (should be initialized with init128bitsArray)
143
+ **/
144
+ static VALUE analyzeutils_completeAnalyze(
145
+ VALUE iSelf,
146
+ VALUE iValInputRawBuffer,
147
+ VALUE iValNbrBitsPerSample,
148
+ VALUE iValNbrSamples,
149
+ VALUE iValNbrChannels,
150
+ VALUE ioValMaxValues,
151
+ VALUE ioValMinValues,
152
+ VALUE ioValSumValues,
153
+ VALUE ioValAbsSumValues,
154
+ VALUE ioValSquareSumValues) {
155
+ // Translate Ruby objects
156
+ tSampleIndex iNbrSamples = FIX2LONG(iValNbrSamples);
157
+ int iNbrChannels = FIX2INT(iValNbrChannels);
158
+ int iNbrBitsPerSample = FIX2LONG(iValNbrBitsPerSample);
159
+ char* lPtrRawBuffer = RSTRING(iValInputRawBuffer)->ptr;
160
+ // Get the arrays
161
+ tAnalyzeStruct lProcessParams;
162
+ Data_Get_Struct(ioValMaxValues, long long int, lProcessParams.maxValues);
163
+ Data_Get_Struct(ioValMinValues, long long int, lProcessParams.minValues);
164
+ Data_Get_Struct(ioValSumValues, long long int, lProcessParams.sumValues);
165
+ Data_Get_Struct(ioValAbsSumValues, long long int, lProcessParams.absSumValues);
166
+ Data_Get_Struct(ioValSquareSumValues, t128bits, lProcessParams.squareSumValues);
167
+
168
+ // Parse the data
169
+ commonutils_iterateThroughRawBuffer(
170
+ lPtrRawBuffer,
171
+ iNbrBitsPerSample,
172
+ iNbrChannels,
173
+ iNbrSamples,
174
+ 0,
175
+ &analyzeutils_processValue_Analyze,
176
+ &lProcessParams
177
+ );
178
+
179
+ return Qnil;
180
+ }
181
+
182
+ /** Get a Bignum Ruby arrays out of a 64bits C integers array
183
+ *
184
+ * Parameters:
185
+ * * *iSelf* (_FFT_): Self
186
+ * * *iValArray* (_Object_): Container of the array (should be initialized with init64bitsArray)
187
+ * * *iValNbrItems* (_Integer_): The number of items in the array
188
+ * Return:
189
+ * * <em>list<Integer></em>: Corresponding Ruby array
190
+ **/
191
+ static VALUE analyzeutils_getRuby64bitsArray(
192
+ VALUE iSelf,
193
+ VALUE iValArray,
194
+ VALUE iValNbrItems) {
195
+ // Translate Ruby objects
196
+ int lNbrItems = FIX2INT(iValNbrItems);
197
+ // Get the array
198
+ long long int * lArray;
199
+ Data_Get_Struct(iValArray, long long int, lArray);
200
+ // The C-array of the final result
201
+ VALUE lFinalArray[lNbrItems];
202
+
203
+ // Buffer that stores string representation of long long int for Ruby RBigNum
204
+ char lStrValue[128];
205
+ int lIdxItem;
206
+ for (lIdxItem = 0; lIdxItem < lNbrItems; ++lIdxItem) {
207
+ sprintf(lStrValue, "%lld", lArray[lIdxItem]);
208
+ lFinalArray[lIdxItem] = rb_cstr2inum(lStrValue, 10);
209
+ }
210
+
211
+ return rb_ary_new4(lNbrItems, lFinalArray);
212
+ }
213
+
214
+ /** Get a Bignum Ruby arrays out of a 128bits C integers array
215
+ *
216
+ * Parameters:
217
+ * * *iSelf* (_FFT_): Self
218
+ * * *iValArray* (_Object_): Container of the array (should be initialized with init128bitsArray)
219
+ * * *iValNbrItems* (_Integer_): The number of items in the array
220
+ * Return:
221
+ * * <em>list<Integer></em>: Corresponding Ruby array
222
+ **/
223
+ static VALUE analyzeutils_getRuby128bitsArray(
224
+ VALUE iSelf,
225
+ VALUE iValArray,
226
+ VALUE iValNbrItems) {
227
+ // Translate Ruby objects
228
+ int lNbrItems = FIX2INT(iValNbrItems);
229
+ // Get the array
230
+ t128bits * lArray;
231
+ Data_Get_Struct(iValArray, t128bits, lArray);
232
+ // The C-array of the final result
233
+ VALUE lFinalArray[lNbrItems];
234
+ // Operations that will be used
235
+ ID lPlusID = rb_intern("+");
236
+ ID lMultiplyID = rb_intern("*");
237
+
238
+ // Buffer that stores string representation of long long int for Ruby RBigNum
239
+ char lStrValue[128];
240
+ int lIdxItem;
241
+ VALUE lValHigh;
242
+ VALUE lValLow;
243
+ VALUE lValHighShifted;
244
+ // We will need to multiply High part by 2^64
245
+ VALUE lValShiftFactor = rb_cstr2inum("18446744073709551616", 10);
246
+ for (lIdxItem = 0; lIdxItem < lNbrItems; ++lIdxItem) {
247
+ sprintf(lStrValue, "%llu", lArray[lIdxItem].high);
248
+ lValHigh = rb_cstr2inum(lStrValue, 10);
249
+ sprintf(lStrValue, "%llu", lArray[lIdxItem].low);
250
+ lValLow = rb_cstr2inum(lStrValue, 10);
251
+ lValHighShifted = rb_funcall(lValHigh, lMultiplyID, 1, lValShiftFactor);
252
+ lFinalArray[lIdxItem] = rb_funcall(lValHighShifted, lPlusID, 1, lValLow);
253
+ }
254
+
255
+ return rb_ary_new4(lNbrItems, lFinalArray);
256
+ }
257
+
258
+ // Initialize the module
259
+ void Init_AnalyzeUtils() {
260
+ VALUE lWSKModule;
261
+ VALUE lAnalyzeUtilsModule;
262
+ VALUE lAnalyzeUtilsClass;
263
+
264
+ lWSKModule = rb_define_module("WSK");
265
+ lAnalyzeUtilsModule = rb_define_module_under(lWSKModule, "AnalyzeUtils");
266
+ lAnalyzeUtilsClass = rb_define_class_under(lAnalyzeUtilsModule, "AnalyzeUtils", rb_cObject);
267
+ rb_define_method(lAnalyzeUtilsClass, "init64bitsArray", analyzeutils_init64bitsArray, 2);
268
+ rb_define_method(lAnalyzeUtilsClass, "init128bitsArray", analyzeutils_init128bitsArray, 1);
269
+ rb_define_method(lAnalyzeUtilsClass, "completeAnalyze", analyzeutils_completeAnalyze, 9);
270
+ rb_define_method(lAnalyzeUtilsClass, "getRuby64bitsArray", analyzeutils_getRuby64bitsArray, 2);
271
+ rb_define_method(lAnalyzeUtilsClass, "getRuby128bitsArray", analyzeutils_getRuby128bitsArray, 2);
272
+ }
Binary file
@@ -0,0 +1,149 @@
1
+
2
+ SHELL = /bin/sh
3
+
4
+ #### Start of system configuration section. ####
5
+
6
+ srcdir = .
7
+ topdir = /usr/lib/ruby/1.8/i386-cygwin
8
+ hdrdir = $(topdir)
9
+ VPATH = $(srcdir):$(topdir):$(hdrdir)
10
+ prefix = $(DESTDIR)/usr
11
+ exec_prefix = $(prefix)
12
+ sitedir = $(prefix)/lib/ruby/site_ruby
13
+ rubylibdir = $(libdir)/ruby/$(ruby_version)
14
+ docdir = $(datarootdir)/doc/$(PACKAGE)
15
+ dvidir = $(docdir)
16
+ datarootdir = $(prefix)/share
17
+ archdir = $(rubylibdir)/$(arch)
18
+ sbindir = $(exec_prefix)/sbin
19
+ psdir = $(docdir)
20
+ localedir = $(datarootdir)/locale
21
+ htmldir = $(docdir)
22
+ datadir = $(prefix)/share
23
+ includedir = $(prefix)/include
24
+ infodir = $(prefix)/share/info
25
+ sysconfdir = $(DESTDIR)/etc
26
+ mandir = $(prefix)/share/man
27
+ libdir = $(exec_prefix)/lib
28
+ sharedstatedir = $(prefix)/com
29
+ oldincludedir = $(DESTDIR)/usr/include
30
+ pdfdir = $(docdir)
31
+ sitearchdir = $(sitelibdir)/$(sitearch)
32
+ bindir = $(exec_prefix)/bin
33
+ localstatedir = $(DESTDIR)/var
34
+ sitelibdir = $(sitedir)/$(ruby_version)
35
+ libexecdir = $(prefix)/sbin
36
+
37
+ CC = gcc
38
+ LIBRUBY = lib$(RUBY_SO_NAME).dll.a
39
+ LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
40
+ LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
41
+ LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
42
+
43
+ RUBY_EXTCONF_H =
44
+ CFLAGS = -g -O2 -Wall -I/cygdrive/f/RR/Source/waveswissknife/svn/waveswissknife/external/CommonUtils/include
45
+ INCFLAGS = -I. -I$(topdir) -I$(hdrdir) -I$(srcdir)
46
+ CPPFLAGS =
47
+ CXXFLAGS = $(CFLAGS)
48
+ DLDFLAGS = -L. -L/cygdrive/f/RR/Source/waveswissknife/svn/waveswissknife/external/CommonUtils/lib -lCommonUtils -Wl,--enable-auto-image-base,--enable-auto-import,--export-all
49
+ LDSHARED = gcc -shared -s
50
+ AR = ar
51
+ EXEEXT = .exe
52
+
53
+ RUBY_INSTALL_NAME = ruby
54
+ RUBY_SO_NAME = ruby
55
+ arch = i386-cygwin
56
+ sitearch = i386-cygwin
57
+ ruby_version = 1.8
58
+ ruby = /usr/bin/ruby
59
+ RUBY = $(ruby)
60
+ RM = rm -f
61
+ MAKEDIRS = mkdir -p
62
+ INSTALL = /usr/bin/install -c
63
+ INSTALL_PROG = $(INSTALL) -m 0755
64
+ INSTALL_DATA = $(INSTALL) -m 644
65
+ COPY = cp
66
+
67
+ #### End of system configuration section. ####
68
+
69
+ preload =
70
+
71
+ libpath = . $(libdir)
72
+ LIBPATH = -L"." -L"$(libdir)"
73
+ DEFFILE =
74
+
75
+ CLEANFILES = mkmf.log
76
+ DISTCLEANFILES =
77
+
78
+ extout =
79
+ extout_prefix =
80
+ target_prefix =
81
+ LOCAL_LIBS =
82
+ LIBS = $(LIBRUBYARG_SHARED) -ldl -lcrypt
83
+ SRCS = AnalyzeUtils.c
84
+ OBJS = AnalyzeUtils.o
85
+ TARGET = AnalyzeUtils
86
+ DLLIB = $(TARGET).so
87
+ EXTSTATIC =
88
+ STATIC_LIB =
89
+
90
+ RUBYCOMMONDIR = $(sitedir)$(target_prefix)
91
+ RUBYLIBDIR = $(sitelibdir)$(target_prefix)
92
+ RUBYARCHDIR = $(sitearchdir)$(target_prefix)
93
+
94
+ TARGET_SO = $(DLLIB)
95
+ CLEANLIBS = $(TARGET).so $(TARGET).il? $(TARGET).tds $(TARGET).map
96
+ CLEANOBJS = *.o *.a *.s[ol] *.pdb *.exp *.bak
97
+
98
+ all: $(DLLIB)
99
+ static: $(STATIC_LIB)
100
+
101
+ clean:
102
+ @-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
103
+
104
+ distclean: clean
105
+ @-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
106
+ @-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
107
+
108
+ realclean: distclean
109
+ install: install-so install-rb
110
+
111
+ install-so: $(RUBYARCHDIR)
112
+ install-so: $(RUBYARCHDIR)/$(DLLIB)
113
+ $(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
114
+ $(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
115
+ install-rb: pre-install-rb install-rb-default
116
+ install-rb-default: pre-install-rb-default
117
+ pre-install-rb: Makefile
118
+ pre-install-rb-default: Makefile
119
+ $(RUBYARCHDIR):
120
+ $(MAKEDIRS) $@
121
+
122
+ site-install: site-install-so site-install-rb
123
+ site-install-so: install-so
124
+ site-install-rb: install-rb
125
+
126
+ .SUFFIXES: .c .m .cc .cxx .cpp .C .o
127
+
128
+ .cc.o:
129
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
130
+
131
+ .cxx.o:
132
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
133
+
134
+ .cpp.o:
135
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
136
+
137
+ .C.o:
138
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
139
+
140
+ .c.o:
141
+ $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) -c $<
142
+
143
+ $(DLLIB): $(OBJS)
144
+ @-$(RM) $@
145
+ $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
146
+
147
+
148
+
149
+ $(OBJS): ruby.h defines.h
@@ -0,0 +1,18 @@
1
+ #--
2
+ # Copyright (c) 2009-2010 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
6
+ lAdditionalLocalLibs = [
7
+ 'CommonUtils'
8
+ ]
9
+
10
+ require 'mkmf'
11
+ $CFLAGS += ' -Wall '
12
+ lAdditionalLocalLibs.each do |iLibName|
13
+ lLibDir = File.expand_path("#{File.dirname(__FILE__)}/../../../external/#{iLibName}")
14
+ $CFLAGS += " -I#{lLibDir}/include "
15
+ $LDFLAGS += " -L#{lLibDir}/lib -l#{iLibName} "
16
+ end
17
+ create_makefile('AnalyzeUtils')
18
+ system('make')