~bcsaller/juju-gui/update-reductions

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Gary Poster
  • Date: 2012-12-20 21:59:21 UTC
  • mto: This revision was merged to the branch mainline in revision 293.
  • Revision ID: gary.poster@canonical.com-20121220215921-qw5hqm7a8uymvwfr
Correct release docs; improve review docs; make all files served locally, so https can work; update makefile to have better names for build artifacts and more correctly designate phony targets; reduce unnecessary duplication of file creation in repeated Makefile runs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
108
108
TEMPLATE_TARGETS=$(shell find app/templates -type f ! -name '.*' ! -name '*.swp' ! -name '*~' ! -name '\#*' -print)
109
109
 
110
110
SPRITE_SOURCE_FILES=$(shell find app/assets/images -type f ! -name '.*' ! -name '*.swp' ! -name '*~' ! -name '\#*' -print)
111
 
SPRITE_GENERATED_FILES=build/juju-ui/assets/sprite.css \
112
 
        build/juju-ui/assets/sprite.png
113
 
BUILD_FILES=build/juju-ui/assets/app.js \
114
 
        build/juju-ui/assets/all-yui.js \
115
 
        build/juju-ui/assets/combined-css/all-static.css
 
111
SPRITE_GENERATED_FILES=build-shared/juju-ui/assets/sprite.css \
 
112
        build-shared/juju-ui/assets/sprite.png
 
113
BUILD_FILES=build-shared/juju-ui/assets/app.js \
 
114
        build-shared/juju-ui/assets/all-yui.js \
 
115
        build-shared/juju-ui/assets/combined-css/all-static.css
116
116
JAVASCRIPT_LIBRARIES=app/assets/javascripts/d3.v2.js \
117
117
        app/assets/javascripts/d3.v2.min.js app/assets/javascripts/yui
118
118
DATE=$(shell date -u)
119
 
APPCACHE=build/juju-ui/assets/manifest.appcache
 
119
APPCACHE=build-shared/juju-ui/assets/manifest.appcache
120
120
 
121
121
# Some environments, notably sudo, do not populate the default PWD environment
122
122
# variable, which is used to set $(PWD).  Worse, in some situations, such as
132
132
 
133
133
help:
134
134
        @echo "Main targets:"
135
 
        @echo "[no target]: build the debug and production environments"
 
135
        @echo "[no target] or build: build the debug and production environments"
136
136
        @echo "devel: run the development environment (dynamic templates/CSS)"
137
137
        @echo "debug: run the debugging environment (static templates/CSS)"
138
138
        @echo "prod: run the production environment (aggregated, compressed files)"
147
147
        @echo "help: this description"
148
148
        @echo "Other, less common targets are available, see Makefile."
149
149
 
150
 
build/juju-ui/templates.js: $(TEMPLATE_TARGETS) bin/generateTemplates
151
 
        mkdir -p build/juju-ui/assets
 
150
build-shared/juju-ui/templates.js: $(TEMPLATE_TARGETS) bin/generateTemplates
 
151
        mkdir -p build-shared/juju-ui/assets
152
152
        bin/generateTemplates
153
153
 
154
154
yuidoc/index.html: node_modules/yuidocjs $(JSFILES)
233
233
 
234
234
spritegen: $(SPRITE_GENERATED_FILES)
235
235
 
236
 
$(BUILD_FILES): $(JSFILES) $(THIRD_PARTY_JS) build/juju-ui/templates.js \
 
236
$(BUILD_FILES): $(JSFILES) $(THIRD_PARTY_JS) build-shared/juju-ui/templates.js \
237
237
                bin/merge-files lib/merge-files.js | $(JAVASCRIPT_LIBRARIES)
238
238
        rm -f $(BUILD_FILES)
239
 
        mkdir -p build/juju-ui/assets/combined-css/
 
239
        mkdir -p build-shared/juju-ui/assets/combined-css/
240
240
        bin/merge-files
241
241
 
242
242
build-files: $(BUILD_FILES)
254
254
        build-$(1)/juju-ui/assets/sprite.css \
255
255
        build-$(1)/juju-ui/assets/sprite.png \
256
256
        build-$(1)/juju-ui/assets/combined-css/rail-x.png \
257
 
        build-$(1)/juju-ui/assets/skins/night/ \
258
 
        build-$(1)/juju-ui/assets/skins/sam/ build-$(1)/juju-ui/assets/all-yui.js
 
257
        build-$(1)/juju-ui/assets/all-yui.js
259
258
 
260
259
LINK_DEBUG_FILES=$(call shared-link-files-list,debug) \
261
260
        build-debug/juju-ui/app.js build-debug/juju-ui/models \
274
273
        ln -sf "$(PWD)/app/modules-$(1).js" build-$(1)/juju-ui/assets/modules.js
275
274
        ln -sf "$(PWD)/app/assets/images" build-$(1)/juju-ui/assets/
276
275
        ln -sf "$(PWD)/app/assets/svgs" build-$(1)/juju-ui/assets/
277
 
        ln -sf "$(PWD)/build/juju-ui/version.js" build-$(1)/juju-ui/
278
 
        ln -sf "$(PWD)/build/juju-ui/assets/app.js" build-$(1)/juju-ui/assets/
279
 
        ln -sf "$(PWD)/build/juju-ui/assets/manifest.appcache" \
 
276
        ln -sf "$(PWD)/build-shared/juju-ui/version.js" build-$(1)/juju-ui/
 
277
        ln -sf "$(PWD)/build-shared/juju-ui/assets/app.js" build-$(1)/juju-ui/assets/
 
278
        ln -sf "$(PWD)/build-shared/juju-ui/assets/manifest.appcache" \
280
279
                build-$(1)/juju-ui/assets/
281
 
        ln -sf "$(PWD)/build/juju-ui/assets/combined-css/all-static.css" \
 
280
        ln -sf "$(PWD)/build-shared/juju-ui/assets/combined-css/all-static.css" \
282
281
                build-$(1)/juju-ui/assets/combined-css/
283
 
        ln -sf "$(PWD)/build/juju-ui/assets/juju-gui.css" build-$(1)/juju-ui/assets/
284
 
        ln -sf "$(PWD)/build/juju-ui/assets/sprite.css" build-$(1)/juju-ui/assets/
285
 
        ln -sf "$(PWD)/build/juju-ui/assets/sprite.png" build-$(1)/juju-ui/assets/
 
282
        ln -sf "$(PWD)/build-shared/juju-ui/assets/juju-gui.css" build-$(1)/juju-ui/assets/
 
283
        ln -sf "$(PWD)/build-shared/juju-ui/assets/sprite.css" build-$(1)/juju-ui/assets/
 
284
        ln -sf "$(PWD)/build-shared/juju-ui/assets/sprite.png" build-$(1)/juju-ui/assets/
286
285
        ln -sf "$(PWD)/node_modules/yui/assets/skins/sam/rail-x.png" \
287
286
                build-$(1)/juju-ui/assets/combined-css/rail-x.png
288
287
        ln -sf "$(PWD)/node_modules/yui/event-simulate/event-simulate.js" \
311
310
        ln -sf "$(PWD)/app/assets/javascripts/yui/yui/yui-debug.js" \
312
311
                build-debug/juju-ui/assets/all-yui.js
313
312
        ln -sf "$(PWD)/app/assets/javascripts" build-debug/juju-ui/assets/
314
 
        ln -sf "$(PWD)/build/juju-ui/templates.js" build-debug/juju-ui/
 
313
        ln -sf "$(PWD)/build-shared/juju-ui/templates.js" build-debug/juju-ui/
315
314
 
316
315
$(LINK_PROD_FILES):
317
316
        $(call link-files,prod)
318
 
        ln -sf "$(PWD)/build/juju-ui/assets/all-yui.js" build-prod/juju-ui/assets/
 
317
        ln -sf "$(PWD)/build-shared/juju-ui/assets/all-yui.js" build-prod/juju-ui/assets/
319
318
 
320
319
prep: beautify lint
321
320
 
355
354
        cd build-prod && python -m SimpleHTTPServer 8888
356
355
 
357
356
clean:
358
 
        rm -rf build build-debug build-prod
 
357
        rm -rf build-shared build-debug build-prod
359
358
        find app/assets/javascripts/ -type l | xargs rm -rf
360
359
 
361
360
clean-deps:
367
366
 
368
367
clean-all: clean clean-deps clean-docs
369
368
 
370
 
build: build-prod build-debug
371
 
 
372
 
build-devel: $(APPCACHE) $(NODE_TARGETS) spritegen \
373
 
          $(BUILD_FILES) build/juju-ui/version.js
374
 
 
375
 
build-debug: build-devel | $(LINK_DEBUG_FILES)
376
 
 
377
 
build-prod: build-devel | $(LINK_PROD_FILES)
 
369
build: build-prod build-debug build-devel
 
370
 
 
371
build-shared: $(APPCACHE) $(NODE_TARGETS) spritegen \
 
372
          $(BUILD_FILES) build-shared/juju-ui/version.js
 
373
 
 
374
# build-devel is phony. build-shared, build-debug, and build-common are real.
 
375
build-devel: build-shared
 
376
 
 
377
build-debug: build-shared | $(LINK_DEBUG_FILES)
 
378
 
 
379
build-prod: build-shared | $(LINK_PROD_FILES)
378
380
 
379
381
$(APPCACHE): manifest.appcache.in
380
 
        mkdir -p build/juju-ui/assets
 
382
        mkdir -p build-shared/juju-ui/assets
381
383
        cp manifest.appcache.in $(APPCACHE)
382
384
        sed -re 's/^\# TIMESTAMP .+$$/\# TIMESTAMP $(DATE)/' -i $(APPCACHE)
383
385
 
386
388
# one by connecting it to our pertinent versioned files.  The appcache target
387
389
# creates the third, and directories are a bit tricky with Makefiles so we are
388
390
# OK with that.
389
 
build/juju-ui/version.js: $(APPCACHE) CHANGES.yaml $(JSFILES) $(TEMPLATE_TARGETS) \
 
391
build-shared/juju-ui/version.js: $(APPCACHE) CHANGES.yaml $(JSFILES) $(TEMPLATE_TARGETS) \
390
392
                $(SPRITE_SOURCE_FILES)
391
393
        echo "var jujuGuiVersionInfo=['$(RELEASE_VERSION)', '$(BZR_REVNO)'];" \
392
 
            > build/juju-ui/version.js
 
394
            > build-shared/juju-ui/version.js
393
395
 
394
396
upload_release.py:
395
397
        bzr cat lp:launchpadlib/contrib/upload_release_tarball.py \
452
454
appcache-force: appcache-touch $(APPCACHE)
453
455
 
454
456
# targets are alphabetically sorted, they like it that way :-)
455
 
.PHONY: appcache-force appcache-touch beautify build \
456
 
        build-debug build-files build-prod clean clean clean-all \
 
457
.PHONY: appcache-force appcache-touch beautify \
 
458
        build-files build-devel clean clean-all \
457
459
        clean-deps clean-docs debug devel docs dist gjslint help \
458
460
        jshint lint prep prod server spritegen test test-debug test-prod \
459
 
        undocumented yuidoc yuidoc-lint
 
461
        undocumented yuidoc yuidoc-lint all
460
462
 
461
463
.DEFAULT_GOAL := all