Back to the main page.

Bug 1234 - Build script to list which compiled (e.g. mex, realtime) files are outdated

Status NEW
Reported 2011-12-14 14:27:00 +0100
Modified 2013-01-24 12:29:06 +0100
Product: FieldTrip
Component: release
Version: unspecified
Hardware: All
Operating System: All
Importance: P4 enhancement
Assigned to:
Depends on:
Blocks: 11717979331020111411641246
See also:

Boris Reuderink - 2011-12-14 14:27:42 +0100

The script should, in a Makefile-fashion, check if the dependencies for certain binaries are outdated. It's output could be a list of binaries, with status codes for the different platforms.

Boris Reuderink - 2012-01-04 15:50:07 +0100

Started WIP code as ft_dependencies.m. I already identified missing mex file (src/keyval.c) and a not included mex file. This requires some extra thought.

Boris Reuderink - 2012-01-17 12:14:05 +0100

Estimated time.

Robert Oostenveld - 2012-01-22 15:15:01 +0100

what is the status of the ft_dependencies, ft_compile, ft_recompile functions? Is the MATLAB inputParser supported on old MATLAB versions? You can check on /opt, where versions back to 7.0 are present (the older ones are not relevant).

Boris Reuderink - 2012-01-23 12:35:14 +0100

Hi Robert, The original functions were not touched, and the new function ft_dependencies is a WIP for MEX dependencies. I'll have to check how well the inputParser is supported on older MATLAB versions. Actually, I am a bit stuck since I don't think all constraints can be satisfied, with the most problematic one that it has to run as a MATLAB script. The reason is the following: 1) This script is intended as a diagnostic tool, which means we should be able to make decisions on it's output. As such, it *should never miss an outdated binary*, that is, be conservative. Therefore, I think the most difficult issue is to identify the dependencies, as they have to be complete. After that, figuring which targets our outdated is merely engineering. 2) The non-mex binaries have already most dependencies listed in their Makefile. Further, these dependencies have to be kept up to date in for successful building. And even now, probably not all the dependencies are being listed. For example, bug 1246 is caused by code in a *header file*. To see which binaries are outdated, the dependencies on header files should be listed as well. Probably there are tools to find unlisted dependencies for c-programs. For the mex-files, I think the problem is containable. Most work would be spend on correctly handling the different platforms, since the -arch option in the MATLAB "mex" command is not fully supported (not documented, found out through bug report). For non-mex files, I think the best approach would be to complete the Makefiles. By parsing the output of a dry-run, we can publish a list with outdated binaries on the wiki (on the dash-board?). But everything depends on the underlying problem we are trying to address.

Boris Reuderink - 2012-02-28 15:37:58 +0100

Update: I manually recompiled the non-mex binaries depending on the buffer: Sending realtime/acquisition/biosemi/biosemi2ft.exe Sending realtime/acquisition/brainamp/rda2ft.exe Sending realtime/acquisition/ctf/acq2ft Sending realtime/acquisition/ctf/acq2ftx Sending realtime/acquisition/neuralynx/nlx2ft.exe Sending realtime/acquisition/neuromag/bin/x86_64-pc-linux-gnu/neuromag2ft Sending realtime/acquisition/neurosky/thinkgear2ft.exe Sending realtime/acquisition/tmsi/tmsi2ft.exe Sending realtime/acquisition/tmsi/tmsidriver.exe Sending realtime/buffer/test/demo_buffer.exe Sending realtime/buffer/test/demo_buffer_unix.exe Sending realtime/buffer/test/demo_combined.exe Sending realtime/buffer/test/demo_event.exe Sending realtime/buffer/test/demo_sinewave.exe Transmitting file data .............. Committed revision 5324.

Boris Reuderink - 2012-11-02 13:29:57 +0100

I am no longer working on FieldTrip. Hence, I donate all my bugs to the joint development user.

Robert Oostenveld - 2013-01-24 12:29:06 +0100

I changed a bunch of bugs that were assigned to fieldtrip-bugs from ASSIGNED into NEW, since nobody is now explicitly working on them.