Edit page History How do I edit this website?

Compiling MM and creating deb files on 64-bit Ubuntu

These instructions refer to very old versions of Micro-Manager source code.

This note was written using Revision: 2580 that contained fixes to linux build by Nico and debian-specific scripts by Johan. Following notes are a log of things I needed to do for building the deb packages successfully and running micro-manager. Suggestions were provided by Martin and Johan. Search “non-hardware micro-manager setup on linux” thread in micro-manager-general list. These steps will be out-of-date sooner rather than later, but should provide an idea of overall process.

OS was Ubuntu jaunty.

–Shalin 12:44, 2 June 2009 (UTC)

Pre-requisite packages

  • ImageJ (either debian package or uncompress Tar.gz from ImageJ website in /usr/local/ImageJ/). The debs on launchpad are version 1.41n whereas you can get the latest from the ImageJ website. Micro-manager plugin requires ImageJ version 1.42n and above.

  • sun-java6-jdk




-libswingx-java (ver. 0.9.2)








More or less packages may be required. Above was what I needed to install.

After all is setup, cd to directory of choice and get SVN copy of micro-manager

$ svn co https://valelab4.ucsf.edu/svn/micromanager2/branches/micromanager1.3

I received Revision 2580.

Bootstrap the autobuild tools.


Configure and build

$./configure --with-imagej=/usr/local/ImageJ (Replace the path suitably)
$ make

Errors encountered during make:

1\. In USBManager.

** Warning: Linking the shared library libmmgr_dal_USBManager.la against the ** static library /usr/lib/libusb.a is not portable! libtool: link: g++ -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../../../lib/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.3.3/crtbeginS.o .libs/USBManager.o ../../MMDevice/.libs/libMMDevice.a /usr/lib/libusb.a -L/usr/lib/gcc/x86_64-linux-gnu/4.3.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.3.3/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../../../lib/crtn.o -Wl,-soname -Wl,libmmgr_dal_USBManager.so.0 -o .libs/libmmgr_dal_USBManager.so.0.0.0 /usr/bin/ld: /usr/lib/libusb.a(usb.o): relocation R_X86_64_32 against a local symbol' can not be used when making a shared object; recompile with -fPIC /usr/lib/libusb.a: could not read symbols: Bad value collect2: ld returned 1 exit status make[2]: *** [libmmgr_dal_USBManager.la] Error 1 make[2]: Leaving directory /home/sanguine/research/umanager/micromanager1.3/DeviceAdapters/USBManager’ make[1]: ** [all-recursive] Error 1 make[1]: Leaving directory `/home/sanguine/research/umanager/micromanager1.3/DeviceAdapters’ make: ** [all-recursive] Error 1

Resolved by deleting references to `USBManager` in `DIST_SUBDIR`
variable inside `DeviceAdapters/Makefile`.

Compilation succeded!!

## If not making debian packages, do $make install and you should be fine. I haven't tried it yet.

## Making debian packages. The path I chose for easy management of files.

Modify newImageJ script inside portdebian directory.


Substitute all references to `/usr/share/imagej` by `/usr/local/ImageJ` 

Modify `debiancontrol.port` inside portdebian directory.

`Architecture: amd64` in `debiancontrol.port`.

Modify `mkdebian.sh` inside `portdebian`

Substitute all references to `/usr/share/imagej` by `/usr/local/ImageJ`   

Include configuration, html, and xml acquisition samples inside the package.

##### Programs  mkdir -p $ROOTBIN/usr/bin/ cp Test_Serial/mm_testserial ModuleTest/mm_moduletest Test_MMCore/mm_testCore $ROOTBIN/usr/bin/ strip $ROOTBIN/usr/bin/* ##### And configuration files  cp bin/.cfg $ROOTBIN/usr/bin/ cp bin/.html $ROOTBIN/usr/bin/ cp bin/*.xml $ROOTBIN/usr/bin/

Then do `./portdebian/mkdebian.sh`

Got error: cp: cannot stat `Tracking/Tracker_.jar’: No such file or directory

Error resolved by

cd Tracking make

Somehow earlier `make` had missed it.

Two packages `micromanager.deb` and `micromanager-ij.deb` are created in
top directory of the source tree. Install them.

$ dpkg -i micromanager micromanager-ij ``` worked.

imagejmm script created by micromanager-ij works, however doesn’t bring up micro-manager. You need to invoke it from PluginsMicro-managerMicro-manager Studio.