@@ -84,6 +84,7 @@ NODE_EXE = node$(EXEEXT)
84
84
NODE ?= "$(PWD ) /$(NODE_EXE ) "
85
85
NODE_G_EXE = node_g$(EXEEXT )
86
86
NPM ?= ./deps/npm/bin/npm-cli.js
87
+ NPX ?= ./deps/npm/bin/npx-cli.js
87
88
88
89
# Flags for packaging.
89
90
BUILD_DOWNLOAD_FLAGS ?= --download=all
@@ -105,6 +106,16 @@ available-node = \
105
106
exit 1; \
106
107
fi;
107
108
109
+ available-npx = \
110
+ if [ -x "$(NPX ) " ] && [ -e "$(NPX ) " ]; then \
111
+ "$(NPX ) " $(1 ) ; \
112
+ elif [ -x ` command -v npx ` ] && [ -e ` command -v npx ` ] && [ ` command -v npx ` ]; then \
113
+ ` command -v npx ` $(1 ) ; \
114
+ else \
115
+ echo "No available npx, cannot run \"npx $(1 ) \""; \
116
+ exit 1; \
117
+ fi;
118
+
108
119
.PHONY : all
109
120
# BUILDTYPE=Debug builds both release and debug builds. If you want to compile
110
121
# just the debug build, run `make -C out BUILDTYPE=Debug` instead.
@@ -363,7 +374,7 @@ test-valgrind: all
363
374
test-check-deopts : all
364
375
$(PYTHON ) tools/test.py $(PARALLEL_ARGS ) --mode=$(BUILDTYPE_LOWER ) --check-deopts parallel sequential
365
376
366
- DOCBUILDSTAMP_PREREQS = tools/doc/addon-verify.mjs doc/api/addons.md
377
+ DOCBUILDSTAMP_PREREQS = tools/doc/ doc/api/addons.md
367
378
368
379
ifeq ($(OSTYPE ) ,aix)
369
380
DOCBUILDSTAMP_PREREQS := $(DOCBUILDSTAMP_PREREQS ) out/$(BUILDTYPE ) /node.exp
@@ -379,7 +390,7 @@ test/addons/.docbuildstamp: $(DOCBUILDSTAMP_PREREQS) tools/doc/node_modules
379
390
echo " Skipping .docbuildstamp (no crypto)" ; \
380
391
else \
381
392
$(RM ) -r test/addons/?? _* /; \
382
- [ -x $( NODE ) ] && $(NODE ) $< || node $< ; \
393
+ [ -x $( NPM ) ] && $(NPM ) --prefix $< run addon-verify || npm --prefix $< run addon-verify ; \
383
394
[ $$ ? -eq 0 ] && touch $@ ; \
384
395
fi
385
396
@@ -740,11 +751,8 @@ test-v8 test-v8-intl test-v8-benchmarks test-v8-all:
740
751
endif
741
752
742
753
apidoc_dirs = out/doc out/doc/api out/doc/api/assets
743
- apidoc_sources = $(wildcard doc/api/* .md)
744
- apidocs_html = $(addprefix out/,$(apidoc_sources:.md=.html ) )
745
- apidocs_json = $(addprefix out/,$(apidoc_sources:.md=.json ) )
746
-
747
- apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/* ) ) )
754
+ node_use_icu = $(call available-node,"-p" "typeof Intl === 'object'")
755
+ run-npm-ci = $(PWD ) /$(NPM ) ci
748
756
749
757
tools/doc/node_modules : tools/doc/package.json
750
758
@if [ " $( shell $( node_use_openssl) ) " != " true" ]; then \
@@ -755,11 +763,11 @@ tools/doc/node_modules: tools/doc/package.json
755
763
756
764
.PHONY : doc-only
757
765
doc-only : tools/doc/node_modules \
758
- $(apidoc_dirs ) $( apiassets ) # # Builds the docs with the local or the global Node.js binary.
759
- @if [ " $( shell $( node_use_openssl) ) " != " true" ]; then \
760
- echo " Skipping doc-only (no crypto)" ; \
766
+ $(apidoc_dirs ) # # Builds the docs with the local or the global Node.js binary.
767
+ @if [ " $( shell $( node_use_openssl) ) " != " true" ] || [ " $( shell $( node_use_icu ) ) " != " true " ] ; then \
768
+ echo " Skipping doc-only (no crypto or no icu )" ; \
761
769
else \
762
- $(MAKE ) out /doc/ api/all. html out/ doc/api/all.json out/doc/api/stability ; \
770
+ $(call available-npx, --prefix tools /doc api-docs-tooling -t legacy- html-all legacy-json-all api-links -i doc/api/\ * .md -i lib/\ * .js -o out/doc/api/ -c file:// $( PWD ) /CHANGELOG.md) \
763
771
fi
764
772
765
773
.PHONY : doc
@@ -774,66 +782,6 @@ out/doc/api: doc/api
774
782
mkdir -p $@
775
783
cp -r doc/api out/doc
776
784
777
- # If it's a source tarball, assets are already in doc/api/assets
778
- out/doc/api/assets :
779
- mkdir -p $@
780
- if [ -d doc/api/assets ]; then cp -r doc/api/assets out/doc/api; fi ;
781
-
782
- # If it's not a source tarball, we need to copy assets from doc/api_assets
783
- out/doc/api/assets/% : doc/api_assets/% | out/doc/api/assets
784
- @cp $< $@ ; $(RM ) out/doc/api/assets/README.md
785
-
786
-
787
- run-npm-ci = $(PWD ) /$(NPM ) ci
788
-
789
- LINK_DATA = out/doc/apilinks.json
790
- VERSIONS_DATA = out/previous-doc-versions.json
791
- gen-api = tools/doc/generate.mjs --node-version=$(FULLVERSION ) \
792
- --apilinks=$(LINK_DATA ) $< --output-directory=out/doc/api \
793
- --versions-file=$(VERSIONS_DATA )
794
- gen-apilink = tools/doc/apilinks.mjs $(LINK_DATA ) $(wildcard lib/* .js)
795
-
796
- $(LINK_DATA ) : $(wildcard lib/* .js) tools/doc/apilinks.mjs | out/doc
797
- $(call available-node, $(gen-apilink ) )
798
-
799
- # Regenerate previous versions data if the current version changes
800
- $(VERSIONS_DATA ) : CHANGELOG.md src/node_version.h tools/doc/versions.mjs
801
- $(call available-node, tools/doc/versions.mjs $@ )
802
-
803
- node_use_icu = $(call available-node,"-p" "typeof Intl === 'object'")
804
-
805
- out/doc/api/% .json out/doc/api/% .html : doc/api/% .md tools/doc/generate.mjs \
806
- tools/doc/markdown.mjs tools/doc/html.mjs tools/doc/json.mjs \
807
- tools/doc/apilinks.mjs $(VERSIONS_DATA ) | $(LINK_DATA ) out/doc/api
808
- @if [ " $( shell $( node_use_icu) ) " != " true" ]; then \
809
- echo " Skipping documentation generation (no ICU)" ; \
810
- else \
811
- $(call available-node, $(gen-api ) ) \
812
- fi
813
-
814
- out/doc/api/all.html : $(apidocs_html ) tools/doc/allhtml.mjs \
815
- tools/doc/apilinks.mjs | out/doc/api
816
- @if [ " $( shell $( node_use_icu) ) " != " true" ]; then \
817
- echo " Skipping HTML single-page doc generation (no ICU)" ; \
818
- else \
819
- $(call available-node, tools/doc/allhtml.mjs) \
820
- fi
821
-
822
- out/doc/api/all.json : $(apidocs_json ) tools/doc/alljson.mjs | out/doc/api
823
- @if [ " $( shell $( node_use_icu) ) " != " true" ]; then \
824
- echo " Skipping JSON single-file generation (no ICU)" ; \
825
- else \
826
- $(call available-node, tools/doc/alljson.mjs) \
827
- fi
828
-
829
- .PHONY : out/doc/api/stability
830
- out/doc/api/stability : out/doc/api/all.json tools/doc/stability.mjs | out/doc/api
831
- @if [ " $( shell $( node_use_icu) ) " != " true" ]; then \
832
- echo " Skipping stability indicator generation (no ICU)" ; \
833
- else \
834
- $(call available-node, tools/doc/stability.mjs) \
835
- fi
836
-
837
785
.PHONY : docopen
838
786
docopen : out/doc/api/all.html
839
787
@$(PYTHON ) -mwebbrowser file://$(abspath $< )
0 commit comments