📄 makefile.in
字号:
# ``The contents of this file are subject to the Erlang Public License,# Version 1.1, (the "License"); you may not use this file except in# compliance with the License. You should have received a copy of the# Erlang Public License along with this software. If not, it can be# retrieved via the world wide web at http://www.erlang.org/.# # Software distributed under the License is distributed on an "AS IS"# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See# the License for the specific language governing rights and limitations# under the License.# # The Initial Developer of the Original Code is Ericsson Utvecklings AB.# Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings# AB. All Rights Reserved.''# # $Id$#ifeq ($(TYPE),debug)ERL_COMPILE_FLAGS += -Ddebug -WendifEBIN = ../ebininclude ../rules.mk# ----------------------------------------------------# Application version# ----------------------------------------------------include ../vsn.mkVSN=$(MEGACO_SESSION_VSN)# ----------------------------------------------------# The following variables differ on different systems, we set# reasonable defaults, if something different is needed it should# be set for that system only.# ----------------------------------------------------CC = @CC@AR = @AR@RANLIB = @RANLIB@CFLAGS = @DED_CFLAGS@ERLANG_OSTYPE = @ERLANG_OSTYPE@# ----------------------------------------------------# Release directory specification# ----------------------------------------------------APPDIR = $(shell (dirname $(shell pwd)))INCLUDE_DIR = $(APPDIR)/includePRIVDIR = $(APPDIR)/privGENERATED_DIR = $(APPDIR)/generatedGENERATED_C_DIR = $(GENERATED_DIR)/cGENERATED_ERL_DIR = $(GENERATED_DIR)/erlangLIBDIR = $(PRIVDIR)/libOBJDIR = $(PRIVDIR)/objLIBRARY = $(LIBDIR)/libmegaco_session.aifeq ($(DEBUG),true)CFLAGS = -ggdbifneq ($(TYPE),debug)ERL_COMPILE_FLAGS += -Ddebug -Wendifendififeq ($(THREADS),pthreads)CFLAGS += -D_REENTRANT -DPTHREADS endif# ----------------------------------------------------# Target Specs# ----------------------------------------------------# --------- main modules ----------SESSION_MODULES = \ megaco_session \ megaco_session_externalizer \ megaco_session_internalizer \ megaco_session_sup \ Megaco_Session_impl \ Megaco_SessionFactory_impl# --------- TCP modules -------------TCP_MODULES = MegacoSessionTcp_implTCP_IDL_MODULE = MegacoSessionTcp# --------- UDP modules -------------UDP_MODULES = MegacoSessionUdp_impl# ---------- The plain old erlang stuff ------------MODULES = \ $(SESSION_MODULES) \ $(TCP_MODULES) \ $(UDP_MODULES) ERL_FILES = $(MODULES:%=%.erl)TARGET_FILES = \ $(MODULES:%=$(EBIN)/%.$(EMULATOR))APP_FILE = megaco_session.appAPP_SRC = $(APP_FILE).srcAPP_TARGET = $(EBIN)/$(APP_FILE)APPUP_FILE = megaco_session.appupAPPUP_SRC = $(APPUP_FILE).srcAPPUP_TARGET = $(EBIN)/$(APPUP_FILE)# ---------- Generated targets ------------# MAIN targets:GEN_ERL_TARGETS = \ $(GENERATED_ERL_DIR)/Megaco.erl \ $(GENERATED_ERL_DIR)/Megaco_SessionUser.erl \ $(GENERATED_ERL_DIR)/MegacoSessionIp.hrl \ $(GENERATED_ERL_DIR)/MegacoMessage.erl \ $(GENERATED_ERL_DIR)/MegacoSessionTcp.erl \ $(GENERATED_ERL_DIR)/MegacoSessionUdp.erlGEN_HRL_TARGETS = \ $(INCLUDE_DIR)/Megaco.hrl \ $(INCLUDE_DIR)/oe_MegacoSession.hrl \ $(INCLUDE_DIR)/MegacoMessage.hrl \ $(INCLUDE_DIR)/oe_MegacoMessage.hrl \ $(INCLUDE_DIR)/MegacoSessionIp.hrl \ $(INCLUDE_DIR)/MegacoSessionTcp.hrl \ $(INCLUDE_DIR)/oe_MegacoSessionTcp.hrl \ $(INCLUDE_DIR)/MegacoSessionUdp.hrl \ $(INCLUDE_DIR)/oe_MegacoSessionUdp.hrlGEN_C_TARGETS = \ $(GENERATED_C_DIR)/Megaco_Session.c \ $(GENERATED_C_DIR)/Megaco_SessionUser__s.c \ $(GENERATED_C_DIR)/MegacoSessionIp.h \ $(GENERATED_C_DIR)/MegacoSessionIp__s.h \ $(GENERATED_C_DIR)/MegacoMessage.c \ $(GENERATED_C_DIR)/MegacoMessage__s.c \ $(GENERATED_C_DIR)/MegacoSessionTcp.c \ $(GENERATED_C_DIR)/MegacoSessionTcpUser__s.c \ $(GENERATED_C_DIR)/MegacoSessionUdp.c \ $(GENERATED_C_DIR)/MegacoSessionUdpUser__s.cGEN_H_TARGETS = \ $(INCLUDE_DIR)/Megaco.h \ $(INCLUDE_DIR)/Megaco__s.h \ $(INCLUDE_DIR)/Megaco_Session.h \ $(INCLUDE_DIR)/Megaco_SessionUser__s.h \ $(INCLUDE_DIR)/Megaco_SessionFactory.h \ $(INCLUDE_DIR)/oe_MegacoSession.h \ $(INCLUDE_DIR)/oe_MegacoSession__s.h \ $(INCLUDE_DIR)/MegacoSessionIp.h \ $(INCLUDE_DIR)/MegacoSessionIp__s.h \ $(INCLUDE_DIR)/oe_MegacoSessionIp.h \ $(INCLUDE_DIR)/oe_MegacoSessionIp__s.h \ $(INCLUDE_DIR)/MegacoMessage.h \ $(INCLUDE_DIR)/oe_MegacoMessage.h \ $(INCLUDE_DIR)/MegacoMessage__s.h \ $(INCLUDE_DIR)/oe_MegacoMessage__s.h \ $(INCLUDE_DIR)/MegacoSessionTcp.h \ $(INCLUDE_DIR)/oe_MegacoSessionTcp.h \ $(INCLUDE_DIR)/MegacoSessionTcpUser__s.h \ $(INCLUDE_DIR)/oe_MegacoSessionTcp__s.h \ $(INCLUDE_DIR)/MegacoSessionUdp.h \ $(INCLUDE_DIR)/oe_MegacoSessionUdp.h \ $(INCLUDE_DIR)/MegacoSessionUdpUser__s.h \ $(INCLUDE_DIR)/oe_MegacoSessionUdp__s.hGEN_TARGETS = \ $(GEN_ERL_TARGETS) \ $(GEN_HRL_TARGETS) \ $(EBIN)/.egen.phony \ $(GEN_C_TARGETS) \ $(GEN_H_TARGETS)TARGETS = \ $(GEN_TARGETS) \ $(LIBRARY) \ $(TARGET_FILES) \ $(APP_TARGET) \ $(APPUP_TARGET)TARGETS2 = \ $(GEN_TARGETS) \ $(TARGET_FILES) \ $(APP_TARGET) \ $(APPUP_TARGET)# ----------------------------------------------------# FLAGS# ----------------------------------------------------# Megaco_session is included just to fool the code loader to find the# include library used in include_lib(...)ERL_FLAGS += -pa $(APPDIR)/ebinERL_COMPILE_FLAGS += \ +'{parse_transform, sys_pre_attributes}' \ +'{attribute, insert, app_vsn, "megaco_session-$(MEGACO_SESSION_VSN)"}' ERL_ROOTDIR := $(shell echo 'io:format("~s~n",[code:root_dir()]),halt().' | erl | sed 's,^[0-9]*> *,,g' | tail +2)IC_DIR := $(shell echo 'io:format("~s~n",[code:lib_dir(ic)]),halt().' | erl | sed 's,^[0-9]*> *,,g' | tail +2)EI_DIR := $(shell echo 'io:format("~s~n",[code:lib_dir(erl_interface)]),halt().' | erl | sed 's,^[0-9]*> *,,g' | tail +2)# IDL Preprocessor flagsBASIC_PP += -I$(IC_DIR)/includeIDL_BASIC_PRE = +'{preproc_flags,"$(BASIC_PP)"}'C2S_PP = $(BASIC_PP) -D_CLIENT2SERVER_IDL_C2S_PRE = +'{preproc_flags,"$(C2S_PP)"}'S2C_PP = $(BASIC_PP) -D_SERVER2CLIENT_IDL_S2C_PRE = +'{preproc_flags,"$(S2C_PP)"}'ALL_PP = $(BASIC_PP) -D_CLIENT2SERVER_ -D_SERVER2CLIENT_IDL_ALL_PRE = +'{preproc_flags,"$(ALL_PP)"}'CCLIENT_IDL_FLAGS = \ +'{outdir, "$(GENERATED_C_DIR)"}' \ +'{be, c_client}' \ +'{scoped_op_calls, true}'CSERVER_IDL_FLAGS = \ +'{outdir, "$(GENERATED_C_DIR)"}' \ +'{be, c_server}' \ +'{scoped_op_calls, true}'ERL_IDL_FLAGS = \ +'{outdir, "$(GENERATED_ERL_DIR)"}' \ +'{be, erl_genserv}' \ +'{scoped_op_calls, true}' \ +'handle_info'# IncludesIFLAGS = -I$(IC_DIR)/include \ -I$(EI_DIR)/include \ -I$(INCLUDE_DIR)ALL_CFLAGS = $(IFLAGS) $(CFLAGS) # ----------------------------------------------------# Targets# ----------------------------------------------------# Because some .erl files get generated twice and compiled only the# first time the .beam files are out of date when (if) we run make in# this directory again. To avoid the recompiling that gets done in# that case we put the generated files explicitly as a dependency# which generates them all first.all: $(TARGETS) gen: $(TARGETS2)debug: @${MAKE} TYPE=debugclean: eclean rm -rf $(GENERATED_C_DIR) rm -f $(INCLUDE_DIR)/Megaco* rm -f $(INCLUDE_DIR)/oe_Megaco* rm -f $(OBJDIR)/*.o rm -f $(OBJDIR)/.cgen.phony rm -f $(LIBRARY) rm -f coreeclean: rm -f $(APPDIR)/ebin/* rm -rf $(GENERATED_ERL_DIR) rm -f $(EBIN)/.egen.phonydocs:info: @echo "" @echo "CC = $(CC)" @echo "AR = $(AR)" @echo "RANLIB = $(RANLIB)" @echo "" @echo "APPDIR = $(APPDIR)" @echo "INCLUDE_DIR = $(INCLUDE_DIR)" @echo "PRIVDIR = $(PRIVDIR)" @echo "" @echo "GENERATED_DIR = $(GENERATED_DIR)" @echo "GENERATED_C_DIR = $(GENERATED_C_DIR)" @echo "GENERATED_ERL_DIR = $(GENERATED_ERL_DIR)" @echo "" @echo "LIBDIR = $(LIBDIR)" @echo "OBJDIR = $(OBJDIR)" @echo "" @echo "THREADS = $(THREADS)" @echo "" @echo "CFLAGS = $(CFLAGS)" @echo "ALL_CFLAGS = $(ALL_CFLAGS)" @echo "TARGET = $(TARGET)" @echo "TARGETS = $(TARGETS)" @echo "LIBRARY = $(LIBRARY)" @echo "MODULES = $(MODULES)" @echo "ERL_FILES = $(ERL_FILES)" @echo "TARGET_FILES = $(TARGET_FILES)" @echo "IC_DIR = $(IC_DIR)" @echo "EI_DIR = $(EI_DIR)"# ----------------------------------------------------# Special Build Targets# ----------------------------------------------------$(APP_TARGET): $(APP_SRC) ../vsn.mk$(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk# ----------------------------------------------------# dependencies# ----------------------------------------------------egen: $(EBIN)/.egen.phony$(EBIN)/.egen.phony : $(GEN_ERL_TARGETS) @printf "\ncompile generated erl-files \n\t" $(ERLC) $(ERL_FLAGS) $(ERL_COMPILE_FLAGS) -o$(EBIN) +pj $(GENERATED_ERL_DIR)/*.erl @touch $(EBIN)/.egen.phonycgen: $(OBJDIR)/.cgen.phony$(OBJDIR)/.cgen.phony : $(GEN_C_TARGETS) @printf "\ncompile generated c files \n\t" cd $(OBJDIR) && $(CC) $(CFLAGS) $(IFLAGS) -c $(GENERATED_C_DIR)/*.c @touch $(OBJDIR)/.cgen.phony$(LIBRARY) : $(OBJDIR)/.cgen.phony @printf "\n(library): create library\n\t" $(AR) rcv $(LIBRARY) $(OBJDIR)/*.o @printf "\t" $(RANLIB) $(LIBRARY)## ---------------# This target generate the following files:# Megaco.erl# Megaco.hrl # oe_MegacoSession.erl # oe_MegacoSession.hrl$(GENERATED_ERL_DIR)/Megaco.erl : MegacoSession.idl @printf "\n(session) basic: $@\n"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -