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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
8 changes: 8 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Documentation for this file: https://EditorConfig.org

root = true

# Unix-style newlines ending every file,
# as some compilers complain about files not ending in newline
[*]
insert_final_newline = true
27 changes: 27 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
.appveyor.yml export-ignore
.appveyor/ export-ignore
.ci/ export-ignore
.github/ export-ignore
.gitmodules export-ignore
.readthedocs.yml export-ignore
.tools/ export-ignore
README export-subst

#Which files need CRLF handling
# default to automatic
* text=auto

# batch script parser on windows requires CRLF
*.bat text eol=crlf

# extensions for scripts which may be executable via. "#!..." must have LF
*.pl text eol=lf
*.plt text eol=lf
*.sh text eol=lf
*.cmd text eol=lf
# .cmd in unexpanded templates
*.cmd@* text eol=lf
# executable scripts w/o extensions
modules/ca/src/client/S99caRepeater@ text eol=lf
modules/libcom/src/log/S99logServer@ text eol=lf
startup/EpicsHostArch text eol=lf
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/cfg/
/bin/
/lib/
/db/
/dbd/
/doc/
/html/
/include/
/templates/
/configure/*.local
/modules/RELEASE.*.local
/modules/Makefile.local
O.*/
/QtC-*
/.qtc_*
/.vscode/
*.orig
*.log
.*.swp
.DS_Store
.iocsh_history
36 changes: 36 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

build:
os: ubuntu-22.04
tools:
python: "3.9"
apt_packages:
- graphviz
- rsync
jobs:
pre_build:
- make inc
- make -C documentation rtd

# Build documentation in the documentation/O.Common directory with Sphinx
sphinx:
configuration: documentation/O.Common/rtd-src/conf.py

# Build documentation with MkDocs
#mkdocs:
# configuration: mkdocs.yml

# Optionally build your docs in additional formats such as PDF and ePub
#formats: []

submodules:
exclude: all

python:
install:
- requirements: documentation/requirements.txt
10 changes: 7 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
# in file LICENSE that is included with this distribution.
#*************************************************************************

TOP = .
Expand All @@ -14,8 +14,12 @@ include $(TOP)/configure/CONFIG
TOOLS = $(TOP)/src/tools

DIRS += configure src

src_DEPEND_DIRS = configure

include $(TOP)/configure/RULES_TOP
DIRS += test
test_DEPEND_DIRS = src

DIRS += modules
modules_DEPEND_DIRS = src

include $(TOP)/configure/RULES_TOP
13 changes: 8 additions & 5 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
EPICS Base - the central core of a control system toolkit
---------------------------------------------------------

Copyright (c) 1991-2003 The University of Chicago, as Operator
of Argonne National Laboratory.
Copyright UChicago Argonne LLC, as Operator of Argonne
National Laboratory.
Copyright (c) 1991-2003 The Regents of the University of
California, as Operator of Los Alamos National Laboratory.

EPICS Base Versions 3.13.7 and higher are distributed
subject to a Software License Agreement found in the
file LICENSE that is included with this distribution.
EPICS Base is distributed subject to a Software License
Agreement found in the file LICENSE that is included with
this distribution.

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

Expand All @@ -22,3 +22,6 @@ 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
14 changes: 13 additions & 1 deletion configure/CONFIG
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ ifneq ($(wildcard $(TOP)/configure/CONFIG_BASE_VERSION),)
CONFIG = $(TOP)/configure
BASE_TOP=YES
else
ifneq ($(origin EPICS_BASE),file)
# Essential for the EPICS build system, see convertRelease.pl
$(error EPICS_BASE must be set in a configure/RELEASE file)
endif
CONFIG ?= $(EPICS_BASE)/configure
endif

Expand All @@ -30,6 +34,11 @@ ifeq ($(origin EPICS_HOST_ARCH), undefined)
EHA :=
endif

# Make Perl hash iteration reproducible.
# See: https://reproducible-builds.org/docs/stable-outputs/
#
export PERL_HASH_SEED = 0

-include $(CONFIG)/RELEASE
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH)
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH).Common
Expand Down Expand Up @@ -58,10 +67,13 @@ include $(CONFIG)/CONFIG_BASE_VERSION
include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).Common
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).Common

# Parse configure/RELEASE to find all upstream modules
RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)


ifdef T_A
# Information from the target's compiler
#
-include $(EPICS_BASE)/cfg/TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A)

# Cross compile specific definitions
#
Expand Down
26 changes: 18 additions & 8 deletions configure/CONFIG.gnuCommon
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# EPICS Base is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************

Expand All @@ -24,34 +23,45 @@ LD = $(GNU_BIN)/$(CMPLR_PREFIX)ld$(CMPLR_SUFFIX) -r
CPP = $(CC) -x c -E
RANLIB = $(GNU_BIN)/$(CMPLR_PREFIX)ranlib$(CMPLR_SUFFIX)

# Requires at least GCC 4.8 or LLVM (clang) 3.1
ASAN_FLAGS_YES = -fsanitize=address
ASAN_LDFLAGS_YES = $(ASAN_FLAGS_YES)

# It makes sense to include debugging symbols even in optimized builds
# in case you want to attach gdb to the process or examine a core-dump.
# This does cost disk space, but not memory as debug symbols are not
# loaded into RAM when the binary is loaded.
PROF_CFLAGS_YES = -p
GPROF_CFLAGS_YES = -pg
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
WARN_CFLAGS_YES = -Wall
CODE_CFLAGS += $(ASAN_FLAGS_$(ENABLE_ASAN))
WARN_CFLAGS_YES = -Wall -Werror-implicit-function-declaration
WARN_CFLAGS_NO = -w
OPT_CFLAGS_YES = -O3
OPT_CFLAGS_YES = -O3 -g
OPT_CFLAGS_NO = -g

PROF_CXXFLAGS_YES = -p
GPROF_CXXFLAGS_YES = -pg
CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
CODE_CXXFLAGS += $(ASAN_FLAGS_$(ENABLE_ASAN))
WARN_CXXFLAGS_YES = -Wall
WARN_CXXFLAGS_NO = -w
OPT_CXXFLAGS_YES = -O3
OPT_CXXFLAGS_YES = -O3 -g
OPT_CXXFLAGS_NO = -g

CODE_LDFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
CODE_LDFLAGS += $(ASAN_LDFLAGS_$(ENABLE_ASAN))
OPT_LDFLAGS_NO = -g

PIPE_CFLAGS_YES_YES = -pipe
PIPE_CFLAGS = $(PIPE_CFLAGS_$(GCC_PIPE)_$(GNU))
PIPE_CXXFLAGS = $(PIPE_CFLAGS)

STATIC_LDFLAGS_YES = -static
STATIC_LDFLAGS_NO =

SHRLIB_CFLAGS = -fPIC
SHRLIB_LDFLAGS = -shared -fPIC
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC
SHRLIB_LDFLAGS = -shared -fPIC -Wl,-h$@
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC -Wl,-h$@

GNU_LDLIBS_YES = -lgcc

Expand Down
30 changes: 1 addition & 29 deletions configure/CONFIG_ADDONS
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
# in file LICENSE that is included with this distribution.
#*************************************************************************
#
# check for add-on CFLAGS and CXXFLAGS
Expand Down Expand Up @@ -37,9 +37,6 @@
# PROD_LIBS libs needed by PROD and TESTPROD
# LIB_LIBS libs needed by shared LIBRARY
# SHRLIB_LIBS libs needed by shared LIBRARY
# USR_OBJLIBS R3.13 vxWorks object libs needed building libraries and prods
# PROD_OBJLIBS R3.13 vxWorks object libs needed for building prods
# LIB_OBJLIBS R3.13 vxWorks object libs needed for building libraries
# USR_SYS_LIBS system libs needed building libraries and prods
# PROD_SYS_LIBS system libs needed for building prods
# LIB_SYS_LIBS system libs needed for building libraries
Expand Down Expand Up @@ -273,30 +270,6 @@ OBJS_HOST+=$(OBJS_HOST_DEFAULT)
endif
endif

ifneq ($(strip $(PROD_OBJLIBS_$(OS_CLASS))),)
PROD_OBJLIBS+=$(subst -nil-,,$(PROD_OBJLIBS_$(OS_CLASS)))
else
ifdef PROD_OBJLIBS_DEFAULT
PROD_OBJLIBS+=$(PROD_OBJLIBS_DEFAULT)
endif
endif

ifneq ($(strip $(LIB_OBJLIBS_$(OS_CLASS))),)
LIB_OBJLIBS+=$(subst -nil-,,$(LIB_OBJLIBS_$(OS_CLASS)))
else
ifdef LIB_OBJLIBS_DEFAULT
LIB_OBJLIBS+=$(LIB_OBJLIBS_DEFAULT)
endif
endif

ifneq ($(strip $(USR_OBJLIBS_$(OS_CLASS))),)
USR_OBJLIBS+=$(subst -nil-,,$(USR_OBJLIBS_$(OS_CLASS)))
else
ifdef USR_OBJLIBS_DEFAULT
USR_OBJLIBS+=$(USR_OBJLIBS_DEFAULT)
endif
endif

ifneq ($(strip $(LIB_OBJS_$(OS_CLASS))),)
LIB_OBJS+=$(subst -nil-,,$(LIB_OBJS_$(OS_CLASS)))
else
Expand Down Expand Up @@ -581,4 +554,3 @@ ifdef LIB_RCS_DEFAULT
LIB_RCS+=$(LIB_RCS_DEFAULT)
endif
endif

Loading