File: CONFIG

package info (click to toggle)
epics-base 7.0.8.1%2Bdfsg1-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 22,512 kB
  • sloc: cpp: 130,870; ansic: 115,274; perl: 10,647; makefile: 3,476; yacc: 1,307; python: 594; lex: 236; sh: 108; csh: 36
file content (133 lines) | stat: -rw-r--r-- 3,807 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#*************************************************************************
# Copyright (c) 2013 UChicago Argonne LLC, as Operator of Argonne
#     National Laboratory.
# 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 the file LICENSE that is included with this distribution.
#*************************************************************************

#
#  Common build definitions
#

ifneq ($(wildcard $(TOP)/configure/CONFIG_BASE_VERSION),)
  EPICS_BASE = $(INSTALL_LOCATION)
  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

# Provide a default if the user hasn't set EPICS_HOST_ARCH
#
ifeq ($(origin EPICS_HOST_ARCH), undefined)
  # Bootstrapping ...
  EHA := $(firstword $(wildcard $(EPICS_BASE)/lib/perl/EpicsHostArch.pl \
        $(TOP)/src/tools/EpicsHostArch.pl))
  # NB: We use a simply expanded variable here for performance:
  export EPICS_HOST_ARCH := $(shell perl $(EHA))
  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
ifdef T_A
  -include $(CONFIG)/RELEASE.Common.$(T_A)
  -include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
endif

include $(CONFIG)/CONFIG_COMMON
include $(CONFIG)/CONFIG_FILE_TYPE

#  Base-specific build options
#
include $(CONFIG)/CONFIG_BASE

#  Site-specific build options
#
include $(CONFIG)/CONFIG_SITE

#  Version numbering
#
include $(CONFIG)/CONFIG_BASE_VERSION

#  Host architecture specific definitions
#
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
  #
  ifneq ($(EPICS_HOST_ARCH),$(T_A))
    include $(CONFIG)/CONFIG.CrossCommon
  endif

  #  Target architecture specific definitions
  #
  -include $(CONFIG)/os/CONFIG.Common.$(T_A)

  #  Host-Target architecture specific definitions
  #
  -include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).$(T_A)

  #  Site specific target and host-target definitions and overrides
  #
  -include $(CONFIG)/os/CONFIG_SITE.Common.$(T_A)
  -include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)

  #  RELEASE file specific definitions
  #
  ifneq ($(CONFIG),$(TOP)/configure)
    -include $(CONFIG)/CONFIG_APP_INCLUDE
  endif

endif # ifdef T_A


# Include <top>/cfg/CONFIG* definitions from tops defined in RELEASE* files
#
ifneq ($(CONFIG),$(TOP)/configure)
  RELEASE_TOPS_REVERSE := $(shell \
      $(PERL) -e '$$,=" ";print reverse @ARGV' $(RELEASE_TOPS))
  RELEASE_CFG_CONFIGS = $(foreach top, $(RELEASE_TOPS_REVERSE), \
      $(wildcard $($(top))/cfg/CONFIG*))
  ifneq ($(RELEASE_CFG_CONFIGS),)
    include $(RELEASE_CFG_CONFIGS)
  endif
endif

# Include $(INSTALL_CFG)/CONFIG* definitions
#
TOP_CFG_CONFIGS = $(wildcard $(INSTALL_CFG)/CONFIG*)
ifneq ($(TOP_CFG_CONFIGS),)
  include $(TOP_CFG_CONFIGS)
endif

#  User specific definitions
#
-include $(HOME)/configure/CONFIG_USER
-include $(HOME)/configure/CONFIG_USER.$(EPICS_HOST_ARCH)
ifdef T_A
  -include $(HOME)/configure/CONFIG_USER.Common.$(T_A)
  -include $(HOME)/configure/CONFIG_USER.$(EPICS_HOST_ARCH).$(T_A)
endif