mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-10-07 08:48:11 +08:00
Modularize Makefile into client and server Makefiles
Part of the reason that the Makefile in the root directory is a bit complicated is that it tries to handle tasks that can be handled separately in the client and server modules. This commit pushes some of the make logic specific to each module into their own makefiles and calls out to those makefiles from that in the project root.
This commit is contained in:
@@ -5,12 +5,30 @@ CLEANFILES := $(BUILDDIR)/ client/build build dist cellxgene.egg-info
|
|||||||
|
|
||||||
PART ?= patch
|
PART ?= patch
|
||||||
|
|
||||||
|
|
||||||
|
# CLEANING
|
||||||
|
.PHONY: clean
|
||||||
|
clean: clean-lite clean-server clean-client
|
||||||
|
|
||||||
|
# cleaning the client's node_modules is the longest one, so we avoid that if possible
|
||||||
|
.PHONY: clean-lite
|
||||||
|
clean-lite:
|
||||||
|
rm -rf $(CLEANFILES)
|
||||||
|
|
||||||
|
clean-%:
|
||||||
|
cd $(*) && $(MAKE) clean
|
||||||
|
|
||||||
|
|
||||||
# BUILDING PACKAGE
|
# BUILDING PACKAGE
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
build: clean build-server
|
build: clean build-server
|
||||||
@echo "done"
|
@echo "done"
|
||||||
|
|
||||||
|
.PHONY: build-client
|
||||||
|
build-client:
|
||||||
|
cd client && $(MAKE) install build
|
||||||
|
|
||||||
.PHONY: build-server
|
.PHONY: build-server
|
||||||
build-server: build-client
|
build-server: build-client
|
||||||
mkdir -p $(SERVERBUILD)
|
mkdir -p $(SERVERBUILD)
|
||||||
@@ -24,11 +42,6 @@ build-server: build-client
|
|||||||
cp $(CLIENTBUILD)/service-worker.js $(SERVERBUILD)/app/web/static/js/
|
cp $(CLIENTBUILD)/service-worker.js $(SERVERBUILD)/app/web/static/js/
|
||||||
cp MANIFEST.in README.md setup.cfg setup.py $(BUILDDIR)
|
cp MANIFEST.in README.md setup.cfg setup.py $(BUILDDIR)
|
||||||
|
|
||||||
.PHONY: build-client
|
|
||||||
build-client:
|
|
||||||
npm install --prefix client/ client
|
|
||||||
npm run --prefix client build
|
|
||||||
|
|
||||||
# If you are actively developing in the server folder use this, dirties the source tree
|
# If you are actively developing in the server folder use this, dirties the source tree
|
||||||
.PHONY: build-for-server-dev
|
.PHONY: build-for-server-dev
|
||||||
build-for-server-dev: clean-server build-client
|
build-for-server-dev: clean-server build-client
|
||||||
@@ -40,19 +53,8 @@ build-for-server-dev: clean-server build-client
|
|||||||
cp client/build/favicon.png server/app/web/static/img
|
cp client/build/favicon.png server/app/web/static/img
|
||||||
cp client/build/service-worker.js server/app/web/static/js/
|
cp client/build/service-worker.js server/app/web/static/js/
|
||||||
|
|
||||||
.PHONY: clean
|
|
||||||
clean: clean-lite clean-server
|
|
||||||
rm -rf client/node_modules
|
|
||||||
|
|
||||||
# cleaning node_modules is the longest one, so we avoid that if possible
|
|
||||||
.PHONY: clean-lite
|
|
||||||
clean-lite:
|
|
||||||
rm -rf $(CLEANFILES)
|
|
||||||
|
|
||||||
.PHONY: clean-server
|
|
||||||
clean-server:
|
|
||||||
rm -f server/app/web/templates/index.html
|
|
||||||
rm -rf server/app/web/static
|
|
||||||
|
|
||||||
# CREATING DISTRIBUTION RELEASE
|
# CREATING DISTRIBUTION RELEASE
|
||||||
|
|
||||||
@@ -61,6 +63,7 @@ pydist: build
|
|||||||
cd $(BUILDDIR); python setup.py sdist -d ../dist
|
cd $(BUILDDIR); python setup.py sdist -d ../dist
|
||||||
@echo "done"
|
@echo "done"
|
||||||
|
|
||||||
|
|
||||||
# RELEASE HELPERS
|
# RELEASE HELPERS
|
||||||
|
|
||||||
# create new version to commit to master
|
# create new version to commit to master
|
||||||
@@ -91,6 +94,7 @@ release-directly-to-prod: dev-env pydist twine-prod
|
|||||||
|
|
||||||
.PHONY: dev-env
|
.PHONY: dev-env
|
||||||
dev-env:
|
dev-env:
|
||||||
|
cd client && make install
|
||||||
pip install -r server/requirements-dev.txt
|
pip install -r server/requirements-dev.txt
|
||||||
|
|
||||||
.PHONY: gui-env
|
.PHONY: gui-env
|
||||||
@@ -113,7 +117,7 @@ twine-prod:
|
|||||||
# quicker than re-building client
|
# quicker than re-building client
|
||||||
.PHONY: gen-package-lock
|
.PHONY: gen-package-lock
|
||||||
gen-package-lock:
|
gen-package-lock:
|
||||||
npm install --prefix client/ client
|
cd client && $(MAKE) install
|
||||||
|
|
||||||
|
|
||||||
# INSTALL
|
# INSTALL
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
.PHONY: install
|
||||||
|
install:
|
||||||
|
npm install client
|
||||||
|
|
||||||
|
.PHONY: build
|
||||||
|
build: install
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -rf node_modules
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -f app/web/templates/index.html
|
||||||
|
rm -rf app/web/static
|
||||||
Reference in New Issue
Block a user