Skip to content

Commit 64f219e

Browse files
Merge pull request #503 from ISISComputingGroup/Ticket5338_Add_IOC_FLIPPRPS
CRISP FLIPPER IOC added
2 parents 666d15c + c8fc233 commit 64f219e

File tree

20 files changed

+405
-0
lines changed

20 files changed

+405
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
TOP=../..
2+
include $(TOP)/configure/CONFIG
3+
#----------------------------------------
4+
# ADD MACRO DEFINITIONS AFTER THIS LINE
5+
6+
#----------------------------------------------------
7+
# Create and install (or just install) into <top>/db
8+
# databases, templates, substitutions like this
9+
#DB += xxx.db
10+
11+
#----------------------------------------------------
12+
# If <anyname>.db template is not named <anyname>*.template add
13+
# <anyname>_template = <templatename>
14+
15+
include $(TOP)/configure/RULES
16+
#----------------------------------------
17+
# ADD RULES AFTER THIS LINE
18+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
TOP = ..
2+
include $(TOP)/configure/CONFIG
3+
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *src*))
4+
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Src*))
5+
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *db*))
6+
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Db*))
7+
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *protocol*))
8+
include $(TOP)/configure/RULES_DIRS
9+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/* FLIPPRPS-IOC-01Main.cpp */
2+
/* Author: Marty Kraimer Date: 17MAR2000 */
3+
4+
#include <stddef.h>
5+
#include <stdlib.h>
6+
#include <stddef.h>
7+
#include <string.h>
8+
#include <stdio.h>
9+
10+
#include "epicsExit.h"
11+
#include "epicsThread.h"
12+
#include "iocsh.h"
13+
14+
int main(int argc,char *argv[])
15+
{
16+
if(argc>=2) {
17+
iocsh(argv[1]);
18+
epicsThreadSleep(.2);
19+
}
20+
iocsh(NULL);
21+
epicsExit(0);
22+
return(0);
23+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
TOP=../..
2+
# This file should do very little - it's purpose is to set the APPNAME and then load build.mak
3+
4+
# this definition is used in build.mak
5+
APPNAME=FLIPPRPS-IOC-01
6+
7+
# If we are ###-IOC-01 leave this as is, if we are ###-IOC-02 or higher change to ###-IOC-01 and delete build.mak from this directory
8+
# there should only be a single build.mak for all IOCs of a given family and it is located in the ###-IOC-01 directory
9+
include $(TOP)/FLIPPRPS-IOC-01App/src/build.mak
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
TOP=../..
2+
3+
include $(TOP)/configure/CONFIG
4+
#----------------------------------------
5+
# ADD MACRO DEFINITIONS AFTER THIS LINE
6+
#=============================
7+
8+
### NOTE: there should only be one build.mak for a given IOC family and this should be located in the ###-IOC-01 directory
9+
10+
#=============================
11+
# Build the IOC application CCD100-IOC-01
12+
# We actually use $(APPNAME) below so this file can be included by multiple IOCs
13+
14+
PROD_IOC = $(APPNAME)
15+
# CCD100-IOC-01.dbd will be created and installed
16+
DBD += $(APPNAME).dbd
17+
18+
# CCD100-IOC-01.dbd will be made up from these files:
19+
$(APPNAME)_DBD += base.dbd
20+
## ISIS standard dbd ##
21+
$(APPNAME)_DBD += icpconfig.dbd
22+
$(APPNAME)_DBD += pvdump.dbd
23+
$(APPNAME)_DBD += asSupport.dbd
24+
$(APPNAME)_DBD += devIocStats.dbd
25+
$(APPNAME)_DBD += caPutLog.dbd
26+
$(APPNAME)_DBD += utilities.dbd
27+
## add other dbd here ##
28+
$(APPNAME)_DBD += stream.dbd
29+
$(APPNAME)_DBD += asyn.dbd
30+
$(APPNAME)_DBD += drvAsynSerialPort.dbd
31+
$(APPNAME)_DBD += drvAsynIPPort.dbd
32+
#$(APPNAME)_DBD += xxx.dbd
33+
34+
# Add all the support libraries needed by this IOC
35+
## ISIS standard libraries ##
36+
$(APPNAME)_LIBS += seq pv
37+
$(APPNAME)_LIBS += devIocStats
38+
$(APPNAME)_LIBS += pvdump $(MYSQLLIB) easySQLite sqlite
39+
$(APPNAME)_LIBS += caPutLog
40+
$(APPNAME)_LIBS += icpconfig pugixml
41+
$(APPNAME)_LIBS += autosave
42+
$(APPNAME)_LIBS += utilities pcre libjson zlib
43+
## Add other libraries here ##
44+
$(APPNAME)_LIBS += stream
45+
$(APPNAME)_LIBS += pcre
46+
$(APPNAME)_LIBS += asyn
47+
#$(APPNAME)_LIBS += xxx
48+
49+
# CCD100-IOC-01_registerRecordDeviceDriver.cpp derives from CCD100-IOC-01.dbd
50+
$(APPNAME)_SRCS += $(APPNAME)_registerRecordDeviceDriver.cpp
51+
52+
# Build the main IOC entry point on workstation OSs.
53+
$(APPNAME)_SRCS_DEFAULT += $(APPNAME)Main.cpp
54+
$(APPNAME)_SRCS_vxWorks += -nil-
55+
56+
# Add support from base/src/vxWorks if needed
57+
#$(APPNAME)_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
58+
59+
# Finally link to the EPICS Base libraries
60+
$(APPNAME)_LIBS += $(EPICS_BASE_IOC_LIBS)
61+
62+
#===========================
63+
64+
include $(TOP)/configure/RULES
65+
#----------------------------------------
66+
# ADD RULES AFTER THIS LINE

FLIPPRPS/Makefile

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Makefile at top of application tree
2+
TOP = .
3+
include $(TOP)/configure/CONFIG
4+
5+
# Directories to build, any order
6+
DIRS += configure
7+
DIRS += $(wildcard *Sup)
8+
DIRS += $(wildcard *App)
9+
DIRS += $(wildcard *Top)
10+
DIRS += $(wildcard iocBoot)
11+
12+
# The build order is controlled by these dependency rules:
13+
14+
# All dirs except configure depend on configure
15+
$(foreach dir, $(filter-out configure, $(DIRS)), \
16+
$(eval $(dir)_DEPEND_DIRS += configure))
17+
18+
# Any *App dirs depend on all *Sup dirs
19+
$(foreach dir, $(filter %App, $(DIRS)), \
20+
$(eval $(dir)_DEPEND_DIRS += $(filter %Sup, $(DIRS))))
21+
22+
# Any *Top dirs depend on all *Sup and *App dirs
23+
$(foreach dir, $(filter %Top, $(DIRS)), \
24+
$(eval $(dir)_DEPEND_DIRS += $(filter %Sup %App, $(DIRS))))
25+
26+
# iocBoot depends on all *App dirs
27+
iocBoot_DEPEND_DIRS += $(filter %App,$(DIRS))
28+
29+
# Add any additional dependency rules here:
30+
31+
include $(TOP)/configure/RULES_TOP

FLIPPRPS/configure/CONFIG

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# CONFIG - Load build configuration data
2+
#
3+
# Do not make changes to this file!
4+
5+
# Allow user to override where the build rules come from
6+
RULES = $(EPICS_BASE)
7+
8+
# RELEASE files point to other application tops
9+
include $(TOP)/configure/RELEASE
10+
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common
11+
ifdef T_A
12+
-include $(TOP)/configure/RELEASE.Common.$(T_A)
13+
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
14+
endif
15+
16+
CONFIG = $(RULES)/configure
17+
include $(CONFIG)/CONFIG
18+
19+
# Override the Base definition:
20+
INSTALL_LOCATION = $(TOP)
21+
22+
# CONFIG_SITE files contain other build configuration settings
23+
include $(TOP)/configure/CONFIG_SITE
24+
-include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
25+
ifdef T_A
26+
-include $(TOP)/configure/CONFIG_SITE.Common.$(T_A)
27+
-include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
28+
endif
29+

FLIPPRPS/configure/CONFIG_SITE

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# CONFIG_SITE
2+
3+
# Make any application-specific changes to the EPICS build
4+
# configuration variables in this file.
5+
#
6+
# Host/target specific settings can be specified in files named
7+
# CONFIG_SITE.$(EPICS_HOST_ARCH).Common
8+
# CONFIG_SITE.Common.$(T_A)
9+
# CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
10+
11+
# CHECK_RELEASE controls the consistency checking of the support
12+
# applications pointed to by the RELEASE* files.
13+
# Normally CHECK_RELEASE should be set to YES.
14+
# Set CHECK_RELEASE to NO to disable checking completely.
15+
# Set CHECK_RELEASE to WARN to perform consistency checking but
16+
# continue building even if conflicts are found.
17+
CHECK_RELEASE = YES
18+
19+
# Set this when you only want to compile this application
20+
# for a subset of the cross-compiled target architectures
21+
# that Base is built for.
22+
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32
23+
24+
# To install files into a location other than $(TOP) define
25+
# INSTALL_LOCATION here.
26+
#INSTALL_LOCATION=</absolute/path/to/install/top>
27+
28+
# Set this when the IOC and build host use different paths
29+
# to the install location. This may be needed to boot from
30+
# a Microsoft FTP server say, or on some NFS configurations.
31+
#IOCS_APPL_TOP = </IOC's/absolute/path/to/install/top>
32+
33+
# For application debugging purposes, override the HOST_OPT and/
34+
# or CROSS_OPT settings from base/configure/CONFIG_SITE
35+
#HOST_OPT = NO
36+
#CROSS_OPT = NO
37+
38+
# These allow developers to override the CONFIG_SITE variable
39+
# settings without having to modify the configure/CONFIG_SITE
40+
# file itself.
41+
-include $(TOP)/../CONFIG_SITE.local
42+
-include $(TOP)/configure/CONFIG_SITE.local
43+

FLIPPRPS/configure/Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
TOP=..
2+
3+
include $(TOP)/configure/CONFIG
4+
5+
TARGETS = $(CONFIG_TARGETS)
6+
CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS)))
7+
8+
include $(TOP)/configure/RULES

FLIPPRPS/configure/RELEASE

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# RELEASE - Location of external support modules
2+
#
3+
# IF YOU CHANGE ANY PATHS in this file or make API changes to
4+
# any modules it refers to, you should do a "make rebuild" in
5+
# this application's top level directory.
6+
#
7+
# The EPICS build process does not check dependencies against
8+
# any files from outside the application, so it is safest to
9+
# rebuild it completely if any modules it depends on change.
10+
#
11+
# Host- or target-specific settings can be given in files named
12+
# RELEASE.$(EPICS_HOST_ARCH).Common
13+
# RELEASE.Common.$(T_A)
14+
# RELEASE.$(EPICS_HOST_ARCH).$(T_A)
15+
#
16+
# This file is parsed by both GNUmake and an EPICS Perl script,
17+
# so it may ONLY contain definititions of paths to other support
18+
# modules, variable definitions that are used in module paths,
19+
# and include statements that pull in other RELEASE files.
20+
# Variables may be used before their values have been set.
21+
# Build variables that are NOT used in paths should be set in
22+
# the CONFIG_SITE file.
23+
24+
# Variables and paths to dependent modules:
25+
#MODULES = /path/to/modules
26+
#MYMODULE = $(MODULES)/my-module
27+
28+
# If using the sequencer, point SNCSEQ at its top directory:
29+
#SNCSEQ = $(MODULES)/seq-ver
30+
31+
# EPICS_BASE should appear last so earlier modules can override stuff:
32+
EPICS_BASE = C:/Instrument/Apps/EPICS/base/master
33+
34+
# Set RULES here if you want to use build rules from somewhere
35+
# other than EPICS_BASE:
36+
#RULES = $(MODULES)/build-rules
37+
38+
# These lines allow developers to override these RELEASE settings
39+
# without having to modify this file directly.
40+
-include $(TOP)/../RELEASE.local
41+
-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local
42+
-include $(TOP)/configure/RELEASE.local
43+
44+
# Macros required for basic ioc/stream device
45+
ACCESSSECURITY=$(SUPPORT)/AccessSecurity/master
46+
ASUBFUNCTIONS=$(SUPPORT)/asubFunctions/master
47+
ASYN=$(SUPPORT)/asyn/master
48+
AUTOSAVE=$(SUPPORT)/autosave/master
49+
CALC=$(SUPPORT)/calc/master
50+
CAPUTLOG=$(SUPPORT)/caPutLog/master
51+
DEVIOCSTATS=$(SUPPORT)/devIocStats/master
52+
ICPCONFIG=$(SUPPORT)/icpconfig/master
53+
LIBJSON=$(SUPPORT)/libjson/master
54+
LUA=$(SUPPORT)/lua/master
55+
MYSQL=$(SUPPORT)/MySQL/master
56+
ONCRPC=$(SUPPORT)/oncrpc/master
57+
PCRE=$(SUPPORT)/pcre/master
58+
PUGIXML=$(SUPPORT)/pugixml/master
59+
PVDUMP=$(SUPPORT)/pvdump/master
60+
SNCSEQ=$(SUPPORT)/seq/master
61+
SQLITE=$(SUPPORT)/sqlite/master
62+
SSCAN=$(SUPPORT)/sscan/master
63+
STREAMDEVICE=$(SUPPORT)/StreamDevice/master
64+
UTILITIES=$(SUPPORT)/utilities/master
65+
ZLIB=$(SUPPORT)/zlib/master
66+
67+
FLIPPRPS=$(SUPPORT)/flipprps/master
68+
69+
# optional extra local definitions here
70+
-include $(TOP)/configure/RELEASE.private
71+
72+
include $(TOP)/../../../ISIS_CONFIG
73+
-include $(TOP)/../../../ISIS_CONFIG.$(EPICS_HOST_ARCH)
74+
75+
# IOC-specific support module

0 commit comments

Comments
 (0)