1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-21 18:07:58 +01:00
Files
pentadactyl-pm/Makefile
2007-08-27 12:08:21 +00:00

161 lines
5.1 KiB
Makefile

#### configuration
TOP = $(shell pwd)
VERSION = 0.6
OS = $(shell uname -s)
BUILD_DATE = $(shell date "+%Y/%m/%d %H:%M:%S")
JAR_FILES = ${shell find chrome/content -type f \
-a ! -path '*CVS*' \
-a \( -path '*.js' \
-o -path '*.css' \
-o -path '*.xul' \
-o -path '*.rdf' \
-o -path '*.png' \
\) } chrome.manifest
JAR_DIRS = $(foreach f,${JAR_FILES},$(dir $f))
JAR = chrome/vimperator.jar
XPI_TXT_FILES = install.rdf chrome.manifest TODO AUTHORS Donators NEWS
XPI_DIRS = $(foreach f,${XPI_FILES},$(dir $f))
XPI_BIN_FILES = ${JAR} Makefile
XPI_FILES = ${XPI_BIN_FILES} ${XPI_TXT_FILES}
XPI_NAME = vimperator_${VERSION}.xpi
XPI = ../downloads/${XPI_NAME}
RDF = ../downloads/update.rdf
RDF_IN = ${RDF}.in
BUILD_DIR = build.${VERSION}.${OS}
BUILD_JAR_DIR = ${BUILD_DIR}/jar
BUILD_XPI_DIR = ${BUILD_DIR}/xpi
BUILD_JAR_SUBDIRS = $(sort ${JAR_DIRS:%=${BUILD_JAR_DIR}/%})
BUILD_XPI_SUBDIRS = $(sort ${XPI_DIRS:%=${BUILD_XPI_DIR}/%})
ZIP = zip
SED = sed
# find the vimperator chrome dir
ifeq (${OS},Darwin)
FIREFOX_DEFAULT = $(wildcard ${HOME}/Library/Application\ Support/Firefox/Profiles/*default)
else
ifeq ($(findstring CYGWIN,${OS}),CYGWIN)
HOME = $(shell cygpath -sm "${USERPROFILE}")
FIREFOX_DEFAULT = $(wildcard ${HOME}/Application\ Data/Mozilla/Firefox/Profiles/*default)
else
FIREFOX_DEFAULT = $(wildcard ${HOME}/.mozilla/firefox/*.default)
endif
endif
VIMPERATOR_CHROME_EMAIL = ${FIREFOX_DEFAULT}/extensions/vimperator@mozdev.org/chrome/
FOUND_CHROME_UUID = $(dir $(wildcard ${FIREFOX_DEFAULT}/extensions/{*-*-*-*-*}/chrome/vimperator.jar))
FOUND_CHROME_EMAIL = $(dir $(wildcard ${VIMPERATOR_CHROME_EMAIL}))
FOUND_CHROME = $(if ${FOUND_CHROME_UUID},${FOUND_CHROME_UUID},${FOUND_CHROME_EMAIL})
INSTALL_CHROME = $(if ${FOUND_CHROME},${FOUND_CHROME},${VIMPERATOR_CHROME_EMAIL})
# specify V=1 on make line to see more verbose output
Q=$(if ${V},,@)
CP_V=$(if ${V},-v)
#### rules
.PHONY: all help info needs_chrome_dir jar xpi install clean
all: help
help:
@echo "vimperator ${VERSION} build"
@echo
@echo " make help - display this help"
@echo " make info - show some info about the system"
@echo " make jar - build a JAR (${JAR})"
@echo " make install - install into your firefox dir (run info)"
@echo " make xpi - build an XPI (${XPI_NAME})"
@echo " make release - updates update.rdf (this is not for you)"
@echo " make clean - clean up"
@echo
@echo "running some commands with V=1 will show more build details"
info:
@echo "version ${VERSION}"
@echo "release file ${XPI}"
@echo -e "jar files $(shell echo ${JAR_FILES} | sed 's/ /\\n /g' )"
@test -d "${FIREFOX_DEFAULT}" || ( echo "E: didn't find your .mozilla/firefox/*.default/ dir" ; false )
@echo "firefox default ${FIREFOX_DEFAULT}"
@test -d "${FOUND_CHROME}" || ( echo "E: didn't find an existing vimperator chrome dir" ; false )
@[ -n "${FOUND_CHROME_UUID}" ] && \
echo "vimperator chrome ${FOUND_CHROME_UUID}" || true
@[ -n "${FOUND_CHROME_EMAIL}" ] && \
echo "vimperator chrome ${FOUND_CHROME_EMAIL}" || true
@[ -z "${FOUND_CHROME_UUID}" -o -z "${FOUND_CHROME_EMAIL}" ] || \
(echo "E: you have multiple vimperator's installed, you need to fix that" ; false)
needs_chrome_dir:
@echo "Checking chrome dir..."
-${Q}mkdir -p "${INSTALL_CHROME}"
${Q}test -d "${INSTALL_CHROME}"
xpi: ${XPI}
jar: ${JAR}
install: needs_chrome_dir ${JAR}
@echo "Installing JAR..."
${Q}cp ${CP_V} ${JAR} "${INSTALL_CHROME}"
release: ${XPI} ${RDF}
${RDF}: ${RDF_IN} Makefile
@echo "Preparing release..."
${Q}${SED} -e "s,###VERSION###,${VERSION},g" \
-e "s,###DATE###,${BUILD_DATE},g" \
< $< > $@
@echo "SUCCESS: $@"
clean:
@echo "Cleanup..."
${Q}rm -f ${JAR} ${XPI}
${Q}find . -name '*~' -exec rm -f {} \;
${Q}rm -rf ${BUILD_DIR}
#### xpi
${BUILD_XPI_SUBDIRS}:
${Q}mkdir -p $@
${XPI}: ${BUILD_XPI_SUBDIRS} ${XPI_FILES}
@echo "Building XPI..."
${Q}mkdir -p $(dir ${XPI})
${Q}for f in ${XPI_BIN_FILES} ; do \
cp $$f ${BUILD_XPI_DIR}/$$f ; \
done
${Q}for f in ${XPI_TXT_FILES} ; do \
${SED} -e "s,###VERSION###,${VERSION},g" \
-e "s,###DATE###,${BUILD_DATE},g" \
< $$f > ${BUILD_XPI_DIR}/$$f ; \
( diff -q $$f ${BUILD_XPI_DIR}/$$f 1>/dev/null ) || \
( echo "modified: $$f" ; \
diff -u $$f ${BUILD_XPI_DIR}/$$f | grep '^[-+][^-+]' ) ; \
done
${Q}( cd ${BUILD_XPI_DIR} && ${ZIP} -r ${TOP}/${XPI} ${XPI_FILES} )
@echo "SUCCESS: $@"
#### jar
${BUILD_JAR_SUBDIRS}:
${Q}mkdir -p $@
${JAR}: ${BUILD_JAR_SUBDIRS} ${JAR_FILES}
@echo "Building JAR..."
${Q}for f in ${JAR_FILES} ; do \
${SED} -e "s,###VERSION###,${VERSION},g" \
-e "s,###DATE###,${BUILD_DATE},g" \
< $$f > ${BUILD_JAR_DIR}/$$f ; \
( diff -q $$f ${BUILD_JAR_DIR}/$$f 1>/dev/null ) || \
( echo "modified: $$f" ; \
diff -u $$f ${BUILD_JAR_DIR}/$$f | grep '^[-+][^-+]' ) ; \
done
${Q}( cd ${BUILD_JAR_DIR} && ${ZIP} -r ${TOP}/${JAR} ${JAR_FILES} )
@echo "SUCCESS: $@"