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
|
How to install CFITSIO
$ ./configure --prefix=/home/jmlarsen/BUILD/cfitsio/ && make shared && make install
How to build:
$ ./bootstrap
$ ./configure --prefix=/home/jmlarsen/BUILD/uves --enable-maintainer-mode CFLAGS='-W -Wall -std=c99 -pedantic -fno-common -Wundef -Wuninitialized -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Wsign-compare -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wmissing-format-attribute -Wnested-externs -Wdisabled-optimization -Wformat-y2k -Wmissing-noreturn -Wredundant-decls -Wvariadic-macros -Wold-style-definition -Wdeclaration-after-statement -Winit-self -Wmissing-include-dirs -Wvolatile-register-var -fgnu89-inline'
$ make
$ make install
After installation
$ make check
to check that the installation is complete
$ make html
builds the doxygen documentation
How to clean:
$ make uninstall
$ make clean
or
$ make maintainer-clean
How to check for memory leaks:
$ ./configure --enable-debug (to turn on file + linenumber)
$ LD_PRELOAD=/home/jmlarsen/BUILD/uves/lib/uves/plugins/uves-0.8.3/uves_response.so valgrind --leak-check=yes --show-reachable=yes --num-callers=50 esorex uves_response data/sof/blue/uves_response.sof
How to profile unit tests:
> make clean
> ./configure --enable-static CFLAGS='-ftest-coverage -fprofile-arcs -g -pg'
> make
> make LDFLAGS='-static' check
> find `pwd` -type d | perl -nle 'chdir $_; system("gcov *.c");'
To profile [module]-test:
> cd tests
> [module]-test
> gprof [module]-test
Coverage info:
Study [module].c.gcov residing in the same directory as [module].c
How to profile a recipe:
$ profile_build -j=3 -builddir=~/BUILD_PROF -esorexsrc=~/esorex-3.6.1 -iiinstrumentsrc=~/uvesp -cplsrc=~/cpl-3.1 -qfitssrc=~/qfits-6.2.0 -cfitsiosrc=~/cfitsio/ -iiinstrumentlib=flames,uves,cfitsio uves_mbias
$ ~/BUILD_PROF/bin/esorex uves_mbias uves_mbias.sof
$ gprof ~/BUILD_PROF/bin/esorex
Libraries are connected in this way:
UVES-plugins ---dyn.---> libuves ---stat.---> IRPLIB
/\
|
|
dyn.
|
|
FLAMES-plugins ---dyn.---> libflames
(i.e. FLAMES knows about UVES but not the other way around). For each
dynamic link it is verified at runtime (i.e. linktime) that the
version numbers match.
|