blob: df321fc2d17759ecf06340b924c79f4ab2869fdd (
plain) (
tree)
|
|
#-*-makefile-*- ; force emacs to enter makefile-mode
# %CopyrightBegin%
#
# Copyright Ericsson AB 1996-2019. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# %CopyrightEnd%
include $(ERL_TOP)/make/target.mk
include $(ERL_TOP)/make/$(TARGET)/otp.mk
# ----------------------------------------------------
# Common Macros
# ----------------------------------------------------
include subdirs.mk
include vsn.mk
VSN = $(SNMP_VSN)
SPECIAL_TARGETS =
DIR_NAME = snmp_src-$(VSN)$(PRE_VSN)
ifndef APP_RELEASE_DIR
APP_RELEASE_DIR = /tmp
endif
ifndef APP_TAR_FILE
APP_TAR_FILE = $(APP_RELEASE_DIR)/$(DIR_NAME).tgz
endif
APP_DIR = $(APP_RELEASE_DIR)/$(DIR_NAME)
ifdef OTP_INSTALL_DIR
APP_INSTALL_DIR = $(OTP_INSTALL_DIR)/lib/erlang
else
# If installing into an OTP structure created
# by installing an source OTP build, the '/tmp'
# shall be replaced with the value of ERL_TOP
APP_INSTALL_DIR = /tmp/lib/erlang
endif
DIA_PLT = ./priv/plt/$(APPLICATION).plt
DIA_ANALYSIS = $(basename $(DIA_PLT)).dialyzer_analysis
# ----------------------------------------------------
# Default Subdir Targets
# ----------------------------------------------------
include $(ERL_TOP)/make/otp_subdir.mk
conf: do_configure
do_configure: configure
./configure
configure: configure.in
autoconf
.PHONY: info gclean
info:
@echo "OS: $(OS)"
@echo "DOCB: $(DOCB)"
@echo ""
@echo "SNMP_VSN: $(SNMP_VSN)"
@echo "APP_VSN: $(APP_VSN)"
@echo ""
@echo "DIA_PLT: $(DIA_PLT)"
@echo "DIA_ANALYSIS: $(DIA_ANALYSIS)"
@echo ""
gclean:
git clean -fXd
# ----------------------------------------------------
# Application (source) release targets
# ----------------------------------------------------
app_release: app_doc tar
app_clean:
rm -rf $(APP_TAR_FILE) $(APP_DIR)
app_doc:
cd doc/src; $(MAKE) html man
app_dir: $(APP_DIR)
$(APP_DIR):
cat TAR.exclude | grep -v "snmp/doc" > TAR.exclude2; \
echo "snmp/doc/src" >> TAR.exclude2; \
echo "snmp/TAR.exclude2" >> TAR.exclude2; \
echo "snmp/doc/internal" >> TAR.exclude2; \
echo "snmp/mibs/prebuild.skip" >> TAR.exclude2
(cd ..; find snmp -name 'findmerge.*' >> snmp/TAR.exclude2)
(cd ..; find snmp -name '*.contrib*' >> snmp/TAR.exclude2)
(cd ..; find snmp -name '*.keep*' >> snmp/TAR.exclude2)
(cd ..; find snmp -name '*~' >> snmp/TAR.exclude2)
(cd ..; find snmp -name '*.log' >> snmp/TAR.exclude2)
(cd ..; find snmp -name 'erl_crash.dump' >> snmp/TAR.exclude2)
mkdir $(APP_DIR); \
(cd ..; tar cfX - snmp/TAR.exclude2 snmp) | \
(cd $(APP_DIR); tar xf -); \
mv $(APP_DIR)/snmp/* $(APP_DIR)/; \
find $(APP_DIR)/snmp -name '.cmake.state' | xargs rm -f; \
mkdir $(APP_DIR)/autoconf; \
cp autoconf/config.guess $(APP_DIR)/autoconf/; \
cp autoconf/config.sub $(APP_DIR)/autoconf/; \
cp autoconf/install-sh $(APP_DIR)/autoconf/; \
rmdir $(APP_DIR)/snmp
tar: $(APP_TAR_FILE)
$(APP_TAR_FILE): $(APP_DIR)
(cd $(APP_RELEASE_DIR); gtar zcf $(APP_TAR_FILE) $(DIR_NAME))
dclean:
rm -f $(DIA_PLT)
rm -f $(DIA_ANALYSIS)
dialyzer_plt: $(DIA_PLT)
$(DIA_PLT): Makefile
@echo "Building $(APPLICATION) plt file"
@dialyzer --build_plt \
--output_plt $@ \
-r ../$(APPLICATION)/ebin \
../../lib/kernel/ebin \
../../lib/stdlib/ebin \
../../lib/runtime_tools/ebin \
../../lib/crypto/ebin \
../../lib/mnesia/ebin \
../../erts/preloaded/ebin \
--output $(DIA_ANALYSIS) \
--verbose
dialyzer: $(DIA_PLT)
@echo "Running dialyzer on $(APPLICATION)"
@dialyzer --plt $< \
../$(APPLICATION)/ebin \
--verbose
|