1# 2# %CopyrightBegin% 3# 4# Copyright Ericsson AB 1997-2016. All Rights Reserved. 5# 6# Licensed under the Apache License, Version 2.0 (the "License"); 7# you may not use this file except in compliance with the License. 8# You may obtain a copy of the License at 9# 10# http://www.apache.org/licenses/LICENSE-2.0 11# 12# Unless required by applicable law or agreed to in writing, software 13# distributed under the License is distributed on an "AS IS" BASIS, 14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15# See the License for the specific language governing permissions and 16# limitations under the License. 17# 18# %CopyrightEnd% 19# 20# 21# Copyright (C) 1997, Ericsson Telecommunications 22# Author: Kenneth Lundin 23# 24include $(ERL_TOP)/make/target.mk 25include $(ERL_TOP)/make/$(TARGET)/otp.mk 26 27# ---------------------------------------------------- 28# Application version 29# ---------------------------------------------------- 30include ../vsn.mk 31VSN=$(ASN1_VSN) 32 33# ---------------------------------------------------- 34# Release directory specification 35# ---------------------------------------------------- 36RELSYSDIR = $(RELEASE_PATH)/lib/asn1-$(VSN) 37 38 39 40 41# 42# Common Macros 43# 44 45EBIN = ../ebin 46 47EVAL_CT_MODULES = asn1ct_eval_ext 48 49CT_MODULES= \ 50 asn1ct \ 51 asn1ct_check \ 52 asn1_db \ 53 asn1ct_pretty_format \ 54 asn1ct_func \ 55 asn1ct_gen \ 56 asn1ct_gen_check \ 57 asn1ct_gen_per \ 58 asn1ct_name \ 59 asn1ct_constructed_per \ 60 asn1ct_constructed_ber_bin_v2 \ 61 asn1ct_gen_ber_bin_v2 \ 62 asn1ct_imm \ 63 asn1ct_rtt \ 64 asn1ct_value \ 65 asn1ct_tok \ 66 asn1ct_parser2 \ 67 asn1ct_table \ 68 $(EVAL_CT_MODULES) 69 70RT_MODULES= \ 71 asn1rt_nif 72 73MODULES= $(CT_MODULES) $(RT_MODULES) 74 75ERL_FILES = $(MODULES:%=%.erl) 76 77TARGET_FILES = $(MODULES:%=$(EBIN)/%.$(EMULATOR)) 78 79GENERATED_PARSER = $(PARSER_MODULE:%=%.erl) 80 81# internal hrl file 82HRL_FILES = asn1_records.hrl 83 84APP_FILE = asn1.app 85APPUP_FILE = asn1.appup 86 87APP_SRC = $(APP_FILE).src 88APP_TARGET = $(EBIN)/$(APP_FILE) 89 90APPUP_SRC = $(APPUP_FILE).src 91APPUP_TARGET = $(EBIN)/$(APPUP_FILE) 92 93EXAMPLES = \ 94 ../examples/P-Record.asn 95 96# ---------------------------------------------------- 97# FLAGS 98# ---------------------------------------------------- 99 100ifeq ($(USE_ASN1_HIPE),true) 101ERL_COMPILE_FLAGS += +native 102endif 103 104ERL_COMPILE_FLAGS += \ 105 -I$(ERL_TOP)/lib/stdlib \ 106 -Werror 107 108YRL_FLAGS = 109 110# ---------------------------------------------------- 111# Targets 112# ---------------------------------------------------- 113 114debug opt: $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET) 115 116 117clean: 118 rm -f $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET) $(GENERATED_PARSER) 119 rm -f core *~ 120 121docs: 122 123 124info: 125 @echo "PARSER_SRC: $(PARSER_SRC)" 126 @echo "INSTALL_DATA: $(INSTALL_DATA)" 127# ---------------------------------------------------- 128# Special Build Targets 129# ---------------------------------------------------- 130 131$(EBIN)/asn1ct.$(EMULATOR):asn1ct.erl 132 $(V_ERLC) -b$(EMULATOR) -o$(EBIN) $(ERL_COMPILE_FLAGS) -Dvsn=\"$(VSN)\" $< 133 134$(EBIN)/asn1ct_func.$(EMULATOR): asn1ct_func.erl 135 $(V_ERLC) -o$(EBIN) $(ERL_COMPILE_FLAGS) -I../rt_templates $< 136 137asn1ct_eval_%.erl: asn1ct_eval_%.funcs 138 $(gen_verbose)erl -pa $(EBIN) -noshell -noinput \ 139 -run prepare_templates gen_asn1ct_eval $< 140 141$(APP_TARGET): $(APP_SRC) ../vsn.mk 142 $(vsn_verbose)sed -e 's;%VSN%;$(VSN);' $< > $@ 143 144$(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk 145 $(vsn_verbose)sed -e 's;%VSN%;$(VSN);' $< > $@ 146 147 148# ---------------------------------------------------- 149# Release Target 150# ---------------------------------------------------- 151include $(ERL_TOP)/make/otp_release_targets.mk 152 153release_spec: opt 154 $(INSTALL_DIR) "$(RELSYSDIR)/ebin" 155 $(INSTALL_DATA) $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET) "$(RELSYSDIR)/ebin" 156 $(INSTALL_DIR) "$(RELSYSDIR)/src" 157 $(INSTALL_DATA) $(ERL_FILES) $(HRL_FILES) $(APP_SRC) $(APPUP_SRC) "$(RELSYSDIR)/src" 158 $(INSTALL_DIR) "$(RELSYSDIR)/examples" 159 $(INSTALL_DATA) $(EXAMPLES) "$(RELSYSDIR)/examples" 160 161# there are no include files to be used by the user 162#$(INSTALL_DIR) "$(RELSYSDIR)/include" 163#$(INSTALL_DATA) $(HRL_FILES) "$(RELSYSDIR)/include" 164 165release_docs_spec: 166 167# 168# Run-time library template files. 169# 170 171RT_TEMPLATES = asn1rtt_check \ 172 asn1rtt_ext \ 173 asn1rtt_per_common \ 174 asn1rtt_real_common \ 175 asn1rtt_ber \ 176 asn1rtt_per \ 177 asn1rtt_uper 178 179RT_TEMPLATES_ERL = $(RT_TEMPLATES:%=%.erl) 180RT_TEMPLATES_TARGET = $(RT_TEMPLATES:%=%.$(EMULATOR)) 181 182asn1ct_rtt.erl: prepare_templates.$(EMULATOR) $(RT_TEMPLATES_TARGET) 183 $(gen_verbose)erl -noshell -noinput -run prepare_templates gen_asn1ct_rtt \ 184 $(RT_TEMPLATES_TARGET) 185 186prepare_templates.$(EMULATOR): prepare_templates.erl 187 $(V_ERLC) prepare_templates.erl 188 189asn1rtt_%.$(EMULATOR): asn1rtt_%.erl 190 $(V_ERLC) +debug_info $< 191 192$(EVAL_CT_MODULES:%=%.erl): prepare_templates.$(EMULATOR) \ 193 $(EBIN)/asn1ct_rtt.$(EMULATOR) 194 195# 196# Dependencies 197# 198 199$(EBIN)/asn1_app.beam: asn1_app.erl 200$(EBIN)/asn1_db.beam: asn1_db.erl 201$(EBIN)/asn1ct.beam: asn1ct.erl asn1_records.hrl 202$(EBIN)/asn1ct_check.beam: asn1ct_check.erl asn1_records.hrl 203$(EBIN)/asn1ct_constructed_ber_bin_v2.beam: asn1ct_constructed_ber_bin_v2.erl \ 204 asn1_records.hrl 205$(EBIN)/asn1ct_constructed_per.beam: asn1ct_constructed_per.erl asn1_records.hrl 206$(EBIN)/asn1ct_func.beam: asn1ct_func.erl 207$(EBIN)/asn1ct_gen.beam: asn1ct_gen.erl asn1_records.hrl 208$(EBIN)/asn1ct_gen_ber_bin_v2.beam: asn1ct_gen_ber_bin_v2.erl asn1_records.hrl 209$(EBIN)/asn1ct_gen_check.beam: asn1_records.hrl 210$(EBIN)/asn1ct_gen_per.beam: asn1ct_gen_per.erl asn1_records.hrl 211$(EBIN)/asn1ct_gen_per_rt2ct.beam: asn1ct_gen_per_rt2ct.erl asn1_records.hrl 212$(EBIN)/asn1ct_imm.beam: asn1ct_imm.erl 213$(EBIN)/asn1ct_name.beam: asn1ct_name.erl 214$(EBIN)/asn1ct_parser2.beam: asn1ct_parser2.erl asn1_records.hrl 215$(EBIN)/asn1ct_pretty_format.beam: asn1ct_pretty_format.erl 216$(EBIN)/asn1ct_table.beam: asn1ct_table.erl 217$(EBIN)/asn1ct_tok.beam: asn1ct_tok.erl 218$(EBIN)/asn1ct_value.beam: asn1ct_value.erl asn1_records.hrl 219$(EBIN)/asn1rt.beam: asn1rt.erl 220$(EBIN)/asn1rt_ber_bin.beam: asn1rt_ber_bin.erl asn1_records.hrl 221$(EBIN)/asn1rt_ber_bin_v2.beam: asn1rt_ber_bin_v2.erl 222$(EBIN)/asn1rt_check.beam: asn1rt_check.erl 223$(EBIN)/asn1rt_nif.beam: asn1rt_nif.erl 224$(EBIN)/asn1rt_per_bin_rt2ct.beam: asn1rt_per_bin_rt2ct.erl asn1_records.hrl 225$(EBIN)/asn1rt_uper_bin.beam: asn1rt_uper_bin.erl asn1_records.hrl 226