1#-*-makefile-*- ; force emacs to enter makefile-mode 2 3# %CopyrightBegin% 4# 5# Copyright Ericsson AB 1997-2020. 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# Target Specs 35# ---------------------------------------------------- 36 37include modules.mk 38 39SNMP_ROOT = .. 40 41ERL_FILES = $(MODULES:%=%.erl) 42 43SNMP_TEST_DATA = snmp_test_data 44 45SNMP_MIB_DIR = $(SNMP_TEST_DATA) 46 47SNMP_BIN_TARGET_DIR = $(SNMP_TEST_DATA) 48 49MIB_SOURCE = $(MIB_FILES:%.mib=$(SNMP_MIB_DIR)/%.mib) 50 51MIB_TARGETS = \ 52 $(MIB_FILES:%.mib=$(SNMP_BIN_TARGET_DIR)/%.bin) \ 53 $(MIB_FILES:%.mib=$(SNMP_BIN_TARGET_DIR)/%.hrl) 54ERL_TARGETS = $(MODULES:%=$(EBIN)/%.$(EMULATOR)) 55 56TEST_SERVER_TARGETS = $(TEST_SERVER_MODULES:%=$(EBIN)/%.$(EMULATOR)) 57 58TARGET_FILES = $(ERL_TARGETS) 59 60SOURCE = $(ERL_FILES) $(HRL_FILES) 61 62# The script 'make_emakefile' only exist in R9 and later 63# So, if it does not exist, then use the old method 64# (compile the erl-files and install the beam-files) 65EMAKEFILE = Emakefile 66MAKE_EMAKE = $(wildcard $(ERL_TOP)/make/make_emakefile) 67 68ifeq ($(MAKE_EMAKE),) 69BUILDTARGET = $(TARGET_FILES) 70RELTEST_FILES = $(SPECS) $(SOURCE) $(TARGET_FILES) 71else 72BUILDTARGET = $(MIB_TARGETS) emakebuild 73RELTEST_FILES = $(EMAKEFILE) $(SPECS) $(SOURCE) 74endif 75 76COVER_SPEC_FILE = snmp.cover 77 78 79# ---------------------------------------------------- 80# Release directory specification 81# ---------------------------------------------------- 82RELSYSDIR = $(RELEASE_PATH)/snmp_test 83 84 85# ---------------------------------------------------- 86# SNMP FLAGS 87# ---------------------------------------------------- 88ifeq ($(SNMP_DEBUG),) 89 # SNMP_DEBUG = d 90endif 91 92ifeq ($(SNMP_DEBUG),d) 93 SNMP_FLAGS += -Dsnmp_debug 94endif 95 96ifeq ($(DONT_USE_TS),true) 97 SNMP_FLAGS += -DDONT_USE_TEST_SERVER 98endif 99 100SNMP_MIB_FLAGS += -pa ../ebin +version 101 102ifneq ($(MIBS_VERBOSITY),) 103 SNMP_MIB_FLAGS += +'{verbosity,$(MIBS_VERBOSITY)}' 104endif 105 106ifeq ($(SNMP_DESC),true) 107 USE_DESCRIPTION = +'{description,true}' 108endif 109 110GROUP_CHECK = +'{group_check,false}' 111 112SNMP_MIB_FLAGS += $(GROUP_CHECK) $(USE_DESCRIPTION) -I$(SNMP_BIN_TARGET_DIR) 113 114ESTOP = -s init stop 115 116ifeq ($(DONT_STOP),true) 117MAYBE_ESTOP = 118else 119MAYBE_ESTOP = $(ESTOP) 120endif 121 122ifeq ($(MERL),) 123MERL = erl 124endif 125 126ARGS += -noshell 127 128ifeq ($(DISABLE_TC_TIMEOUT),true) 129ARGS += -snmp_test_timeout 130endif 131 132 133# ---------------------------------------------------- 134# FLAGS 135# ---------------------------------------------------- 136EBIN = . 137 138ERL_COMPILE_FLAGS += -I../../snmp/src/app \ 139 -I../../snmp/src/misc \ 140 -I../../snmp/src/agent \ 141 -I../../snmp/src/manager \ 142 -I../../snmp/include \ 143 -Dsnmp_test_data=snmp_test_data \ 144 -Dversion=\"$(VSN)$(PRE_VSN)\" \ 145 +'{parse_transform,sys_pre_attributes}' \ 146 +'{attribute,insert,app_vsn,$(APP_VSN)}' \ 147 $(SNMP_FLAGS) 148 149ERL_SNMP_FLAGS = $(SNMP_MIB_FLAGS) \ 150 -I../priv/mibs 151 152$(SNMP_BIN_TARGET_DIR)/%.bin: $(SNMP_MIB_DIR)/%.mib 153 $(ERLC) $(ERL_SNMP_FLAGS) -o $(SNMP_MIB_DIR) $< 154 155$(SNMP_BIN_TARGET_DIR)/%.hrl: $(SNMP_BIN_TARGET_DIR)/%.bin 156 $(ERLC) $(ERL_SNMP_FLAGS) -o $(SNMP_BIN_TARGET_DIR) $< 157 158 159# ---------------------------------------------------- 160# Targets 161# ---------------------------------------------------- 162 163tests debug opt: $(BUILDTARGET) 164 165.PHONY: emakebuild 166 167emakebuild: $(EMAKEFILE) 168 169targets: mib $(EMAKEFILE) 170 erl -make 171 172old_targets: mib $(TARGET_FILES) 173 174$(EMAKEFILE): Makefile 175 $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) '*_SUITE_make' > $(EMAKEFILE) 176 $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) >> $(EMAKEFILE) 177 178clean: 179 rm -f $(EMAKEFILE) 180 rm -f $(TARGET_FILES) 181 rm -f core 182 183docs: 184 185mib: $(MIB_TARGETS) 186 187make: old_targets 188 189test: agent manager 190 191agent: make 192 $(MERL) $(ARGS) -sname snmp_agent_test $(ERL_PATH) \ 193 -s snmp_test_server run snmp_agent_SUITE \ 194 $(MAYBE_ESTOP) 195 196manager: make 197 $(MERL) $(ARGS) -sname snmp_manager_test $(ERL_PATH) \ 198 -s snmp_test_server run snmp_manager_SUITE \ 199 $(MAYBE_ESTOP) 200 201 202$(SNMP_BIN_TARGET_DIR)/Klas4.bin: $(SNMP_BIN_TARGET_DIR)/Klas3.bin 203 204$(SNMP_BIN_TARGET_DIR)/SA-MIB.bin: $(SNMP_BIN_TARGET_DIR)/OLD-SNMPEA-MIB.bin 205 206$(SNMP_BIN_TARGET_DIR)/Test3.bin: $(SNMP_BIN_TARGET_DIR)/Test2.bin 207 208 209# ---------------------------------------------------- 210# Release Target 211# ---------------------------------------------------- 212include $(ERL_TOP)/make/otp_release_targets.mk 213 214release_spec: 215 216release_tests_spec: opt 217 $(INSTALL_DIR) "$(RELSYSDIR)" 218 $(INSTALL_DATA) $(RELTEST_FILES) $(COVER_SPEC_FILE) "$(RELSYSDIR)" 219 chmod -R u+w "$(RELSYSDIR)" 220 tar cf - snmp_test_data | (cd "$(RELSYSDIR)"; tar xf -) 221 tar cf - *_SUITE_data | (cd "$(RELSYSDIR)"; tar xf -) 222 223release_docs_spec: 224 225 226info: 227 @echo "SNMP_DEBUG = $(SNMP_DEBUG)" 228 @echo "SNMP_FLAGS = $(SNMP_FLAGS)" 229 @echo "" 230 @echo "SNMP_MIB_DIR = $(SNMP_MIB_DIR)" 231 @echo "MIB_SOURCE = $(MIB_SOURCE)" 232 @echo "MIB_TARGETS = $(MIB_TARGETS)" 233 @echo "SNMP_MIB_FLAGS = $(SNMP_MIB_FLAGS)" 234 @echo "" 235 @echo "ERL_COMPILE_FLAGS = $(ERL_COMPILE_FLAGS)" 236 @echo "" 237 @echo "RELSYSDIR = "$(RELSYSDIR)"" 238 @echo "" 239 @echo "SOURCE = $(SOURCE)" 240 @echo "" 241 @echo "TARGET_FILES = $(TARGET_FILES)" 242 @echo "" 243 @echo "EMAKEFILE = $(EMAKEFILE)" 244 @echo "MAKE_EMAKE = $(MAKE_EMAKE)" 245 @echo "BUILDTARGET = $(BUILDTARGET)" 246 @echo "RELTEST_FILES = $(RELTEST_FILES)" 247 @echo "" 248 249 250