Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,7 @@ root = true
# as some compilers complain about files not ending in newline
[*]
insert_final_newline = true

# Part of readline test that needs file without final newline
[modules/libcom/test/multiline-input.txt]
insert_final_newline = false
12 changes: 6 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Before adding patterns here, please read the gitignore
# documentation at https://git-scm.com/docs/gitignore
/cfg/
/bin/
/lib/
Expand All @@ -11,14 +13,12 @@
/modules/RELEASE.*.local
/modules/Makefile.local
O.*/
/QtC-*
/.qtc_*
/.vscode/
*.orig
*.log
.*.swp
.DS_Store
.iocsh_history

# Common files generated by other tools
.DS_Store

#
# local additions
#
Expand Down
14 changes: 3 additions & 11 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,7 @@ this distribution.

---------------------------------------------------------

Installation and release information can be found in the
various files in the documentation subdirectory.
For more information, see the README.md file.

Additional information about EPICS including mailing list
archives and subscription instructions, documentation and
training materials, additional components, links to other
websites etc. is available on the EPICS home page at
https://epics.anl.gov/

Fri, 21 Feb 2025 17:31:33 -0600
86154953f57b1796e7cb81bbc807eae120b9e840
https://code.launchpad.net/epics-base
Fri, 30 Jan 2026 14:50:34 -0600
7dce62a51298fb113f4bfbbd5f80ddf9838138d0
64 changes: 64 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@

# EPICS Base

EPICS (Experimental Physics and Industrial Control System) is a set of software
tools and applications which provide a software infrastructure for use in
building distributed control systems to operate devices such as Particle
Accelerators, Large Experiments and major Telescopes. EPICS Base is the central
core of the control system toolkit. More details can be found at the
[About page of the official website](https://epics-controls.org/about-epics/)

## Links

- [Official Website](https://epics-controls.org/)
- [Original Website](https://epics.anl.gov/)
- [Repository](https://github.com/epics-base/epics-base)

### Documentation

- [Documentation](https://docs.epics-controls.org/en/latest/)
- [Documentation Repository](https://github.com/epics-docs/epics-docs)

### Community Communication

- [Tech-Talk Mailing List](https://epics.anl.gov/tech-talk/)
- [Matrix Rooms](https://matrix.to/#/#epics:epics-controls.org)
- [News](https://epics-controls.org/news-and-events/)

## Quick Install

Download a release from the
[Downloads page](https://epics-controls.org/resources-and-support/base/downloads)
and unpack it. Inside the unpacked folder run:

```bash
make
```

For more information on how to install on your system see the
[Installation page](https://docs.epics-controls.org/en/latest/getting-started/installation.html)
of the documentation.

### Quick run a softIOC

After building, you can run an example soft-IOC (Input/Output Controller)
which runs a Channel Access server.

```bash
./bin/*/softIoc -x first
```

Run the `dbl` command to list the records it provides:

```bash
epics> dbl
first:BaseVersion
first:exit
epics>
```

## License

EPICS Base is distributed subject to a Software License
Agreement found in the file [LICENSE](./LICENSE) that is included with
this distribution.
2 changes: 1 addition & 1 deletion configure/CONFIG.gnuCommon
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC -Wl,-h$@

GNU_LDLIBS_YES = -lgcc

# Use compiler flags to generate header dependancies files
# Use compiler flags to generate header dependencies files
HDEPENDS_METHOD = COMP
HDEPENDS_COMPFLAGS = -MM -MF $@

2 changes: 1 addition & 1 deletion configure/CONFIG_ADDONS
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
# These rules apply to these Makefile-variables:
# USR_CFLAGS C flags
# USR_CXXFLAGS C++ flags
# USR_CPPFLAGS c preprocesser flags
# USR_CPPFLAGS c preprocessor flags
# SRCS source files for building libraries and prods
# USR_SRCS source files for building libraries and prods
# PROD_SRCS source files for building prods
Expand Down
5 changes: 1 addition & 4 deletions configure/CONFIG_BASE_VERSION
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ EPICS_VERSION = 7
EPICS_REVISION = 0

# EPICS_MODIFICATION must be a number >=0 and <256
EPICS_MODIFICATION = 9
EPICS_MODIFICATION = 10

# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
# Not included in the official EPICS version number if zero
Expand All @@ -71,6 +71,3 @@ endif
EPICS_SHORT_VERSION=$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)$(EPICS_PATCH_VSTRING)
EPICS_VERSION_NUMBER=$(EPICS_SHORT_VERSION)$(EPICS_DEV_SNAPSHOT)$(EPICS_SITE_VSTRING)
EPICS_VERSION_STRING="EPICS Version $(EPICS_VERSION_NUMBER)"

# Provide this in case anyone is still using the old name
COMMIT_DATE="-no-date-"
4 changes: 2 additions & 2 deletions configure/CONFIG_CA_VERSION
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Version number for the Channel Access API and shared library

EPICS_CA_MAJOR_VERSION = 4
EPICS_CA_MINOR_VERSION = 14
EPICS_CA_MAINTENANCE_VERSION = 5
EPICS_CA_MINOR_VERSION = 15
EPICS_CA_MAINTENANCE_VERSION = 0

# Development flag, set to zero for release versions

Expand Down
2 changes: 1 addition & 1 deletion configure/CONFIG_COMMON
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ CMPLR_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
ALL_SRC_DIRS = $(CMPLR_SRC_DIRS) $(OS_SRC_DIRS) $(GENERIC_SRC_DIRS)

#--------------------------------------------------
# Directory for OS independant build created files
# Directory for OS independent build created files
COMMON_DIR = ../O.Common

# compile line include directories
Expand Down
2 changes: 1 addition & 1 deletion configure/CONFIG_DATABASE_VERSION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Version number for the database APIs and shared library

EPICS_DATABASE_MAJOR_VERSION = 3
EPICS_DATABASE_MINOR_VERSION = 24
EPICS_DATABASE_MINOR_VERSION = 25
EPICS_DATABASE_MAINTENANCE_VERSION = 0

# Development flag, set to zero for release versions
Expand Down
2 changes: 2 additions & 0 deletions configure/CONFIG_ENV
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,5 @@ EPICS_IOC_IGNORE_SERVERS=""
# EPICS_IOC_LOG_PORT Log server port number etc.
EPICS_IOC_LOG_PORT=7004

# Posix priority scheduling
EPICS_ALLOW_POSIX_THREAD_PRIORITY_SCHEDULING=YES
2 changes: 1 addition & 1 deletion configure/CONFIG_LIBCOM_VERSION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Version number for the libcom APIs and shared library

EPICS_LIBCOM_MAJOR_VERSION = 3
EPICS_LIBCOM_MINOR_VERSION = 24
EPICS_LIBCOM_MINOR_VERSION = 25
EPICS_LIBCOM_MAINTENANCE_VERSION = 0

# Development flag, set to zero for release versions
Expand Down
2 changes: 1 addition & 1 deletion configure/CONFIG_SITE_ENV
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ EPICS_TS_NTP_INET=
# Number of lines of command history to keep.
# IOCSH_HISTEDIT_DISABLE
# Prevents use of readline or equivalent if defined.
IOCSH_PS1="epics> "
IOCSH_PS1=ANSI_GREEN("epics> ")
IOCSH_HISTSIZE=50
IOCSH_HISTEDIT_DISABLE=

Expand Down
4 changes: 2 additions & 2 deletions configure/RULES.Db
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ DBD += $(foreach type, $(CROSS_TARGET_OS_TYPES), $(DBD_$(type)))
# DBD_solaris += abcSolaris.dbd
#
# ---------------------------------------------------
# DBD concatination files
# DBD concatenation files

COMMON_DBDCATS += $(addprefix $(COMMON_DIR)/,$(DBDCAT))
DBDCAT_SOURCES += $(foreach file, $($*_DBD), $(DBDCAT_SOURCE) )
Expand Down Expand Up @@ -194,7 +194,7 @@ ifneq (,$(strip $(DBDDEPENDS_FILES)))
endif

#---------------------------------------------------------------
# build dependancies, clean rule
# build dependencies, clean rule

inc: $(COMMON_INC) $(INSTALL_INC) $(COMMON_DBDS) $(COMMON_DBDCATS) \
$(INSTALL_DBDS) $(INSTALL_DBD_INSTALLS) $(COMMON_DOCS)
Expand Down
2 changes: 1 addition & 1 deletion configure/RULES_ARCHS
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ ifneq ($(RELEASE_CFG_DIR_RULES),)
include $(RELEASE_CFG_DIR_RULES)
endif

# Create EPICS_HOST_ARCH dependancies for GNU make -j option.
# Create EPICS_HOST_ARCH dependencies for GNU make -j option.
# Needed in dirs where EPICS_HOST_ARCH build creates a tool used in
# cross arch builds

Expand Down
4 changes: 2 additions & 2 deletions configure/RULES_BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -581,11 +581,11 @@ $(INSTALL_DOC)/%: $(COMMON_DIR)/%

$(INSTALL_DOC)/%: %
$(ECHO) "Installing doc $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(INSTALL_DOC)
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)

$(INSTALL_DOC)/%: ../%
$(ECHO) "Installing doc $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(INSTALL_DOC)
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)

$(INSTALL_HTML)/$(HTMLS_DIR)/%: $(COMMON_DIR)/%
$(ECHO) "Installing generated html $@"
Expand Down
2 changes: 1 addition & 1 deletion configure/RULES_DIRS
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ $(foreach dir, $(DIRS), $(dir)$(DIVIDER)install): \
rebuild: $(foreach dir, $(DIRS), $(dir)$(DIVIDER)install)
endif

# Create directory dependancies lines for GNU make -j option
# Create directory dependencies lines for GNU make -j option
# Only works with GNU make 3.81 or later (uses eval function)
define DEP_template1
$(1): $$($(1)_DEPEND_DIRS)
Expand Down
2 changes: 1 addition & 1 deletion configure/RULES_MODULES
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ RELEASE.host: $(RELEASE_LOCAL)

$(RELEASE_LOCAL): Makefile $(CONFIG)/CONFIG_SITE \
$(wildcard $(CONFIG)/CONFIG_SITE.local)
$(ECHO) Creating $@ with
$(ECHO) "Creating $@ with"
$(ECHO) " $(PARENT_MODULE) = $(INSTALL_ABSOLUTE)"
@echo $(PARENT_MODULE) = $(INSTALL_ABSOLUTE)> $@

Expand Down
8 changes: 4 additions & 4 deletions configure/Sample.Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ INC = file.h
# Platform specific files can also be put in
# separate os/OS_CLASS directories!
#
# For almost every file the seach order is:
# For almost every file the search order is:
# ./os/OS_CLASS
# ./os/generic
# .
Expand Down Expand Up @@ -136,11 +136,11 @@ PROD_SRCS = ppp.c qqq.c
a_file_SRCS = aa.c bb.c

#
# EPICS libs needed to link PROD, TESTPROD and sharable library
# EPICS libs needed to link PROD, TESTPROD and shareable library
#
# note that DLL_LIBS (the libraries needed to link a shareable
# library) is created by default from the PROD/SYS libraries specified
# below minus the name of the sharable library (LIBRARY)
# below minus the name of the shareable library (LIBRARY)
#
#
# ---------- libraries for a specific product pppp
Expand Down Expand Up @@ -169,7 +169,7 @@ USR_LIBS_DEFAULT = foolib
USR_LIBS_WIN32 = -nil-
foolib_DIR = $(FOO_LIB)

# system libs needed to link PROD, TESTPROD and sharable library
# system libs needed to link PROD, TESTPROD and shareable library
#
# ---------- system libraries for all products
# for all systems:
Expand Down
3 changes: 2 additions & 1 deletion configure/os/CONFIG.Common.RTEMS
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,8 @@ MOD_SYS_LDFLAGS += $(CPU_CFLAGS) -Wl,-r -nostdlib
GESYS_LIBS += -lgcc
GESYS_LIBS += -lc -lm -lrtemscpu -lrtemsbsp -lrtems++
GESYS_LIBS += -lcexp -ltecla_r -lspencer_regexp -lpmelf -lpmbfd
GESYS_LIBS += -lnfs -ltelnetd -lrtems-gdb-stub
GESYS_LIBS += -lnfs -ltelnetd -lrtems-gdb-stub -lbsd -ltftpfs -lz
GESYS_LIBS += -lnetworking

# While not part of the Generic Image it provides symbols which
# would conflict.
Expand Down
2 changes: 1 addition & 1 deletion configure/os/CONFIG.Common.RTEMS-beagleboneblack
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ RTEMS_BSP = beagleboneblack
RTEMS_TARGET_CPU = arm
GNU_TARGET = arm-rtems

OP_SYS_LDLIBS += -Wl,--gc-sections
OP_SYS_LDFLAGS += -Wl,--gc-sections
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/beagleboneblack/lib/

include $(CONFIG)/os/CONFIG.Common.RTEMS
Expand Down
3 changes: 1 addition & 2 deletions configure/os/CONFIG.Common.RTEMS-pc686
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,14 @@ define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< $@
endef

OP_SYS_LDLIBS += -Wl,--gc-sections
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/pc686/lib/

include $(CONFIG)/os/CONFIG.Common.RTEMS

#
# Put text segment where it will work with etherboot
#
OP_SYS_LDFLAGS += -Wl,-Ttext,0x100000
OP_SYS_LDFLAGS += -Wl,-Ttext,0x100000 -Wl,--gc-sections


# This check must appear after the above include
Expand Down
2 changes: 1 addition & 1 deletion configure/os/CONFIG.Common.RTEMS-qoriq_e500
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ ARCH_DEP_CFLAGS += -DRTEMS_HAS_ALTIVEC
#ARCH_DEP_CFLAGS += -I$(RTEMS_BASE)/powerpc-rtems5/qoriq_e500/lib/include

#OP_SYS_LDLIBS += -lbspExt #does not use posix stuff ... want to ignore
OP_SYS_LDLIBS += -Wl,--gc-sections
OP_SYS_LDFLAGS += -Wl,--gc-sections
#ARCH_DEP_LDFLAGS = -mcpu=8540 -meabi -msdata=sysv -mstrict-align -mspe -mabi=spe -mfloat-gprs=double
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/$(RTEMS_BSP)/lib

Expand Down
2 changes: 1 addition & 1 deletion configure/os/CONFIG.Common.RTEMS-xilinx_zynq_a9_qemu
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ GNU_TARGET = arm-rtems
#use dhcp/bootp
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL

OP_SYS_LDLIBS += -Wl,--gc-sections
OP_SYS_LDFLAGS += -Wl,--gc-sections
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/xilinx_zynq_a9_qemu/lib/


Expand Down
16 changes: 16 additions & 0 deletions configure/os/CONFIG.Common.RTEMS-xilinx_zynq_microzed
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#
# CONFIG.Common.RTEMS-xilinx_zynq_microzed
# Author: Chris Johns <chris@contemporary.software>
#
# All RTEMS targets use the same Makefile fragment
#
#EXE = .elf
RTEMS_BSP = xilinx_zynq_microzed
RTEMS_TARGET_CPU = arm
GNU_TARGET = arm-rtems

OP_SYS_LDLIBS += -Wl,--gc-sections
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/xilinx_zynq_microzed/lib/


include $(CONFIG)/os/CONFIG.Common.RTEMS
2 changes: 1 addition & 1 deletion configure/os/CONFIG.Common.RTEMS-xilinx_zynq_zedboard
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ RTEMS_BSP = xilinx_zynq_zedboard
RTEMS_TARGET_CPU = arm
GNU_TARGET = arm-rtems

OP_SYS_LDLIBS += -Wl,--gc-sections
OP_SYS_LDFLAGS += -Wl,--gc-sections
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/xilinx_zynq_zedboard/lib/


Expand Down
6 changes: 3 additions & 3 deletions configure/os/CONFIG.win32-x86.win32-x86
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ INSTALL_SHRLIB = $(INSTALL_BIN)


#--------------------------------------------------
# Products dependancy definitions
# Products dependency definitions

PROD_DEPLIBS = $(foreach lib, $(PROD_LIBS) $(USR_LIBS), \
$(firstword $(wildcard \
Expand All @@ -263,10 +263,10 @@ PROD_LDLIBS += $(STATIC_LDLIBS) \
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))

#--------------------------------------------------
# Libraries dependancy definitions
# Libraries dependency definitions

# libs that we need to link the DLL with
# (it isnt necessary to rebuild the dll if these change)
# (it isn't necessary to rebuild the dll if these change)

SHRLIB_DEPLIBS = $(foreach lib, $(LIB_LIBS) $(USR_LIBS), \
$(firstword $(wildcard \
Expand Down
Loading