Building MicroManager in linux

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Building MicroManager in linux

Daniel Jones-2
Hi,
I'm trying to build Micromanager from source running Ubuntu 9.04. When I run ./configure, I get the following error:

checking whether to build the core... ./configure: line 16261: syntax error near unexpected token `1.2'
./configure: line 16261: `   AX_BOOST_BASE(1.2)'

I googled this and found some recent discussion on this list about this problem, where a suggested workaround was to run 'autoconf --install' after mmUnixBuild.sh. Unfortunately this gives the following error message:
autoconf: invalid option --install


Any suggestions on how to proceed?

Thanks,
Daniel Jones



------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev

_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Building MicroManager in linux

Nico Stuurman-4
HI Daniel,

> I'm trying to build Micromanager from source running Ubuntu 9.04.  
> When I run ./configure, I get the following error:
>
> checking whether to build the core... ./configure: line 16261:  
> syntax error near unexpected token `1.2'
> ./configure: line 16261: `   AX_BOOST_BASE(1.2)'
>
> I googled this and found some recent discussion on this list about  
> this problem, where a suggested workaround was to run 'autoconf --
> install' after mmUnixBuild.sh. Unfortunately this gives the  
> following error message:
> autoconf: invalid option --install

The missing macro is in the m4 directory in the Micro-Manager  
distribution.  I believe that it also is included with most newer  
linux distributions. I am unsure why the "autoreconf" command does not  
find it and why the mmUnixbuild.sh script does not find it.  If I  
remember correctly, running:

autoconf
automake

solved the problem for me.  If that does not do it, you can try:

autoconf -I m4
automake

Let us know what you figured out so that the next person can find the  
solution.

Best,

Nico



------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Building MicroManager in linux

Daniel Jones-3
Hi again,

I've made some progress on this. I was able to get ./configure to work by running the following commands:

./mmUnixBuild
autoreconf
./configure --with-imagej=/usr/bin/imagej

By the way, when I run ./mmUnixBuild I get the following message:
./mmUnixBuild.sh
...
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
...
So maybe making a change to configure.in would eliminate this issue. One other note, I needed to install the boost c++ libraries in order to compile, but this library isn't listed on the wiki page (https://valelab.ucsf.edu/~nico/MMwiki/index.php/Linux_installation_from_source_(Ubuntu)) for Linux installation.

So, now I can run ./configure without a problem. Unfortunately, when I try to compile, I get the following error:

make
...
make[1]: Entering directory `/home/djones/src/micromanager1.3/mmstudio'
test -d build || mkdir build
rm -rf build/*
cp ./bin/plugins_mmstudio.config build/plugins.config
javac -source 1.5 -target 1.5 -sourcepath ../MMCoreJ_wrap:./src:../hcs/src:. -classpath /usr/share/imagej/../java/ij.jar:/usr/share/java/bsh.jar:/usr/share/java/swingx.jar:/bin/MMCoreJ.jar:. ./src/*.java ./src/org/micromanager/utils/*.java -d build
./src/org/micromanager/image5d/Image5D.java:658: cannot find symbol
symbol  : constructor LUT(java.awt.image.IndexColorModel,double,double)
location: class ij.process.LUT
          luts[i] = new LUT( (IndexColorModel)chDisplayProps[i].getColorModel(), chDisplayProps[i].getMinValue(), chDisplayProps[i].getMaxValue() );
                    ^
Note: ./src/org/micromanager/utils/JavaUtils.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
make[1]: *** [MMJ_.jar] Error 1
make[1]: Leaving directory `/home/djones/src/micromanager1.3/mmstudio'
make: *** [all-recursive] Error 1


Any thoughts?

Thanks,
Daniel


------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Building MicroManager in linux

Nico Stuurman
Administrator
By the way, when I run ./mmUnixBuild I get the following message:
./mmUnixBuild.sh
...
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
...
So maybe making a change to configure.in would eliminate this issue.

Done.

One other note, I needed to install the boost c++ libraries in order to compile, but this library isn't listed on the wiki page (https://valelab.ucsf.edu/~nico/MMwiki/index.php/Linux_installation_from_source_(Ubuntu)) for Linux installation.

I updated that page, but it would be best if someone who is actually building on Ubuntu could go over it and make sure that it all still works.

So, now I can run ./configure without a problem. Unfortunately, when I try to compile, I get the following error:

make
...
make[1]: Entering directory `/home/djones/src/micromanager1.3/mmstudio'
test -d build || mkdir build
rm -rf build/*
cp ./bin/plugins_mmstudio.config build/plugins.config
javac -source 1.5 -target 1.5 -sourcepath ../MMCoreJ_wrap:./src:../hcs/src:. -classpath /usr/share/imagej/../java/ij.jar:/usr/share/java/bsh.jar:/usr/share/java/swingx.jar:/bin/MMCoreJ.jar:. ./src/*.java ./src/org/micromanager/utils/*.java -d build
./src/org/micromanager/image5d/Image5D.java:658: cannot find symbol
symbol  : constructor LUT(java.awt.image.IndexColorModel,double,double)
location: class ij.process.LUT
          luts[i] = new LUT( (IndexColorModel)chDisplayProps[i].getColorModel(), chDisplayProps[i].getMinValue(), chDisplayProps[i].getMaxValue() );
                    ^
Note: ./src/org/micromanager/utils/JavaUtils.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
make[1]: *** [MMJ_.jar] Error 1
make[1]: Leaving directory `/home/djones/src/micromanager1.3/mmstudio'
make: *** [all-recursive] Error 1


Any thoughts?

Looks like the ij.jar version is not matching.  Try the one that is included with our source code repository (in directory classext).

Best,

Nico


------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Building MicroManager in linux

Daniel Jones-3
On Wed, Dec 16, 2009 at 5:21 PM, Nico Stuurman <[hidden email]> wrote:

>
> By the way, when I run ./mmUnixBuild I get the following message:
> ./mmUnixBuild.sh
> ...
> libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
> libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
> ...
> So maybe making a change to configure.in would eliminate this issue.
>
>> Done.

I'm still getting this message when I run ./mmUnixBuild:
...(etc)...
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
...(etc)...

And running autoreconf gives me the same message. Still, as long as I run

./mmUnixBuild.sh
autoreconf
./configure

in that order, then ./configure seems to work fine for me.

> So, now I can run ./configure without a problem. Unfortunately, when I try to compile, I get the following error:
>
> make
> ...
> make[1]: Entering directory `/home/djones/src/micromanager1.3/mmstudio'
> test -d build || mkdir build
> rm -rf build/*
> cp ./bin/plugins_mmstudio.config build/plugins.config
> javac -source 1.5 -target 1.5 -sourcepath ../MMCoreJ_wrap:./src:../hcs/src:. -classpath /usr/share/imagej/../java/ij.jar:/usr/share/java/bsh.jar:/usr/share/java/swingx.jar:/bin/MMCoreJ.jar:. ./src/*.java ./src/org/micromanager/utils/*.java -d build
> ./src/org/micromanager/image5d/Image5D.java:658: cannot find symbol
> symbol  : constructor LUT(java.awt.image.IndexColorModel,double,double)
> location: class ij.process.LUT
>           luts[i] = new LUT( (IndexColorModel)chDisplayProps[i].getColorModel(), chDisplayProps[i].getMinValue(), chDisplayProps[i].getMaxValue() );
>                     ^
> Note: ./src/org/micromanager/utils/JavaUtils.java uses unchecked or unsafe operations.
> Note: Recompile with -Xlint:unchecked for details.
> 1 error
> make[1]: *** [MMJ_.jar] Error 1
> make[1]: Leaving directory `/home/djones/src/micromanager1.3/mmstudio'
> make: *** [all-recursive] Error 1

I'm not sure if a change was made, but I'm no longer getting this
error since I re-checked out the source a little bit ago. Now when I
run make everything seem to compile without a problem. Now we come to
'make install', which is a little more problematic. When I ran
'./configure', I used the following options:

./configure --prefix=/usr/local/ --with-imagej=/usr/local/ImageJ

So basically I'm trying to keep everything in /usr/local and use a
local installation of ImageJ (I also have ImageJ installed from the
Ubuntu repositories. It may be a good idea to uninstall this, but it
seems like what I'm doing here should work regardless). Unfortunately
it seems like these options are more or less being ignored when I run
'make install'. For instance, all the shared object libraries are
copied to /usr/lib/micro-manager instead of
/usr/local/lib/micro-manager. Also, instead of copying all of the
various *.jar files to /usr/local/ImageJ/plugins (or wherever would be
appropriate for the local installation), 'make install' copies them to
/usr/share/imagej. This is a problem because /usr/share/imagej is
where plugins and such go for the Ubuntu version (i.e., from the
repositories) of ImageJ, not the local installation that I want to
use. The version in the repositories (1.41) doesn't work with the
current version of Micromanager, which apparently requires ImageJ
version 1.43.

Maybe I'm making matters more difficult by having two installations of
ImageJ, and I think I'll try uninstalling the version from the Ubuntu
repositories. But still, it seems strange that the options I'm passing
to configure are being ignored, unless I am missing something.


>>One other note, I needed to install the boost c++ libraries in order to compile, but this library isn't listed on the wiki page (https://valelab.ucsf.edu/~nico/MMwiki/index.php/Linux_installation_from_source_(Ubuntu)) for Linux installation.

>I updated that page, but it would be best if someone who is actually building on Ubuntu could go over it and make sure that it all still works.

As you can see, I'm effectively in the process of doing that now. I
think the mmscript on the wiki page may end up needing some
modifications as well. Hopefully as I get this working any needed
modifications can be made to the wiki page.


Cheers,
Daniel

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Building MicroManager in linux

Nico Stuurman-4
Hi Daniel,

>> libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to  
>> configure.in and
>> libtoolize: rerunning libtoolize, to keep the correct libtool  
>> macros in-tree.
>> ...
>> So maybe making a change to configure.in would eliminate this issue.
>>
>>> Done.
>
> I'm still getting this message when I run ./mmUnixBuild:

It seems that those libtoolize errors are unrelated.  It seems that  
aclocal needs to told where to find the missing macro as follows:

aclocal -I m4

autoreconf figures this all out very nicely by itself.   I updates the  
mmUnixBuild.sh script to add the -I m4 flag, risking that it will  
break something else.

>> Now we come to
> 'make install', which is a little more problematic. When I ran
> './configure', I used the following options:
>
> ./configure --prefix=/usr/local/ --with-imagej=/usr/local/ImageJ
>
> So basically I'm trying to keep everything in /usr/local and use a
> local installation of ImageJ (I also have ImageJ installed from the
> Ubuntu repositories. It may be a good idea to uninstall this, but it
> seems like what I'm doing here should work regardless). Unfortunately
> it seems like these options are more or less being ignored when I run
> 'make install'. For instance, all the shared object libraries are
> copied to /usr/lib/micro-manager instead of
> /usr/local/lib/micro-manager.

> Also, instead of copying all of the
> various *.jar files to /usr/local/ImageJ/plugins (or wherever would be
> appropriate for the local installation), 'make install' copies them to
> /usr/share/imagej.

This behavior is caused by the variable DEVICEADAPTERPATH and JARPATH  
being hard coded on linux to /usr/lib/micro-manager and /usr/share/
java respectively, ignoring the path set in your --with-imagej  
directive.

I do not know the reason behind that behavior.  Johan, can that code  
be removed?

Also, the variable prefix is currently ignored.  The easiest way to  
implement that functionality would be to add it to the initial value  
of the variable DEVICEADAPTERPATH (although I read that it is bad  
practice to use the $prefix variable in configure scripts).

best,

Nico



------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Building MicroManager in linux

Daniel Jones-3
> > Also, instead of copying all of the
> > various *.jar files to /usr/local/ImageJ/plugins (or wherever would be
> > appropriate for the local installation), 'make install' copies them to
> > /usr/share/imagej.
>
> This behavior is caused by the variable DEVICEADAPTERPATH and JARPATH
> being hard coded on linux to /usr/lib/micro-manager and /usr/share/
> java respectively, ignoring the path set in your --with-imagej
> directive.
>
> I do not know the reason behind that behavior.  Johan, can that code
> be removed?
>
> Also, the variable prefix is currently ignored.  The easiest way to
> implement that functionality would be to add it to the initial value
> of the variable DEVICEADAPTERPATH (although I read that it is bad
> practice to use the $prefix variable in configure scripts).

Ok, I'm glad to know I'm not just going crazy. At any rate, I was able
to get things working by running a slightly modified version of the
mmscript:

#! bin/bash
cd /user/local/ImageJ
export LD_LIBRARY_PATH=.:/usr/local/lib:/usr/lib/micro-manager:/usr/local/ImageJ
java -Djava.library.path=/usr/lib/micro-manager:/usr/local/ImageJ
-Dplugins.dir=/usr/share/imagej -cp /usr/local/ImageJ/ij.jar ij.ImageJ

The key difference is setting plugins.dir to /usr/share/imagej,
instead of /usr/local/ImageJ as in the version on the wiki. So at this
point things seem to be working ok.


Daniel

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Building MicroManager in linux

Alberto de Luis
This is my command sequence to compile micromanager1.3 from revision 3629 :

./mmUnixBuild.sh
autoreconf
./configure

But in this point I'm having problems building micromanager in Ubuntu 9.10 x86_64 with gcc 4.4.1. (
kernel 2.6.31-16-generic)

Some building errors are thrown related to function scopes (e.g.‘printf’ was not declared in this scope). These can be solved if I manually edit the affected files adding a "#include <stdio.h>" and/or "
#include <stdint.h>" line where needed (Maybe there's a faster solution). Next are the files that throw this error and the function throwing the error:

MMDevice/Property.cpp (snprintf)
MMCore/CircularBuffer.cpp (printf)
DeviceAdapters/Arduino/Arduino.cpp (snprintf)
DeviceAdapters/ASIFW1000/ASIFW1000.cpp (sprintf)
DeviceAdapters/ASIStage/ASIStage.cpp (sscanf)
DeviceAdapters/Conix/Conix.cpp (printf)
DeviceAdapters/DemoCamera/DemoCamera.cpp (snprintf)
DeviceAdapters/DemoRGBCamera/DemoRGBCamera.cpp (printf)
DeviceAdapters/DemoStreamingCamera/
DemoStreamingCamera.cpp (printf)
DeviceAdapters/K8055/K8055.cpp
(printf)
DeviceAdapters/K8055/K8055Interface.cpp (stderr fprintf)
DeviceAdapters/K8061/K8061.cpp (snprintf printf)
DeviceAdapters/LeicaDMI/LeicaDMI.cpp (printf)
DeviceAdapters/LeicaDMI/LeicaDMIScopeInterface.cpp (printf)
DeviceAdapters/LeicaDMR/LeicaDMR.cpp (sprintf)
DeviceAdapters/Ludl/Ludl.cpp (snprintf)
DeviceAdapters/LudlLow/Ludl.cpp (snprintf printf)
DeviceAdapters/NikonTE2000/NikonTE2000.cpp (sprintf printf)
DeviceAdapters/NikonTE2000/TEHub.cpp (sprintf)
DeviceAdapters/Prior/Prior.cpp (snprintf)
DeviceAdapters/Pecon/Pecon.cpp (sprintf)
DeviceAdapters/SerialManagerUNIX/SerialManager.cpp (printf)
DeviceAdapters/SerialManagerUNIX/SerialPort.cpp (printf)
DeviceAdapters/SpectralLMM5/SpectralLMM5.cpp (printf uint16_t)
**In this case is needed <stdint.h> too**
DeviceAdapters/SpectralLMM5/SpectralLMM5Interface.cpp (sprintf printf)
DeviceAdapters/SutterLambda/SutterLambda.cpp (snprintf)
DeviceAdapters/ThorlabsFilterWheel/FilterWheel.cpp (snprintf printf)
DeviceAdapters/USBManager/USBManager.cpp (printf)

Later I encounter this problem:

/usr/lib/libusb.a: could not read symbols: Bad value

That is not solved, following instructions on micromanager wiki:
"Resolved by deleting references to USBManager in DIST_SUBDIR variable inside DeviceAdapters/Makefile."

Have anyone tried to compile micromanager on Ubuntu 9.10?

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Building MicroManager in linux

Nico Stuurman
Administrator
Hi Alberto.

> But in this point I'm having problems building micromanager in Ubuntu 9.10 x86_64 with gcc 4.4.1. (kernel 2.6.31-16-generic)
>
> Some building errors are thrown related to function scopes (e.g.‘printf’ was not declared in this scope). These can be solved if I manually edit the affected files adding a "#include <stdio.h>" and/or "#include <stdint.h>" line where needed (Maybe there's a faster solution). Next are the files that throw this error and the function throwing the error:

I committed these changes (as proposed by Johan) in revision 3648 (about two hours ago)

> Later I encounter this problem:
>
> /usr/lib/libusb.a: could not read symbols: Bad value

Did you build libusb for 64 bits?  Possibly, you'll need to link against /usr/lib64/libusb.a.  You can try editing DeviceAdapters/configure.in and change the order of /usr/ib /usr/lib64 on line 130.

> That is not solved, following instructions on micromanager wiki:
> "Resolved by deleting references to USBManager in DIST_SUBDIR variable inside DeviceAdapters/Makefile."

If you do not want to build USBManager, then you can remove it from DeviceAdpaters/Makefile.am  

Best,

Nico
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Building MicroManager in linux

Alberto de Luis
Hi Nico,
thank you for the edits. Now there's no need for autoreconf.

Almost all the source files are working fine now but these ones are not fixed:

DeviceAdapters/ASIFW1000/ASIFW1000.cpp
DeviceAdapters/LeicaDMR/LeicaDMR.cpp
DeviceAdapters/USBManager/USBManager.cpp

My problems linking against libusb.a (32 or 64 bits) are here to stay:

/usr/lib64/libusb.a: could not read symbols: Bad value
/usr/lib/libusb.a: could not read symbols: Bad value

Only removing it from DeviceAdapters/Makefile.am, I get to the end.

Is USBManager needed to communicate with a Leica DM, using the LeicaDMI module?

Thank you!

Alberto 

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Building MicroManager in linux

Nico Stuurman
Administrator
> Almost all the source files are working fine now but these ones are not fixed:

Should be in the repository now.

> My problems linking against libusb.a (32 or 64 bits) are here to stay:
>
> /usr/lib64/libusb.a: could not read symbols: Bad value
> /usr/lib/libusb.a: could not read symbols: Bad value

Are you building libusb yourself or do you rely on your distribution?  Do you know if this is libusb 1.0 or libusb 0.1?  Micro-Manager still uses libusb 0.1 for the simple reason that this is th only crossplatform usb library (i.e., libusb 1.0 is not available on Windows).

> Only removing it from DeviceAdapters/Makefile.am, I get to the end.
>
> Is USBManager needed to communicate with a Leica DM, using the LeicaDMI module?

No.  Communication to the Leica DMI is through a serial port (some Leica DMI microscopes have a build-in USB-serial converter.  You will need to install a driver for that converter.  There might be some info on the MM wiki).

Best,

Nico


------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general