]> git.donarmstrong.com Git - dactyl.git/blobdiff - common/Makefile
finalize changelog for 7904
[dactyl.git] / common / Makefile
index b9e8022805f97598f6781d79fe4696f62c3e1d92..d0985841968bb35436a072ef7631f61f102cc697 100644 (file)
@@ -1,11 +1,17 @@
 #### configuration
 
 
+_SH       := $(shell if which dash >/dev/null 2>&1; \
+                    then echo dash; \
+                    else echo sh;   \
+                    fi)
+SH        ?= $(_SH)
 AWK       ?= awk
 B64ENCODE ?= base64
 CURL      ?= curl
 SED       := $(shell if [ "xoo" = x$$(echo foo | sed -E 's/f(o)/\1/' 2>/dev/null) ]; \
-                    then echo sed -E; else echo sed -r;                             \
+                    then echo sed -E; \
+                    else echo sed -r; \
                     fi)
 
 TOP           = $(shell pwd)
@@ -16,7 +22,7 @@ GOOGLE_PROJ   = dactyl
 GOOGLE       = https://$(GOOGLE_PROJ).googlecode.com/files
 VERSION             ?= $(shell $(SED) -n 's/.*em:version(>|=")(.*)["<].*/\2/p' $(TOP)/install.rdf | sed 1q)
 UUID                := $(shell $(SED) -n 's/.*em:id(>|=")(.*)["<].*/\2/p' $(TOP)/install.rdf | sed 1q)
-MANGLE      := $(shell date '+%s' | awk '{ printf "%x", $$1 }')
+MANGLE      := chrome
 MOZMILL       = mozmill
 HOSTAPP_PATH  = $(shell which $(HOSTAPP))
 TEST_DIR      = $(BASE)/tests/functional
@@ -28,19 +34,20 @@ LOCALEDIR     = locale
 DOC_FILES     = $(wildcard $(LOCALEDIR)/*/*.xml)
 
 export VERSION BUILD_DATE
-MAKE_JAR      = sh $(BASE)/make_jar.sh
+MAKE_JAR      = $(SH) $(BASE)/make_jar.sh
 
 # TODO: specify source files manually?
 JAR_BASES     = $(TOP) $(BASE)
+JAR_FILES     = config.json
 JAR_DIRS      = content skin locale modules
-JAR_TEXTS     = js jsm css dtd xml xul html xhtml xsl properties
+JAR_TEXTS     = js jsm css dtd xml xul html xhtml xsl properties json
 JAR_BINS      = png
 
 CHROME       = $(MANGLE)/
 JAR           = $(CHROME)$(NAME).jar
 
 XPI_BASES     = $(JAR_BASES) $(TOP)/..
-XPI_FILES     = bootstrap.js TODO AUTHORS Donors NEWS LICENSE.txt
+XPI_FILES     = icon.png icon64.png bootstrap.js TODO AUTHORS Donors NEWS LICENSE.txt
 XPI_DIRS      = components $(MANGLE) defaults
 XPI_TEXTS     = js jsm $(JAR_TEXTS)
 XPI_BINS      = $(JAR_BINS)
@@ -49,9 +56,6 @@ XPI_NAME      = $(NAME)-$(VERSION)
 XPI           =  ../downloads/$(XPI_NAME).xpi
 XPI_PATH      = $(TOP)/$(XPI:%.xpi=%)
 
-RDF           = ../downloads/update.rdf
-RDF_IN        = $(RDF).in
-
 BUILD_DIR     = build.$(VERSION).$(OS)
 
 .SILENT:
@@ -77,7 +81,6 @@ help:
        @echo "  make install    - installs this source tree directly to your $(HOSTAPP) profile"
        @echo '                    set $$PROFILE to select a profile by name and $$PROFILEPATHS'
        @echo '                    to change the directory where profiles are searched'
-       @echo "  make release    - updates update.rdf (this is not for you)"
        @echo "  make dist       - uploads to Google Code (this is not for you)"
        @echo "  make clean      - clean up"
        @echo "  make distclean  - clean up more"
@@ -93,28 +96,6 @@ info:
 
 jar: $(JAR)
 
-release: $(XPI) $(RDF)
-
-# This is not for you!
-dist: $(XPI)
-       @echo DIST $(XPI) $(GOOGLE)
-       set -e;                                                                 \
-                                                                               \
-       proj=$$(echo -n $(NAME) | sed 's/\(.\).*/\1/' | tr a-z A-Z);            \
-       proj="$$proj$$(echo $(NAME) | sed 's/.//')";                            \
-       [ -z "$$summary" ] && summary="$$proj $(VERSION) Release";              \
-       labels="Project-$$proj,$(labels)";                                      \
-       [ -n "$(featured)" ] && labels="$$labels,Featured";                     \
-                                                                               \
-       IFS=,; for l in $$labels; do                                            \
-               set -- "$$@" --form-string "label=$$l";                         \
-       done;                                                                   \
-       auth=$$(echo -n "$(GOOGLE_USER):$(GOOGLE_PASS)" | $(B64ENCODE));        \
-       $(CURL) "$$@" --form-string "summary=$$summary"                         \
-               -F "filename=@$(XPI)"                                           \
-               -H "Authorization: Basic $$auth"                                \
-               -i "$(GOOGLE)" | sed -n '/^Location/{p;q;}'
-
 install:
        export dir;                                                             \
        for dir in $(PROFILEPATHS); do                                          \
@@ -142,24 +123,23 @@ install:
                exit 1;                                                         \
        fi;                                                                     \
                                                                                \
-       ext="$$profile/extensions/$(UUID)";                                     \
-       mkdir -p "$$(dirname "$$ext")";                                         \
-       rm -rf "$$ext.xpi" "$$ext";                                             \
-       echo "Installing to $$ext";                                             \
-       if which cygpath >/dev/null 2>&1;                                       \
-       then cygpath -wa .;                                                     \
-       else pwd;                                                               \
-       fi >"$$ext"
+       install() {                                                             \
+               ext="$$profile/extensions/$$2";                                 \
+               mkdir -p "$$(dirname "$$ext")";                                 \
+               rm -rf "$$ext.xpi" "$$ext";                                     \
+                                                                               \
+               echo "Installing $$2 to $$ext";                                 \
+               if which cygpath >/dev/null 2>&1;                               \
+               then cygpath -wa $$1;                                           \
+               else (cd $$1; pwd);                                             \
+               fi >"$$ext";                                                    \
+       };                                                                      \
+       install . $(UUID);                                                      \
+       install ../binary binary@dactyl.googlecode.com;                         \
+
 installxpi: xpi
        $(HOSTAPP) $(XPI)
 
-$(RDF): $(RDF_IN) Makefile
-       @echo "Preparing release..."
-       $(SED) -e "s,@VERSION@,$(VERSION),g" \
-                  -e "s,@DATE@,$(BUILD_DATE),g" \
-                  < $< > $@
-       @echo "SUCCESS: $@"
-
 clean:
        @echo "General $(NAME) cleanup..."
        rm -f $(JAR) $(XPI)
@@ -183,6 +163,10 @@ xpi: $(CHROME)
               -f $(BASE)/process_manifest.awk \
               "$(TOP)/chrome.manifest" >"$(XPI_PATH)/chrome.manifest"
 
+       $(AWK) -v 'name=$(NAME)' -v 'suffix=$(MANGLE)' \
+              -f $(BASE)/process_config.awk \
+              "$(TOP)/config.json" >"$(XPI_PATH)/config.json"
+
        version="$(VERSION)";                   \
        hg root >/dev/null 2>&1 &&              \
        case "$$version" in                     \