📄 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$#include $(ERL_TOP)/make/target.mkinclude ../vsn.mkENABLE_ALLOC_TYPE_VARS = @ENABLE_ALLOC_TYPE_VARS@HIPE_ENABLED=@HIPE_ENABLED@NO_INLINE_FUNCTIONS=falseOPCODE_TABLES = $(ERL_TOP)/lib/compiler/src/genop.tab beam/ops.tab## Run this make file with TYPE set to the type of emulator you want.# Different versions of the emulator for different uses. The default# is "debug". For a normal version use "opt".#THR_DEFS=@EMU_THR_DEFS@M4FLAGS=CREATE_DIRS=ifeq ($(TYPE),debug)PURIFY =TYPEMARKER = .debugTYPE_FLAGS = @DEBUG_CFLAGS@ -DDEBUGENABLE_ALLOC_TYPE_VARS += debugifeq ($(TARGET),win32)TYPE_FLAGS += -DNO_JUMP_TABLELDFLAGS += -gendifelseifeq ($(TYPE),purify)PURIFY = purify $(PURIFY_BUILD_OPTIONS)TYPEMARKER = .purifyTYPE_FLAGS = @DEBUG_CFLAGS@ -DPURIFY -DNO_JUMP_TABLE -DERTS_MSEG_FAKE_SEGMENTSENABLE_ALLOC_TYPE_VARS += purifyelseifeq ($(TYPE),quantify)PURIFY = quantify $(QUANTIFY_BUILD_OPTIONS)TYPEMARKER = .quantifyENABLE_ALLOC_TYPE_VARS += quantifyifeq ($(findstring ose,$(TARGET)),ose) TYPE_FLAGS = @CFLAGS@ -DQUANTIFYelse TYPE_FLAGS = @CFLAGS@ -g -O2 -DQUANTIFY -DNO_JUMP_TABLEendifelseifeq ($(TYPE),purecov)PURIFY = purecov --follow-child-processes=yes $(PURECOV_BUILD_OPTIONS)TYPEMARKER = .purecovTYPE_FLAGS = @DEBUG_CFLAGS@ -DPURECOV -DNO_JUMP_TABLEENABLE_ALLOC_TYPE_VARS += purecovelseifeq ($(TYPE),valgrind)PURIFY = TYPEMARKER = .valgrindTYPE_FLAGS = @DEBUG_CFLAGS@ -DVALGRIND -DNO_JUMP_TABLE -DERTS_MSEG_FAKE_SEGMENTSENABLE_ALLOC_TYPE_VARS += valgrindelseifeq ($(TYPE),gprof)PURIFY = TYPEMARKER = .gprofTYPE_FLAGS = @CFLAGS@ -DGPROF -pg -DERTS_CAN_INLINE=0 -DERTS_INLINE=LDFLAGS += -pgENABLE_ALLOC_TYPE_VARS += gprofNO_INLINE_FUNCTIONS=trueelse# If type isn't one of the above, it *is* opt type...override TYPE=optPURIFY =TYPEMARKER =TYPE_FLAGS = @CFLAGS@endifendifendifendifendifendif## NOTE: When adding a new type update ERL_BUILD_TYPE_MARKER in sys/unix/sys.c#ifeq ($(FLAVOR),smp)FLAVOR_MARKER=.smpFLAVOR_FLAGS=-DERTS_SMPENABLE_ALLOC_TYPE_VARS += smpM4FLAGS += -DERTS_SMP=1OPCODE_TABLES += beam/frag_ops.tabelseifeq ($(FLAVOR),hybrid)FLAVOR_MARKER=.hybridFLAVOR_FLAGS=-DHYBRIDENABLE_ALLOC_TYPE_VARS += hybridOPCODE_TABLES += beam/frag_ops.tabelseifeq ($(FLAVOR),nofrag)FLAVOR_MARKER=.nofragFLAVOR_FLAGS=-DHEAP_FRAG_ELIM_TESTENABLE_ALLOC_TYPE_VARS += nofragM4FLAGS += -DHEAP_FRAG_ELIM_TEST=1OPCODE_TABLES += beam/nofrag_ops.tabelseifeq ($(FLAVOR),smp_nofrag)FLAVOR_MARKER=.smp_nofragFLAVOR_FLAGS=-DERTS_SMP -DHEAP_FRAG_ELIM_TESTENABLE_ALLOC_TYPE_VARS += smp nofragM4FLAGS += -DERTS_SMP=1 -DHEAP_FRAG_ELIM_TEST=1OPCODE_TABLES += beam/nofrag_ops.tabelse# If flavor isn't one of the above, it *is* plain flavor...override FLAVOR=plainFLAVOR_MARKER=FLAVOR_FLAGS=OPCODE_TABLES += beam/frag_ops.tabendifendifendifendifTF_MARKER=$(TYPEMARKER)$(FLAVOR_MARKER)OPSYS=@OPSYS@sol2CFLAGS=linuxCFLAGS=darwinCFLAGS=-DDARWINnoopsysCFLAGS=OPSYSCFLAGS=$($(OPSYS)CFLAGS)ARCH=@ARCH@ultrasparcCFLAGS=-Wa,-xarch=v8plusaARCHCFLAGS=$($(ARCH)CFLAGS)ifdef HIPE_ENABLEDifeq ($(OPSYS),linux)ppcBEAMLDFLAGS=-Wl,-m,elf32ppcppc64BEAMLDFLAGS=-Wl,-m,elf64ppc,-T,hipe/elf64ppc.xendifHIPEBEAMLDFLAGS=$($(ARCH)BEAMLDFLAGS)endifERTS_ENABLE_KERNEL_POLL=@ERTS_ENABLE_KERNEL_POLL@###SHELL = /bin/shCC = @CC@ifeq ($(TARGET),win32)ifeq ($(TYPE),debug)EMU_CC = @CC@elseEMU_CC = @EMU_CC@endifTYPE_FLAGS += -DSTATIC_ERLANG_DRIVERelseEMU_CC = @EMU_CC@endifWFLAGS = @WFLAGS@CFLAGS = @STATIC_CFLAGS@ $(TYPE_FLAGS) $(FLAVOR_FLAGS) @DEFS@ $(WFLAGS) $(THR_DEFS) $(ARCHCFLAGS)HCC = @HCC@LD = @LD@DEXPORT = @DEXPORT@RANLIB = @RANLIB@STRIP = stripPERL = @PERL@RM = @RM@MKDIR = @MKDIR@USING_MINGW=@MIXED_CYGWIN_MINGW@OMIT_OMIT_FP=noifeq (@EMU_LOCK_CHECKING@,yes)NO_INLINE_FUNCTIONS=trueendififeq ($(CC), gcc)ifeq ($(NO_INLINE_FUNCTIONS),true)GEN_OPT_FLGS = -O3 -fno-inline-functionselseifeq ($(OMIT_OMIT_FP),yes)GEN_OPT_FLGS = -O3elseGEN_OPT_FLGS = -O3 -fomit-frame-pointerendifendifUNROLL_FLG = -funroll-loopselseifeq ($(TARGET), win32)GEN_OPT_FLGS = -O3 UNROLL_FLG = RC=rc.shifeq ($(USING_MINGW), yes)RES_EXT=@OBJEXT@MAKE_PRELOAD_EXTRA=-windreselseRES_EXT=resendifelseGEN_OPT_FLGS = UNROLL_FLG = RC=falseendifendififdef PURIFY_CHILD_SETUPCS_PURIFY = $(PURIFY)CS_TYPE_FLAGS = $(TYPE_FLAGS)elseCS_PURIFY = CS_TYPE_FLAGS = $(subst QUANTIFY,FAKE_QUANTIFY, \ $(subst PURIFY,FAKE_PURIFY, $(TYPE_FLAGS)))endifCS_CFLAGS_ = $(CS_TYPE_FLAGS) @DEFS@ $(WFLAGS) ifeq ($(CC), gcc)CS_CFLAGS = $(subst -O2, $(GEN_OPT_FLGS) $(UNROLL_FLG), $(CS_CFLAGS_))elseCS_CFLAGS = $(CS_CFLAGS_)endifLIBS = @LIBS@ @TERMCAP_LIB@ -L../lib/internal/$(TARGET)ifeq ($(TARGET),win32)LIBS += -L$(ERL_TOP)/erts/obj$(TF_MARKER)/$(TARGET) -lzelse# Build on darwin fails if -lz is usedLIBS += $(ERL_TOP)/erts/obj/$(TARGET)/libz.aendifELIB_FLAGS = -DENABLE_ELIB_MALLOC -DELIB_ALLOC_IS_CLIB -DELIB_HEAP_SBRKPERFCTR_PATH=@PERFCTR_PATH@USE_PERFCTR=@USE_PERFCTR@ifdef PERFCTR_PATHLIBS += $(PERFCTR_PATH)/usr.lib/libperfctr.aelseifdef USE_PERFCTRLIBS += -lperfctrendifendifWITH_SCTP=@WITH_SCTP@ifdef WITH_SCTPLIBS += -lsctpendifORG_THR_LIBS=@EMU_THR_LIBS@THR_LIB_NAME=@EMU_THR_LIB_NAME@THR_LIBS=$(subst -l$(THR_LIB_NAME),-l$(THR_LIB_NAME)$(TYPEMARKER),$(ORG_THR_LIBS))ifeq ($(findstring vxworks,$(TARGET)),vxworks)ERTS_INTERNAL_LIB=erts_internalelseifneq ($(strip $(THR_LIB_NAME)),)ERTS_INTERNAL_LIB=erts_internal_relseERTS_INTERNAL_LIB=erts_internalendifendifLIBS += $(THR_LIBS) -l$(ERTS_INTERNAL_LIB)$(TYPEMARKER)LIBS += @LIBRT@TTF_DIR=$(TARGET)/$(TYPE)/$(FLAVOR)CREATE_DIRS += $(TTF_DIR)OBJDIR = obj/$(TTF_DIR)CREATE_DIRS += $(OBJDIR)BINDIR = $(ERL_TOP)/bin/$(TARGET)ERLANG_OSTYPE = @ERLANG_OSTYPE@ENABLE_ALLOC_TYPE_VARS += @ERLANG_OSTYPE@EMULATOR_EXECUTABLE_SAE = beam_evm$(TF_MARKER)EMULATOR_EXECUTABLE_ELIB = beam.elib$(TF_MARKER)ifeq ($(TARGET), win32)EMULATOR_EXECUTABLE = beam$(TF_MARKER).dllelseEMULATOR_EXECUTABLE = beam$(TF_MARKER)endifCS_EXECUTABLE = child_setup$(TYPEMARKER)# ----------------------------------------------------------------------include $(ERL_TOP)/make/$(TARGET)/otp.mkifeq ($(ERLANG_OSTYPE), unix)UNIX_ONLY_BUILDS = $(BINDIR)/$(CS_EXECUTABLE)elseUNIX_ONLY_BUILDS =endififeq ($(TYPE)-@HAVE_VALGRIND@,valgrind-no)all: @echo '*** valgrind not found by configure'elseifeq ($(FLAVOR)-@ERTS_BUILD_SMP_EMU@,smp-no)all: @echo '*** Omitted build of emulator with smp support'elseall: generate erts_lib zlib $(BINDIR)/$(EMULATOR_EXECUTABLE) $(UNIX_ONLY_BUILDS)ifeq ($(OMIT_OMIT_FP),yes) @echo '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *' @echo '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *' @echo '* * * *' @echo '* * NOTE: Omit frame pointer optimization has been omitted * *' @echo '* * * *' @echo '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *' @echo '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *'endifendifendifzlib: @set -e ; cd zlib && $(MAKE) $(TYPE)erts_lib: cd $(ERL_TOP)/erts/lib_src && $(MAKE) $(TYPE)clean:ifeq ($(TARGET),win32) $(RM) -f $(TARGET)/beams.rcendif $(RM) -f $(TARGET)/*.c $(TARGET)/*.h $(TARGET)/depend.mk $(RM) -f $(TARGET)/*/*/*.c $(TARGET)/*/*/*.h $(TARGET)/*/*/*.S $(RM) -f $(ERL_TOP)/erts/emulator/obj/$(TARGET)/*/*/*.o $(RM) -f $(BINDIR)/beam $(BINDIR)/beam.* $(RM) -f $(BINDIR)/child_setup $(BINDIR)/child_setup.* $(RM) -f $(BINDIR)/hipe_mkliterals $(BINDIR)/hipe_mkliterals.*.PHONY: all sae zlib cleandocs:# ----------------------------------------------------------------------include $(ERL_TOP)/make/otp_release_targets.mkRELSYSDIR = $(RELEASE_PATH)/erts-$(VSN)RELEASE_INCLUDES = beam/erl_driver.h sys/$(ERLANG_OSTYPE)/driver_int.h ifeq ($(TARGET),win32)RELEASE_INCLUDES += sys/$(ERLANG_OSTYPE)/erl_win_dyn_driver.hendififeq ($(findstring ose,$(TARGET)),ose)RELEASE_INCLUDES += sys/$(ERLANG_OSTYPE)/erl_port_signals.sig \ sys/$(ERLANG_OSTYPE)/ose_erl_port_prog.h \ drivers/$(ERLANG_OSTYPE)/ose_erl_driver.hendififeq ($(TYPE)-@HAVE_VALGRIND@,valgrind-no)release_spec: @echo '*** valgrind not found by configure'elseifeq ($(FLAVOR)-@ERTS_BUILD_SMP_EMU@,smp-no)release_spec: @echo '*** No emulator with smp support to install'elserelease_spec: all $(INSTALL_DIR) $(RELSYSDIR) $(INSTALL_DIR) $(RELSYSDIR)/src $(INSTALL_DIR) $(RELSYSDIR)/include $(INSTALL_DIR) $(RELSYSDIR)/man $(INSTALL_DIR) $(RELSYSDIR)/doc $(INSTALL_DIR) $(RELSYSDIR)/bin $(INSTALL_DIR) $(RELEASE_PATH)/usr/include $(INSTALL_DATA) $(RELEASE_INCLUDES) $(RELEASE_PATH)/usr/include $(INSTALL_DATA) $(RELEASE_INCLUDES) $(RELSYSDIR)/include $(INSTALL_PROGRAM) $(BINDIR)/$(EMULATOR_EXECUTABLE) $(RELSYSDIR)/binifeq ($(ERLANG_OSTYPE), unix) $(INSTALL_PROGRAM) $(BINDIR)/$(CS_EXECUTABLE) $(RELSYSDIR)/binendif $(INSTALL_DIR) $(RELEASE_PATH)/usr/include/obsolete $(INSTALL_DATA) obsolete/driver.h $(RELEASE_PATH)/usr/include/obsoleteendifendifrelease_docs_spec:# ----------------------------------------------------------------------# Generated source code. Put in $(TARGET) directory#.PHONY : generateGENERATE= $(CREATE_DIRS) \ $(TTF_DIR)/beam_opcodes.h \ $(TARGET)/erl_bif_table.c \ $(TARGET)/erl_version.h \ $(TARGET)/driver_tab.c \ $(TTF_DIR)/erl_alloc_types.hifeq ($(TARGET),win32)GENERATE += $(TARGET)/beams.rcelseGENERATE += $(TARGET)/preload.cendififeq ($(findstring vxworks,$(TARGET)),vxworks)elseifeq ($(findstring ose,$(TARGET)),ose)elseGENERATE += $(TTF_DIR)/hipe_x86_asm.h \ $(TTF_DIR)/hipe_amd64_asm.h \ $(TTF_DIR)/hipe_ppc_asm.h \ $(TTF_DIR)/hipe_arm_asm.h \ $(TTF_DIR)/hipe_literals.h \ $(BINDIR)/hipe_mkliterals$(TF_MARKER)endifendififeq ($(FLAVOR)-@ERTS_BUILD_SMP_EMU@,smp-no)GENERATE=endifgenerate: $(GENERATE)ifdef HIPE_ENABLEDOPCODE_TABLES += hipe/hipe_ops.tabendif$(TTF_DIR)/beam_opcodes.h $(TTF_DIR)/beam_opcodes.c: $(OPCODE_TABLES) LANG=C $(PERL) utils/beam_makeops -outdir $(TTF_DIR) \ -emulator $(OPCODE_TABLES)# bif and atom tableATOMS= beam/atom.namesBIFS = beam/bif.tabifdef HIPE_ENABLEDHIPE_ultrasparc_TAB=hipe/hipe_sparc.tabHIPE_x86_TAB=hipe/hipe_x86.tabHIPE_amd64_TAB=hipe/hipe_amd64.tabHIPE_ppc_TAB=hipe/hipe_ppc.tabHIPE_ppc64_TAB=hipe/hipe_ppc64.tabHIPE_arm_TAB=hipe/hipe_arm.tabHIPE_ARCH_TAB=$(HIPE_$(ARCH)_TAB)BIFS += hipe/hipe_bif0.tab hipe/hipe_bif1.tab hipe/hipe_bif2.tab $(HIPE_ARCH_TAB)ifdef USE_PERFCTRBIFS += hipe/hipe_perfctr.tabendifendifTABLES= $(TARGET)/erl_bif_table.c $(TARGET)/erl_bif_table.h \ $(TARGET)/erl_bif_wrap.c $(TARGET)/erl_bif_list.h \ $(TARGET)/erl_atom_table.c $(TARGET)/erl_atom_table.h \ $(TARGET)/erl_pbifs.c$(TABLES): $(ATOMS) $(BIFS) LANG=C $(PERL) utils/make_tables -src $(TARGET) -include $(TARGET) $^$(TTF_DIR)/erl_alloc_types.h: beam/erl_alloc.types utils/make_alloc_types LANG=C $(PERL) utils/make_alloc_types -src $< -dst $@ $(ENABLE_ALLOC_TYPE_VARS)# version include file$(TARGET)/erl_version.h: ../vsn.mk LANG=C $(PERL) utils/make_version -o $@ $(SYSTEM_VSN) $(VSN)$(SERIALNO) $(TARGET)# driver table$(TARGET)/driver_tab.c: Makefile.in LANG=C $(PERL) utils/make_driver_tab -o $@ $(DRV_OBJS)# preloaded code# Note: if you change this list, also change RELSRC_PRELOAD in# /clearcase/otp/system/build/Makefileifeq ($(TARGET),win32)$(TARGET)/beams.rc: $(ERL_TOP)/lib/kernel/ebin/otp_ring0.beam \ $(ERL_TOP)/lib/kernel/ebin/init.beam \ $(ERL_TOP)/lib/kernel/ebin/prim_inet.beam \ $(ERL_TOP)/lib/kernel/ebin/prim_file.beam \ $(ERL_TOP)/lib/kernel/ebin/erl_prim_loader.beam \ $(ERL_TOP)/lib/kernel/ebin/erlang.beam LANG=C $(PERL) utils/make_preload $(MAKE_PRELOAD_EXTRA) -rc $^ > $@else$(TARGET)/preload.c: $(ERL_TOP)/lib/kernel/ebin/otp_ring0.beam \ $(ERL_TOP)/lib/kernel/ebin/init.beam \ $(ERL_TOP)/lib/kernel/ebin/prim_inet.beam \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -