"Fossies" - the Fresh Open Source Software Archive

Member "Atom/resources/app/apm/node_modules/extsprintf/Makefile.targ" (7 Feb 2017, 8390 Bytes) of archive /windows/misc/atom-windows.zip:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 # -*- mode: makefile -*-
    2 #
    3 # Copyright (c) 2012, Joyent, Inc. All rights reserved.
    4 #
    5 # Makefile.targ: common targets.
    6 #
    7 # NOTE: This makefile comes from the "eng" repo. It's designed to be dropped
    8 # into other repos as-is without requiring any modifications. If you find
    9 # yourself changing this file, you should instead update the original copy in
   10 # eng.git and then update your repo to use the new version.
   11 #
   12 # This Makefile defines several useful targets and rules. You can use it by
   13 # including it from a Makefile that specifies some of the variables below.
   14 #
   15 # Targets defined in this Makefile:
   16 #
   17 #	check	Checks JavaScript files for lint and style
   18 #		Checks bash scripts for syntax
   19 #		Checks SMF manifests for validity against the SMF DTD
   20 #
   21 #	clean	Removes built files
   22 #
   23 #	docs	Builds restdown documentation in docs/
   24 #
   25 #	prepush	Depends on "check" and "test"
   26 #
   27 #	test	Does nothing (you should override this)
   28 #
   29 #	xref	Generates cscope (source cross-reference index)
   30 #
   31 # For details on what these targets are supposed to do, see the Joyent
   32 # Engineering Guide.
   33 #
   34 # To make use of these targets, you'll need to set some of these variables. Any
   35 # variables left unset will simply not be used.
   36 #
   37 #	BASH_FILES	Bash scripts to check for syntax
   38 #			(paths relative to top-level Makefile)
   39 #
   40 #	CLEAN_FILES	Files to remove as part of the "clean" target.  Note
   41 #			that files generated by targets in this Makefile are
   42 #			automatically included in CLEAN_FILES.  These include
   43 #			restdown-generated HTML and JSON files.
   44 #
   45 #	DOC_FILES	Restdown (documentation source) files. These are
   46 #			assumed to be contained in "docs/", and must NOT
   47 #			contain the "docs/" prefix.
   48 #
   49 #	JSL_CONF_NODE	Specify JavaScriptLint configuration files
   50 #	JSL_CONF_WEB	(paths relative to top-level Makefile)
   51 #
   52 #			Node.js and Web configuration files are separate
   53 #			because you'll usually want different global variable
   54 #			configurations.  If no file is specified, none is given
   55 #			to jsl, which causes it to use a default configuration,
   56 #			which probably isn't what you want.
   57 #
   58 #	JSL_FILES_NODE	JavaScript files to check with Node config file.
   59 #	JSL_FILES_WEB	JavaScript files to check with Web config file.
   60 #
   61 # You can also override these variables:
   62 #
   63 #	BASH		Path to bash (default: bash)
   64 #
   65 #	CSCOPE_DIRS	Directories to search for source files for the cscope
   66 #			index. (default: ".")
   67 #
   68 #	JSL		Path to JavaScriptLint (default: "jsl")
   69 #
   70 #	JSL_FLAGS_NODE	Additional flags to pass through to JSL
   71 #	JSL_FLAGS_WEB
   72 #	JSL_FLAGS
   73 #
   74 #	JSSTYLE		Path to jsstyle (default: jsstyle)
   75 #
   76 #	JSSTYLE_FLAGS	Additional flags to pass through to jsstyle
   77 #
   78 
   79 #
   80 # Defaults for the various tools we use.
   81 #
   82 BASH		?= bash
   83 BASHSTYLE	?= tools/bashstyle
   84 CP		?= cp
   85 CSCOPE		?= cscope
   86 CSCOPE_DIRS	?= .
   87 JSL		?= jsl
   88 JSSTYLE		?= jsstyle
   89 MKDIR		?= mkdir -p
   90 MV		?= mv
   91 RESTDOWN_FLAGS	?=
   92 RMTREE		?= rm -rf
   93 JSL_FLAGS  	?= --nologo --nosummary
   94 
   95 ifeq ($(shell uname -s),SunOS)
   96 	TAR	?= gtar
   97 else
   98 	TAR	?= tar
   99 endif
  100 
  101 
  102 #
  103 # Defaults for other fixed values.
  104 #
  105 BUILD		= build
  106 DISTCLEAN_FILES += $(BUILD)
  107 DOC_BUILD	= $(BUILD)/docs/public
  108 
  109 #
  110 # Configure JSL_FLAGS_{NODE,WEB} based on JSL_CONF_{NODE,WEB}.
  111 #
  112 ifneq ($(origin JSL_CONF_NODE), undefined)
  113 	JSL_FLAGS_NODE += --conf=$(JSL_CONF_NODE)
  114 endif
  115 
  116 ifneq ($(origin JSL_CONF_WEB), undefined)
  117 	JSL_FLAGS_WEB += --conf=$(JSL_CONF_WEB)
  118 endif
  119 
  120 #
  121 # Targets. For descriptions on what these are supposed to do, see the
  122 # Joyent Engineering Guide.
  123 #
  124 
  125 #
  126 # Instruct make to keep around temporary files. We have rules below that
  127 # automatically update git submodules as needed, but they employ a deps/*/.git
  128 # temporary file. Without this directive, make tries to remove these .git
  129 # directories after the build has completed.
  130 #
  131 .SECONDARY: $($(wildcard deps/*):%=%/.git)
  132 
  133 #
  134 # This rule enables other rules that use files from a git submodule to have
  135 # those files depend on deps/module/.git and have "make" automatically check
  136 # out the submodule as needed.
  137 #
  138 deps/%/.git:
  139 	git submodule update --init deps/$*
  140 
  141 #
  142 # These recipes make heavy use of dynamically-created phony targets. The parent
  143 # Makefile defines a list of input files like BASH_FILES. We then say that each
  144 # of these files depends on a fake target called filename.bashchk, and then we
  145 # define a pattern rule for those targets that runs bash in check-syntax-only
  146 # mode. This mechanism has the nice properties that if you specify zero files,
  147 # the rule becomes a noop (unlike a single rule to check all bash files, which
  148 # would invoke bash with zero files), and you can check individual files from
  149 # the command line with "make filename.bashchk".
  150 #
  151 .PHONY: check-bash
  152 check-bash: $(BASH_FILES:%=%.bashchk) $(BASH_FILES:%=%.bashstyle)
  153 
  154 %.bashchk: %
  155 	$(BASH) -n $^
  156 
  157 %.bashstyle: %
  158 	$(BASHSTYLE) $^
  159 
  160 .PHONY: check-jsl check-jsl-node check-jsl-web
  161 check-jsl: check-jsl-node check-jsl-web
  162 
  163 check-jsl-node: $(JSL_FILES_NODE:%=%.jslnodechk)
  164 
  165 check-jsl-web: $(JSL_FILES_WEB:%=%.jslwebchk)
  166 
  167 %.jslnodechk: % $(JSL_EXEC)
  168 	$(JSL) $(JSL_FLAGS) $(JSL_FLAGS_NODE) $<
  169 
  170 %.jslwebchk: % $(JSL_EXEC)
  171 	$(JSL) $(JSL_FLAGS) $(JSL_FLAGS_WEB) $<
  172 
  173 .PHONY: check-jsstyle
  174 check-jsstyle: $(JSSTYLE_FILES:%=%.jsstylechk)
  175 
  176 %.jsstylechk: % $(JSSTYLE_EXEC)
  177 	$(JSSTYLE) $(JSSTYLE_FLAGS) $<
  178 
  179 .PHONY: check
  180 check: check-jsl check-jsstyle check-bash
  181 	@echo check ok
  182 
  183 .PHONY: clean
  184 clean::
  185 	-$(RMTREE) $(CLEAN_FILES)
  186 
  187 .PHONY: distclean
  188 distclean:: clean
  189 	-$(RMTREE) $(DISTCLEAN_FILES)
  190 
  191 CSCOPE_FILES = cscope.in.out cscope.out cscope.po.out
  192 CLEAN_FILES += $(CSCOPE_FILES)
  193 
  194 .PHONY: xref
  195 xref: cscope.files
  196 	$(CSCOPE) -bqR
  197 
  198 .PHONY: cscope.files
  199 cscope.files:
  200 	find $(CSCOPE_DIRS) -name '*.c' -o -name '*.h' -o -name '*.cc' \
  201 	    -o -name '*.js' -o -name '*.s' -o -name '*.cpp' > $@
  202 
  203 #
  204 # The "docs" target is complicated because we do several things here:
  205 #
  206 #    (1) Use restdown to build HTML and JSON files from each of DOC_FILES.
  207 #
  208 #    (2) Copy these files into $(DOC_BUILD) (build/docs/public), which
  209 #        functions as a complete copy of the documentation that could be
  210 #        mirrored or served over HTTP.
  211 #
  212 #    (3) Then copy any directories and media from docs/media into
  213 #        $(DOC_BUILD)/media. This allows projects to include their own media,
  214 #        including files that will override same-named files provided by
  215 #        restdown.
  216 #
  217 # Step (3) is the surprisingly complex part: in order to do this, we need to
  218 # identify the subdirectories in docs/media, recreate them in
  219 # $(DOC_BUILD)/media, then do the same with the files.
  220 #
  221 DOC_MEDIA_DIRS := $(shell find docs/media -type d 2>/dev/null | grep -v "^docs/media$$")
  222 DOC_MEDIA_DIRS := $(DOC_MEDIA_DIRS:docs/media/%=%)
  223 DOC_MEDIA_DIRS_BUILD := $(DOC_MEDIA_DIRS:%=$(DOC_BUILD)/media/%)
  224 
  225 DOC_MEDIA_FILES := $(shell find docs/media -type f 2>/dev/null)
  226 DOC_MEDIA_FILES := $(DOC_MEDIA_FILES:docs/media/%=%)
  227 DOC_MEDIA_FILES_BUILD := $(DOC_MEDIA_FILES:%=$(DOC_BUILD)/media/%)
  228 
  229 #
  230 # Like the other targets, "docs" just depends on the final files we want to
  231 # create in $(DOC_BUILD), leveraging other targets and recipes to define how
  232 # to get there.
  233 #
  234 .PHONY: docs
  235 docs:							\
  236     $(DOC_FILES:%.restdown=$(DOC_BUILD)/%.html)		\
  237     $(DOC_FILES:%.restdown=$(DOC_BUILD)/%.json)		\
  238     $(DOC_MEDIA_FILES_BUILD)
  239 
  240 #
  241 # We keep the intermediate files so that the next build can see whether the
  242 # files in DOC_BUILD are up to date.
  243 #
  244 .PRECIOUS:					\
  245     $(DOC_FILES:%.restdown=docs/%.html)		\
  246     $(DOC_FILES:%.restdown=docs/%json)
  247 
  248 #
  249 # We do clean those intermediate files, as well as all of DOC_BUILD.
  250 #
  251 CLEAN_FILES +=					\
  252     $(DOC_BUILD)				\
  253     $(DOC_FILES:%.restdown=docs/%.html)		\
  254     $(DOC_FILES:%.restdown=docs/%.json)
  255 
  256 #
  257 # Before installing the files, we must make sure the directories exist. The |
  258 # syntax tells make that the dependency need only exist, not be up to date.
  259 # Otherwise, it might try to rebuild spuriously because the directory itself
  260 # appears out of date.
  261 #
  262 $(DOC_MEDIA_FILES_BUILD): | $(DOC_MEDIA_DIRS_BUILD)
  263 
  264 $(DOC_BUILD)/%: docs/% | $(DOC_BUILD)
  265 	$(CP) $< $@
  266 
  267 docs/%.json docs/%.html: docs/%.restdown | $(DOC_BUILD) $(RESTDOWN_EXEC)
  268 	$(RESTDOWN) $(RESTDOWN_FLAGS) -m $(DOC_BUILD) $<
  269 
  270 $(DOC_BUILD):
  271 	$(MKDIR) $@
  272 
  273 $(DOC_MEDIA_DIRS_BUILD):
  274 	$(MKDIR) $@
  275 
  276 #
  277 # The default "test" target does nothing. This should usually be overridden by
  278 # the parent Makefile. It's included here so we can define "prepush" without
  279 # requiring the repo to define "test".
  280 #
  281 .PHONY: test
  282 test:
  283 
  284 .PHONY: prepush
  285 prepush: check test