📄 makefile.common.targets
字号:
## File: Makefile.common.targets# Author: The SRI DECIPHER (TM) System# Date: Tue Nov 3 23:45:49 1992## Description:# This file provides the common "make" targets shared by the# DECIPHER (TM) subsystems. Include this file in the targets# section of a makefile to use the shared definitions. # (Typically, the "include" should be the last command in the# makefile.) ## Copyright (c) 1992-2001 SRI International. All Rights Reserved.## $Header: /home/srilm/devel/common/RCS/Makefile.common.targets,v 1.26 2006/01/11 06:27:53 stolcke Exp $## Create the initial directory structure (assumes "src" exists).init: -cd ..; $(SRILM)/sbin/make-standard-directories $(MAKE) $(OBJDIR_STAMP) $(BINDIR_STAMP)# Delete all of the files which can be automatically regenerated.pristine: -cd ..; $(SRILM)/sbin/remove-standard-directories# Make all, using optimize options.optimize: $(MAKE) OPTION=$(OPTIMIZE_OPTION) all# Make all, using debug options.debug: $(MAKE) OPTION=$(DEBUG_OPTION) all# Make all, using profile options.profile: $(MAKE) OPTION=$(PROFILE_OPTION) all# Make all, using export options.export: $(MAKE) OPTION=$(EXPORT_OPTION) all# Make programs, using purifypurify: $(MAKE) OPTION=$(OPTION) BIN_OPTION=_pure LINK.c="$(PURIFY) $(PURIFY_FLAGS) $(LINK.c)" LINK.cc="$(PURIFY) $(PURIFY_FLAGS) $(LINK.cc)" PROGRAM_NAMES="$(PROGRAM_NAMES)" programs.PHONY: libraries programs# Make all libraries.libraries: $(ALL_LIBRARIES)# Make all programs.programs: $(ALL_PROGRAMS)# XXX -- This is disabled for now, since it frequently causes excess re-compilation.# Make sure all objects depend on the makefiles.#$(ALL_OBJECTS): Makefile \# $(SRILM)/common/Makefile.common.variables \# $(SRILM)/common/Makefile.common.targets# Cancel the rules which put the compilation results in the source# directory. (Note: This avoids problems with source files which# have the same root name as make targets.)%: %.c%$(OBJ_SUFFIX): %.c## These dependencies create the necessary target directories on demand,# but avoid doing so only once per module.#OBJDIR_STAMP = $(OBJDIR)/STAMPBINDIR_STAMP = $(BINDIR)/STAMP$(ALL_OBJECTS): $(OBJDIR_STAMP)$(ALL_PROGRAMS): $(BINDIR_STAMP)$(OBJDIR_STAMP) $(BINDIR_STAMP): -mkdir $(dir $@) touch $@# Default C compiling pattern-matching rule:$(OBJDIR)/%$(OBJ_SUFFIX): $(SRCDIR)/%.c $(COMPILE.c) $(OPTION_FLAGS) $(OUTPUT_OPTION) $<# Support for C++ compulation%: %.cc%$(OBJ_SUFFIX): %.cc# Default C compiling pattern-matching rule:$(OBJDIR)/%$(OBJ_SUFFIX): $(SRCDIR)/%.cc $(COMPILE.cc) $(OPTION_FLAGS) $(OUTPUT_OPTION) $<# Program linking# The heuristic here is that if any C++ source is present at all# we use the C++ driver to link the whole thing, otherwise the C driver$(BINDIR)/%$(EXE_SUFFIX): $(OBJDIR)/%$(OBJ_SUFFIX) $(LIBRARY)ifeq ($(filter %.cc,$(ALL_SOURCES)), ) $(LINK.c) $(LD_OPTION_FLAGS) $(LD_OUTPUT_OPTION) $< $(LIBRARIES) $(DEMANGLE_FILTER)else $(LINK.cc) $(LD_OPTION_FLAGS) $(LD_OUTPUT_OPTION) $< $(LIBRARIES) $(DEMANGLE_FILTER)endif# revised release targets and dependencies:.PHONY : release release-headers release-libraries release-programs release-scriptsRELEASED_HEADERS = $(EXPORTED_HEADERS:$(SRCDIR)/%=$(SRILM_INCDIR)/%)release-headers: $(RELEASED_HEADERS)$(SRILM_INCDIR)/%: $(SRCDIR)/% -$(INSTALL) 0444 $^ $(SRILM_INCDIR)RELEASED_LIBRARIES = $(EXPORTED_LIBRARIES:$(OBJDIR)/%$(LIB_SUFFIX)=$(SRILM_LIBDIR)/%$(LIB_SUFFIX))# We want to re-install only only those binaries that have changed, and# use make to figure out the things that need updating. However,# gnumake isn't smart enough to process this dependency in# conjunction with the rules for library creation. So we first make sure# all libraries are uptodate, then do a recursive make to do the installation.# And take care not to run $(MAKE) without arguments.# Same applies to $(RELEASED_PROGRAMS) and $(RELEASED_SCRIPTS) below.release-libraries: $(RELEASED_LIBRARIES)$(SRILM_LIBDIR)/%$(LIB_SUFFIX): $(OBJDIR)/%$(LIB_SUFFIX) -$(INSTALL) 0644 $^ $(SRILM_LIBDIR)RELEASED_PROGRAMS = $(EXPORTED_PROGRAMS:$(BINDIR)/%=$(SRILM_BINDIR)/%)release-programs: $(RELEASED_PROGRAMS)$(SRILM_BINDIR)/%: $(BINDIR)/% -$(INSTALL) 0555 $^ $(SRILM_BINDIR)RELEASED_SCRIPTS = $(EXPORTED_SCRIPTS:%=$(SRILM_BIN)/%)release-scripts: $(RELEASED_SCRIPTS)$(SRILM_BIN)/%: % -$(INSTALL) 0555 $^ $(SRILM_BIN)# Dependency tracing targetdepend: $(RM) $(DEPENDENCIES)ifneq ($(filter %.c,$(ALL_SOURCES)), ) $(GEN_DEP) $(filter %.c,$(ALL_SOURCES)) | sed -e "s&^\([^ ]\)&$(BASE_OBJDIR)"'$$(OBJ_OPTION)'"/\1&g" -e "s&\.o&$(OBJ_SUFFIX)&g" >> $(DEPENDENCIES)endififneq ($(filter %.cc,$(ALL_SOURCES)), ) $(GEN_DEP.cc) $(filter %.cc,$(ALL_SOURCES)) | sed -e "s&^\([^ ]\)&$(BASE_OBJDIR)"'$$(OBJ_OPTION)'"/\1&g" -e "s&\.o&$(OBJ_SUFFIX)&g" >> $(DEPENDENCIES)endif $(SRILM)/sbin/generate-program-dependencies $(BASE_BINDIR) $(BASE_OBJDIR) "$(EXE_SUFFIX)" $(ALL_PROGRAM_NAMES) | sed -e "s&\.o&$(OBJ_SUFFIX)&g" >> $(DEPENDENCIES)# Targets for cleaning upclean: remove-objectscleaner: clean remove-dependencies remove-librariescleanest: cleaner remove-programsremove-objects: -$(RM) $(OBJDIR)/*$(OBJ_SUFFIX) $(EXTRA_REMOVE_OBJECTS)remove-dependencies: -$(RM) Dependencies.$(MACHINE_TYPE) $(EXTRA_REMOVE_DEPENDENCIES)remove-libraries: -$(RM) $(ALL_LIBRARIES) $(EXTRA_REMOVE_LIBRARIES)remove-programs: -$(RM) $(ALL_PROGRAMS) $(EXTRA_REMOVE_PROGRAMS)sanitize: $(SRILM)/sbin/sanitize-3rdparty /dev/null $(ALL_HEADERS) $(ALL_SOURCES)desanitize: $(SRILM)/sbin/desanitize-3rdparty /dev/null $(ALL_HEADERS) $(ALL_SOURCES)# Default Lint pattern-matching rule:$(SRCDIR)/%.lint: $(SRCDIR)/%.c $(LINT) $(LINT_FLAGS) $< > $@# Lint rules:lint: $(ALL_LINT)remove-lint: $(RM) $(ALL_LINT)# Include the dependencies generated by "make depend" if they exist.ifeq ($(shell ls $(DEPENDENCIES) 2> /dev/null), $(DEPENDENCIES)) include $(DEPENDENCIES)endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -