Full Build ACE/μManager on MacOS X Snow Leopard
Building micro-manager 1.2 from SVN on MacOSX Leopard MacIntel. This is the complete sequence that I used to build on 10.5.2 on 2008-04-18. In principle you can just cd to an appropriate directory and run the script but I would recommend cut/paste into terminal chunk by chunk. Note that for libdc1394 (firewire cameras on macosx/linux and perhaps PC) I have provided both a build from SVN and a build from the current stable tarball (2.0.1).
Finally to build Micro-manager you will need an up to date gnu autotools. From my experience MacOS X Leopard works out of the box, but on Tiger you will need to update.
Some optional steps are included that will make you build run on Mac OS X 10.4 (Tiger) as well (NS, 9/11/2008).
Here are download links for versions I have.
- autoconf 2.59 installed on my Tiger system seems to be fine
- automake 1.10.1 NB automake 1.9.6 fails
- libtool 1.5.22 later versions presumably ok
Once you are done, make quite sure that you are using the latest versions that you have installed:
autoconf --version
libtool --version
automake --version
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
|
#!/usr/bin/env bash # Download and build boost - see the separate Wiki page for that task. # If you want to build dc1394, instal libdc1394: # EITHER libdc1394 v2.0.1 (release version) VERSION="2.0.1" LIBDC="libdc1394-$VERSION" curl -O http://kent.dl.sourceforge.net/sourceforge/libdc1394/$LIBDC.tar.gz tar zxvf $LIBDC.tar.gz cd $LIBDC ./configure --prefix=/usr/local make sudo make install # OR libdc1394 from SVN svn co https://libdc1394.svn.sourceforge.net/svnroot/libdc1394/trunk/libdc1394 libdc1394 cd libdc1394 autoreconf -i -s ./configure --prefix=/usr/local make sudo make install # Micro-Manager from SVN svn co https://valelab.ucsf.edu/svn/micromanager2/branches/micromanager1.3/ cd micromanager1.3 ./mmUnixBuild.sh ### N.B. on DebianJohan found that he needed to run autoconf --install at this point. export PATH="/usr/local/bin:$PATH" # to ensure user compiled swig is used ./configure --with-imagej=/Applications/ImageJ/ # (Optional) To make your build compatible with Tiger (10.4) use: #./configure --with-imagej=/Applications/ImageJ/ \ CXXFLAGS="-g -O2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4" # and for statically-linked components use: #./configure --with-imagej=/Applications/ImageJ/ --enable-static make sudo make install |
【Install/Build ACE on MAC OS X Leopard】
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
0). Download the ACE+TAO+CIAO-6.0.0.tar.bz2.tar.gz package and Decompress it.
# curl -O ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.0.tar.bz2
# tar jxvf ACE+TAO+CIAO-6.0.0.tar.bz2.tar.gz
☆ You clould download ACE+TAO+CIAO from svn server.
$ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/sets-anon/ACE+TAO+CIAO .
1). Setting ACE Environment
# cd ACE_wrappers
# export ACE_ROOT=`pwd`
or
# echo "export ACE_ROOT=$HOME/ACE_wrappers" >> ~/.bashrc ; 「.bashrc」 for X11, 「.bash_profile」 for MacOSX
# echo "export TAO_ROOT=$ACE_ROOT/TAO" >> ~/.bashrc
# echo "export LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib" >> ~/.bashrc
# echo "export DYLD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib" >> ~/.bashrc
# echo "export MACOSX_DEPLOYMENT_TARGET=10.6" >> ~/.bashrc
# . ~/.bashrc
2). Create a configuration file, $ACE_ROOT/ace/config.h, that includes the appropriate platform/compiler-specific header configurations from the ACE source directory.
# cd $ACE_ROOT/ace
(Optional) To build a version compatible with Tiger/Leopard (10.5) add:
# export CFLAGS="-g -O2 -isysroot /Developer/SDKs/MacOSX10.5.sdk /Developer/SDKs/MacOSX10.4u.sdk"
Configure for MacOS X Snow Leopard
# echo "#include \"ace/config-macosx-leopard.h\"" >> config.h
# echo "#define _XOPEN_SOURCE" >> config.h
or
# cat > config.h <<EOF
>#include "ace/config-macosx-leopard.h"
>#define _XOPEN_SOURCE
>EOF
# cat > ${ACE_ROOT}/include/makeinclude/platform_macros.GNU <<EOF
>debug = 1
>shared_libs = 0
>static_libs = 1
>include ${ACE_ROOT}/include/makeinclude/platform_macosx_leopard.GNU
>EOF
★ Note:remove CFLAGS option 「"-Wno-long-double"」 in "include/makeinclude/platform_macosx_tiger.GNU"
3). Create a build configuration file, $ACE_ROOT/include/makeinclude/platform_macros.GNU, that contains the appropriate platform/compiler-specific Makefile configurations.
# cd $ACE_ROOT/include/makeinclude
# echo "include \$(ACE_ROOT)/include/makeinclude/platform_macosx_leopard.GNU" >>platform_macros.GNU
# $ACE_ROOT/bin/mwc.pl -type gnuace ACE.mwc
# cd $ACE_ROOT;make
4). Install
# sudo ln -s $ACE_ROOT/ace /usr/local/include/ace
# sudo ln -s $ACE_ROOT/ace/libACE.a /usr/local/lib/
(Optional) To make you build compatible with Tiger (10.4):
# cd /Developer/SDKs/MacOSX10.4u.sdk/usr/local
# sudo ln -s /usr/local/include
# cd lib
# sudo ln -s /usr/local/lib/libACE.a
#############################################################################################################
5). Cloning the Source Tree
# cd $ACE_ROOT
# mkdir build build/build-MacOSX
# perl bin/create_ace_build.pl -a -v build-MacOSX
6). Testing and Developing GNU Autotool Support in ACE
# cd $ACE_ROOT
# sudo ln -s /opt/local/bin/glibtoolize /opt/local/bin/libtoolize ;(Note that if you use darwinports, it installs libtoolize as glibtoolize as default)
# autoreconf -I m4 --install --force ;This method is configure fail
or
6). Generate Makefile from MPC
# cd $ACE_ROOT
# cvs -d :pserver:anonymous@anoncvs.ociweb.com:/cvs co MPC
# MPC/mwc.pl
#############################################################################################################
【Building and Using GUI Reactors Libraries】
There is a general method for building and using ACE_Reactors for various GUI libraries.
Building GUI Reactor Library
1. Try to generate build files using MPC. For example, for FlReactor the procedure consists of five steps:
1. In the first pass one gets that x11 (X11 libraries) is missing.
# $ACE_ROOT/bin/mwc.pl
MPC_ROOT was set to /opt/local/ACE_wrappers/MPC.
Generating gnuace output using default input
Skipping QoS (qos.mpc), it requires qos.
Skipping ACE_FOR_TAO (ace_for_tao.mpc), it requires ace_for_tao.
Generation Time: 6s
2. In the second pass one gets that gl (OpenGL library) is missing.
# $ACE_ROOT/bin/mwc.pl -features x11=1 ace.mwc
MPC_ROOT was set to /opt/local/ACE_wrappers/MPC.
Generating gnuace output using ace.mwc
Skipping ACE_FOR_TAO (ace_for_tao.mpc), it requires ace_for_tao.
Skipping QoS (qos.mpc), it requires qos.
Generation Time: 4s
3. In the third pass one gets that fl (Fast Light Toolkit) is missing.
$ACE_ROOT/bin/mwc.pl -features x11=1,gl=1 ace.mwc
MPC_ROOT was set to /opt/local/ACE_wrappers/MPC.
Generating gnuace output using ace.mwc
Skipping ACE_FOR_TAO (ace_for_tao.mpc), it requires ace_for_tao.
Skipping QoS (qos.mpc), it requires qos.
Generation Time: 4s
4. In the fourth pass one gets that ace_flreactor feature is missing
# $ACE_ROOT/bin/mwc.pl -features x11=1,gl=1,fl=1 ace.mwc
MPC_ROOT was set to /opt/local/ACE_wrappers/MPC.
Generating gnuace output using ace.mwc
Skipping ACE_FOR_TAO (ace_for_tao.mpc), it requires ace_for_tao.
Skipping QoS (qos.mpc), it requires qos.
Generation Time: 5s
5. In the last pass one obtains files for building FlReactor.
# $ACE_ROOT/bin/mwc.pl -features x11=1,gl=1,fl=1,ace_flreactor=1 ace.mwc
MPC_ROOT was set to /opt/local/ACE_wrappers/MPC.
Generating gnuace output using ace.mwc
Skipping ACE_FOR_TAO (ace_for_tao.mpc), it requires ace_for_tao.
Skipping QoS (qos.mpc), it requires qos.
Generation Time: 3s
Currently to simplify MPC generation some of features are turn on by default in ACE_wrappers/bin/MakeProjectCreator/global.features.
For examples to generate files related with Fl one has to provide only fl=1 feature. To obtain a more fine grained controll over MPC generation
process one may modify ACE_wrappers/bin/MakeProjectCreator/*.features files.
2. Required build files are generated now, it is enough then to invoke build tool. For example for under MPC::gnuace one has to call make fl=1.
For MPC::vc7 target all features are encoded in generated project files, thus it is enough to compile ACE using MSVC.
【For Cross-Compiled Targets】
HOST= MacOSX
TARGET=Linux
(1) Create a clone directory for the host:
# cd ACE_wrappers
# mkdir -p build/MacOSX
# ./bin/create_ace_build build/MacOSX
(2) Configure the host build:
# echo '#include "ace/config-macosx-tiger.h"' > build/MacOSX/ace/config.h
# echo 'include $(ACE_ROOT)/include/makeinclude/platform_macosx_tiger.GNU' \
> build/MacOSX/include/makeinclude/platform_macros.GNU
; Often host builds are static:
# echo 'static_libs_only=1' \
>> build/MacOSX/include/makeinclude/platform_macros.GNU
(3) Build the host tools
# cd build/MacOSX
# export ACE_ROOT=$PWD
# make -C ace
# make -C apps/gperf
# make -C TAO/TAO_IDL
# export ACE_ROOT=/opt/local/ACE_wrappers
Then configuring the location of the tools for the target could be done
as shown here:
(4) Create a clone directory for the target:
# cd ACE_wrappers
# mkdir -p build/TARGET
# ./bin/create_ace_build build/TARGET
(5) Configure the target build:
# echo '#include "ace/config-TARGET.h"' > build/MacOSX/ace/config.h
# echo 'include $(ACE_ROOT)/include/makeinclude/platform_TARGET.GNU' \
> build/TARGET/include/makeinclude/platform_macros.GNU
(6) Configure the TARGET build to use the HOST IDL compiler and gperf tools, as described above.
【Build and Installing TAO】
# cd $ACE_ROOT/ace;make
# cd $ACE_ROOT/apps/gperf;make
# echo "export TAO_ROOT=$ACE_ROOT/TAO" >> ~/.bashrc
# . ~/.bashrc
# cd $TAO_ROOT
# $ACE_ROOT/bin/mwc.pl TAO.mwc -type gnuace; make
# $ACE_ROOT/bin/mwc.pl TAO_ACE.mwc -type gnuace; make
# cd $TAO_ROOT/tests
# $ACE_ROOT/bin/mwc.pl tests.mwc -type gnuace; make
# cd $TAO_ROOT/tests/Param_Test; ./run_test.pl
# sudo ln -s $TAO_ROOT/tao /usr/local/include/tao
# sudo ln -s $TAO_ROOT/tao/libTAO.a /usr/local/lib/
;To save time and space, set
TAO_ORBSVCS = Naming Time Trader ImplRepo
【Building DAnCE】
# sudo port install xercesc3
# echo "export XERCESCROOT=/opt/local" >> ~/.bashrc
# echo "export DAnCE_ROOT=$TAO_ROOT/DAnCE" >> ~/.bashrc
# . ~/.bashrc
# cd $DANCE_ROOT
# $ACE_ROOT/bin/mwc.pl -type gnuace DAnCE_TAO.mwc; make
【Building and Installing CIAO】
☆ Install Boost、Utility Library
# sudo port install boost boost-build boost-jam boost-gil-numeric
# echo "export BOOST_ROOT=/opt/local" >> ~/.bashrc
# echo "export BOOST_INCLUDE=$BOOST_ROOT/include" >> ~/.bashrc
# echo "export BOOST_LIB=/opt/local/lib" >> ~/.bashrc
# echo "export BOOST_BUILD_PATH=/opt/local/share/boost-build" >> ~/.bashrc
# echo "export BOOST_VERSION=boost-1_46" >> ~/.bashrc
# echo "export BOOST_CFG=-xgcc42-mt" >> ~/.bashrc
# . ~/.bashrc
# wget -c http://www.dre.vanderbilt.edu/cidlc/prerequisites/Utility-1.2.2.tar.bz2
# tar jxvf Utility-1.2.2.tar.bz2
# mv Utility-1.2.2 $ACE_ROOT/
# cd $ACE_ROOT/Utility-1.2.2; make
# echo "export UTILITY_ROOT=$ACE_ROOT/Utility-1.2.2" >> ~/.bashrc
# cd $CIAO_ROOT
# $ACE_ROOT/bin/mwc.pl -type gnuace CIAO_TAO_DAnCE.mwc -static -features cidl=1,exceptions=1,boost=1; make
# cd $CIAO_ROOT/tests
# $ACE_ROOT/bin/mwc.pl tests.mwc -type gnuace; make
☆ Install CIDL Compiler
# cat > $ACE_ROOT/bin/MakeProjectCreator/config/default.features << EOF
>cidl=1
>boost=1
>EOF
# cat > $ACE_ROOT/include/makeinclude/platfrom_macros.GNU << EOF
>cidl=1
>boost=1
>exceptions=1
>EOF
# cd $CIAO_ROOT/CIDLC
# $ACE_ROOT/bin/mwc.pl CIDLC.mwc -type gnuace
# make
☆ Obtaining and Installing Xerces-C
# sudo port search Xerces-C
xercesc @2.8.0 (textproc)
an XML parser
xercesc3 @3.1.1 (textproc, xml, shibboleth)
an XML parser
Found 2 ports.
# sudo port install xercesc3
---> Computing dependencies for xercesc3
---> Fetching xercesc3
---> Attempting to fetch xerces-c-3.1.1.tar.gz from ftp://ftp.infoscience.co.jp/pub/net/apache/dist/xerces/c/3/sources/
---> Attempting to fetch xerces-c-3.1.1.tar.gz from http://distfiles.macports.org/xercesc3
---> Verifying checksum(s) for xercesc3
---> Extracting xercesc3
---> Configuring xercesc3
---> Building xercesc3
---> Staging xercesc3 into destroot
---> Installing xercesc3 @3.1.1_2
---> Activating xercesc3 @3.1.1_2
---> Cleaning xercesc3
# echo "export XERCESCROOT=/opt/local" >> ~/.bashrc
☆ Install CIAO core/tools/examples
# cat > $ACE_ROOT/bin/MakeProjectCreator/config/default.features << EOF
>xerces3=1
>EOF
# cd $CIAO_ROOT
# $ACE_ROOT/bin/mwc.pl CIAO_TAO_DAnCE.mwc -type gnuace
# make
◎ Building CIAO quickly : You can build CIAO quickly by doing the following:
# cd $CIAO_ROOT
# $ACE_ROOT/bin/mwc.pl CIAO_TAO.mwc -type gnuace
# make
◎ Building from Subversion (anonymous access)
If users are building from our Subversion repository the GNUmakefiles, and project files for building on various platforms will not be available. Subversion users are expected to generate them using MPC before building ACE, TAO or CIAO. We point out some suggestions below to get bootstrapped quickly.
☆ You can checkout different subsets from the Subversion repository.
To checkout ACE with MPC:
$ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/sets-anon/ACE .
To checkout ACE+TAO with MPC:
$ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/sets-anon/ACE+TAO .
To checkout ACE+TAO+CIAO with MPC:
$ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/sets-anon/ACE+TAO+CIAO .
☆ Please make sure that you have perl installed, preferably perl 5.8 or higher. Users on Win32 based platforms are recommended to use Active State Perl. We use active state perl without problems. We have ran into problems trying to use the cygwin version of perl on Win32 based platforms.
☆ To build ACE and associated tests, examples, and associated utility libraries with GNUmakefiles, you must generate GNUmakefiles with MPC:
$ACE_ROOT/bin/mwc.pl -type gnuace ACE.mwc
On Windows, with Visual C++ 8, you must generate solution and project files with MPC:
$ACE_ROOT/bin/mwc.pl -type vc8 ACE.mwc
On Windows, with Visual C++ 7, you must generate solution and project files with MPC:
$ACE_ROOT/bin/mwc.pl -type vc71 ACE.mwc
☆ If you want to build TAO+CIAO and its associated libraries please see TAO-INSTALL and CIAO-INSTALL for details.
◎ Building and Installing TAO from subversion
If users are building from our subversion archive the GNUmakefiles, and project files for building on various platforms will not be available. Users from subversion are expected to generate them using MPC before building ACE, TAO or CIAO. We point out some suggestions below to get bootstrapped quickly.
☆ Please see instructions above to download MPC from anon cvs repository
☆ Please make sure that you have perl installed, preferably perl 5.8 or higher. Users on Win32 based platforms are recommended to use Active State Perl . We use active state perl without problems. We have ran into problems trying to use the cygwin version of perl on Win32 based platforms.
☆ If you just want to build TAO and associated tests, examples, and associated utility libraries, we recommend the following alternatives:
○ Build ACE and TAO seperately. ACE needs to be built first and instructins for building ACE are available at ACE-INSTALL. GNUmakefiles and project files for TAO can be generated by using the following commands:
$ACE_ROOT/bin/mwc.pl TAO.mwc -type gnuace
from $TAO_ROOT to generate GNUmakefiles. Use -type vc71 or -type vc8 to generate VC71 and VC8 project and solution files.
○ Build ACE+TAO together in one shot. To do that please issue the following commands:
$ACE_ROOT/bin/mwc.pl TAO_ACE.mwc
from $TAO_ROOT. This will generate GNUmakefiles for ACE, gperf, and core ACE+TAO libraries. Issuing a 'make' from $TAO_ROOT will build all of the above in one shot. You can use -type vc71 to generate VC71 project and workspace files. TAO_ACE.sln can be used by users to build ACE+TAO from a single workspace file. Users can use -type vc8 to generate the VC8 solutions files.
☆ If you want to build CIAO and its associated libraries please see CIAO-INSTALL for details.
# EITHER libdc1394 v2.0.1 (release version)
VERSION="2.0.1"
LIBDC="libdc1394-$VERSION"
1
2
3
4
5
6
$ curl -O http://kent.dl.sourceforge.net/sourceforge/libdc1394/$LIBDC.tar.gz
$ tar zxvf $LIBDC.tar.gz
$ cd $LIBDC
$ ./configure --prefix=/usr/local
$ make
$ sudo make install
# OR libdc1394 from SVN
1
2
3
4
5
6
|
$ svn co https://libdc1394.svn.sourceforge.net/svnroot/libdc1394/trunk/libdc1394 libdc1394 $ cd libdc1394 $ autoreconf -i -s $ ./configure --prefix=/usr/local $ make $ sudo make install |
![[ImageJ]](https://imageproxy.pixnet.cc/imgproxy?url=https://rsb.info.nih.gov/ij/images/imagej-logo.gif&width=233&height=47)

1
2
3
4
5
6
[ jackie macbook-pro ~ ]# ./configure --with-imagej=/Applications/ImageJ/ CXXFLAGS="-g -O2 -isysroot/Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.6"
[ jackie macbook-pro ~ ]# and for statically-linked components use:
[ jackie macbook-pro ~ ]#./configure --with-imagej=/Applications/ImageJ/ --enable-stati
[ jackie macbook-pro ~ ]# make -j 2
[ jackie macbook-pro ~ ]# cd MMDevice && make && cd ..
[ jackie macbook-pro ~ ]# cd DeviceAdapters/dc1394/ && make
Micro-Manager
μManager is a software package for control of automated microscopes. It lets you execute common microscope image acquisition strategies such as time-lapses, multi-channel imaging, z-stacks, and combinations thereof. μManager works with microscopes from all four major manufacturers (Leica, Nikon, Olympus and Zeiss), most scientific-grade cameras and many peripherals (stages, filter wheels, shutters, etc.) used in microscope imaging (check the list of supported hardware). Since μManager runs as a plugin to ImageJ, image analysis routines are available within the application. μManager software is available for multiple platforms (Windows, Mac, and Linux) and is free. Download the most recent version (1.3) from our website.
μManager 是一個顯微自動化控制的軟體套件,
【Notes】
◆縮時攝影(time-lapses):http://www.imagejoy.com/article.php?id=160
◆多頻道圖像顯示(multi-channel imaging):http://webhd.xuite.net/_my2/@FILE?verify&936bd973a253bddf66612a83ae21285f
◆堆疊拍照(或Z軸疊圖:z-stacks):
http://www.totalsmart.com.tw/index.php?option=com_content&task=view&id=142&Itemid=201
http://www.ticgroup.com.tw/menu/products/sci/mocro_digi_image/analysis/Extended%20_focus/Extended_focus.asp
http://www.yuanyu.com.tw/yuanli/Products3_6.asp?Unique_ID=4211
◆載物台(stages):http://www.olympusmicro.com/primer/anatomy/stage.html
◆濾鏡轉輪(filter wheels):http://www.major.com.tw/p_6_filterwheel.htm
◆快門 (shutter):http://www.major.com.tw/p_6_filterwheel.htm
【下載及安裝】
1
2
3
4
5
|
$ svn co https://valelab.ucsf.edu/svn/micromanager2/trunk µmanager $ cd µmanager $ autoreconf -i -s $ export PATH="/usr/local/bin:$PATH" # to ensure user compiled swig is used $ ./configure --with-imagej=/Applications/ImageJ/; make |