forked from GoyaPtyLtd/BaseElements-Plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
395 lines (224 loc) · 11.8 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
=======================================================================
Building
=======================================================================
The following notes describe the process for building the the plugin and the third-party libraries used. The instructions are supplied "as is" in the hope they may be of assistance.
Notes:
- these instructions apply to version 1.1 of the BaseElements Plugin
- the instructions contain some full paths and also paths containing version numbers that will likely need to be changed
=======================================================================
Mac OS X
=======================================================================
Version 1.2 of the plug-in was built using Xcode 3.2.3 on Mac OS X 10.6.8.
Download the Mac version of the FileMaker External Plug-In API from
http://www.filemaker.com/support/technologies/
and place the FMWrapper.framework in the Libraries directory.
On the Mac most of the required headers and library files are installed by default on the system. The only third-party libraries that need to be built are OpenSSL and the Boost FileSystem, System and Thread libraries.
=======================================================================
Boost
=======================================================================
Boost is available from
http://www.boost.org/
Note: v1.2 of the plug-in requires Boost 1.46.1 (or later).
The plug-in is a universal binary and the boost libraries should be built accordingly. For example:
cd boost_1_46_1
./bootstrap.sh
./bjam architecture=combined link=static runtime-link=static --with-thread --with-filesystem
See
more/getting_started/index.html
for for further information on compiling the Boost libraries.
The boost headers must be placed in the Headers directory and the
bin.v2/libs/filesystem/build/darwin-4.2.1/release/architecture-combined/link-static/runtime-link-static/threading-multi/libboost_filesystem.a
bin.v2/libs/thread/build/darwin-4.2.1/release/architecture-combined/link-static/threading-multi/libboost_thread.a
bin.v2/libs/system/build/darwin-4.2.1/release/architecture-combined/link-static/threading-multi/libboost_system.a
libraries placed in the Libraries directory.
=======================================================================
OpenSSL
=======================================================================
To follow... for the moment copy OpenSSL.framework from inside the FileMaker 11 application package into the Libraries folder.
=======================================================================
Windows
=======================================================================
The plug-in was built using Visual Studio 2010 Professional on Windows 7 Ultimate.
Download the Windows version of the FileMaker External Plug-In API from
http://www.filemaker.com/support/technologies/
rename the Headers directory FMWrapper and place it in the Headers directory. FMWrapper.lib should be placed the Libraries directory.
The BaseElements plug-in is built as a static library and all third-party libraries must be built from source as static libraries (/MTd & /MT) using libcmt.lib and nafxcw.lib for release and libcrtd.lib and nafxcwd.lib for debug builds.
Note: source code for some of the libraries is supplied as gzipped tar archives; there are a number of applications that can unpack these archives, for example, Stuffit Expander
http://www.stuffit.com/win-expander.html
=======================================================================
Boost
=======================================================================
The Boost FileSystem and System libraries are required.
http://www.boost.org/
Note: v1.2 of the plug-in requires Boost 1.46.1 (or later).
See
more/getting_started/index.html
for instructions on compiling the Boost libraries. In general
cd boost_1_46_1
bootstrap.bat
bjam link=static runtime-link=static --with-thread --with-filesystem --with-date_time
should do the trick.
The boost headers must be placed in the Headers directory and the libraries copied from
bin.v2\libs\date_time\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\libboost_date_time-vc100-mt-s-1_46_1.lib
bin.v2\libs\filesystem\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\libboost_filesystem-vc100-mt-s-1_46_1.lib
bin.v2\libs\thread\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\libboost_thread-vc100-mt-s-1_46_1.lib
bin.v2\libs\system\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\libboost_system-vc100-mt-s-1_46_1.lib
into the Libraries directory. For debug builds also copy
bin.v2\libs\date_time\build\msvc-10.0\debug\link-static\runtime-link-static\threading-multi\libboost_date_time-vc100-mt-sgd-1_46_1.lib
bin.v2\libs\filesystem\build\msvc-10.0\debug\link-static\runtime-link-static\threading-multi\libboost_filesystem-vc100-mt-sgd-1_46_1.lib
bin.v2\libs\thread\build\msvc-10.0\debug\link-static\runtime-link-static\threading-multi\libboost_thread-vc100-mt-sgd-1_46_1.lib
bin.v2\libs\system\build\msvc-10.0\debug\link-static\runtime-link-static\threading-multi\libboost_system-vc100-mt-sgd-1_46_1.lib
=======================================================================
zlib
=======================================================================
Building zlib is straightforward. Download the zlib source from
http://www.zlib.net/
and extract the folder zlib-1.2.5 to the desktop.
Open the solution file "contrib/vstudio/vc10/zlibvc.sln" and from the "Build Menu" select "Configuration Manager" and, once in the Configuration Manager, select "ReleaseWithoutAsm" as the "Active solution configuration". Build the library and move
contrib/vstudio/vc10/x86/ZlibStatReleaseWithoutAsm/zlibstat.lib
in the Libraries directory and zlib.h in the Headers directory.
=======================================================================
libiconv & libcharset
=======================================================================
Download the source from
http://www.gnu.org/software/libiconv/
libiconv does not have any support for building using Visual Studio (and if you can get usable binaries following the supplied instructions you're doing better than I).
Place the VS solution and project files from the Project\Extras\libiconv directory into the libiconv-1.13.1 directory then open the solution file
iconv.sln
Rename
libcharset\include\libcharset.h.in
libcharset\include\localcharset.h.in
include\iconv.h.in
lib\config.h.in
so that the ".in" suffix is removed.
Open the iconv.sln file and then edit
include\iconv.h
replacing the line
extern @DLL_VARIABLE@ int _libiconv_version; /* Likewise */
with
#if 1 && BUILDING_LIBICONV
#define LIBICONV_DLL_EXPORTED __attribute__((__visibility__("default")))
#else
#define LIBICONV_DLL_EXPORTED
#endif
extern LIBICONV_DLL_EXPORTED int _libiconv_version; /* Likewise */
and the line
extern size_t iconv (iconv_t cd, @ICONV_CONST@ char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
with
extern LIBICONV_DLL_EXPORTED size_t iconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
Replace the two lines
#if @USE_MBSTATE_T@
#if @BROKEN_WCHAR_H@
with
#if 1
#if 0
the line
#if @USE_MBSTATE_T@
with
#if 1
and, finally, replace
#if @HAVE_WCHAR_T@
with
#if 1
Build the release configuration.
Place the libraries
Release\libcharset.lib
and
Release\iconv.lib
into the libraries directory and copy the file include\iconv.h into a directory, iconv, inside the Headers directory.
=======================================================================
libxml2
=======================================================================
Download the source from
http://xmlsoft.org/downloads.html
and expand it into a directory on the Desktop.
Note: the full path of the directory should not contain any spaces.
Open a Command Prompt and set up the Visual Studio command line environment
c:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat
then move to the win32 directory in the archive
cd Desktop\libxml2-2.7.8\win32
Edit the file
Makefile.msvc
by changing the line
LIBS = $(LIBS) iconv.lib
to read
LIBS = $(LIBS) iconv.lib libcharset.lib
and commenting out the lines
+!if "$(WITH_ICU)" == "1"
+LIBS = $(LIBS) icu.lib
+!endif
and
DFLAGS = $(LDFLAGS) /OPT:NOWIN98
Run the commands (changing the include= & lib= paths as appropriate)
cscript configure.js static=yes debug=no cruntime=-MT include="\\VBOXSVR\BaseElements-Plugin\Headers\iconv" lib="\\VBOXSVR\BaseElements-Plugin\Libraries"
nmake -f Makefile.msvc MFLAGS=-MT libxmla
to configure and build the source.
Finally, place the headers directory
libxml2-2.7.8\include\libxml
in the Headers directory and copy the library itself
bin.msvc\libxml2_a.lib
into the Libraries directory.
=======================================================================
libxslt & libexslt
=======================================================================
Download the source from
http://xmlsoft.org/XSLT/downloads.html
and expand it into a directory on the Desktop.
Note: the full path of the directory should not contain any spaces.
Open a terminal window and set up the Visual Studio command line environment
c:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat
then move to the win32 directory in the archive
cd Desktop\libxslt-1.1.26\win32
Edit the file
Makefile.msvc
by commenting out the line
DFLAGS = $(LDFLAGS) /OPT:NOWIN98
and also change
libxml2.lib
to
libxml2_a.lib
throughout.
Run the commands (changing the include= & lib= paths as appropriate)
cscript configure.js static=yes debug=no cruntime=-MT include="\\VBOXSVR\BaseElements-Plugin\Headers;\\VBOXSVR\BaseElements-Plugin\Headers\iconv" lib="\\VBOXSVR\BaseElements-Plugin\Libraries"
nmake -f Makefile.msvc MFLAGS=-MT libxslta libexslta
to configure and build the source.
Finally, place the headers from the directories
libxslt-1.1.26\include\libxslt & libxslt-1.1.26\include\libexslt
into directories, libxslt & libexslt, in the Headers directory and copy the libraries
bin.msvc\libxslt_a.lib & bin.msvc\libexslt_a.lib
into the Libraries directory.
=======================================================================
libcurl
=======================================================================
Download the source from
http://curl.haxx.se/download.html
and expand it into a directory on the Desktop.
Open
vc6curl.dsw
and set the following Configuration Properties:
General -> Use of MFC == Use MFC in a Static Library
C/C++ -> Preprocessor -> Preprocessor Definitions ... add CURL+STATICLIB
C/C++ -> Code Generation -> Runtime Library == Multi-threaded (/MT)
In Visual Studio and select "Batch Build" and check the "LIB Release" configuration and then "Build".
Copy the library from
curl-7.21.4\lib\LIB-Release\libcurl.lib
into the Libraries directory and copy
curl-7.21.4\include\curl
to the Headers directory.
=======================================================================
OpenSSL
=======================================================================
Building OpenSSL requires that perl is installed. The ActiveState perl (Community Edition) is a good
place to start if you do not already have perl installed
http://www.activestate.com/activeperl
Download the latest openssl source from
http://www.openssl.org/source/
(openssl-1.0.0d.tar.gz at the time of writing).
Unpack the archive onto the desktop and, using the command prompt
cd c:\Users\Mark\Desktop\openssl-1.0.0d
perl Configure VC-WIN32 enable-static-engine no-asm
ms\do_nt
c:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat
nmake -f ms\nt.mak
Copy libeay32.lib and ssleay32.lib to Libraries and copy includes/openssl to Headers.
=======================================================================