EPICS: EDM compilation and configuration: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 35: | Line 35: | ||
;libungif :available at /opt/sfw/{include,lib} | ;libungif :available at /opt/sfw/{include,lib} | ||
;libcurl :available at /opt/sfw/{include,lib} | ;libcurl :available at /opt/sfw/{include,lib} | ||
==== Summary of modifications ==== | |||
# Under Solaris '''''__STDC__''''' have to be defined in order to use the correct calls to regex functions. | |||
## To have network capability of EDM one should change to '''''USE_CURL=YES''''' in '''''lib/Makefile''''' and add libcurl in the list of libraries to be linked. | |||
##And since libcurl is in '''''/opt/sfw/lib''''' directory, that directory should be added into list of the lookup directories. | |||
##Also the '''''/opt/sfw/include''''' should be added into list of include directories. | |||
# In some of the EDM subdirectories the '''''libCom''''' and '''''libca''''' from $EPICS_BASE/lib/$EPICS_HOST_ARCH should be added. | |||
# In the '''''giflib/Makefile''''' the loopkup directory for libraries of '''''/opt/sfw/lib''''' should be added for '''''libungif''''' | |||
# '''''pvFactory/textupdate.cc''''' has a call to the '''''int finite(double dsrc);''''' function which under solaris requires inclusion of '''''ieeefp.h''''' as opposite to linux which requires math.h and included from other header files. To overcome the predefined macro '''''__SUNPRO_CC''''' was used to identify Sun's compiler. | |||
# For '''''slaclib''''' compilation the shared libraries '''''X11 Xt 114135a4-6f6c-11d3-95bc-00104b8742df cfcaa62e-8199-11d3-a77f-00104b8742df''''' should be added. | |||
==== Essential diff of original and modified sources ==== | |||
diff -r -bB edm-1-12-37/baselib/Makefile edm-1-12-37.orig/baselib/Makefile | diff -r -bB edm-1-12-37/baselib/Makefile edm-1-12-37.orig/baselib/Makefile |
Revision as of 21:34, 8 October 2010
Links
Web page: http://ics-web.sns.ornl.gov/edm/
Download: http://ics-web.sns.ornl.gov/edm/log/getLatest.php
User Guide: http://ics-web.sns.ornl.gov/edm/edmUserManual/index.html
MCC EDM screens: http://opweb.acc.jlab.org/internal/edm/
MCC RSYNC URI of EDM configurations:
Compilation & Configuration
Directory
Downloaded the EDM version 1-12-37 and unpacked into $EPICS_EXTENSIONS/src The default directory containing EDM is edm, which is soft link to version directory.
nerses@clon01:src> ls -ld $EPICS_EXTENSIONS/src/edm* lrwxrwxrwx 1 epics clas 11 Oct 5 12:42 /usr/local/clas/devel/R3.14.8.2/extensions/src/edm -> edm-1-12-37/ drwxrwxr-x 27 nerses clas 4096 Oct 5 02:17 /usr/local/clas/devel/R3.14.8.2/extensions/src/edm-1-11-1v/ -rw-rw---- 1 nerses clas 2631404 Dec 4 2008 /usr/local/clas/devel/R3.14.8.2/extensions/src/edm-1-11-1v.tgz drwxrwxr-x 29 nerses clas 4096 Oct 5 15:25 /usr/local/clas/devel/R3.14.8.2/extensions/src/edm-1-12-37/ -rw-rw-r-- 1 nerses clas 2701933 Jul 1 2009 /usr/local/clas/devel/R3.14.8.2/extensions/src/edm-1-12-37.tar.gz
Compilation
NOTE: curl Compilation on linux runs without a problem. But, on both solaris-x86 and solaris-sparc modifications should be done.
Required packages for solaris
- libgif
- download from sourcefourge.net
- libungif
- available at /opt/sfw/{include,lib}
- libcurl
- available at /opt/sfw/{include,lib}
Summary of modifications
- Under Solaris __STDC__ have to be defined in order to use the correct calls to regex functions.
- To have network capability of EDM one should change to USE_CURL=YES in lib/Makefile and add libcurl in the list of libraries to be linked.
- And since libcurl is in /opt/sfw/lib directory, that directory should be added into list of the lookup directories.
- Also the /opt/sfw/include should be added into list of include directories.
- In some of the EDM subdirectories the libCom and libca from $EPICS_BASE/lib/$EPICS_HOST_ARCH should be added.
- In the giflib/Makefile the loopkup directory for libraries of /opt/sfw/lib should be added for libungif
- pvFactory/textupdate.cc has a call to the int finite(double dsrc); function which under solaris requires inclusion of ieeefp.h as opposite to linux which requires math.h and included from other header files. To overcome the predefined macro __SUNPRO_CC was used to identify Sun's compiler.
- For slaclib compilation the shared libraries X11 Xt 114135a4-6f6c-11d3-95bc-00104b8742df cfcaa62e-8199-11d3-a77f-00104b8742df should be added.
Essential diff of original and modified sources
diff -r -bB edm-1-12-37/baselib/Makefile edm-1-12-37.orig/baselib/Makefile 11c11 < USR_CXXFLAGS_solaris += -D__solaris__ -DSINGLE_THREADED=1 -D__epics__=1 -D__STDC__ --- > USR_CXXFLAGS_solaris += -D__solaris__ -DSINGLE_THREADED=1 -D__epics__=1 27,29d26 < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib < diff -r -bB edm-1-12-37/calcPv/Makefile edm-1-12-37.orig/calcPv/Makefile 31,33d30 < USR_LIBS_solaris += Com < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib diff -r -bB edm-1-12-37/choiceButton/Makefile edm-1-12-37.orig/choiceButton/Makefile 24,26d23 < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib < diff -r -bB edm-1-12-37/diamondlib/Makefile edm-1-12-37.orig/diamondlib/Makefile 28,30d27 < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib < diff -r -bB edm-1-12-37/edmMain/Makefile edm-1-12-37.orig/edmMain/Makefile 28,30d27 < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib < diff -r -bB edm-1-12-37/epicsPv/Makefile edm-1-12-37.orig/epicsPv/Makefile 31,33c31 < USR_LIBS_solaris += ca Com < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib --- > USR_LIBS += ca Com diff -r -bB edm-1-12-37/giflib/Makefile edm-1-12-37.orig/giflib/Makefile 42c42 < USR_LDFLAGS_solaris += -L$(GIF_LIB) -L/opt/sfw/lib --- > USR_LDFLAGS_solaris += -L$(GIF_LIB) diff -r -bB edm-1-12-37/indicator/Makefile edm-1-12-37.orig/indicator/Makefile 24,26d23 < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib < diff -r -bB edm-1-12-37/lib/Makefile edm-1-12-37.orig/lib/Makefile 7,8c7 < #USE_CURL=NO < USE_CURL=YES --- > USE_CURL=NO 38,39d36 < USR_INCLUDES_solaris += -I/opt/sfw/include < USR_LDFLAGS_solaris += -L/opt/sfw/lib diff -r -bB edm-1-12-37/locPv/Makefile edm-1-12-37.orig/locPv/Makefile 23,24d22 < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib diff -r -bB edm-1-12-37/logPv/Makefile edm-1-12-37.orig/logPv/Makefile 31,34d30 < USR_LIBS_solaris += Com ca < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib < diff -r -bB edm-1-12-37/multiSegRampButton/Makefile edm-1-12-37.orig/multiSegRampButton/Makefile 24,26d23 < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib < diff -r -bB edm-1-12-37/pnglib/Makefile edm-1-12-37.orig/pnglib/Makefile 36,38d35 < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib < diff -r -bB edm-1-12-37/pvFactory/Makefile edm-1-12-37.orig/pvFactory/Makefile 14c14 < USR_CXXFLAGS_solaris += -DSINGLE_THREADED=1 -D__epics__=1 -D__STDC__ --- > USR_CXXFLAGS_solaris += -DSINGLE_THREADED=1 -D__epics__=1 22,24d21 < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib < diff -r -bB edm-1-12-37/pvFactory/textupdate.cc edm-1-12-37.orig/pvFactory/textupdate.cc 10,13d9 < #ifdef __SUNPRO_CC < #include <ieeefp.h> < #endif < Only in edm-1-12-37/setup: colors.list.orig Only in edm-1-12-37/setup: setup.csh Only in edm-1-12-37/setup: linux-x86 Only in edm-1-12-37/setup: solaris-sparc Only in edm-1-12-37/setup: solaris-x86 diff -r -bB edm-1-12-37/slaclib/Makefile edm-1-12-37.orig/slaclib/Makefile 24,28d23 < ifneq ($(findstring solaris,$(EPICS_HOST_ARCH)),) < LDLIBS += -lX11 -lXt < LDLIBS += -l114135a4-6f6c-11d3-95bc-00104b8742df < LDLIBS += -lcfcaa62e-8199-11d3-a77f-00104b8742df < endif diff -r -bB edm-1-12-37/triumflib/Makefile edm-1-12-37.orig/triumflib/Makefile 28,30d27 < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib < diff -r -bB edm-1-12-37/videowidget/Makefile edm-1-12-37.orig/videowidget/Makefile 29,31d28 < USR_SYS_LIBS_solaris += curl < USR_LDFLAGS_solaris += -L/opt/sfw/lib <