#### 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)
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
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)
XPI = ../downloads/$(XPI_NAME).xpi
XPI_PATH = $(TOP)/$(XPI:%.xpi=%)
-RDF = ../downloads/update.rdf
-RDF_IN = $(RDF).in
-
BUILD_DIR = build.$(VERSION).$(OS)
.SILENT:
@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"
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 \
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)
-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 \