https://github.com/EPICS-synApps/support/releases

synApps出新版了,本文发文时的最新版为:R6-2

Centos7下areaDetector IOC的编译 这篇发布时的版本为:R6-1

按我上面那篇已无法顺利完成流程,发现走到下面步骤得到的assemble_synApps.sh 脚本运行后get到新版的各个包编译时有太多的坑需要填。以后有空再试试6-2的新版吧,下面附上R6-1版本时得到的assemble_synApps.sh,发现老版本的脚本依然能get到R6-1的各个包,流程还可以走通,内容附在后面,哪位有空跑通新版流程定要指导一下哦。

######synAppsR6-1按上图步骤下载到的assemble_synApps.sh的文件内容#######

#!/bin/bash
shopt -s expand_aliases

# Command-line arguments
args=$*
# Flags set by command-line arguments
FULL_CLONE=False
CONFIG_SOURCED=False

# Handle command-line arguments
for arg in ${args}
do
  if [ ${arg} == "full" ]
  then
    FULL_CLONE=True
  else
    if [ -e ${arg} ]
    then
      echo "Sourcing ${arg}"
      source ${arg}
      CONFIG_SOURCED=True
    else
      echo "${arg} does not exist."
    fi
  fi
done

echo "FULL_CLONE = ${FULL_CLONE}"

if [ ${CONFIG_SOURCED} == "False" ]
then
echo "Using default configuration"

EPICS_BASE=/opt/epics/base

# The name of the synApps directory can be customized
#!SYNAPPS_DIR=synApps_X_X

SUPPORT=R6-1
#!CONFIGURE=R6-1
CONFIGURE=master
UTILS=R6-1
DOCUMENTATION=R6-1

ALLENBRADLEY=2.3
ALIVE=R1-1-1
AREA_DETECTOR=master
ASYN=R4-37
AUTOSAVE=R5-10
BUSY=R1-7-2
CALC=R3-7-3
CAMAC=R2-7-1
CAPUTRECORDER=R1-7-2
DAC128V=R2-9
DELAYGEN=R1-2-1
DXP=R6-0
DXPSITORO=R1-2
DEVIOCSTATS=3.1.16
#ETHERIP=ether_ip-3-1
#GALIL=V3-6
IP=R2-20-1
IPAC=2.15
IP330=R2-9
IPUNIDIG=R2-11
LOVE=R3-2-7
LUA=R2-0
MCA=R7-8
MEASCOMP=R2-3
MODBUS=R3-0
MOTOR=R7-1
OPTICS=R2-13-3
QUADEM=R9-2-1
SNCSEQ=2.2.6
SOFTGLUE=R2-8-2
SOFTGLUEZYNQ=R2-0-2
SSCAN=R2-11-3
STD=R3-6
STREAM=2.8.9
VAC=R1-9
VME=R2-9-2
YOKOGAWA_DAS=R2-0-1
XXX=R6-1
fi

shallow_repo()
{
    PROJECT=$1
    MODULE_NAME=$2
    RELEASE_NAME=$3
    TAG=$4
    
    FOLDER_NAME=$MODULE_NAME-${TAG//./-}
    
    echo
    echo "Grabbing $MODULE_NAME at tag: $TAG"
    echo
    
    git clone -q --branch $TAG --depth 1 https://github.com/$PROJECT/$MODULE_NAME.git $FOLDER_NAME
    
    echo "$RELEASE_NAME=\$(SUPPORT)/$FOLDER_NAME" >> ./configure/RELEASE
    
    echo
}

full_repo()
{
    PROJECT=$1
    MODULE_NAME=$2
    RELEASE_NAME=$3
    TAG=$4
    
    FOLDER_NAME=$MODULE_NAME-${TAG//./-}
    
    echo
    echo "Grabbing $MODULE_NAME at tag: $TAG"
    echo
    
    git clone -q https://github.com/$PROJECT/$MODULE_NAME.git $FOLDER_NAME
    
    CURR=$(pwd)
    
    cd $FOLDER_NAME
    git checkout -q $TAG
    cd "$CURR"
    echo "$RELEASE_NAME=\$(SUPPORT)/$FOLDER_NAME" >> ./configure/RELEASE
    
    echo
}

shallow_support()
{
    git clone -q --branch $2 --depth 1 https://github.com/EPICS-synApps/$1.git
}

full_support()
{
    git clone -q https://github.com/EPICS-synApps/$1.git
    cd $1
    git checkout -q $2
    cd ..
}

if [ ${FULL_CLONE} == "True" ]
then
    alias get_support='full_support'
    alias get_repo='full_repo'
else
    # A shallow clone is the default
    alias get_support='shallow_support'
    alias get_repo='shallow_repo'
fi

if [ -z "${SYNAPPS_DIR}" ]
then
SYNAPPS_DIR=/opt/epics
fi

# Assume user has nothing but this file, just in case that's true.
mkdir ${SYNAPPS_DIR}
cd ${SYNAPPS_DIR}

get_support support $SUPPORT
cd support

get_support configure      $CONFIGURE
get_support utils          $UTILS
get_support documentation  $DOCUMENTATION

SUPPORT=$(pwd)

echo "SUPPORT=$SUPPORT" > configure/RELEASE
echo '-include $(TOP)/configure/SUPPORT.$(EPICS_HOST_ARCH)' >> configure/RELEASE
echo "EPICS_BASE=$EPICS_BASE" >> configure/RELEASE
echo '-include $(TOP)/configure/EPICS_BASE' >> configure/RELEASE
echo '-include $(TOP)/configure/EPICS_BASE.$(EPICS_HOST_ARCH)' >> configure/RELEASE
echo "" >> configure/RELEASE
echo "" >> configure/RELEASE

# modules ##################################################################

#                               get_repo Git Project            Git Repo       RELEASE Name   Tag
if [[ $ALIVE ]];         then   get_repo epics-modules          alive          ALIVE          $ALIVE         ; fi
if [[ $ASYN ]];          then   get_repo epics-modules          asyn           ASYN           $ASYN          ; fi
if [[ $AUTOSAVE ]];      then   get_repo epics-modules          autosave       AUTOSAVE       $AUTOSAVE      ; fi
if [[ $BUSY ]];          then   get_repo epics-modules          busy           BUSY           $BUSY          ; fi
if [[ $CALC ]];          then   get_repo epics-modules          calc           CALC           $CALC          ; fi
if [[ $CAMAC ]];         then   get_repo epics-modules          camac          CAMAC          $CAMAC         ; fi
if [[ $CAPUTRECORDER ]]; then   get_repo epics-modules          caputRecorder  CAPUTRECORDER  $CAPUTRECORDER ; fi
if [[ $DAC128V ]];       then   get_repo epics-modules          dac128V        DAC128V        $DAC128V       ; fi
if [[ $DELAYGEN ]];      then   get_repo epics-modules          delaygen       DELAYGEN       $DELAYGEN      ; fi
if [[ $DXP ]];           then   get_repo epics-modules          dxp            DXP            $DXP           ; fi
if [[ $DXPSITORO ]];     then   get_repo epics-modules          dxpSITORO      DXPSITORO      $DXPSITORO     ; fi
if [[ $DEVIOCSTATS ]];   then   get_repo epics-modules          iocStats       DEVIOCSTATS    $DEVIOCSTATS   ; fi
if [[ $ETHERIP ]];       then   get_repo EPICSTools             ether_ip       ETHERIP        $ETHERIP       ; fi
if [[ $GALIL ]];         then   get_repo motorapp               Galil-3-0      GALIL          $GALIL         ; fi
if [[ $IP ]];            then   get_repo epics-modules          ip             IP             $IP            ; fi
if [[ $IPAC ]];          then   get_repo epics-modules          ipac           IPAC           $IPAC          ; fi
if [[ $IP330 ]];         then   get_repo epics-modules          ip330          IP330          $IP330         ; fi
if [[ $IPUNIDIG ]];      then   get_repo epics-modules          ipUnidig       IPUNIDIG       $IPUNIDIG      ; fi
if [[ $LOVE ]];          then   get_repo epics-modules          love           LOVE           $LOVE          ; fi
if [[ $LUA ]];           then   get_repo epics-modules          lua            LUA            $LUA           ; fi
if [[ $MCA ]];           then   get_repo epics-modules          mca            MCA            $MCA           ; fi
if [[ $MEASCOMP ]];      then   get_repo epics-modules          measComp       MEASCOMP       $MEASCOMP      ; fi
if [[ $MODBUS ]];        then   get_repo epics-modules          modbus         MODBUS         $MODBUS        ; fi
if [[ $MOTOR ]];         then   get_repo epics-modules          motor          MOTOR          $MOTOR         ; fi
if [[ $OPTICS ]];        then   get_repo epics-modules          optics         OPTICS         $OPTICS        ; fi
if [[ $QUADEM ]];        then   get_repo epics-modules          quadEM         QUADEM         $QUADEM        ; fi
if [[ $SOFTGLUE ]];      then   get_repo epics-modules          softGlue       SOFTGLUE       $SOFTGLUE      ; fi
if [[ $SOFTGLUEZYNQ ]];  then   get_repo epics-modules          softGlueZynq   SOFTGLUEZYNQ   $SOFTGLUEZYNQ  ; fi
if [[ $SSCAN ]];         then   get_repo epics-modules          sscan          SSCAN          $SSCAN         ; fi
if [[ $STD ]];           then   get_repo epics-modules          std            STD            $STD           ; fi
if [[ $STREAM ]];        then   get_repo paulscherrerinstitute  StreamDevice   STREAM         $STREAM        ; fi
if [[ $VAC ]];           then   get_repo epics-modules          vac            VAC            $VAC           ; fi
if [[ $VME ]];           then   get_repo epics-modules          vme            VME            $VME           ; fi
if [[ $YOKOGAWA_DAS ]];  then   get_repo epics-modules          Yokogawa_DAS   YOKOGAWA_DAS   $YOKOGAWA_DAS  ; fi
if [[ $XXX ]];           then   get_repo epics-modules          xxx            XXX            $XXX           ; fi

if [[ $AREA_DETECTOR ]]
then

get_repo  areaDetector  areaDetector  AREA_DETECTOR  $AREA_DETECTOR

echo "ADCORE=\$(AREA_DETECTOR)/ADCore" >> configure/RELEASE
echo "ADSUPPORT=\$(AREA_DETECTOR)/ADSupport" >> configure/RELEASE

cd areaDetector-$AREA_DETECTOR
git submodule init
git submodule update ADCore
git submodule update ADSupport
git submodule update ADSimDetector

cd ADCore/iocBoot

cp EXAMPLE_commonPlugins.cmd commonPlugins.cmd
cp EXAMPLE_commonPlugin_settings.req commonPlugin_settings.req

cd ../..

cd configure
cp EXAMPLE_CONFIG_SITE.local       CONFIG_SITE.local
cp EXAMPLE_CONFIG_SITE.local.WIN32 CONFIG_SITE.local.WIN32
# make release will give the correct paths for these files, so we just need to rename them
cp EXAMPLE_RELEASE_PRODS.local     RELEASE_PRODS.local
cp EXAMPLE_RELEASE_LIBS.local      RELEASE_LIBS.local
cp EXAMPLE_RELEASE.local           RELEASE.local

# vxWorks has pthread and other issues
echo 'WITH_GRAPHICSMAGICK = NO' >> CONFIG_SITE.local.vxWorks
echo 'WITH_BLOSC = NO' >> CONFIG_SITE.local.vxWorks
echo 'WITH_BITSHUFFLE = NO' >> CONFIG_SITE.local.vxWorks

# linux-arm has X11 and other issues
echo 'WITH_BITSHUFFLE = NO' >> CONFIG_SITE.local.linux-x86_64.linux-arm
echo 'WITH_GRAPHICSMAGICK = NO' >> CONFIG_SITE.local.linux-x86_64.linux-arm
echo 'WITH_BITSHUFFLE = NO' >> CONFIG_SITE.local.linux-x86.linux-arm
echo 'WITH_GRAPHICSMAGICK = NO' >> CONFIG_SITE.local.linux-x86.linux-arm

# We are still using Epics v3
sed -i s:'WITH_PVA  = YES':'WITH_PVA = NO':g CONFIG_SITE.local
sed -i s:'WITH_QSRV = YES':'WITH_QSRV = NO':g CONFIG_SITE.local

# Enable building ADSimDetector
sed -i s:'#ADSIMDETECTOR':'ADSIMDETECTOR':g RELEASE.local

cd ../..

fi

if [[ $DXP ]]
then
    cd dxp-$DXP
    echo "LINUX_USB_INSTALLED = NO" >> ./configure/CONFIG_SITE.linux-x86_64.linux-arm
    echo "LINUX_USB_INSTALLED = NO" >> ./configure/CONFIG_SITE.linux-x86.linux-arm
    cd ..
fi

if [[ $IPAC ]]
then
    cd ipac-${IPAC//./-}
  echo "-include \$(TOP)/../RELEASE.local" >> ./configure/RELEASE
  echo "-include \$(TOP)/../RELEASE.\$(EPICS_HOST_ARCH).local" >> ./configure/RELEASE
  echo "-include \$(TOP)/configure/RELEASE.local" >> ./configure/RELEASE
    cd ..
fi

if [[ $MCA ]]
then
    cd mca-$MCA
    echo "LINUX_LIBUSB-1.0_INSTALLED = NO" >> ./configure/CONFIG_SITE.linux-x86_64.linux-arm
    echo "LINUX_LIBUSB-1.0_INSTALLED = NO" >> ./configure/CONFIG_SITE.linux-x86.linux-arm
    cd ..
fi

if [[ $MOTOR ]]
then
    cd motor-$MOTOR
    
    git submodule init
    git submodule update
    
    cd ..
fi

if [[ $STREAM ]]
then
    cd StreamDevice-${STREAM//./-}
    
    # Use the EPICS makefile, rather than PSI's
    rm GNUmakefile
    
    # Don't install to synApps/support
    sed -i 's/TOP = ../TOP = ./g' ./Makefile
    sed -i 's/TOP = ..\/../TOP = ../g' ./streamApp/Makefile
    sed -i 's/TOP = ..\/../TOP = ../g' ./src/Makefile
    
    # Comment out PCRE
    sed -i 's/PCRE=/#PCRE=/g' ./configure/RELEASE
    
    echo "SSCAN=" >> ./configure/RELEASE
    echo "STREAM=" >> ./configure/RELEASE
  echo "-include \$(TOP)/../RELEASE.local" >> ./configure/RELEASE
  echo "-include \$(TOP)/../RELEASE.\$(EPICS_HOST_ARCH).local" >> ./configure/RELEASE
  echo "-include \$(TOP)/configure/RELEASE.local" >> ./configure/RELEASE
    sed -i 's/#PROD_LIBS += sscan/PROD_LIBS += sscan/g' ./streamApp/Makefile
    cd ..
fi

if [[ $SNCSEQ ]]
then

# seq
wget http://www-csr.bessy.de/control/SoftDist/sequencer/releases/seq-$SNCSEQ.tar.gz
tar zxf seq-$SNCSEQ.tar.gz
# The synApps build can't handle '.'
mv seq-$SNCSEQ seq-${SNCSEQ//./-}
rm -f seq-$SNCSEQ.tar.gz
echo "SNCSEQ=\$(SUPPORT)/seq-${SNCSEQ//./-}" >> ./configure/RELEASE

if [[ $CALC ]]
then

# Uncomment sseq support in calc
cd calc-$CALC
sed -i s:'#SNCSEQ':'SNCSEQ':g configure/RELEASE
cd ..

fi

fi

if [[ $ALLENBRADLEY ]]
then

# get allenBradley-2-3
wget http://www.aps.anl.gov/epics/download/modules/allenBradley-$ALLENBRADLEY.tar.gz
tar xf allenBradley-$ALLENBRADLEY.tar.gz
mv allenBradley-$ALLENBRADLEY allenBradley-${ALLENBRADLEY//./-}
rm -f allenBradley-$ALLENBRADLEY.tar.gz
ALLENBRADLEY=${ALLENBRADLEY//./-}
echo "ALLEN_BRADLEY=\$(SUPPORT)/allenBradley-${ALLENBRADLEY}" >> ./configure/RELEASE
cd allenBradley-$ALLENBRADLEY
echo "-include \$(TOP)/../RELEASE.local" >> ./configure/RELEASE
echo "-include \$(TOP)/../RELEASE.\$(EPICS_HOST_ARCH).local" >> ./configure/RELEASE
echo "-include \$(TOP)/configure/RELEASE.local" >> ./configure/RELEASE
cd ..

fi

if [[ $GALIL ]]
then

mv Galil-3-0-$GALIL/3-6 galil-3-6
rm -Rf Galil-3-0-$GALIL
cp galil-3-6/config/GALILRELEASE galil-3-6/configure/RELEASE
echo 'GALIL=$(SUPPORT)/galil-3-6' >> ./configure/RELEASE
sed -i 's/MODULE_LIST[ ]*=[ ]*MEASCOMP/MODULE_LIST = MEASCOMP GALIL/g' Makefile
sed -i '/\$(MEASCOMP)_DEPEND_DIRS/a \$(GALIL)_DEPEND_DIRS = \$(AUTOSAVE) \$(SNCSEQ) \$(SSCAN) \$(CALC) \$(ASYN) \$(BUSY) \$(MOTOR) \$(IPAC)' Makefile

fi

make release
#############################

Centos7下areaDetector IOC的编译后记的更多相关文章

  1. CentOS7下用jdk1.7编译hadoop-2.7.1全过程详解

    说实话,本人编译hadoop的过程比较曲折,但收获也很多,下面系统介绍一下CentOS7下编译hadoop-2.7.1的全过程吧. 先说明,32位Linux操作系统可以直接下载编译好的hadoop使用 ...

  2. centos7下vim8.1的编译安装教程

    之前安装YouCompleteMe的时候遇到vim版本不兼容的问题,看网上说是需要将vim版本提升到8.0及以上,然后就开始安装最新版本的vim,安装过程中的遇到了不少问题主要集中在配置方面和缺少插件 ...

  3. centos7下比特币源码编译安装

    今天我们介绍比特币的源码安装过程,是利用编译安装的 首先安装依赖 1 yum install -y boost-devel qt-devel protobuf-devel qrencode-devel ...

  4. centos7下使用n grok编译服务端和客户端穿透内网

    (发现博客园会屏蔽一些标题中的关键词,比如ngrok.内网穿透,原因不知,所以改了标题才能正常访问,) 有时候想在自己电脑.路由器或者树莓派上搭建一些web.vpn等服务让自己用,但是自己的电脑一般没 ...

  5. centos7下编译安装php-7.0.15(PHP-FPM)

    centos7下编译安装php-7.0.15(PHP-FPM) 一.下载php7源码包 http://php.net/downloads.php 如:php-7.0.15.tar.gz 二.安装所需依 ...

  6. Centos7 下编译 Openjdk8

    本文主要介绍如何在 Centos7 下编译 Openjdk8 源码,<深入理解java虚拟机>第二版网上好多 openjdk7 的帖子,编译 jdk8 和 7 还是有些差别的,比如大家经常 ...

  7. CentOS7下编译安装redis-5.0.9

    CentOS7下编译安装redis-5.0.9 本文地址http://yangjianyong.cn/?p=171转载无需经过作者本人授权 下载redis #code start wget https ...

  8. Linux CentOs7 下安装 redis

    Linux CentOs7 下安装 redis 请将以下命令放入linux命令行中运行 如果安装过程前没有安装GCC请先安装  命令如下 $ yum install gcc-c++ $ wget ht ...

  9. [转]Centos7下caffe的安装

    Centos7下caffe的安装 原文地址:http://blog.csdn.net/s2392735818/article/details/49796017   版权声明:本文为博主原创文章,未经博 ...

  10. Centos7下安装配置Redsocks

    Redsocks是一个开源的网络程序,代码依赖开源的libevent网络库.Redsocks允许你将所有TCP连接重定向到SOCKS或HTTPS代理,比如Shadowsocks(Centos7下安装配 ...

随机推荐

  1. CmakeLists简单使用总结

    单文件工程和多级目录工程CmakeLists.txt编写分享 你若发现该帖中有待商榷的地方,还请指正赐教,先行拜谢了! 1 main.c单文件工程CmakeLists.txt 1.1 目录结构 1.2 ...

  2. ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇)

    目录 前言 准备SHP数据 ArcMap 的筛选 QGIS 的筛选 如何编写查询条件 前言 当我们用GIS软件打开一个SHP文件的时候,会显示出里面全部的几何图形,假如我只想要其中的一部分数据显示出来 ...

  3. 《不一般的 DFT》阅读随笔

    感觉上前置知识是毛啸 16 年的论文? 我手头也有,到时候发现有 at 到的地方就插一嘴说一句 srds 先这篇是因为有纸质版的这篇 感觉上大篇幅在讲复杂度模数大小相关的做法. 1 引言 我这写个啥? ...

  4. SQL注入绕waf思路总结

    1.关键字大小写混合绕过 关键字大小写混合只针对于小写或大写的关键字匹配技术-正则表达式,如果在匹配时大小写不敏感的话,就无法绕过.这是最简单的一个绕过技术. 例如:将union select混写成U ...

  5. 使用VMware安装Linux(CentOS)操作系统

    使用VMware安装CentOS 6.4 环境:Windows7 , VMware Workstation10, CentOS6.4 为什么选择CentOS ? 主流: 目前的Linux操作系统主要应 ...

  6. python 中文分词工具

    python 中文分词工具 jieba,https://github.com/fxsjy/jieba jieba_fast,https://github.com/deepcs233/jieba_fas ...

  7. 《MySQL必知必会》之快速入门游标和触发器

    第二十四章 使用游标 本章将介绍什么是游标以及如何使用游标 游标 之前的select语句检索出来的数据,没有办法得到第一行或者下一行 有时,需要在检索出来的行中前进或后退一行或多行.这就是使用游标的原 ...

  8. .NET技术与企业级解决方案研究应用

    分布式缓存框架 Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度. Redis:是一个高性能的KV ...

  9. 浅谈入行Qt桌面端开发程序员-从毕业到上岗(1):当我们说到桌面端开发时,我们在谈论什么?

    谈谈我自己 大家好,我是轩先生,是一个刚入行的Qt桌面端开发程序员.我的本科是双非一本的数学专业,22年毕业,只是部分课程与计算机之间有所交叉,其实在我毕业的时候并没有想过会成为一名程序员,也没有想过 ...

  10. AVM 拖动组件 movable-view 介绍

    应用开发中拖动功能是比较常见的 ,如滑动解锁,滑动验证码,实现一些小游戏,少儿编程中常见. avm.js 是多端开发框架,一套代码可同时编译为APP .小程序.h5. avm 框架中实现拖动功能非常简 ...