X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=Makefile;h=31ee234baea84cfee8e1d81175c257d023e97f33;hb=7ac6b8ac4422eeff85370e103c72c9413343e879;hp=73f0bf95b30eabb27b06d307f997aedb9dfadb44;hpb=302dd5bda1297ed6579ca26da35ee67f8d35d934;p=myslice.git diff --git a/Makefile b/Makefile index 73f0bf95..31ee234b 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,13 @@ SHELL = /bin/bash MAKE-SILENT = $(MAKE) --no-print-directory -### first purpose, build and install from the specfile -all: build +all: static templates + +# clean up and recompute +redo: clean-oldies redo-static redo-templates + +clean-oldies: + rm -rf all-static all-templates django-static force: @@ -13,7 +18,8 @@ bindir := /usr/bin PWD := $(shell pwd) -build: static templates +# +build: static templates force python setup.py build install: @@ -22,6 +28,14 @@ install: --install-scripts=$(DESTDIR)/$(datadir)/unfold \ --install-data=$(DESTDIR)/$(datadir)/unfold +static: force + ./manage.py collectstatic --noinput + +clean-static: + rm -rf static/ + +redo-static: clean-static static + #################### # general stuff DATE=$(shell date -u +"%a, %d %b %Y %T") @@ -52,100 +66,93 @@ debian.clean: find . -name '*.pyc' -delete -#################### third-party layout is kind of special -# because we have differents versions, and also we -# try to preserve the file structure from upstream -# so let's handle this manually -THIRD-PARTY-RESOURCES = -# ignore variants, use the main symlink third-party/bootstrap -THIRD-PARTY-RESOURCES += $(shell ls third-party/bootstrap/*/*) -# just the single js as identified with a symlink -THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/js/dataTables.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/js/dataTables.bootstrap.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/css/dataTables.bootstrap.css) -# likewise -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery/js/jquery.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery/js/jquery.min.js) -# for storing the visible status of plugins -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-html5storage/jquery.html5storage.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-html5storage/jquery.html5storage.min.js) -# creating queries uuids on the fly -THIRD-PARTY-RESOURCES += $(shell ls third-party/uuid/Math.uuid.js) -# spin comes in plain or min, + the jquery plugin, and our own settings -THIRD-PARTY-RESOURCES += $(shell ls third-party/spin/*.js) -# used in QueryCode -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shCore.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shAutoloader.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shBrushPython.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shBrushRuby.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shCore.css) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shCoreDefault.css) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shThemeDefault.css) -# wizard plugin -THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/js/jquery.smartWizard-2.0.js) -#THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/js/jquery.smartWizard-2.0.min.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/styles/smart_wizard.css) -# jquery.notify -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/jquery.notify.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/jquery.notify.min.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/ui.notify.css) -# CodeMirror -THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/lib/codemirror.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/lib/codemirror.css) -THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/mode/sql/sql.js) - -thirdparty-js: - @find $(THIRD-PARTY-RESOURCES) -name '*.js' -thirdparty-css: - @find $(THIRD-PARTY-RESOURCES) -name '*.css' -thirdparty-img: - @find $(THIRD-PARTY-RESOURCES) -name '*.png' -o -name '*.ico' - -# we might have any of these as templates - e.g. ./unfold/templates/plugin-init.js -# so if there's a /templates/ in the path ignore the file -local-js: force - @find . -type f -name '*.js' | egrep -v '/all-(static|templates)/|/third-party/|/templates/' -local-css: force - @find . -type f -name '*.css' | egrep -v 'all-(static|templates)/|/third-party/|/templates/' -local-img: force - @find . -type f -name '*.png' -o -name '*.ico' | egrep -v 'all-(static|templates)/|/third-party/|/templates/' - -list-js: thirdparty-js local-js -list-css: thirdparty-css local-css -list-img: thirdparty-img local-img +### #################### third-party layout is kind of special +### # because we have differents versions, and also we +### # try to preserve the file structure from upstream +### # so let's handle this manually +### THIRD-PARTY-RESOURCES = +### # ignore variants, use the main symlink third-party/bootstrap +### THIRD-PARTY-RESOURCES += $(shell ls third-party/bootstrap/*/*) +### # just the single js as identified with a symlink +### THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/js/dataTables.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/js/dataTables.bootstrap.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/css/dataTables.bootstrap.css) +### # likewise +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery/js/jquery.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery/js/jquery.min.js) +### # for storing the visible status of plugins +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-html5storage/jquery.html5storage.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-html5storage/jquery.html5storage.min.js) +### # creating queries uuids on the fly +### THIRD-PARTY-RESOURCES += $(shell ls third-party/uuid/Math.uuid.js) +### # spin comes in plain or min, + the jquery plugin, and our own settings +### THIRD-PARTY-RESOURCES += $(shell ls third-party/spin/*.js) +### # used in QueryCode +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shCore.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shAutoloader.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shBrushPython.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shBrushRuby.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shCore.css) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shCoreDefault.css) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shThemeDefault.css) +### # wizard plugin +### THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/js/jquery.smartWizard-2.0.js) +### #THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/js/jquery.smartWizard-2.0.min.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/styles/smart_wizard.css) +### # jquery.notify +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/jquery.notify.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/jquery.notify.min.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/ui.notify.css) +### # CodeMirror +### THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/lib/codemirror.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/lib/codemirror.css) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/mode/sql/sql.js) +### # Mustache.js +### THIRD-PARTY-RESOURCES += $(shell ls third-party/mustache/mustache.js) +### # markerclustererplus for the googlemap plugin +### THIRD-PARTY-RESOURCES += $(shell ls third-party/markerclusterer/markerclusterer.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/markerclusterer/markerclusterer_packed.js) +### +### thirdparty-js: +### @find $(THIRD-PARTY-RESOURCES) -name '*.js' +### thirdparty-css: +### @find $(THIRD-PARTY-RESOURCES) -name '*.css' +### thirdparty-img: +### @find $(THIRD-PARTY-RESOURCES) -name '*.png' -o -name '*.ico' +### +### # we might have any of these as templates - e.g. ./unfold/templates/plugin-init.js +### # so if there's a /templates/ in the path ignore the file +### local-js: force +### @find . -type f -name '*.js' | egrep -v '/all-(static|templates)/|/third-party/|/templates/' +### local-css: force +### @find . -type f -name '*.css' | egrep -v 'all-(static|templates)/|/third-party/|/templates/' +### local-img: force +### @find . -type f -name '*.png' -o -name '*.ico' | egrep -v 'all-(static|templates)/|/third-party/|/templates/' +### +### list-js: thirdparty-js local-js +### list-css: thirdparty-css local-css +### list-img: thirdparty-img local-img # having templates in a templates/ subdir is fine most of the time except for plugins plugins-templates: force @find plugins -type f -name '*.html' local-templates: force - @$(foreach tmpl,$(shell find . -name templates),ls -1 $(tmpl)/*;) + @$(foreach tmpl,$(shell find . -name templates | grep -v '^\./templates$$'),ls -1 $(tmpl)/*;) list-templates: plugins-templates local-templates -#################### manage static contents (extract from all the modules into the single all-static location) -static run-static static-run: force - mkdir -p ./all-static/js all-static/css all-static/img - ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-js),../../$(x)) ./all-static/js - ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-css),../../$(x)) ./all-static/css - ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-img),../../$(x)) ./all-static/img - -clean-static static-clean: force - rm -rf ./all-static - -all-static: clean-static run-static - #################### manage templates for the plugin area -templates run-templates templates-run: force - mkdir -p all-templates - ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-templates),../$(x)) ./all-templates +templates: force + mkdir -p templates + ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-templates),../$(x)) ./templates clean-templates templates-clean: force - rm -rf ./all-templates + rm -rf ./templates -all-templates: clean-templates run-templates +redo-templates: clean-templates templates #################### -list-all list-resources: list-templates list-js list-css list-img +### list-all list-resources: list-templates list-js list-css list-img #################### compute emacs tags # list files under git but exclude third-party stuff like bootstrap and jquery @@ -167,7 +174,7 @@ SSHCOMMAND:=ssh root@$(MYSLICEBOX) ### rsync options # the config file should probably not be overridden ?? # --exclude settings.py -LOCAL_RSYNC_EXCLUDES := --exclude '*.pyc' --exclude config.py --exclude all-static --exclude all-templates --exclude '*.sqlite3' --exclude play/ +LOCAL_RSYNC_EXCLUDES := --exclude '*.pyc' --exclude config.py --exclude static --exclude templates --exclude '*.sqlite3' --exclude play/ # usual excludes RSYNC_EXCLUDES := --exclude .git --exclude '*~' --exclude TAGS --exclude .DS_Store $(LOCAL_RSYNC_EXCLUDES) # make -n will propagate as rsync -n