summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile41
1 files changed, 31 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index cea277e..880d739 100644
--- a/Makefile
+++ b/Makefile
@@ -9,20 +9,24 @@ PACKAGE = asyncjs
REQUIRE_NAME = async
UGLIFY = uglifyjs
XYZ = support/xyz.sh --repo git@github.com:caolan/async.git
+COPY_ES = sed -E "s/(import.+)lodash/\1lodash-es/g"
BUILDDIR = build
BUILD_ES = build-es
DIST = dist
-SRC = lib/index.js
+JS_INDEX = lib/index.js
SCRIPTS = ./support
-JS_SRC = $(shell find lib/ -type f -name '*.js')
+JS_SRC = $(shell find lib/ -type f -name '*.js') lib/index.js
+INDEX_SRC = $(shell find lib/ -type f -name '*.js' | grep -v 'index') $(SCRIPTS)/index-template.js $(SCRIPTS)/aliases.json ${SCRIPTS}/generate-index.js
LINT_FILES = lib/ mocha_test/ $(shell find perf/ -maxdepth 2 -type f) $(shell find support/ -maxdepth 2 -type f -name "*.js") karma.conf.js
UMD_BUNDLE = $(BUILDDIR)/dist/async.js
UMD_BUNDLE_MIN = $(BUILDDIR)/dist/async.min.js
UMD_BUNDLE_MAP = $(BUILDDIR)/dist/async.min.map
-ES_MODULES = $(patsubst lib/%.js, build-es/%.js, $(JS_SRC))
-CJS_MODULES = $(patsubst lib/%.js, build/%.js, $(JS_SRC))
+ALIAS_ES = $(shell node $(SCRIPTS)/list-aliases.js build-es/)
+ES_MODULES = $(patsubst lib/%.js, build-es/%.js, $(JS_SRC)) $(ALIAS_ES)
+ALIAS_CJS = $(shell node $(SCRIPTS)/list-aliases.js build/)
+CJS_MODULES = $(patsubst lib/%.js, build/%.js, $(JS_SRC)) $(ALIAS_CJS)
all: clean lint build test
@@ -34,6 +38,7 @@ clean:
rm -rf $(BUILDDIR)
rm -rf $(BUILD_ES)
rm -rf $(DIST)
+ rm -rf $(JS_INDEX)
rm -rf tmp/ docs/ .nyc_output/ coverage/
rm -rf perf/versions/
@@ -45,16 +50,27 @@ build-bundle: build-modules $(UMD_BUNDLE)
build-modules: $(CJS_MODULES)
+$(JS_INDEX): $(INDEX_SRC)
+ node $(SCRIPTS)/generate-index.js > $@
+
$(BUILDDIR)/%.js: lib/%.js
mkdir -p "$(@D)"
node $(SCRIPTS)/build/compile-module.js --file $< --output $@
+
+define COMPILE_ALIAS
+$A: $(shell node $(SCRIPTS)/get-alias.js $A)
+ mkdir -p "$$(@D)"
+ node $(SCRIPTS)/build/compile-module.js --file $$< --output $$@
+endef
+$(foreach A,$(ALIAS_CJS),$(eval $(COMPILE_ALIAS)))
+
$(UMD_BUNDLE): $(ES_MODULES) package.json
mkdir -p "$(@D)"
node $(SCRIPTS)/build/aggregate-bundle.js
# Create the minified UMD versions and copy them to dist/ for bower
-build-dist: $(DIST) $(UMD_BUNDLE) $(UMD_BUNDLE_MIN) $(DIST)/async.js $(DIST)/async.min.js $(DIST)/async.min.map
+build-dist: $(DIST) $(DIST)/async.js $(DIST)/async.min.js $(DIST)/async.min.map
$(DIST):
mkdir -p $@
@@ -66,22 +82,27 @@ $(UMD_BUNDLE_MIN): $(UMD_BUNDLE)
--source-map-url async.min.map \
-o $@
-$(UMD_BUNDLE_MAP): $(UMD_BUNDLE_MIN)
-
$(DIST)/async.js: $(UMD_BUNDLE)
cp $< $@
$(DIST)/async.min.js: $(UMD_BUNDLE_MIN)
cp $< $@
-$(DIST)/async.min.map: $(UMD_BUNDLE_MAP)
- cp $< $@
+$(DIST)/async.min.map: $(UMD_BUNDLE_MIN)
+ cp $(UMD_BUNDLE_MAP) $@
build-es: $(ES_MODULES)
$(BUILD_ES)/%.js: lib/%.js
mkdir -p "$(@D)"
- sed -E "s/(import.+)lodash/\1lodash-es/g" $< > $@
+ $(COPY_ES) $< > $@
+
+define COPY_ES_ALIAS
+$A: $(shell node $(SCRIPTS)/get-alias.js $A)
+ mkdir -p "$$(@D)"
+ $(COPY_ES) $$< > $$@
+endef
+$(foreach A,$(ALIAS_ES),$(eval $(COPY_ES_ALIAS)))
test-build: $(UMD_BUNDLE) $(UMD_BUNDLE_MIN)
mocha support/build.test.js