From 4c059c5bf2123bac7451a7a9388c365d1279726a Mon Sep 17 00:00:00 2001 From: nenad Date: Tue, 30 Sep 2008 03:40:34 +0000 Subject: [PATCH] merge from 1.2 git-svn-id: https://valelab.ucsf.edu/svn/micromanager2/trunk@1583 d0ab736e-dc22-4aeb-8dc9-08def0aa14fd --- DeviceAdapters/ASIFW1000/Makefile.am | 2 +- DeviceAdapters/ASIStage/Makefile.am | 2 +- DeviceAdapters/Conix/Makefile.am | 2 +- DeviceAdapters/DAZStage/Makefile.am | 2 +- DeviceAdapters/DemoCamera/Makefile.am | 2 +- .../DemoStreamingCamera/Makefile.am | 2 +- DeviceAdapters/Hamamatsu/Makefile.am | 6 +- DeviceAdapters/K8055/Makefile.am | 2 +- DeviceAdapters/K8061/Makefile.am | 2 +- DeviceAdapters/Ludl/Makefile.am | 6 +- DeviceAdapters/LudlLow/Makefile.am | 2 +- DeviceAdapters/Nikon/Makefile.am | 2 +- DeviceAdapters/NikonTE2000/Makefile.am | 2 +- DeviceAdapters/PI/Makefile.am | 2 +- DeviceAdapters/PI_GCS/Makefile.am | 2 +- DeviceAdapters/PVCAM/Makefile.am | 2 +- DeviceAdapters/Pecon/Makefile.am | 2 +- DeviceAdapters/Prior/Makefile.am | 2 +- DeviceAdapters/QCam/Makefile.am | 2 +- DeviceAdapters/SerialManagerUNIX/Makefile.am | 3 +- DeviceAdapters/Skeleton/Makefile.am | 2 +- DeviceAdapters/SpectralLMM5/Makefile.am | 3 +- DeviceAdapters/SutterLambda/Makefile.am | 2 +- DeviceAdapters/USBManager/Makefile.am | 2 +- DeviceAdapters/Vincent/Makefile.am | 2 +- DeviceAdapters/Yokogawa/Makefile.am | 4 +- DeviceAdapters/ZeissCAN/Makefile.am | 2 +- DeviceAdapters/ZeissCAN29/Makefile.am | 2 +- DeviceAdapters/configure.in | 129 ++--------- DeviceAdapters/dc1394/Makefile.am | 2 +- MMCore/MMCore.cpp | 4 + MMCore/PluginManager.cpp | 17 +- MMCoreJ_wrap/Makefile.am | 10 +- ModuleTest/Makefile.am | 8 +- Test_MMCore/Makefile.am | 10 +- Test_Serial/Makefile.am | 6 +- Test_Serial/Test_Serial.cpp | 4 +- build_instructions_debian.txt | 34 +-- configure.common | 208 ++++++++++++++++++ configure.in | 186 +--------------- doc/copyright.txt | 9 + mkdebian.sh | 25 +-- .../org/micromanager/CalibrationEditor.java | 3 + .../src/org/micromanager/ConfigGroupPad.java | 3 + .../org/micromanager/MMStudioMainFrame.java | 24 +- .../src/org/micromanager/PositionListDlg.java | 5 + .../src/org/micromanager/PresetEditor.java | 3 + .../src/org/micromanager/PropertyEditor.java | 3 + .../src/org/micromanager/SliderPanel.java | 6 + mmstudio/src/org/micromanager/icons/minus.png | Bin 0 -> 79 bytes mmstudio/src/org/micromanager/icons/plus.png | Bin 0 -> 194 bytes runMMstudioDebian.sh | 3 + 52 files changed, 388 insertions(+), 382 deletions(-) create mode 100644 configure.common create mode 100644 doc/copyright.txt create mode 100644 mmstudio/src/org/micromanager/icons/minus.png create mode 100644 mmstudio/src/org/micromanager/icons/plus.png create mode 100755 runMMstudioDebian.sh diff --git a/DeviceAdapters/ASIFW1000/Makefile.am b/DeviceAdapters/ASIFW1000/Makefile.am index 171a541c07..8b94067933 100644 --- a/DeviceAdapters/ASIFW1000/Makefile.am +++ b/DeviceAdapters/ASIFW1000/Makefile.am @@ -6,6 +6,6 @@ ASIFW1000_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a ASIFW1000_la_LDFLAGS = -module install: - cp .libs/ASIFW1000.so $(IJPATH)/$(MMPREFIX)ASIFW1000 + cp .libs/ASIFW1000.so $(DEVICEADAPTERPATH)/$(MMPREFIX)ASIFW1000$(MMSUFFIX) EXTRA_DIST = ASIFW1000.vcproj license.txt diff --git a/DeviceAdapters/ASIStage/Makefile.am b/DeviceAdapters/ASIStage/Makefile.am index fc93a00493..86e6a3e5d2 100644 --- a/DeviceAdapters/ASIStage/Makefile.am +++ b/DeviceAdapters/ASIStage/Makefile.am @@ -6,6 +6,6 @@ ASIStage_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a ASIStage_la_LDFLAGS = -module install: - cp .libs/ASIStage.so $(IJPATH)/$(MMPREFIX)ASIStage + cp .libs/ASIStage.so $(DEVICEADAPTERPATH)/$(MMPREFIX)ASIStage$(MMSUFFIX) EXTRA_DIST = ASIStage.vcproj license.txt diff --git a/DeviceAdapters/Conix/Makefile.am b/DeviceAdapters/Conix/Makefile.am index da976cee75..731c65df35 100644 --- a/DeviceAdapters/Conix/Makefile.am +++ b/DeviceAdapters/Conix/Makefile.am @@ -6,4 +6,4 @@ Conix_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a Conix_la_LDFLAGS = -module install: - cp .libs/Conix.so $(IJPATH)/$(MMPREFIX)Conix + cp .libs/Conix.so $(DEVICEADAPTERPATH)/$(MMPREFIX)Conix$(MMSUFFIX) diff --git a/DeviceAdapters/DAZStage/Makefile.am b/DeviceAdapters/DAZStage/Makefile.am index a3fdc21cd7..42a6a41995 100644 --- a/DeviceAdapters/DAZStage/Makefile.am +++ b/DeviceAdapters/DAZStage/Makefile.am @@ -6,7 +6,7 @@ DAZStage_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a DAZStage_la_LDFLAGS = -module install: - cp .libs/DAZStage.so $(IJPATH)/$(MMPREFIX)DAZStage + cp .libs/DAZStage.so $(DEVICEADAPTERPATH)/$(MMPREFIX)DAZStage$(MMSUFFIX) EXTRA_DIST = DAZStage.vcproj license.txt diff --git a/DeviceAdapters/DemoCamera/Makefile.am b/DeviceAdapters/DemoCamera/Makefile.am index f7481dc973..3456dec95b 100644 --- a/DeviceAdapters/DemoCamera/Makefile.am +++ b/DeviceAdapters/DemoCamera/Makefile.am @@ -5,6 +5,6 @@ DemoCamera_la_LDFLAGS = -module DemoCamera_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a install: - cp .libs/DemoCamera.so $(IJPATH)/$(MMPREFIX)DemoCamera + cp .libs/DemoCamera.so $(DEVICEADAPTERPATH)/$(MMPREFIX)DemoCamera$(MMSUFFIX) EXTRA_DIST = DemoCamera.vcproj license.txt diff --git a/DeviceAdapters/DemoStreamingCamera/Makefile.am b/DeviceAdapters/DemoStreamingCamera/Makefile.am index 64af3d7923..2d5dd4cef5 100644 --- a/DeviceAdapters/DemoStreamingCamera/Makefile.am +++ b/DeviceAdapters/DemoStreamingCamera/Makefile.am @@ -5,6 +5,6 @@ DemoStreamingCamera_la_LDFLAGS = -module DemoStreamingCamera_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a $(LIBACE) install: - cp .libs/DemoStreamingCamera.so $(IJPATH)/$(MMPREFIX)DemoStreamingCamera + cp .libs/DemoStreamingCamera.so $(DEVICEADAPTERPATH)/$(MMPREFIX)DemoStreamingCamera$(MMSUFFIX) EXTRA_DIST = DemoStreamingCamera.vcproj license.txt diff --git a/DeviceAdapters/Hamamatsu/Makefile.am b/DeviceAdapters/Hamamatsu/Makefile.am index d65e05a1bc..ce4b3b7a16 100644 --- a/DeviceAdapters/Hamamatsu/Makefile.am +++ b/DeviceAdapters/Hamamatsu/Makefile.am @@ -7,11 +7,11 @@ Hamamatsu_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a Hamamatsu_la_LDFLAGS = -module $(DCAMFRAMEWORKS) install: - cp .libs/Hamamatsu.so $(IJPATH)/$(MMPREFIX)Hamamatsu + cp .libs/Hamamatsu.so $(DEVICEADAPTERPATH)/$(MMPREFIX)Hamamatsu$(MMSUFFIX) install-strip: - cp .libs/Hamamatsu.so $(IJPATH)/$(MMPREFIX)Hamamatsu - strip -x $(IJPATH)/$(MMPREFIX)Hamamatsu + cp .libs/Hamamatsu.so $(DEVICEADAPTERPATHPATH)/$(MMPREFIX)Hamamatsu$(MMSUFFIX) + strip -x $(DEVICEADAPTERPATHPATH)/$(MMPREFIX)Hamamatsu$(MMSUFFIX) EXTRA_DIST = Hamamatsu.vcproj license.txt diff --git a/DeviceAdapters/K8055/Makefile.am b/DeviceAdapters/K8055/Makefile.am index 6ad358bff6..3fc8b33c20 100644 --- a/DeviceAdapters/K8055/Makefile.am +++ b/DeviceAdapters/K8055/Makefile.am @@ -6,4 +6,4 @@ K8055_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a K8055_la_LDFLAGS = -module install: - cp .libs/K8055.so $(IJPATH)/$(MMPREFIX)K8055 + cp .libs/K8055.so $(DEVICEADAPTERPATHPATH)/$(MMPREFIX)K8055$(MMSUFFIX) diff --git a/DeviceAdapters/K8061/Makefile.am b/DeviceAdapters/K8061/Makefile.am index 999ca5cae7..07882ed030 100644 --- a/DeviceAdapters/K8061/Makefile.am +++ b/DeviceAdapters/K8061/Makefile.am @@ -7,4 +7,4 @@ K8061_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a K8061_la_LDFLAGS = -module install: - cp .libs/K8061.so $(IJPATH)/$(MMPREFIX)K8061 + cp .libs/K8061.so $(DEVICEADAPTERPATH)/$(MMPREFIX)K8061$(MMSUFFIX) diff --git a/DeviceAdapters/Ludl/Makefile.am b/DeviceAdapters/Ludl/Makefile.am index ff65879231..97766f2f4a 100644 --- a/DeviceAdapters/Ludl/Makefile.am +++ b/DeviceAdapters/Ludl/Makefile.am @@ -6,7 +6,11 @@ Ludl_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a Ludl_la_LDFLAGS = -module install: - cp .libs/Ludl.so $(IJPATH)/$(MMPREFIX)Ludl + cp .libs/Ludl.so $(DEVICEADAPTERPATH)/$(MMPREFIX)$(thislib)$(MMSUFFIX) + +install-strip: + cp .libs/$(MMPREFIX)Ludl.so $(DEVICEADAPTERPATH)/Ludl$(MMSUFFIX) + strip -x (DEVICEADAPTERPATH)/$(MMPREFIX)Ludl$(MMSUFFIX) ##EXTRA_DIST = Ludl_vc8.vcproj Ludl.vcproj license.txt EXTRA_DIST = license.txt diff --git a/DeviceAdapters/LudlLow/Makefile.am b/DeviceAdapters/LudlLow/Makefile.am index a9037782de..8dc9557be4 100644 --- a/DeviceAdapters/LudlLow/Makefile.am +++ b/DeviceAdapters/LudlLow/Makefile.am @@ -6,7 +6,7 @@ LudlLow_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a LudlLow_la_LDFLAGS = -module install: - cp .libs/LudlLow.so $(IJPATH)/$(MMPREFIX)LudlLow + cp .libs/LudlLow.so $(DEVICEADAPTERPATH)/$(MMPREFIX)LudlLow$(MMSUFFIX) ##EXTRA_DIST = Ludl_vc8.vcproj Ludl.vcproj license.txt EXTRA_DIST = license.txt diff --git a/DeviceAdapters/Nikon/Makefile.am b/DeviceAdapters/Nikon/Makefile.am index 5a649b95ef..17033373ab 100644 --- a/DeviceAdapters/Nikon/Makefile.am +++ b/DeviceAdapters/Nikon/Makefile.am @@ -6,7 +6,7 @@ Nikon_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a Nikon_la_LDFLAGS = -module install: - cp .libs/Nikon.so $(IJPATH)/$(MMPREFIX)Nikon + cp .libs/Nikon.so $(DEVICEADAPTERPATH)/$(MMPREFIX)Nikon$(MMSUFFIX) EXTRA_DIST = Nikon.vcproj license.txt diff --git a/DeviceAdapters/NikonTE2000/Makefile.am b/DeviceAdapters/NikonTE2000/Makefile.am index ed9f40010d..21c49fca8b 100644 --- a/DeviceAdapters/NikonTE2000/Makefile.am +++ b/DeviceAdapters/NikonTE2000/Makefile.am @@ -6,6 +6,6 @@ NikonTE2000_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a NikonTE2000_la_LDFLAGS = -module install: - cp .libs/NikonTE2000.so $(IJPATH)/$(MMPREFIX)NikonTE2000 + cp .libs/NikonTE2000.so $(DEVICEADAPTERPATH)/$(MMPREFIX)NikonTE2000$(MMSUFFIX) EXTRA_DIST = NikonTE2000.vcproj NikonTE2000_vc8.sln license.txt diff --git a/DeviceAdapters/PI/Makefile.am b/DeviceAdapters/PI/Makefile.am index e9d034c1e8..a0f6d93c11 100644 --- a/DeviceAdapters/PI/Makefile.am +++ b/DeviceAdapters/PI/Makefile.am @@ -6,4 +6,4 @@ PI_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a PI_la_LDFLAGS = -module install: - cp .libs/PI.so $(IJPATH)/$(MMPREFIX)PI + cp .libs/PI.so $(DEVICEADAPTERPATH)/$(MMPREFIX)PI$(MMSUFFIX) diff --git a/DeviceAdapters/PI_GCS/Makefile.am b/DeviceAdapters/PI_GCS/Makefile.am index 66032b0910..2bb1c4e920 100644 --- a/DeviceAdapters/PI_GCS/Makefile.am +++ b/DeviceAdapters/PI_GCS/Makefile.am @@ -6,4 +6,4 @@ PIGCS_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a PIGCS_la_LDFLAGS = -module install: - cp .libs/PIGCS.so $(IJPATH)/$(MMPREFIX)PIGCS + cp .libs/PIGCS.so $(DEVICEADAPTERPATH)/$(MMPREFIX)PIGCS$(MMSUFFIX) diff --git a/DeviceAdapters/PVCAM/Makefile.am b/DeviceAdapters/PVCAM/Makefile.am index 4b10f3c556..3739fc6fb2 100644 --- a/DeviceAdapters/PVCAM/Makefile.am +++ b/DeviceAdapters/PVCAM/Makefile.am @@ -6,6 +6,6 @@ PVCAM_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a $(LIBACE) PVCAM_la_LDFLAGS = -module $(PVCAMFRAMEWORKS) install: - cp .libs/PVCAM.so $(IJPATH)/$(MMPREFIX)PVCAM + cp .libs/PVCAM.so $(DEVICEADAPTERPATH)/$(MMPREFIX)PVCAM$(MMSUFFIX) EXTRA_DIST = PVCAM.vcproj license.txt diff --git a/DeviceAdapters/Pecon/Makefile.am b/DeviceAdapters/Pecon/Makefile.am index 2130472079..6b882e965d 100644 --- a/DeviceAdapters/Pecon/Makefile.am +++ b/DeviceAdapters/Pecon/Makefile.am @@ -6,6 +6,6 @@ Pecon_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a Pecon_la_LDFLAGS = -module install: - cp .libs/Pecon.so $(IJPATH)/$(MMPREFIX)Pecon + cp .libs/Pecon.so $(DEVICEADAPTERPATH)/$(MMPREFIX)Pecon$(MMSUFFIX) EXTRA_DIST = Pecon.vcproj license.txt diff --git a/DeviceAdapters/Prior/Makefile.am b/DeviceAdapters/Prior/Makefile.am index d0dfdbf460..d05a03c0d5 100644 --- a/DeviceAdapters/Prior/Makefile.am +++ b/DeviceAdapters/Prior/Makefile.am @@ -6,6 +6,6 @@ Prior_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a Prior_la_LDFLAGS = -module install: - cp .libs/Prior.so $(IJPATH)/$(MMPREFIX)Prior + cp .libs/Prior.so $(DEVICEADAPTERPATH)/$(MMPREFIX)Prior$(MMSUFFIX) EXTRA_DIST = Prior.vcproj license.txt diff --git a/DeviceAdapters/QCam/Makefile.am b/DeviceAdapters/QCam/Makefile.am index 814b5f4e81..10251f104d 100644 --- a/DeviceAdapters/QCam/Makefile.am +++ b/DeviceAdapters/QCam/Makefile.am @@ -6,6 +6,6 @@ QCam_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a QCam_la_LDFLAGS = -module -framework QCam install: - cp .libs/QCam.so $(IJPATH)/$(MMPREFIX)QCam + cp .libs/QCam.so $(DEVICEADAPTERPATH)/$(MMPREFIX)QCam$(MMSUFFIX) EXTRA_DIST = QCam.vcproj diff --git a/DeviceAdapters/SerialManagerUNIX/Makefile.am b/DeviceAdapters/SerialManagerUNIX/Makefile.am index 99cbf88876..3f3bf5e947 100644 --- a/DeviceAdapters/SerialManagerUNIX/Makefile.am +++ b/DeviceAdapters/SerialManagerUNIX/Makefile.am @@ -7,6 +7,7 @@ SerialManager_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a SerialManager_la_LDFLAGS = -module $(SERIALFRAMEWORKS) install: - cp .libs/SerialManager.so $(IJPATH)/$(MMPREFIX)SerialManager + cp .libs/SerialManager.so $(DEVICEADAPTERPATH)/$(MMPREFIX)SerialManager$(MMSUFFIX) + EXTRA_DIST = license.txt diff --git a/DeviceAdapters/Skeleton/Makefile.am b/DeviceAdapters/Skeleton/Makefile.am index 0a698b5f21..57d20d8359 100644 --- a/DeviceAdapters/Skeleton/Makefile.am +++ b/DeviceAdapters/Skeleton/Makefile.am @@ -6,6 +6,6 @@ Skeleton__la_LIBADD = ../../MMDevice/.libs/libMMDevice.a Skeleton_la_LDFLAGS = -module install: - cp .libs/Skeleton.so $(IJPATH)/$(MMPREFIX)Skeleton + cp .libs/Skeleton.so $(DEVICEADAPTERPATH)/$(MMPREFIX)Skeleton$(MMSUFFIX) EXTRA_DIST = license.txt diff --git a/DeviceAdapters/SpectralLMM5/Makefile.am b/DeviceAdapters/SpectralLMM5/Makefile.am index 98bca31d48..017ff8f653 100644 --- a/DeviceAdapters/SpectralLMM5/Makefile.am +++ b/DeviceAdapters/SpectralLMM5/Makefile.am @@ -6,6 +6,7 @@ SpectralLMM5_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a SpectralLMM5_la_LDFLAGS = -module install: - cp .libs/SpectralLMM5.so $(IJPATH)/$(MMPREFIX)SpectralLMM5 + cp .libs/SpectralLMM5.so $(DEVICEADAPTERPATH)/$(MMPREFIX)SpectralLMM5$(MMSUFFIX) + EXTRA_DIST = license.txt diff --git a/DeviceAdapters/SutterLambda/Makefile.am b/DeviceAdapters/SutterLambda/Makefile.am index 72c774be74..7c8cde21db 100644 --- a/DeviceAdapters/SutterLambda/Makefile.am +++ b/DeviceAdapters/SutterLambda/Makefile.am @@ -6,6 +6,6 @@ SutterLambda_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a SutterLambda_la_LDFLAGS = -module install: - cp .libs/SutterLambda.so $(IJPATH)/$(MMPREFIX)SutterLambda + cp .libs/SutterLambda.so $(DEVICEADAPTERPATH)/$(MMPREFIX)SutterLambda$(MMSUFFIX) EXTRA_DIST = SutterLambda.vcproj license.txt diff --git a/DeviceAdapters/USBManager/Makefile.am b/DeviceAdapters/USBManager/Makefile.am index a281943c14..543d769e60 100755 --- a/DeviceAdapters/USBManager/Makefile.am +++ b/DeviceAdapters/USBManager/Makefile.am @@ -6,6 +6,6 @@ USBManager_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a $(LIBUSB) USBManager_la_LDFLAGS = -module install: - cp .libs/USBManager.so $(IJPATH)/$(MMPREFIX)USBManager + cp .libs/USBManager.so $(DEVICEADAPTERPATH)/$(MMPREFIX)USBManager$(MMSUFFIX) EXTRA_DIST = license.txt diff --git a/DeviceAdapters/Vincent/Makefile.am b/DeviceAdapters/Vincent/Makefile.am index 7c141dcfa1..604a458040 100644 --- a/DeviceAdapters/Vincent/Makefile.am +++ b/DeviceAdapters/Vincent/Makefile.am @@ -6,6 +6,6 @@ Vincent_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a Vincent_la_LDFLAGS = -module install: - cp .libs/Vincent.so $(IJPATH)/$(MMPREFIX)Vincent + cp .libs/Vincent.so $(DEVICEADAPTERPATH)/$(MMPREFIX)Vincent$(MMSUFFIX) EXTRA_DIST = Vincent.vcproj license.txt diff --git a/DeviceAdapters/Yokogawa/Makefile.am b/DeviceAdapters/Yokogawa/Makefile.am index ca4eec4385..12a5b2bb55 100644 --- a/DeviceAdapters/Yokogawa/Makefile.am +++ b/DeviceAdapters/Yokogawa/Makefile.am @@ -9,5 +9,5 @@ CSUX_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a CSUX_la_LDFLAGS = -module install: - cp .libs/CSU22.so $(IJPATH)/$(MMPREFIX)CSU22 - cp .libs/CSUX.so $(IJPATH)/$(MMPREFIX)CSUX + cp .libs/CSU22.so $(DEVICEADAPTERPATH)/$(MMPREFIX)CSU22$(MMSUFFIX) + cp .libs/CSUX.so $(DEVICEADAPTERPATH)/$(MMPREFIX)CSUX$(MMSUFFIX) diff --git a/DeviceAdapters/ZeissCAN/Makefile.am b/DeviceAdapters/ZeissCAN/Makefile.am index 07f3302ce3..9f278096c6 100644 --- a/DeviceAdapters/ZeissCAN/Makefile.am +++ b/DeviceAdapters/ZeissCAN/Makefile.am @@ -6,4 +6,4 @@ ZeissCAN_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a ZeissCAN_la_LDFLAGS = -module install: - cp .libs/ZeissCAN.so $(IJPATH)/$(MMPREFIX)ZeissCAN + cp .libs/ZeissCAN.so $(DEVICEADAPTERPATH)/$(MMPREFIX)ZeissCAN$(MMSUFFIX) diff --git a/DeviceAdapters/ZeissCAN29/Makefile.am b/DeviceAdapters/ZeissCAN29/Makefile.am index f22729a22b..7626c7be58 100644 --- a/DeviceAdapters/ZeissCAN29/Makefile.am +++ b/DeviceAdapters/ZeissCAN29/Makefile.am @@ -6,4 +6,4 @@ ZeissCAN29_la_LDFLAGS = -module ZeissCAN29_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a install: - cp .libs/ZeissCAN29.so $(IJPATH)/$(MMPREFIX)ZeissCAN29 + cp .libs/ZeissCAN29.so $(DEVICEADAPTERPATH)/$(MMPREFIX)ZeissCAN29$(MMSUFFIX) diff --git a/DeviceAdapters/configure.in b/DeviceAdapters/configure.in index 5494321c40..e59b06e68d 100644 --- a/DeviceAdapters/configure.in +++ b/DeviceAdapters/configure.in @@ -9,73 +9,12 @@ AC_CANONICAL_HOST AM_INIT_AUTOMAKE -# Checks for programs. -AC_PROG_CXX -AC_PROG_CC -AC_PROG_LIBTOOL +m4_include([../configure.common]) -# GCC version -if test "x$GXX" = "xyes"; then - AC_MSG_CHECKING([GNU compiler version]) - # Don't pass CXXFLAGS to the following CXX command as some - # of them can't be specified along with '-v'. - cc_version=["`$CXX -v 2>&1 = 3.0 is needed to compile MicroManager]) - fi -fi - -# On linux, some gcc versions build shared libraries unusable in java when using -# the -O2 optimization. Switch it off here: - -if test $cc_vers_major -gt 3; then - case $host in - *-*-linux*) CXXFLAGS="-g -O";; - esac -fi - -#--------------------------------------------------- -# Check for ACE, static on Mac and libtool lib on Linux -#--------------------------------------------------- -AC_MSG_CHECKING(for libACE) -if test -z "$LIBACE" -then - case $host in - *-*-linux*) - if test -r /usr/local/lib/libACE.la ; then - LIBACE="/usr/local/lib/libACE.la" - if test -r /usr/lib/libACE.a ; then - LIBACE="/usr/lib/libACE.a" - else - AC_MSG_ERROR([not found, download from http://deuce.doc.wustl.edu/Download.html, build and install (cd ACE_wrappers \ mkdir build \ cd build \ ../configure \ make \ make install ) and rerun configure]) - fi - fi - ;; - *-*-darwin*) - if test -r /usr/local/lib/libACE.a; then - LIBACE="/usr/local/lib/libACE.a" - else - AC_MSG_ERROR([not found, download from http://deuce.doc.wustl.edu/Download.html, build and install (cd ACE_wrappers \ mkdir build \ cd build \ ../configure --enable-static\ make \ make install ) and rerun configure]) - fi - ;; - esac -fi -AC_MSG_RESULT($LIBACE) -AC_SUBST(LIBACE) # Checks for header files. # Only build Hamamatsu driver when header files are present @@ -186,23 +125,6 @@ AC_HEADER_STDBOOL AC_C_CONST AC_C_INLINE -#---------------------------------------------------------------- -# LINKFORSHARED are the flags passed to the $(CC) command that links -# -- this is only needed for a few systems -#---------------------------------------------------------------- -AC_MSG_CHECKING(LINKFORSHARED) -if test -z "$LINKFORSHARED" -then -case $host in - *-*-aix*) LINKFORSHARED='-Wl,-bE:$(srcdir)/python.exp -lld';; - *-*-hp*) LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";; - *-*-linux*) LINKFORSHARED="-Xlinker -export-dynamic";; - *-*-next*) LINKFORSHARED="-u libsys_s";; - *-sco-sysv*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";; - *-*-irix6*) LINKFORSHARED="-all";; esac -fi -AC_MSG_RESULT($LINKFORSHARED) -AC_SUBST(LINKFORSHARED) # On the Mac we need some frameworks that can be in the way on Linux case $host in @@ -221,42 +143,27 @@ AC_SUBST(DCAMFRAMEWORKS) AC_SUBST(PVCAMFRAMEWORKS) AC_SUBST(SERIALFRAMEWORKS) -# Micro-Manager libraries have a prefix to make them unique. This prefix is defined here: +# Micro-Manager libraries have a prefix & suffix to make them unique. These are defined here: +case $host in + *-*-linux*) + MMSUFFIX=".so.0" + MMPREFIX="libmmgr_dal_" + ;; +esac +if test -z "$MMSUFFIX"; then + MMSUFFIX="" +fi +if test -z "$MMPREFIX"; then + MMPREFIX="mmgr_dal_" +fi + +AC_MSG_CHECKING(library suffix) +AC_MSG_RESULT($MMSUFFIX) +AC_SUBST(MMSUFFIX) AC_MSG_CHECKING(library prefix) -MMPREFIX="mmgr_dal_" AC_MSG_RESULT($MMPREFIX) AC_SUBST(MMPREFIX) -# Determine if we need to look for ImageJ -AC_MSG_CHECKING(whether to build for imagej) -AC_ARG_WITH(imagej, [ --with-imagej=path Path to ImageJ-based GUI], [IMAGEJDIR="$withval"], [IMAGEJDIR="yes"]) -AC_MSG_RESULT($IMAGEJDIR) - -if test "$IMAGEJDIR" != "no" ; then - #---------------------------------------------------------------- - # Find ImageJ directory - #---------------------------------------------------------------- - AC_MSG_CHECKING(for ImageJ directory) - - if test -z "$IMAGEJDIR"; then - IMAGEJDIR="/Applications/ImageJ /usr/local/ImageJ /usr/local/imagej " - fi - - IJPATH="" - for d in $IMAGEJDIR ; do - if test -d "$d" ; then - AC_MSG_RESULT($d) - IJPATH=$d - break - fi - done - - if test "$IJPATH" = "" ; then - AC_MSG_ERROR([not found, Use the without-imagej directive to build without ImageJ or install ImageJ (http://rsb.info.nih.gov/ij/ and rerun configure, possibly using the --with-imagej=path directive]) - fi -fi - -AC_SUBST(IJPATH) # Checks for library functions. AC_HEADER_STDC diff --git a/DeviceAdapters/dc1394/Makefile.am b/DeviceAdapters/dc1394/Makefile.am index 390e44875e..c9497d2bb7 100644 --- a/DeviceAdapters/dc1394/Makefile.am +++ b/DeviceAdapters/dc1394/Makefile.am @@ -7,6 +7,6 @@ dc1394_la_LIBADD = ../../MMDevice/.libs/libMMDevice.a /usr/local/lib/libdc1394.a dc1394_la_LDFLAGS = -module install: - cp .libs/dc1394.so $(IJPATH)/$(MMPREFIX)dc1394 + cp .libs/dc1394.so $(DEVICEADAPTERPATH)/$(MMPREFIX)dc1394$(MMSUFFIX) EXTRA_DIST = license.txt diff --git a/MMCore/MMCore.cpp b/MMCore/MMCore.cpp index a18c998c42..1794214333 100644 --- a/MMCore/MMCore.cpp +++ b/MMCore/MMCore.cpp @@ -82,7 +82,11 @@ using namespace std; // constants +#ifdef linux +const char* g_logFileName = "/tmp/CoreLog.txt"; +#else const char* g_logFileName = "CoreLog.txt"; +#endif // version info const int MMCore_versionMajor = 2; diff --git a/MMCore/PluginManager.cpp b/MMCore/PluginManager.cpp index dbc63a6db6..298d782592 100644 --- a/MMCore/PluginManager.cpp +++ b/MMCore/PluginManager.cpp @@ -93,15 +93,22 @@ HDEVMODULE CPluginManager::LoadPluginLibrary(const char* shortName) HMODULE hMod = LoadLibrary(name.c_str()); if (hMod) return (HDEVMODULE) hMod; - else - GetSystemError(errorText); #else HDEVMODULE hMod = dlopen(name.c_str(), RTLD_LAZY); if (hMod) return (HDEVMODULE) hMod; - else - GetSystemError (errorText); - #endif + #ifdef linux + // Linux-specific code block by Johan Henriksson + else { + string name2(shortName); + name2 += ".so.0"; + hMod = dlopen(name2.c_str(), RTLD_LAZY); + if (hMod) + return (HDEVMODULE) hMod; + } + #endif // linux + #endif // WIN32 + GetSystemError (errorText); errorText += " "; errorText += shortName; throw CMMError(errorText.c_str(), MMERR_LoadLibraryFailed); // dll load failed diff --git a/MMCoreJ_wrap/Makefile.am b/MMCoreJ_wrap/Makefile.am index 1fe783b7b9..497f544212 100644 --- a/MMCoreJ_wrap/Makefile.am +++ b/MMCoreJ_wrap/Makefile.am @@ -32,7 +32,7 @@ libMMCoreJ_wrap_la_SOURCES = $(SWIGLIB_SOURCES) \ $(top_srcdir)/MMCore/MMCore.cpp \ $(top_srcdir)/MMCore/PluginManager.cpp libMMCoreJ_wrap_la_LIBADD = $(LIBACE) -libMMCoreJ_wrap_la_LDFLAGS = -Wl, -module -ldl +libMMCoreJ_wrap_la_LDFLAGS = -Wl, -module -ldl $(LIBACE) #this only works with java when libace is static $(srcdir)/MMCoreJ.jar: MMCoreJ_wrap.cxx \ libMMCoreJ_wrap.la @@ -48,9 +48,11 @@ macinstall: cp .libs/libMMCoreJ_wrap.so $(top_srcdir)/MacInstaller/Package_contents/libMMCoreJ_wrap$(JAVASO) install: - cp .libs/libMMCoreJ_wrap.so $(IJPATH)/libMMCoreJ_wrap$(JAVASO) - test -d $(IJPATH)/plugins/Micro-Manager || mkdir $(IJPATH)/plugins/Micro-Manager - cp MMCoreJ.jar $(IJPATH)/plugins/Micro-Manager/MMCoreJ.jar + cp .libs/libMMCoreJ_wrap.so $(DEVICEADAPTERPATH)/libMMCoreJ_wrap$(JAVASO) + test -d $(JARPATH) || mkdir $(JARPATH) + cp MMCoreJ.jar $(JARPATH)/MMCoreJ.jar + +###IJ-dependent! #todo: split IJ and pure-java code EXTRA_DIST = license.txt MMCoreJ_wrap.vcproj diff --git a/ModuleTest/Makefile.am b/ModuleTest/Makefile.am index bd3e82939b..4cad1aa71c 100644 --- a/ModuleTest/Makefile.am +++ b/ModuleTest/Makefile.am @@ -1,7 +1,5 @@ -bin_PROGRAMS = moduletest -moduletest_SOURCES = ModuleTest.cpp -moduletest_LDADD = ../MMCore/libMMCore.a $(LIBACE) -##moduletest_SOURCES = ModuleTest.cpp ../MMCore/PluginManager.cpp -##moduletest_LDADD = /usr/local/lib/libACE.la +bin_PROGRAMS = mm_moduletest +mm_moduletest_SOURCES = ModuleTest.cpp ../MMCore/PluginManager.cpp +mm_moduletest_LDADD = ../MMCore/libMMCore.a $(LIBACE) EXTRA_DIST = ModuleTest.vcproj ModuleTest.sln diff --git a/Test_MMCore/Makefile.am b/Test_MMCore/Makefile.am index cabf025887..8d26b27fcd 100644 --- a/Test_MMCore/Makefile.am +++ b/Test_MMCore/Makefile.am @@ -1,10 +1,10 @@ ## Process this file with automake to produce Makefile.in -bin_PROGRAMS = testCore -testCore_LDADD = ../MMCore/libMMCore.a ../MMDevice/.libs/libMMDevice.a $(LIBACE) $(LPTHREAD) -testCore_SOURCES = Test_MMCore_Mac.cpp +bin_PROGRAMS = mm_testCore +mm_testCore_LDADD = ../MMCore/libMMCore.a ../MMDevice/.libs/libMMDevice.a $(LIBACE) $(LPTHREAD) +mm_testCore_SOURCES = Test_MMCore_Mac.cpp EXTRA_DIST = Test_MMCore.vcproj Test_MMCore.sln Test_MMCore.cpp -install: - cp testCore $(IJPATH)/testCore +#install: +# cp mm_testCore $(IJPATH)/mm_testCore diff --git a/Test_Serial/Makefile.am b/Test_Serial/Makefile.am index 97b95f9e12..996e8b5a7c 100644 --- a/Test_Serial/Makefile.am +++ b/Test_Serial/Makefile.am @@ -1,6 +1,6 @@ ## Process this file with automake to produce Makefile.in -bin_PROGRAMS = testserial -testserial_SOURCES = Test_Serial.cpp -testserial_LDADD = ../MMCore/libMMCore.a ../MMDevice/.libs/libMMDevice.a $(LIBACE) $(LPTHREAD) +bin_PROGRAMS = mm_testserial +mm_testserial_SOURCES = Test_Serial.cpp +mm_testserial_LDADD = ../MMCore/libMMCore.a ../MMDevice/.libs/libMMDevice.a $(LIBACE) $(LPTHREAD) EXTRA_DIST = Test_Serial.vcproj Test_Serial.sln stdafx.cpp stdafx.h diff --git a/Test_Serial/Test_Serial.cpp b/Test_Serial/Test_Serial.cpp index 990b383ecc..839240955d 100644 --- a/Test_Serial/Test_Serial.cpp +++ b/Test_Serial/Test_Serial.cpp @@ -45,10 +45,10 @@ int main(int argc, char* argv[]) { core.unloadAllDevices(); - core.loadDevice("P", "/Users/nico/cvs/MicroManage/DeviceAdapters/SerialManagerUNIX/.libs/SerialManager.so", port); + core.loadDevice("P", "SerialManager", port); core.setProperty("P", "BaudRate", "300"); core.setProperty("P", "StopBits", "1"); - core.loadDevice("Uniblitz", "/Users/nico/cvs/MicroManage/DeviceAdapters/Vincent/.libs/Vincent.so", "VMMController"); + core.loadDevice("Uniblitz", "Vincent", "VMMController"); core.setProperty("Uniblitz", "Port", "P"); core.initializeAllDevices(); //core.setProperty("Uniblitz", "Command", "Open"); diff --git a/build_instructions_debian.txt b/build_instructions_debian.txt index edb9a53f8d..d602582736 100644 --- a/build_instructions_debian.txt +++ b/build_instructions_debian.txt @@ -1,7 +1,7 @@ - (special build instructions -for linux users) +This is tested on Ubuntu 8.04 but debian should be fine too I think + 1. install packages: -sun-java6-sdk or equivalent +sun-java6-sdk or better/equivalent autoconf automake swig @@ -9,28 +9,28 @@ libace-dev g++ libtool -2. ImageJ. Download and install from +imagej package, if not in your repository then here: +https://launchpad.net/ubuntu/intrepid/i386/imagej/1.40a-1ubuntu1 +http://launchpadlibrarian.net/16007457/imagej_1.40a-1ubuntu1_all.deb + +If you cannot use the package, get ImageJ source code. Download and install from http://rsb.info.nih.gov/ij/download.html. -3. run ./mmUnixBuild.sh +2. ./mmUnixBuild.sh -4. run ./configure --with-imagej=/home/mahogny/umanager/ImageJ - with whatever path to imagej fits in your case +3. ./configure + if you had to download the IJ source code, then replace this by + run ./configure --with-imagej=/home/mahogny/umanager/ImageJ + with whatever path to imagej fits in your case -5. (will not be needed later) change /usr/include/ace/config-lite.h +4. (will not be needed later when bug has been fixed) change /usr/include/ace/config-lite.h error _REENTRANT has to be defined! into define _REENTRANT -6. make +5. make -7. when it fails, edit MMCoreJ_wrap/MMCoreJ_wrap.cxx -remove -{ - jint jvalue = (jint)temp2; - jenv->SetIntArrayRegion(jarg2, 0, 1, &jvalue); - } +6. make install -8. make -9. make install +7. ldconfig diff --git a/configure.common b/configure.common new file mode 100644 index 0000000000..28cc9a0800 --- /dev/null +++ b/configure.common @@ -0,0 +1,208 @@ +# Checks for programs. +AC_PROG_CXX +AC_PROG_CC +AC_PROG_LIBTOOL + + +# GCC version +if test "x$GXX" = "xyes"; then + AC_MSG_CHECKING([GNU compiler version]) + + # Don't pass CXXFLAGS to the following CXX command as some + # of them can't be specified along with '-v'. + cc_version=["`$CXX -v 2>&1 = 3.0 is needed to compile MicroManager]) + fi +fi + +# On linux, some gcc versions build shared libraries unusable in java when using +# the -O2 optimization. Switch it off here: + +if test $cc_vers_major -gt 3; then + case $host in + *-*-linux*) CXXFLAGS="-g -O";; + esac +fi + +#--------------------------------------------------- +# Check for ACE, static on Mac and libtool lib on Linux +#--------------------------------------------------- +AC_MSG_CHECKING(for libACE) +if test -z "$LIBACE" +then + case $host in + *-*-linux*) + if test -r /usr/local/lib/libACE.la ; then + LIBACE="/usr/local/lib/libACE.la" + else +# if test -r /usr/lib/libACE.so ; then #currently libMMCoreJ_wrap.so will spit linking errors when IJ loads it unless it is static +# LIBACE="/usr/lib/libACE.so" + if test -r /usr/lib/libACE.a ; then + LIBACE="/usr/lib/libACE.a" + else + AC_MSG_ERROR([not found, download from http://deuce.doc.wustl.edu/Download.html, build and install (cd ACE_wrappers \ mkdir build \ cd build \ ../configure \ make \ make install ) and rerun configure]) + fi + fi + ;; + *-*-darwin*) + if test -r /usr/local/lib/libACE.a; then + LIBACE="/usr/local/lib/libACE.a" + else + AC_MSG_ERROR([not found, download from http://deuce.doc.wustl.edu/Download.html, build and install (cd ACE_wrappers \ mkdir build \ cd build \ ../configure --enable-static\ make \ make install ) and rerun configure]) + fi + ;; + esac +fi +AC_MSG_RESULT($LIBACE) +AC_SUBST(LIBACE) + + +#---------------------------------------------------------------- +# LINKFORSHARED are the flags passed to the $(CC) command that links +# -- this is only needed for a few systems +#---------------------------------------------------------------- +AC_MSG_CHECKING(LINKFORSHARED) +if test -z "$LINKFORSHARED" +then +case $host in + *-*-aix*) LINKFORSHARED='-Wl,-bE:$(srcdir)/python.exp -lld';; + *-*-hp*) LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";; + *-*-linux*) LINKFORSHARED="-Xlinker -export-dynamic";; + *-*-next*) LINKFORSHARED="-u libsys_s";; + *-sco-sysv*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";; + *-*-irix6*) LINKFORSHARED="-all";; esac +fi +AC_MSG_RESULT($LINKFORSHARED) +AC_SUBST(LINKFORSHARED) + + +#--------------------------------------------------- +# Platform dependent flags +#--------------------------------------------------- +case $host in + *-*-linux*) + LPTHREAD="-lpthread" + DEVICEADAPTERPATH="/usr/lib/micro-manager" + JARPATH="/usr/share/java" + ;; +esac +AC_MSG_RESULT($LPTHREAD) +AC_SUBST(LPTHREAD) + + + + +#---------------------------------------------------------------- +# ImageJ +#---------------------------------------------------------------- + + +# Determine if we need to look for ImageJ +AC_MSG_CHECKING(whether to build for imagej) +AC_ARG_WITH(imagej, [ --with-imagej=path Path to ImageJ-based GUI], [IMAGEJDIR="$withval"], [IMAGEJDIR="yes"]) +AC_MSG_RESULT($IMAGEJDIR) + +# Debian IJ settings +DEBIANIJ="/usr/share/java/ij.jar"; +DEBIANIJPLUGIN="/usr/share/imagej"; + + +if test "$IMAGEJDIR" != "no" ; then + #---------------------------------------------------------------- + # Find ImageJ directory + #---------------------------------------------------------------- + AC_MSG_CHECKING(for ImageJ directory) + + if test -z "$IMAGEJDIR"; then + IMAGEJDIR="/Applications/ImageJ /usr/local/ImageJ /usr/local/imagej " + fi + IJPATH="" + for d in $IMAGEJDIR ; do + if test -d "$d" ; then + AC_MSG_RESULT($d) + IJPATH=$d + break + fi + done + + if test -e "$DEBIANIJ"; then + IJPATH="$DEBIANIJPLUGIN"; + fi + + if test "$IJPATH" = "" ; then + AC_MSG_ERROR([not found, Use the without-imagej directive to build without ImageJ or install ImageJ (http://rsb.info.nih.gov/ij/ and rerun configure, possibly using the --with-imagej=path directive]) + fi + + + #---------------------------------------------------------------- + # Find ij.jar in directory + #---------------------------------------------------------------- + AC_MSG_CHECKING(for ij.jar in ImageJ directory) + IJJARDIR="ij.jar ImageJ.app/Contents/Resources/Java/ij.jar ../java/ij.jar" + for d in $IJJARDIR ; do + if test -r "$IJPATH/$d" ; then + IJJARPATH="$IJPATH/$d" + AC_MSG_RESULT($IJJARPATH) + break + fi + done + if test -z "$IJJARPATH"; then + AC_MSG_ERROR([not found, Use the without-imagej directive to build without ImageJ or install ImageJ (http://rsb.info.nih.gov/ij/ and rerun configure, possibly using the --with-imagej=path directive]) + fi + + #---------------------------------------------------------------- + # Find beanshell.jar in ImageJ plugins directory + #---------------------------------------------------------------- + AC_MSG_CHECKING(for beanshell jar file in ImageJ plugins directory) + if test -r "$IJPATH/plugins/bsh-2.0b4.jar" ; then + BSHJARPATH="$IJPATH/plugins/bsh-2.0b4.jar" + AC_MSG_RESULT($BSHJARPATH) + fi + if test -r "/usr/share/java/bsh.jar" ; then + BSHJARPATH="/usr/share/java/bsh.jar" + AC_MSG_RESULT($BSHJARPATH) + fi + if test "$BSHJARPATH" = "" ; then + AC_MSG_ERROR([not found, Use the without-imagej directove to build without ImageJ GUI, or download Beanshell (http://www.beanshell.org/download.html) and copy bsh-2.0b4.jar to $IJPATH/plugins]) + fi + + #---------------------------------------------------------------- + # .so-directory + #---------------------------------------------------------------- + if test -z "$DEVICEADAPTERPATH"; then + DEVICEADAPTERPATH="$IJPATH" + fi + + #---------------------------------------------------------------- + # .jar-directory + #---------------------------------------------------------------- + if test -z "$JARPATH"; then + JARPATH="$IJPATH/plugins/Micro-Manager" + fi + +fi + +AC_SUBST(IJPATH) +AC_SUBST(BSHJARPATH) +AC_SUBST(IJJARPATH) +AC_SUBST(DEVICEADAPTERPATH) +AC_SUBST(JARPATH) + +AC_MSG_CHECKING(device adapter path) +AC_MSG_RESULT($DEVICEADAPTERPATH) + +AC_MSG_CHECKING(jar path) +AC_MSG_RESULT($JARPATH) diff --git a/configure.in b/configure.in index b25edee6b3..1a80597fc1 100755 --- a/configure.in +++ b/configure.in @@ -8,73 +8,14 @@ AC_CONFIG_SRCDIR([MMCore/MMCore.cpp]) AC_CANONICAL_HOST AM_INIT_AUTOMAKE -AC_PROG_CXX -AC_PROG_CC AC_LIBTOOL_DLOPEN -AC_PROG_LIBTOOL -# Verify our GCC version -if test "x$GXX" = "xyes"; then - AC_MSG_CHECKING([GNU compiler version]) +#AC_PROG_CXX +#AC_PROG_CC +#AC_PROG_LIBTOOL - # Don't pass CXXFLAGS to the following CXX command as some - # of them can't be specified along with '-v'. - cc_version=["`$CXX -v 2>&1 = 3.0 is needed to compile MicroManager]) - fi -fi - -# On linux, some gcc versions build shared libraries unusable in java when using -# the -O2 optimization. Switch it off here: - -if test $cc_vers_major -gt 3; then - case $host in - *-*-linux*) CXXFLAGS="-g -O";; - esac -fi - -#---------------------------------------------------------------- -# LINKFORSHARED are the flags passed to the $(CC) command that links -# -- this is only needed for a few systems -#---------------------------------------------------------------- - -AC_MSG_CHECKING(LINKFORSHARED) -if test -z "$LINKFORSHARED" -then - case $host in - *-*-aix*) LINKFORSHARED='-Wl,-bE:$(srcdir)/python.exp -lld';; - *-*-hp*) - LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";; - *-*-linux*) LINKFORSHARED="-Xlinker -export-dynamic";; - *-*-next*) LINKFORSHARED="-u libsys_s";; - *-sco-sysv*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";; - *-*-irix6*) LINKFORSHARED="-all";; - esac -fi -AC_MSG_RESULT($LINKFORSHARED) -AC_SUBST(LINKFORSHARED) - -#--------------------------------------------------- -# Platform dependent flags -#--------------------------------------------------- -case $host in - *-*-linux*) - LPTHREAD="-lpthread";; -esac -AC_MSG_RESULT($LPTHREAD) #---------------------------------------------------------------- @@ -145,116 +86,6 @@ case $host in ;; esac -# Determine if we need to look for ImageJ -AC_MSG_CHECKING(whether to build for imagej) -AC_ARG_WITH(imagej, [ --with-imagej=path Path to ImageJ-based GUI], [IMAGEJDIR="$withval"], [IMAGEJDIR="yes"]) -AC_MSG_RESULT($IMAGEJDIR) - -if test "$IMAGEJDIR" != "no" ; then - #---------------------------------------------------------------- - # Find ImageJ directory - #---------------------------------------------------------------- - AC_MSG_CHECKING(for ImageJ directory) - - if test -z "$IMAGEJDIR"; then - IMAGEJDIR="/Applications/ImageJ /usr/local/ImageJ /usr/local/imagej " - fi - - IJPATH="" - for d in $IMAGEJDIR ; do - if test -d "$d" ; then - AC_MSG_RESULT($d) - IJPATH=$d - break - fi - done - if test -z "$IJPATH"; then - AC_MSG_ERROR([not found, Use the without-imagej directive to build without ImageJ or install ImageJ (http://rsb.info.nih.gov/ij/ and rerun configure, possibly using the --with-imagej=path directive]) - fi - - #---------------------------------------------------------------- - # Test for MicroManage plugin folder and create when needed - #---------------------------------------------------------------- - AC_MSG_CHECKING([for MicroManage folder in plugins folder]) - if test -d "$IJPATH/plugins/MicroManage" ; then - AC_MSG_RESULT([found]) - else - mkdir "$IJPATH/plugins/MicroManage" - AC_MSG_RESULT([created]) - fi - - - #---------------------------------------------------------------- - # Find ij.jar in directory - #---------------------------------------------------------------- - AC_MSG_CHECKING(for ij.jar in ImageJ directory) - IJJARDIR="ij.jar ImageJ.app/Contents/Resources/Java/ij.jar" - for d in $IJJARDIR ; do - if test -r "$IJPATH/$d" ; then - IJJARPATH="$IJPATH/$d" - AC_MSG_RESULT($IJJARPATH) - break - fi - done - if test -z "$IJJARPATH"; then - AC_MSG_ERROR([not found, Use the without-imagej directive to build without ImageJ or install ImageJ (http://rsb.info.nih.gov/ij/ and rerun configure, possibly using the --with-imagej=path directive]) - fi - - #---------------------------------------------------------------- - # Find beanshell.jar and Image_5D in ImageJ plugins directory - #---------------------------------------------------------------- - AC_MSG_CHECKING(for beanshell jar file in ImageJ plugins directory) - if test -r "$IJPATH/plugins/bsh-2.0b4.jar" ; then - BSHJARPATH="$IJPATH/plugins/bsh-2.0b4.jar" - AC_MSG_RESULT($BSHJARPATH) - fi - if test "$BSHJARPATH" = "" ; then - AC_MSG_ERROR([not found, Use the without-imagej directove to build without ImageJ GUI, or download Beanshell (http://www.beanshell.org/download.html) and copy bsh-2.0b4.jar to $IJPATH/plugins]) - fi - - #AC_MSG_CHECKING(for Image_5D jar file in ImageJ plugins directory) - #if test -r "$IJPATH/plugins/Image_5D.jar" ; then - # I5DJARPATH="$IJPATH/plugins/Image_5D.jar" - # AC_MSG_RESULT($I5DJARPATH) - #fi - #if test "$I5DJARPATH" = "" ; then - # AC_MSG_ERROR([not found, Use the without-imagej directove to build without ImageJ GUI or download Image_5D.jar (http://rsb.info.nih.gov/ij/plugins/image5d.html) and copy to $IJPATH/plugins]) - #fi -fi -#--------------------------------------------------- -# End of ImageJ part -#--------------------------------------------------- - - -#--------------------------------------------------- -# Check for ACE, static on Mac and libtool lib on Linux -#--------------------------------------------------- - -AC_MSG_CHECKING(for libACE) -if test -z "$LIBACE" -then - case $host in - *-*-linux*) - if test -r /usr/local/lib/libACE.la ; then - LIBACE="/usr/local/lib/libACE.la" - else - if test -r /usr/lib/libACE.a ; then - LIBACE="/usr/lib/libACE.a" - else - AC_MSG_ERROR([not found, download from http://deuce.doc.wustl.edu/Download.html, build and install (cd ACE_wrappers \ mkdir build \ cd build \ ../configure \ make \ make install ) and rerun configure]) - fi - fi - ;; - *-*-darwin*) - if test -r /usr/local/lib/libACE.a; then - LIBACE="/usr/local/lib/libACE.a" - else - AC_MSG_ERROR([not found, download from http://deuce.doc.wustl.edu/Download.html, build and install (cd ACE_wrappers \ mkdir build \ cd build \ ../configure --enable-static\ make \ make install ) and rerun configure]) - fi - ;; - esac -fi -AC_MSG_RESULT($LIBACE) # Export variables to Makefile AC_SUBST(JAVAINC) @@ -264,12 +95,11 @@ AC_SUBST(JAVASO) AC_SUBST(JAVALDSHARED) AC_SUBST(JAVACXXSHARED) AC_SUBST(JAVACFLAGS) -AC_SUBST(IJPATH) -AC_SUBST(IJJARPATH) -AC_SUBST(BSHJARPATH) AC_SUBST(I5DJARPATH) -AC_SUBST(LIBACE) -AC_SUBST(LPTHREAD) + + + + # Checks for programs. diff --git a/doc/copyright.txt b/doc/copyright.txt new file mode 100644 index 0000000000..a862a09404 --- /dev/null +++ b/doc/copyright.txt @@ -0,0 +1,9 @@ +Micro-Manager is an Open Source software package for controlling automated +microscopes on multiple platforms (Windows, Mac and Linux). The software +is being developed in the Vale Lab at the Unversity of California San Francisco +and funding was provided by the Sandler Foundation. The software is designed and +developed by Nenad Amodaj with help from Nico Stuurman. The Micro-Manager source +code is distributed under the BSD license for the user interface and the LGPL +license for the MMCore (control module). Supplied device drivers ('adapters') +for cameras and other devices are covered by the BSD license or LGPL. Copyright for some +of the adapters is owned by other parties. diff --git a/mkdebian.sh b/mkdebian.sh index 48c2b0d4b1..b0f3099448 100644 --- a/mkdebian.sh +++ b/mkdebian.sh @@ -10,24 +10,22 @@ echo "#!/bin/sh" > $ROOT/DEBIAN/postinst chmod 0555 $ROOT/DEBIAN/postinst ##### Programs -mkdir $ROOT/usr/ -mkdir $ROOT/usr/bin/ -cp Test_Serial/testserial $ROOT/usr/bin/mm_testserial -cp ModuleTest/moduletest $ROOT/usr/bin/mm_moduletest -cp Test_MMCore/testCore $ROOT/usr/bin/mm_testcore +mkdir -p $ROOT/usr/bin/ +cp Test_Serial/mm_testserial ModuleTest/mm_moduletest Test_MMCore/mm_testCore $ROOT/usr/bin/ strip $ROOT/usr/bin/* +cp runMMstudioDebian.sh $ROOT/usr/bin/mmstudio ##### JAR-files -mkdir $ROOT/usr/share/ -mkdir $ROOT/usr/share/java/ -mkdir $ROOT/usr/share/java/micro-manager/ +mkdir -p $ROOT/usr/share/imagej/plugins/Micro-Manager/ cp Bleach/MMBleach_.jar autofocus/MMAutofocus_.jar autofocus/MMAutofocusTB_.jar MMCoreJ_wrap/MMCoreJ.jar Tracking/Tracker_.jar \ -mmstudio/MMJ_.jar mmstudio/MMReader_.jar $ROOT/usr/share/java/micro-manager/ -#classext/bsh-2.0b4.jar classext/syntax.jar classext/ij.jar +mmstudio/MMJ_.jar mmstudio/MMReader_.jar $ROOT/usr/share/imagej/plugins/Micro-Manager/ + +mkdir -p $ROOT/usr/share/java/ +cp MMCoreJ_wrap/MMCoreJ.jar $ROOT/usr/share/java/ + #####classext/bsh-2.0b4.jar classext/syntax.jar classext/ij.jar #assume these are available ##### Core -mkdir $ROOT/usr/lib/ -mkdir $ROOT/usr/lib/micro-manager/ +mkdir -p $ROOT/usr/lib/micro-manager/ cp MMCoreJ_wrap/.libs/libMMCoreJ_wrap.so $ROOT/usr/lib/micro-manager/ @@ -42,8 +40,7 @@ for from in `ls DeviceAdapters/*/.libs/*.so` strip $ROOT/usr/lib/micro-manager/* ##### Make shared objects visible without hardcoding the path -mkdir $ROOT/etc/ -mkdir $ROOT/etc/ld.so.conf.d/ +mkdir -p $ROOT/etc/ld.so.conf.d/ echo "/usr/lib/micro-manager" > $ROOT/etc/ld.so.conf.d/micro-manager.conf echo "/sbin/ldconfig" >> $ROOT/DEBIAN/postinst diff --git a/mmstudio/src/org/micromanager/CalibrationEditor.java b/mmstudio/src/org/micromanager/CalibrationEditor.java index 077d663b43..486f49ef99 100644 --- a/mmstudio/src/org/micromanager/CalibrationEditor.java +++ b/mmstudio/src/org/micromanager/CalibrationEditor.java @@ -863,6 +863,9 @@ public void actionPerformed(ActionEvent e) { } }); slider_.addSliderMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent e) { + slider_.setPosition(e.getX()); + } public void mouseReleased(MouseEvent e) { fireEditingStopped(); } diff --git a/mmstudio/src/org/micromanager/ConfigGroupPad.java b/mmstudio/src/org/micromanager/ConfigGroupPad.java index 51c97e3cde..593166719a 100644 --- a/mmstudio/src/org/micromanager/ConfigGroupPad.java +++ b/mmstudio/src/org/micromanager/ConfigGroupPad.java @@ -506,6 +506,9 @@ public void actionPerformed(ActionEvent e) { }); slider_.addSliderMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent e) { + slider_.setPosition(e.getX()); + } public void mouseReleased(MouseEvent e) { fireEditingStopped(); } diff --git a/mmstudio/src/org/micromanager/MMStudioMainFrame.java b/mmstudio/src/org/micromanager/MMStudioMainFrame.java index 31225b0bd6..47d5276ffa 100644 --- a/mmstudio/src/org/micromanager/MMStudioMainFrame.java +++ b/mmstudio/src/org/micromanager/MMStudioMainFrame.java @@ -1269,7 +1269,10 @@ public void actionPerformed(ActionEvent arg0) { } }); addGroupButton_.setToolTipText("Add new group of presets"); - addGroupButton_.setText("+"); + if (System.getProperty("os.name").indexOf("Mac OS X") != -1) + addGroupButton_.setIcon(SwingResourceManager.getIcon(MMStudioMainFrame.class, "/org/micromanager/icons/plus.png")); + else + addGroupButton_.setText("A"); getContentPane().add(addGroupButton_); springLayout_.putConstraint(SpringLayout.EAST, addGroupButton_, 337, SpringLayout.WEST, getContentPane()); springLayout_.putConstraint(SpringLayout.WEST, addGroupButton_, 295, SpringLayout.WEST, getContentPane()); @@ -1287,7 +1290,10 @@ public void actionPerformed(ActionEvent arg0) { } }); removeGroupButton_.setToolTipText("Remove selected group of presets"); - removeGroupButton_.setText("-"); + if (System.getProperty("os.name").indexOf("Mac OS X") != -1) + removeGroupButton_.setIcon(SwingResourceManager.getIcon(MMStudioMainFrame.class, "/org/micromanager/icons/minus.png")); + else + removeGroupButton_.setText("-"); getContentPane().add(removeGroupButton_); springLayout_.putConstraint(SpringLayout.SOUTH, removeGroupButton_, 173, SpringLayout.NORTH, getContentPane()); springLayout_.putConstraint(SpringLayout.NORTH, removeGroupButton_, 155, SpringLayout.NORTH, getContentPane()); @@ -1307,7 +1313,7 @@ public void actionPerformed(ActionEvent arg0) { editPreset_.setToolTipText("Edit selected preset"); editPreset_.setText("Edit"); getContentPane().add(editPreset_); - springLayout_.putConstraint(SpringLayout.EAST, editPreset_, -7, SpringLayout.EAST, getContentPane()); + springLayout_.putConstraint(SpringLayout.EAST, editPreset_, -2, SpringLayout.EAST, getContentPane()); springLayout_.putConstraint(SpringLayout.WEST, editPreset_, -72, SpringLayout.EAST, getContentPane()); springLayout_.putConstraint(SpringLayout.SOUTH, configPad_, 0, SpringLayout.NORTH, editPreset_); springLayout_.putConstraint(SpringLayout.NORTH, configPad_, 21, SpringLayout.NORTH, getContentPane()); @@ -1325,7 +1331,10 @@ public void actionPerformed(ActionEvent arg0) { } }); addPresetButton_.setToolTipText("Add preset"); - addPresetButton_.setText("+"); + if (System.getProperty("os.name").indexOf("Mac OS X") != -1) + addPresetButton_.setIcon(SwingResourceManager.getIcon(MMStudioMainFrame.class, "/org/micromanager/icons/plus.png")); + else + addPresetButton_.setText("+"); getContentPane().add(addPresetButton_); springLayout_.putConstraint(SpringLayout.EAST, addPresetButton_, -114, SpringLayout.EAST, getContentPane()); springLayout_.putConstraint(SpringLayout.WEST, addPresetButton_, -156, SpringLayout.EAST, getContentPane()); @@ -1343,7 +1352,10 @@ public void actionPerformed(ActionEvent arg0) { } }); removePresetButton_.setToolTipText("Remove currently selected preset"); - removePresetButton_.setText("-"); + if (System.getProperty("os.name").indexOf("Mac OS X") != -1) + removePresetButton_.setIcon(SwingResourceManager.getIcon(MMStudioMainFrame.class, "/org/micromanager/icons/minus.png")); + else + removePresetButton_.setText("-"); getContentPane().add(removePresetButton_); springLayout_.putConstraint(SpringLayout.EAST, removePresetButton_, -72, SpringLayout.EAST, getContentPane()); springLayout_.putConstraint(SpringLayout.WEST, removePresetButton_, -114, SpringLayout.EAST, getContentPane()); @@ -1362,7 +1374,7 @@ public void actionPerformed(ActionEvent arg0) { getContentPane().add(saveConfigButton_); springLayout_.putConstraint(SpringLayout.SOUTH, saveConfigButton_, 20, SpringLayout.NORTH, getContentPane()); springLayout_.putConstraint(SpringLayout.NORTH, saveConfigButton_, 2, SpringLayout.NORTH, getContentPane()); - springLayout_.putConstraint(SpringLayout.EAST, saveConfigButton_, 500, SpringLayout.WEST, getContentPane()); + springLayout_.putConstraint(SpringLayout.EAST, saveConfigButton_, 510, SpringLayout.WEST, getContentPane()); springLayout_.putConstraint(SpringLayout.WEST, saveConfigButton_, 435, SpringLayout.WEST, getContentPane()); final JButton xyListButton_ = new JButton(); diff --git a/mmstudio/src/org/micromanager/PositionListDlg.java b/mmstudio/src/org/micromanager/PositionListDlg.java index 1e5104a6f5..b7a001689b 100644 --- a/mmstudio/src/org/micromanager/PositionListDlg.java +++ b/mmstudio/src/org/micromanager/PositionListDlg.java @@ -251,6 +251,7 @@ public void actionPerformed(ActionEvent arg0) { gotoButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { goToCurrentPosition(); + posTable_.clearSelection(); } }); gotoButton.setIcon(SwingResourceManager.getIcon(PositionListDlg.class, "icons/resultset_next.png")); @@ -594,6 +595,10 @@ private void calibrate() { JOptionPane.showMessageDialog(this, "ALERT! Please REMOVE objectives! It may damage lens!", "Calibrate the XY stage", JOptionPane.WARNING_MESSAGE); + Object[] options = { "Yes", "No"}; + if (JOptionPane.YES_OPTION != JOptionPane.showOptionDialog(this, "Really calibrate your XY stage?", "Are you sure?", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[1])) + return ; + // calibrate xy-axis stages try { diff --git a/mmstudio/src/org/micromanager/PresetEditor.java b/mmstudio/src/org/micromanager/PresetEditor.java index dad5c15c5d..c4b117f96e 100644 --- a/mmstudio/src/org/micromanager/PresetEditor.java +++ b/mmstudio/src/org/micromanager/PresetEditor.java @@ -848,6 +848,9 @@ public void actionPerformed(ActionEvent e) { } }); slider_.addSliderMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent e) { + slider_.setPosition(e.getX()); + } public void mouseReleased(MouseEvent e) { fireEditingStopped(); } diff --git a/mmstudio/src/org/micromanager/PropertyEditor.java b/mmstudio/src/org/micromanager/PropertyEditor.java index 646520118a..08c9fb73c4 100644 --- a/mmstudio/src/org/micromanager/PropertyEditor.java +++ b/mmstudio/src/org/micromanager/PropertyEditor.java @@ -510,6 +510,9 @@ public void actionPerformed(ActionEvent e) { }); slider_.addSliderMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent e) { + slider_.setPosition(e.getX()); + } public void mouseReleased(MouseEvent e) { fireEditingStopped(); } diff --git a/mmstudio/src/org/micromanager/SliderPanel.java b/mmstudio/src/org/micromanager/SliderPanel.java index 75d261b24d..8473fc3f99 100644 --- a/mmstudio/src/org/micromanager/SliderPanel.java +++ b/mmstudio/src/org/micromanager/SliderPanel.java @@ -158,6 +158,12 @@ protected void onEditChange() { } } + public void setPosition(int xPosition) { + double val = lowerLimit_+ ( (upperLimit_ - lowerLimit_) * xPosition ) / slider_.getWidth() ; + slider_.setValue((int) ((val - lowerLimit_) / factor_ + 0.5)); + onSliderMove(); + } + private double enforceLimits(double value) { double val = value; if (val < lowerLimit_) diff --git a/mmstudio/src/org/micromanager/icons/minus.png b/mmstudio/src/org/micromanager/icons/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..2d6cf734039b243dd64d2f94ad65279a61d86fb0 GIT binary patch literal 79 zcmeAS@N?(olHy`uVBq!ia0vp^96-#(!2~2ZU1)HiLG9JM dcYKM=4B75{wZ=PLmI75Uc)I$ztaD0e0sz9x6)^w+ literal 0 HcmV?d00001 diff --git a/mmstudio/src/org/micromanager/icons/plus.png b/mmstudio/src/org/micromanager/icons/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..a529a5c4827df71a68094799b6d78802411420ab GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgfvP8lX$=J^K``+-7Eo-U3d5|@+z z{Qqyy%wu3=l$V&0knrRG|NZ