1#-*-makefile-*-   ; force emacs to enter makefile-mode
2
3# %CopyrightBegin%
4#
5# Copyright Ericsson AB 1997-2019. 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
22
23EBIN = ../../ebin
24BIN  = ../../bin
25
26include $(ERL_TOP)/make/$(TARGET)/otp.mk
27
28
29# ----------------------------------------------------
30# Application version
31# ----------------------------------------------------
32include ../../vsn.mk
33
34VSN = $(SNMP_VSN)
35
36
37# ----------------------------------------------------
38# Release directory specification
39# ----------------------------------------------------
40RELSYSDIR = $(RELEASE_PATH)/lib/snmp-$(VSN)
41
42
43# ----------------------------------------------------
44# Target Specs
45# ----------------------------------------------------
46
47include modules.mk
48
49ESCRIPT_BIN  = $(ESCRIPT_SRC:%.src=$(BIN)/%)
50ERL_FILES    = $(MODULES:%=%.erl)
51EBIN_FILES   = $(MODULES:%=$(EBIN)/%.$(EMULATOR))
52TARGET_FILES = $(EBIN_FILES) $(ESCRIPT_BIN)
53
54GENERATED_PARSER = $(PARSER_MODULE:%=%.erl)
55
56PARSER_TARGET = $(PARSER_MODULE).$(EMULATOR)
57
58
59# ----------------------------------------------------
60# FLAGS
61# ----------------------------------------------------
62ERL_COMPILE_FLAGS += -pa $(ERL_TOP)/lib/snmp/ebin
63
64ifeq ($(WARN_UNUSED_VARS),true)
65ERL_COMPILE_FLAGS += +warn_unused_vars
66endif
67
68ERL_COMPILE_FLAGS += -I../../include \
69                     -Dversion=\"$(VSN)$(PRE_VSN)\" \
70                     +'{parse_transform,sys_pre_attributes}' \
71                     +'{attribute,insert,app_vsn,$(APP_VSN)}' \
72                     -I$(ERL_TOP)/lib/stdlib
73
74YRL_FLAGS = -o .
75
76
77# ----------------------------------------------------
78# Targets
79# ----------------------------------------------------
80
81debug:
82	@${MAKE} TYPE=debug opt
83
84opt: $(TARGET_FILES)
85
86clean:
87	rm -f $(TARGET_FILES) $(GENERATED_PARSER)
88	rm -f core *~
89
90docs:
91
92info:
93	@echo "PARSER_SRC:       $(PARSER_SRC)"
94	@echo "PARSER_MODULE:    $(PARSER_MODULE)"
95	@echo ""
96	@echo "GENERATED_PARSER: $(GENERATED_PARSER)"
97	@echo "PARSER_TARGET:    $(PARSER_TARGET)"
98	@echo ""
99	@echo "MODULES:      $(MODULES)"
100	@echo ""
101	@echo "TARGET_FILES: $(TARGET_FILES)"
102	@echo ""
103	@echo "EBIN: $(EBIN)"
104	@echo ""
105	@echo "ESCRIPT_SRC:      $(ESCRIPT_SRC)"
106	@echo "ESCRIPT_BIN:      $(ESCRIPT_BIN)"
107	@echo ""
108	@echo ""
109
110
111# ----------------------------------------------------
112# Special Build Targets
113# ----------------------------------------------------
114
115parser: $(PARSER_TARGET)
116
117$(GENERATED_PARSER): $(PARSER_SRC)
118
119
120# ----------------------------------------------------
121# Release Target
122# ----------------------------------------------------
123include $(ERL_TOP)/make/otp_release_targets.mk
124
125release_spec: opt
126	$(INSTALL_DIR) "$(RELSYSDIR)/src"
127	$(INSTALL_DIR) "$(RELSYSDIR)/src/compiler"
128	$(INSTALL_DATA) $(ESCRIPT_SRC) $(PARSER_SRC) $(ERL_FILES) $(INTERNAL_HRL_FILES) "$(RELSYSDIR)/src/compiler"
129	$(INSTALL_DIR) "$(RELSYSDIR)/ebin"
130	$(INSTALL_DATA) $(EBIN_FILES) "$(RELSYSDIR)/ebin"
131	$(INSTALL_DIR) "$(RELSYSDIR)/bin"
132	$(INSTALL_SCRIPT) $(ESCRIPT_BIN) "$(RELSYSDIR)/bin"
133
134release_docs_spec:
135
136include depend.mk
137
138