1#-*-makefile-*-   ; force emacs to enter makefile-mode
2
3# %CopyrightBegin%
4#
5# Copyright Ericsson AB 1997-2016. All Rights Reserved.
6#
7# Licensed under the Apache License, Version 2.0 (the "License");
8# you may not use this file except in compliance with the License.
9# You may obtain a copy of the License at
10#
11#     http://www.apache.org/licenses/LICENSE-2.0
12#
13# Unless required by applicable law or agreed to in writing, software
14# distributed under the License is distributed on an "AS IS" BASIS,
15# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16# See the License for the specific language governing permissions and
17# limitations under the License.
18#
19# %CopyrightEnd%
20
21include $(ERL_TOP)/make/target.mk
22include $(ERL_TOP)/make/$(TARGET)/otp.mk
23
24
25# ----------------------------------------------------
26# Application version
27# ----------------------------------------------------
28include ../../vsn.mk
29
30VSN = $(SNMP_VSN)
31
32
33# ----------------------------------------------------
34# Configured variables
35# ----------------------------------------------------
36
37
38# ----------------------------------------------------
39# Target Specs
40# ----------------------------------------------------
41
42include modules.mk
43
44ERL_TARGETS = $(MODULES:%=$(EBIN)/%.$(EMULATOR))
45
46SYS_CONFIG_SRCS     = $(SYS_CONFIG_FILES:%=%.src)
47AGENT_CONFIG_SRCS   = $(AGENT_CONFIG_FILES:%=%.src)
48MANAGER_CONFIG_SRCS = $(MANAGER_CONFIG_FILES:%=%.src)
49
50CONFIG_FILES = \
51	$(SYS_CONFIG_FILES) \
52	$(AGENT_CONFIG_FILES) \
53	$(MANAGER_CONFIG_FILES)
54
55TARGETS = \
56	$(ERL_TARGETS) \
57	$(CONFIG_FILES)
58
59
60# ----------------------------------------------------
61# Release directory specification
62# ----------------------------------------------------
63ifeq ($(TESTROOT),)
64TESTROOT=/tmp
65endif
66RELSYSDIR = $(TESTROOT)
67
68
69# ----------------------------------------------------
70# FLAGS AND VARIABLES
71# ----------------------------------------------------
72
73EBIN = .
74
75ERL_COMPILE_FLAGS += +'{parse_transform,sys_pre_attributes}' \
76                     +'{attribute,insert,app_vsn,$(APP_VSN)}'
77
78ifeq ($(ADDR),)
79ADDR = $(shell erl -noshell -s snmp_test_config ip_address -s init stop)
80endif
81
82ifeq ($(TARGET_NAME_PRE),)
83TARGET_NAME_PRE = $(shell erl -noshell -s snmp_test_config ip_address2 -s init stop)
84endif
85
86ifeq ($(SYS_CONTACT),)
87SYS_CONTACT = foo@bar.ericsson.se
88endif
89
90ifeq ($(SYS_LOCATION),)
91SYS_LOCATION = Erlang/OTP
92endif
93
94ifeq ($(SYS_NAME),)
95SYS_NAME = FOO
96endif
97
98ifeq ($(AGENT_ENGINE_ID),)
99AGENT_ENGINE_ID = Agent engine of $(USER)
100endif
101
102ifeq ($(AGENT_USM_ENGINE_ID),)
103AGENT_USM_ENGINE_ID = $(AGENT_ENGINE_ID)
104endif
105
106ifeq ($(MANAGER_ENGINE_ID),)
107MANAGER_ENGINE_ID = Manager engine of $(USER)
108endif
109
110ifeq ($(MANAGER_USM_ENGINE_ID),)
111MANAGER_USM_ENGINE_ID = $(MANAGER_ENGINE_ID)
112endif
113
114
115
116# ----------------------------------------------------
117# Targets
118# ----------------------------------------------------
119
120tests debug opt: $(TARGETS)
121
122clean:
123	rm -f $(CONFIG_FILES)
124	rm -f $(ERL_TARGETS)
125	rm -f core
126
127docs:
128
129%.config: %.config.src
130	@echo "$< -> $@"
131	$(PERL) -p -e 's?%DIR%?$(RELSYSDIR)? ' < $< > $@
132
133agent/%.conf: agent/%.conf.src
134	@echo "$< -> $@"
135	sed -e 's?%ADDR%?$(ADDR)? ' \
136            -e 's?%SYS_CONTACT%?$(SYS_CONTACT)? ' \
137            -e 's?%SYS_LOCATION%?$(SYS_LOCATION)? ' \
138            -e 's?%SYS_NAME%?$(SYS_NAME)? ' \
139            -e 's?%TARGET_NAME_PRE%?$(TARGET_NAME_PRE)? ' \
140            -e 's?%ENGINE_ID%?\"$(AGENT_ENGINE_ID)\"? ' \
141            -e 's?%USM_ENGINE_ID%?\"$(AGENT_USM_ENGINE_ID)\"? ' < $< > $@
142
143manager/%.conf: manager/%.conf.src
144	@echo "$< -> $@"
145	sed -e 's?%ADDR%?$(ADDR)? ' \
146            -e 's?%ENGINE_ID%?\"$(MANAGER_ENGINE_ID)\"? ' \
147            -e 's?%USM_ENGINE_ID%?\"$(MANAGER_USM_ENGINE_ID)\"? ' < $< > $@
148
149
150# ----------------------------------------------------
151# Release Target
152# ----------------------------------------------------
153include $(ERL_TOP)/make/otp_release_targets.mk
154
155release_spec:
156
157release_tests_spec: clean opt
158	$(INSTALL_DIR)  $(RELSYSDIR)
159	chmod -R u+w $(RELSYSDIR)
160	$(INSTALL_DIR)  $(RELSYSDIR)/agent
161	chmod -R u+w $(RELSYSDIR)/agent
162	$(INSTALL_DIR)  $(RELSYSDIR)/agent/conf
163	chmod -R u+w $(RELSYSDIR)/agent/conf
164	$(INSTALL_DIR)  $(RELSYSDIR)/agent/db
165	chmod -R u+w $(RELSYSDIR)/agent/db
166	$(INSTALL_DIR)  $(RELSYSDIR)/agent/log
167	chmod -R u+w $(RELSYSDIR)/agent/log
168	$(INSTALL_DIR)  $(RELSYSDIR)/manager
169	chmod -R u+w $(RELSYSDIR)/manager
170	$(INSTALL_DIR)  $(RELSYSDIR)/manager/conf
171	chmod -R u+w $(RELSYSDIR)/manager/conf
172	$(INSTALL_DIR)  $(RELSYSDIR)/manager/db
173	chmod -R u+w $(RELSYSDIR)/manager/db
174	$(INSTALL_DIR)  $(RELSYSDIR)/manager/log
175	chmod -R u+w $(RELSYSDIR)/manager/log
176	$(INSTALL_DATA) $(SYS_CONFIG_FILES)     $(RELSYSDIR)
177	$(INSTALL_DATA) $(AGENT_CONFIG_FILES)   $(RELSYSDIR)/agent/conf
178	$(INSTALL_DATA) $(MANAGER_CONFIG_FILES) $(RELSYSDIR)/manager/conf
179
180release_docs_spec:
181
182
183info:
184	@echo ""
185	@echo "RELSYSDIR            = $(RELSYSDIR)"
186	@echo ""
187	@echo "SYS_CONFIG_SRCS      = $(SYS_CONFIG_SRCS)"
188	@echo "SYS_CONFIG_FILES     = $(SYS_CONFIG_FILES)"
189	@echo ""
190	@echo "AGENT_CONFIG_SRCS    = $(AGENT_CONFIG_SRCS)"
191	@echo "AGENT_CONFIG_FILES   = $(AGENT_CONFIG_FILES)"
192	@echo ""
193	@echo "MANAGER_CONFIG_SRCS  = $(MANAGER_CONFIG_SRCS)"
194	@echo "MANAGER_CONFIG_FILES = $(MANAGER_CONFIG_FILES)"
195	@echo ""
196	@echo "ADDR            = $(ADDR)"
197	@echo "TARGET_NAME_PRE = $(TARGET_NAME_PRE)"
198	@echo ""
199
200
201