📄 makefile.in
字号:
$(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 -old $^ > $@endif# ----------------------------------------------------------------------# Pattern rules#INCLUDES = -Ibeam -Isys/$(ERLANG_OSTYPE) -Isys/common -I$(TTF_DIR) -I$(TARGET) -Izlib -Ihipe -I../include/internal -I../include/internal/$(TARGET)ifdef PERFCTR_PATHINCLUDES += -I$(PERFCTR_PATH)/usr.lib -I$(PERFCTR_PATH)/linux/includeendif# Need to include etc dir on VxWorksifeq ($(findstring vxworks,$(TARGET)),vxworks)INCLUDES += -I$(ERL_TOP)/erts/etc/vxworksendififneq ($(findstring ose,$(TARGET)),ose)ifeq ($(TARGET),win32)# Usually the same as the default rule, but certain platforms (i.e. win32) mix# different compilers$(OBJDIR)/beam_emu.o: beam/beam_emu.c $(EMU_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@$(OBJDIR)/dll_sys.o: sys/$(ERLANG_OSTYPE)/sys.c $(CC) $(CFLAGS) -DERL_RUN_SHARED_LIB=1 $(INCLUDES) -c $< -o $@$(OBJDIR)/beams.$(RES_EXT): $(TARGET)/beams.rc $(RC) -o $@ -I$(ERL_TOP)/erts/etc/win32 $(TARGET)/beams.rc endif$(OBJDIR)/%.o: beam/%.c $(CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@elseINCLUDES += -Idrivers/oseifeq ($(TYPE),debug)$(OBJDIR)/%.o: beam/%.c $(CC) $(CFLAGS) -DNO_JUMP_TABLE $(INCLUDES) -c $< -o $@elseVXCC=@VXCC@VXCFLAGS=@VXCFLAGS@CFLAGS_NOOPT=@CFLAGS_NOOPT@ @DEFS@ $(WFLAGS) $(THR_DEFS) $(ARCHCFLAGS)# we want to use jump table$(OBJDIR)/beam_emu.o: beam/beam_emu.c $(VXCC) $(VXCFLAGS) $(INCLUDES) -c $< -o $@# ggc and erl_process do not work properly with DIAB's -XO option,# we'll compile them with gcc instead$(OBJDIR)/ggc.o: beam/ggc.c $(VXCC) $(VXCFLAGS) $(INCLUDES) -c $< -o $@$(OBJDIR)/erl_process.o: beam/erl_process.c $(VXCC) $(VXCFLAGS) $(INCLUDES) -c $< -o $@$(OBJDIR)/%.o: beam/%.c $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@endifendif$(OBJDIR)/%.o: $(TARGET)/%.c $(CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -c $< -o $@$(OBJDIR)/%.o: $(TTF_DIR)/%.c $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@$(OBJDIR)/%.o: sys/$(ERLANG_OSTYPE)/%.c $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@$(OBJDIR)/%.o: sys/common/%.c $(CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@$(OBJDIR)/%.o: drivers/common/%.c $(CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -Idrivers/$(ERLANG_OSTYPE) -c $< -o $@$(OBJDIR)/%.o: drivers/$(ERLANG_OSTYPE)/%.c $(CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -Idrivers/$(ERLANG_OSTYPE) -I../etc/$(ERLANG_OSTYPE) -c $< -o $@# VxWorks and OSE uses unix drivers too...ifeq ($(findstring vxworks,$(TARGET)),vxworks)$(OBJDIR)/%.o: drivers/unix/%.c $(CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -c $< -o $@endififeq ($(findstring ose,$(TARGET)),ose)$(OBJDIR)/%.o: drivers/unix/%.c $(CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -c $< -o $@endif# ----------------------------------------------------------------------# Specials#CS_SRC = sys/$(ERLANG_OSTYPE)/erl_child_setup.c$(BINDIR)/$(CS_EXECUTABLE): $(CS_SRC) $(CS_PURIFY) $(CC) -o $(BINDIR)/$(CS_EXECUTABLE) \ $(CS_CFLAGS) $(INCLUDES) $(CS_SRC)$(OBJDIR)/%.elib.o: beam/%.c $(CC) $(ELIB_FLAGS) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@# Disable vfork() for sae (then we don't need the child_setup program)$(OBJDIR)/sys_sae.o: sys/$(ERLANG_OSTYPE)/sys.c $(CC) -DDISABLE_VFORK=1 $(CFLAGS) $(INCLUDES) -c $< -o $@$(OBJDIR)/%.kp.o: sys/unix/%.c $(CC) -DERTS_KERNEL_POLL_VERSION $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@$(OBJDIR)/%.nkp.o: sys/unix/%.c $(CC) -DERTS_NO_KERNEL_POLL_VERSION $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ifeq ($(CC), gcc)$(OBJDIR)/erl_obsolete.o: beam/erl_obsolete.c $(CC) $(subst -Wstrict-prototypes, , $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS))) $(INCLUDES) -c $< -o $@$(OBJDIR)/erl_goodfit_alloc.o: beam/erl_goodfit_alloc.c $(CC) $(subst -O2, $(GEN_OPT_FLGS) $(UNROLL_FLG), $(CFLAGS)) $(INCLUDES) -c $< -o $@endif# ----------------------------------------------------------------------# Build necessary beam files if they are not already in place. To force# rebuilding (is this a good idea?) add a dummy dependency to this target.#$(ERL_TOP)/lib/%.beam: cd $(@D)/../src && $(MAKE) ../ebin/$(@F)# ----------------------------------------------------------------------# Object files## On windows the preloaded objects are in a resource object.ifeq ($(TARGET),win32)PRELOAD = $(OBJDIR)/beams.$(RES_EXT)elsePRELOAD = $(OBJDIR)/preload.oendifINIT_OBJS = $(OBJDIR)/erl_main.o $(PRELOAD)INIT_OBJS_SAE = $(OBJDIR)/erl9_start.oEMU_OBJS = \ $(OBJDIR)/beam_emu.o $(OBJDIR)/beam_opcodes.o \ $(OBJDIR)/beam_load.o $(OBJDIR)/beam_bif_load.o \ $(OBJDIR)/beam_debug.o $(OBJDIR)/beam_bp.o \ $(OBJDIR)/beam_catches.oRUN_OBJS = \ $(OBJDIR)/erl_pbifs.o $(OBJDIR)/benchmark.o \ $(OBJDIR)/erl_alloc.o $(OBJDIR)/erl_mtrace.o \ $(OBJDIR)/erl_alloc_util.o $(OBJDIR)/erl_goodfit_alloc.o \ $(OBJDIR)/erl_bestfit_alloc.o $(OBJDIR)/erl_afit_alloc.o \ $(OBJDIR)/erl_instrument.o $(OBJDIR)/erl_init.o \ $(OBJDIR)/erl_atom_table.o $(OBJDIR)/erl_bif_table.o \ $(OBJDIR)/erl_bif_ddll.o $(OBJDIR)/erl_bif_guard.o \ $(OBJDIR)/erl_bif_info.o $(OBJDIR)/erl_bif_op.o \ $(OBJDIR)/erl_bif_os.o $(OBJDIR)/erl_bif_lists.o \ $(OBJDIR)/erl_bif_trace.o $(OBJDIR)/erl_bif_wrap.o \ $(OBJDIR)/erl_trace.o $(OBJDIR)/copy.o \ $(OBJDIR)/utils.o $(OBJDIR)/bif.o \ $(OBJDIR)/io.o $(OBJDIR)/erl_printf_term.o\ $(OBJDIR)/erl_debug.o $(OBJDIR)/erl_md5.o \ $(OBJDIR)/erl_message.o $(OBJDIR)/erl_process.o \ $(OBJDIR)/erl_process_dict.o $(OBJDIR)/erl_arith.o \ $(OBJDIR)/time.o $(OBJDIR)/erl_time_sup.o \ $(OBJDIR)/external.o $(OBJDIR)/dist.o \ $(OBJDIR)/binary.o $(OBJDIR)/erl_db.o \ $(OBJDIR)/erl_db_util.o $(OBJDIR)/erl_db_hash.o \ $(OBJDIR)/erl_db_tree.o $(OBJDIR)/fix_alloc.o \ $(OBJDIR)/big.o $(OBJDIR)/hash.o \ $(OBJDIR)/index.o $(OBJDIR)/atom.o \ $(OBJDIR)/module.o $(OBJDIR)/export.o \ $(OBJDIR)/register.o $(OBJDIR)/break.o \ $(OBJDIR)/erl_async.o $(OBJDIR)/erl_lock_check.o \ $(OBJDIR)/ggc.o $(OBJDIR)/erl_gc.o \ $(OBJDIR)/erl_nmgc.o $(OBJDIR)/erl_posix_str.o \ $(OBJDIR)/erl_bits.o $(OBJDIR)/erl_math.o \ $(OBJDIR)/erl_fun.o $(OBJDIR)/erl_bif_port.o \ $(OBJDIR)/erl_term.o $(OBJDIR)/erl_node_tables.o \ $(OBJDIR)/erl_monitors.o $(OBJDIR)/erl_process_dump.o \ $(OBJDIR)/erl_obsolete.o $(OBJDIR)/erl_bif_timer.o \ $(OBJDIR)/erl_port_task.oifeq ($(TARGET),win32)DRV_OBJS = \ $(OBJDIR)/registry_drv.o \ $(OBJDIR)/efile_drv.o \ $(OBJDIR)/inet_drv.o \ $(OBJDIR)/zlib_drv.o \ $(OBJDIR)/ram_file_drv.oOS_OBJS = \ $(OBJDIR)/win_efile.o \ $(OBJDIR)/win_con.o \ $(OBJDIR)/dll_sys.o \ $(OBJDIR)/driver_tab.o \ $(OBJDIR)/gzio.o \ $(OBJDIR)/sys_float.o \ $(OBJDIR)/sys_time.o \ $(OBJDIR)/sys_select.o \ $(OBJDIR)/sys_env.o \ $(OBJDIR)/dosmap.o \ $(OBJDIR)/elib_malloc.oelseOS_OBJS = \ $(OBJDIR)/sys.o \ $(OBJDIR)/driver_tab.o \ $(OBJDIR)/unix_efile.o \ $(OBJDIR)/gzio.o \ $(OBJDIR)/elib_malloc.o \ $(OBJDIR)/elib_memmove.oifeq ($(findstring ose,$(TARGET)),ose) OS_OBJS += $(OBJDIR)/erl_port_init.o \ $(OBJDIR)/ose_inet_sock_select.o \ $(OBJDIR)/ose_sfp.oelseifeq ($(findstring vxworks,$(TARGET)),vxworks) OS_OBJS += $(OBJDIR)/int64.o else OS_OBJS += $(OBJDIR)/sys_float.o \ $(OBJDIR)/sys_time.oifeq ($(ERTS_ENABLE_KERNEL_POLL),yes) OS_OBJS += $(OBJDIR)/erl_poll.kp.o \ $(OBJDIR)/erl_check_io.kp.o \ $(OBJDIR)/erl_poll.nkp.o \ $(OBJDIR)/erl_check_io.nkp.oelse OS_OBJS += $(OBJDIR)/erl_poll.o \ $(OBJDIR)/erl_check_io.oendifendifendifDRV_OBJS = \ $(OBJDIR)/efile_drv.o \ $(OBJDIR)/inet_drv.o \ $(OBJDIR)/zlib_drv.o \ $(OBJDIR)/ram_file_drv.oendififneq ($(findstring vxworks,$(TARGET)),vxworks) ifeq ($(findstring ose,$(TARGET)),ose) DRV_OBJS += $(OBJDIR)/ose_inet_drv.o else DRV_OBJS += $(OBJDIR)/ttsl_drv.o endifendifOS_OBJS += $(OBJDIR)/erl_mseg.o \ $(OBJDIR)/erl_$(ERLANG_OSTYPE)_sys_ddll.o \ $(OBJDIR)/erl_mtrace_sys_wrap.oHIPE_ultrasparc_OBJS=$(OBJDIR)/hipe_sparc.o $(OBJDIR)/hipe_sparc_glue.o $(OBJDIR)/hipe_sparc_bifs.o $(OBJDIR)/hipe_sparc_stack.oHIPE_x86_darwin_OBJS=$(OBJDIR)/mach_override.oHIPE_x86_OS_OBJS=$(HIPE_x86_$(OPSYS)_OBJS)HIPE_x86_OBJS=$(OBJDIR)/hipe_x86.o $(OBJDIR)/hipe_x86_glue.o $(OBJDIR)/hipe_x86_bifs.o $(OBJDIR)/hipe_x86_signal.o $(OBJDIR)/hipe_x86_stack.o $(HIPE_x86_OS_OBJS)HIPE_amd64_OBJS=$(OBJDIR)/hipe_amd64.o $(OBJDIR)/hipe_amd64_glue.o $(OBJDIR)/hipe_amd64_bifs.o $(OBJDIR)/hipe_x86_signal.o $(OBJDIR)/hipe_x86_stack.oHIPE_ppc_OBJS=$(OBJDIR)/hipe_ppc.o $(OBJDIR)/hipe_ppc_glue.o $(OBJDIR)/hipe_ppc_bifs.o $(OBJDIR)/hipe_ppc_stack.oHIPE_ppc64_OBJS=$(HIPE_ppc_OBJS)HIPE_arm_OBJS=$(OBJDIR)/hipe_arm.o $(OBJDIR)/hipe_arm_glue.o $(OBJDIR)/hipe_arm_bifs.o $(OBJDIR)/hipe_arm_stack.oHIPE_noarch_OBJS=HIPE_ARCH_OBJS=$(HIPE_$(ARCH)_OBJS)HIPE_OBJS= \ $(OBJDIR)/hipe_bif0.o \ $(OBJDIR)/hipe_bif1.o \ $(OBJDIR)/hipe_bif2.o \ $(OBJDIR)/hipe_debug.o \ $(OBJDIR)/hipe_gc.o \ $(OBJDIR)/hipe_mode_switch.o \ $(OBJDIR)/hipe_native_bif.o \ $(OBJDIR)/hipe_stack.o $(HIPE_ARCH_OBJS)ifdef USE_PERFCTRHIPE_OBJS += $(OBJDIR)/hipe_perfctr.oendififdef HIPE_ENABLEDEXTRA_BASE_OBJS += $(HIPE_OBJS)endifBASE_OBJS = $(RUN_OBJS) $(EMU_OBJS) $(OS_OBJS) $(EXTRA_BASE_OBJS)OBJS = $(BASE_OBJS) $(DRV_OBJS)OBJS_SAE = $(subst sys.o,sys_sae.o,$(OBJS))ELIB_C_FILES = beam/elib_malloc.c \ beam/elib_memmove.c \ beam/erl_bif_info.c \ beam/utils.c \ beam/erl_alloc.cMOD_OBJS_ELIB = $(patsubst %.c,$(OBJDIR)/%.o,$(notdir $(ELIB_C_FILES)))OBJS_ELIB = $(patsubst %.o,%.elib.o,$(MOD_OBJS_ELIB)) \ $(filter-out $(MOD_OBJS_ELIB),$(OBJS))######################################### HiPE sectionM4FLAGS += -DTARGET=$(TARGET) -DOPSYS=$(OPSYS) -DARCH=$(ARCH)$(TTF_DIR)/%.S: hipe/%.m4 m4 $(M4FLAGS) $< > $@$(TTF_DIR)/%.h: hipe/%.m4 m4 $(M4FLAGS) $< > $@$(OBJDIR)/%.o: $(TTF_DIR)/%.S $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@$(OBJDIR)/%.o: hipe/%.S $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@$(OBJDIR)/%.o: hipe/%.c $(CC) $(subst O2,O3, $(CFLAGS)) $(INCLUDES) -c $< -o $@$(BINDIR)/hipe_mkliterals$(TF_MARKER): $(OBJDIR)/hipe_mkliterals.o $(CC) $(CFLAGS) $(INCLUDES) -o $@ $<$(OBJDIR)/hipe_mkliterals.o: $(TTF_DIR)/hipe_x86_asm.h $(TTF_DIR)/hipe_ppc_asm.h$(TTF_DIR)/hipe_literals.h: $(BINDIR)/hipe_mkliterals$(TF_MARKER) $(BINDIR)/hipe_mkliterals$(TF_MARKER) -c > $@$(OBJDIR)/hipe_sparc_glue.o: hipe/hipe_sparc_glue.S hipe/hipe_sparc_asm.h hipe/hipe_mode_switch.h $(TTF_DIR)/hipe_literals.h$(TTF_DIR)/hipe_sparc_bifs.S: hipe/hipe_sparc_bifs.m4 hipe/hipe_bif_list.m4 $(TARGET)/erl_bif_list.h hipe/hipe_gbif_list.h$(OBJDIR)/hipe_sparc_bifs.o: $(TTF_DIR)/hipe_sparc_bifs.S hipe/hipe_sparc_asm.h hipe/hipe_mode_switch.h $(TTF_DIR)/hipe_literals.h$(OBJDIR)/hipe_x86_glue.o: hipe/hipe_x86_glue.S $(TTF_DIR)/hipe_x86_asm.h $(TTF_DIR)/hipe_literals.h hipe/hipe_mode_switch.h$(TTF_DIR)/hipe_x86_bifs.S: hipe/hipe_x86_bifs.m4 hipe/hipe_x86_asm.m4 hipe/hipe_bif_list.m4 $(TARGET)/erl_bif_list.h hipe/hipe_gbif_list.h$(OBJDIR)/hipe_x86_bifs.o: $(TTF_DIR)/hipe_x86_bifs.S $(TTF_DIR)/hipe_literals.h$(OBJDIR)/hipe_amd64_glue.o: hipe/hipe_amd64_glue.S $(TTF_DIR)/hipe_amd64_asm.h $(TTF_DIR)/hipe_literals.h hipe/hipe_mode_switch.h$(TTF_DIR)/hipe_amd64_bifs.S: hipe/hipe_amd64_bifs.m4 hipe/hipe_amd64_asm.m4 hipe/hipe_bif_list.m4 $(TARGET)/erl_bif_list.h hipe/hipe_gbif_list.h$(OBJDIR)/hipe_amd64_bifs.o: $(TTF_DIR)/hipe_amd64_bifs.S $(TTF_DIR)/hipe_literals.h$(OBJDIR)/hipe_ppc_glue.o: hipe/hipe_ppc_glue.S $(TTF_DIR)/hipe_ppc_asm.h hipe/hipe_mode_switch.h $(TTF_DIR)/hipe_literals.h$(TTF_DIR)/hipe_ppc_bifs.S: hipe/hipe_ppc_bifs.m4 hipe/hipe_ppc_asm.m4 hipe/hipe_bif_list.m4 $(TARGET)/erl_bif_list.h hipe/hipe_gbif_list.h$(OBJDIR)/hipe_ppc_bifs.o: $(TTF_DIR)/hipe_ppc_bifs.S $(TTF_DIR)/hipe_literals.h$(OBJDIR)/hipe_arm_glue.o: hipe/hipe_arm_glue.S $(TTF_DIR)/hipe_arm_asm.h hipe/hipe_mode_switch.h $(TTF_DIR)/hipe_literals.h$(TTF_DIR)/hipe_arm_bifs.S: hipe/hipe_arm_bifs.m4 hipe/hipe_arm_asm.m4 hipe/hipe_bif_list.m4 $(TARGET)/erl_bif_list.h hipe/hipe_gbif_list.h$(OBJDIR)/hipe_arm_bifs.o: $(TTF_DIR)/hipe_arm_bifs.S $(TTF_DIR)/hipe_literals.h# end of HiPE section########################################ifeq ($(findstring vxworks,$(TARGET)),vxworks)######################################### Extract what we need from libgcc.a########################################GCCLIBFLAGS=@GCCLIBFLAGS@STRIP=@STRIP@SYMPREFIX=@SYMPREFIX@NEEDFUNCTIONS=__divdi3 __moddi3 __udivdi3KEEPSYMS=$(NEEDFUNCTIONS:%=-K $(SYMPREFIX)%)$(OBJDIR)/int64.o: $(TARGET)/int64.c $(CC) -o $(OBJDIR)/int64tmp.o -c $(TARGET)/int64.c $(LD) -o $(OBJDIR)/int64.o $(OBJDIR)/int64tmp.o $(LDFLAGS) $(GCCLIBFLAGS) $(STRIP) $(KEEPSYMS) $(OBJDIR)/int64.o$(TARGET)/int64.c: echo 'void dummy(void); void dummy(void) {' > $(TARGET)/int64.c for x in $(NEEDFUNCTIONS); do echo 'extern void '$$x'();' \ >> $(TARGET)/int64.c; done for x in $(NEEDFUNCTIONS); do echo $$x'();' >> $(TARGET)/int64.c; done echo '}' >> $(TARGET)/int64.c endififeq ($(findstring ose,$(TARGET)),ose)# Extract soft float functions from libgcc.a (for beam_emu)VXCC=@VXCC@VXCFLAGS=@VXCFLAGS@VXLD=@VXLD@VXLDFLAGS=@VXLDFLAGS@VXCCLIBFLAGS=@VXCCLIBFLAGS@STRIP=@STRIP@SYMPREFIX=@SYMPREFIX@NEEDFUNCTIONS=__floatsidf __adddf3 __negdf2 __muldf3 __divdf3 __subdf3KEEPSYMS=$(NEEDFUNCTIONS:%=-K $(SYMPREFIX)%)$(OBJDIR)/ose_sfp.o: $(TARGET)/ose_sfp.c $(VXCC) $(VXCFLAGS) -o $(OBJDIR)/ose_sfp_tmp.o -c $(TARGET)/ose_sfp.c $(VXLD) -o $(OBJDIR)/ose_sfp.o $(OBJDIR)/ose_sfp_tmp.o $(VXLDFLAGS) $(VXCCLIBFLAGS) $(STRIP) $(KEEPSYMS) $(OBJDIR)/ose_sfp.o$(TARGET)/ose_sfp.c: echo 'void dummy(void); void dummy(void) {' > $(TARGET)/ose_sfp.c for x in $(NEEDFUNCTIONS); do echo 'extern void '$$x'();' \ >> $(TARGET)/ose_sfp.c; done for x in $(NEEDFUNCTIONS); do echo $$x'();' >> $(TARGET)/ose_sfp.c; done echo '}' >> $(TARGET)/ose_sfp.c endif# ----------------------------------------------------------------------# The emulator itselfifeq ($(TARGET), win32)# Only the basic erlang to begin with eh?$(BINDIR)/$(EMULATOR_EXECUTABLE): $(INIT_OBJS) $(OBJS) $(PURIFY) $(LD) -dll -def:sys/$(ERLANG_OSTYPE)/erl.def -implib:$(BINDIR)/erl_dll.lib -o $(BINDIR)/$(EMULATOR_EXECUTABLE) \ $(LDFLAGS) $(DEXPORT) $(INIT_OBJS) $(OBJS) $(LIBS)else$(BINDIR)/$(EMULATOR_EXECUTABLE): $(INIT_OBJS) $(OBJS) $(PURIFY) $(LD) -o $(BINDIR)/$(EMULATOR_EXECUTABLE) \ $(HIPEBEAMLDFLAGS) $(LDFLAGS) $(DEXPORT) $(INIT_OBJS) $(OBJS) $(LIBS)$(BINDIR)/$(EMULATOR_EXECUTABLE_ELIB): $(INIT_OBJS) $(OBJS_ELIB) $(PURIFY) $(LD) -o $(BINDIR)/$(EMULATOR_EXECUTABLE_ELIB) \ $(LDFLAGS) $(DEXPORT) $(INIT_OBJS) $(OBJS_ELIB) $(LIBS)$(BINDIR)/$(EMULATOR_EXECUTABLE_SAE): $(INIT_OBJS_SAE) $(OBJS_SAE) $(PURIFY) $(LD) -o $(BINDIR)/$(EMULATOR_EXECUTABLE_SAE) \ $(LDFLAGS) $(DEXPORT) $(INIT_OBJS_SAE) $(OBJS_SAE) $(LIBS)endif## Create directories#$(CREATE_DIRS): $(MKDIR) -p $@# ----------------------------------------------------------------------# Dependencies#$(TARGET)/Makefile: Makefile.in @echo @echo "Makefile.in has been updated, please re-run configure!" @echo @exit 1SED_REPL_O=s|^\([^:]*:\)|$$(OBJDIR)/\1|gSED_REPL_ELIB_O=s|^\([^:]*\).o[ ]*:|$$(OBJDIR)/\1.elib.o:|gSED_REPL_TTF_DIR=s|$(TTF_DIR)/|$$(TTF_DIR)/|gSED_REPL_ERL_TOP=s|$(ERL_TOP)/|$$(ERL_TOP)/|gSED_REPL_POLL=s|$$(OBJDIR)/erl_poll.o|$$(OBJDIR)/erl_poll.kp.o $$(OBJDIR)/erl_poll.nkp.o|gSED_REPL_CHK_IO=s|$$(OBJDIR)/erl_check_io.o|$$(OBJDIR)/erl_check_io.kp.o $$(OBJDIR)/erl_check_io.nkp.o|gSED_DEPEND=sed '$(SED_REPL_O);$(SED_REPL_TTF_DIR);$(SED_REPL_ERL_TOP)'SED_ELIB_DEPEND=sed '$(SED_REPL_ELIB_O);$(SED_REPL_TTF_DIR);$(SED_REPL_ERL_TOP)'ifeq ($(ERTS_ENABLE_KERNEL_POLL),yes)SED_SYS_DEPEND=sed '$(SED_REPL_O);$(SED_REPL_TTF_DIR);$(SED_REPL_ERL_TOP);$(SED_REPL_POLL);$(SED_REPL_CHK_IO)'elseSED_SYS_DEPEND=$(SED_DEPEND)endififdef HIPE_ENABLEDHIPE_SRC=hipe/*.celseHIPE_SRC=endif# I do not want the -MG flag on windows, it does not work properly for a # windows build.ifeq ($(TARGET),win32)DEP_CC=$(EMU_CC)DEP_FLAGS=-MM $(subst -O2,,$(CFLAGS)) $(INCLUDES) -I../etc/win32 -Idrivers/commonelseDEP_CC=$(CC)DEP_FLAGS=-MM -MG $(CFLAGS) $(INCLUDES) -Idrivers/commonendifdepend: $(DEP_CC) $(DEP_FLAGS) beam/*.c \ | $(SED_DEPEND) > $(TARGET)/depend.mk $(DEP_CC) $(DEP_FLAGS) drivers/common/*.c drivers/$(ERLANG_OSTYPE)/*.c \ | $(SED_DEPEND) >> $(TARGET)/depend.mk $(DEP_CC) $(DEP_FLAGS) \ sys/$(ERLANG_OSTYPE)/*.c sys/common/*.c $(HIPE_SRC) \ | $(SED_SYS_DEPEND) >> $(TARGET)/depend.mk $(DEP_CC) $(DEP_FLAGS) $(TARGET)/*.c $(TTF_DIR)/*.c \ | $(SED_DEPEND) >> $(TARGET)/depend.mkifneq ($(TARGET),win32) $(DEP_CC) $(DEP_FLAGS) $(ELIB_FLAGS) $(ELIB_C_FILES) \ | $(SED_ELIB_DEPEND) >> $(TARGET)/depend.mkendif-include $(TARGET)/depend.mk
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -