Fixing permissions
[text-to-image.git] / Makefile.common~
blob5bdb7080609807036169baa6988afeba6528abf3
1 # Heavily based on vimperator's makefile
3 #### configuration
5 TOP           = $(shell pwd)
6 OS            = $(shell uname -s)
7 BUILD_DATE    = $(shell date "+%Y-%m-%d %H:%M:%S")
8 NIGHTLY_DATE  = $(shell date "+%Y%m%d")
9 GIT_VERSION   = $(shell git describe)
11 JAR_TXT_FILES = $(shell find -L content skin locale     \
12                         -type f                         \
13                         -a \(                           \
14                                 -path '*.js'            \
15                              -o -path '*.css'           \
16                              -o -path '*.xul'           \
17                              -o -path '*.*html'         \
18                              -o -path '*.dtd'           \
19                              -o -path '*/NEWS'          \
20                         \)                              \
21                 )
22 JAR_BIN_FILES = $(shell find content skin               \
23                         -type f                         \
24                         -a \(                           \
25                                 -path '*.png'           \
26                              -o -path '*.gif'           \
27                              -o -path '*.bz2'           \
28                         \)                              \
29                 )
30 JAR_FILES     = ${JAR_BIN_FILES} ${JAR_TXT_FILES}
31 JAR_DIRS      = $(foreach f,${JAR_FILES},$(dir $f))
32 JAR           = chrome/${NAME}.jar
34 XPI_BIN_FILES = ${JAR}
35 XPI_FILES     = ${XPI_BIN_FILES} ${XPI_TXT_FILES}
36 XPI_DIRS      = $(foreach f,${XPI_FILES},$(dir $f))
37 XPI_NAME      = ${NAME}-${VERSION}.xpi
38 XPI           = ${XPI_NAME}
39 MOZXPI        = ${NAME}-${VERSION}_amo.xpi
40 NIGHTLYXPI    = ${NAME}-${VERSION}${NIGHTLY_DATE}.xpi
42 BUILD_DIR     = build.${VERSION}.${OS}
43 BUILD_JAR_DIR = ${BUILD_DIR}/jar
44 BUILD_XPI_DIR = ${BUILD_DIR}/xpi
46 BUILD_JAR_SUBDIRS = $(sort ${JAR_DIRS:%=${BUILD_JAR_DIR}/%})
47 BUILD_XPI_SUBDIRS = $(sort ${XPI_DIRS:%=${BUILD_XPI_DIR}/%})
49 ZIP = zip
50 SED = sed
51 PERL = perl
53 #### rules
55 .PHONY: all help info jar xpi mozxpi install clean distclean nightly upnightly uprelease
56 all: help
58 help:
59         @echo "${NAME} ${VERSION} build"
60         @echo "  make help      - display this help"
61         @echo "  make info      - show some info about the system"
62         @echo "  make jar       - build a JAR (${JAR})"
63         @echo "  make xpi       - build an XPI (${XPI_NAME})"
64         @echo "  make mozxpi    - build an XPI (${MOZXPI}) for Mozilla Addons"
65         @echo "  make nightly   - build a nightly (${NIGHTLYXPI})"
66         @echo "  make upnightly - upload a nightly snapshot and its update RDF (not for you)"
67         @echo "  make uprelease - upload a new release and accompanying files (not for you)"
68         @echo "  make clean     - clean up"
69         @echo "  make distclean - clean up more"
71 info:
72         @echo    "version            ${VERSION}"
73         @echo    "release file       ${XPI}"
74         @echo -e "jar files          $(shell echo ${JAR_FILES} | sed 's/ /\\n                   /g' )"
75         @echo -e "xpi files          $(shell echo ${XPI_FILES} | sed 's/ /\\n                   /g' )"
77 xpi: ${XPI}
78 jar: ${JAR}
80 mozxpi: ${MOZXPI}
81 nightly: ${NIGHTLYXPI}
83 clean:
84         @echo "Cleanup..."
85         ${Q}rm -f ${JAR} ${XPI} ${MOZXPI} ${NIGHTLYXPI}
86         ${Q}find . -name '*~' -exec rm -f {} \;
88 distclean: clean
89         @echo "More cleanup..."
90         ${Q}rm -rf ${BUILD_DIR}
92 upnightly: ${NIGHTLYXPI}
93         ${Q}( cd release/ && ./mknightly.sh ${NIGHTLYXPI} ${VERSION}${NIGHTLY_DATE} ${VERSION} )
95 uprelease: ${XPI}
96         ${Q}( cd release/ && ./mkrelease.py -x ${XPI_NAME} \
97                 --hash "sha1:$(shell sha1sum ${XPI} |cut -d ' ' -f 1)" \
98                 ${VERSION} > release.rdf )
99         ${Q}( cd release/ && ./mknews.py ${VERSION} > ${VERSION}.xhtml )
100         ${Q}( cd release/ && ./put.py ../${XPI} ${XPI_NAME} ${VERSION}.xhtml news/${VERSION}.xhtml)
101         ${Q}( rm -f release/${VERSION}.xhtml )
102         @echo
103         @echo "Sign ./release/release.rdf with McCoy and upload."
105 #### xpi
107 ${BUILD_XPI_SUBDIRS}:
108         ${Q}mkdir -p $@
110 ${XPI}: ${BUILD_XPI_SUBDIRS} ${XPI_FILES}
111         @echo "Building XPI..."
112         ${Q}mkdir -p $(dir ${XPI})
113         ${Q}for f in ${XPI_BIN_FILES} ; do \
114                 cp $$f ${BUILD_XPI_DIR}/$$f ; \
115             done
116         ${Q}for f in ${XPI_TXT_FILES} ; do \
117                 ${SED} -e "s,###VERSION###,${VERSION},g" \
118                        -e "s,###GIT_VERSION###,${GIT_VERSION},g" \
119                        -e "s,###DATE###,${BUILD_DATE},g" \
120                        < $$f > ${BUILD_XPI_DIR}/$$f ; \
121                 ( diff -q $$f ${BUILD_XPI_DIR}/$$f 1>/dev/null ) || \
122                 ( echo "modified: $$f" ; \
123                   diff -u $$f ${BUILD_XPI_DIR}/$$f | grep '^[-+][^-+]' ) ; \
124             done
125         ${Q}${PERL} -pe 's,\s(skin|content|locale)/, jar:${JAR}!/\1/,' \
126                    < chrome.manifest > ${BUILD_XPI_DIR}/chrome.manifest
127         ${Q}( cd ${BUILD_XPI_DIR} && ${ZIP} -r9 ${TOP}/${XPI} ${XPI_FILES} )
128         @echo "SUCCESS: $@"
130 ${MOZXPI}: ${BUILD_XPI_SUBDIRS} ${XPI_FILES}
131         @echo "Building XPI for Mozilla Addons..."
132         ${Q}mkdir -p $(dir ${MOZXPI})
133         ${Q}for f in ${XPI_BIN_FILES} ; do \
134                 cp $$f ${BUILD_XPI_DIR}/$$f ; \
135             done
136         ${Q}for f in ${XPI_TXT_FILES} ; do \
137                 ${SED} -e "s,###VERSION###,${VERSION},g" \
138                        -e "s,###GIT_VERSION###,${GIT_VERSION},g" \
139                        -e "s,###DATE###,${BUILD_DATE},g" \
140                            -e "s,<em:updateURL>.*</em:updateURL>,,g" \
141                            -e "s,<em:updateKey>.*</em:updateKey>,,g" \
142                        < $$f > ${BUILD_XPI_DIR}/$$f ; \
143                 ( diff -q $$f ${BUILD_XPI_DIR}/$$f 1>/dev/null ) || \
144                 ( echo "modified: $$f" ; \
145                   diff -u $$f ${BUILD_XPI_DIR}/$$f | grep '^[-+][^-+]' ) ; \
146             done
147         ${Q}${PERL} -pe 's,\s(skin|content|locale)/, jar:${JAR}!/\1/,' \
148                    < chrome.manifest > ${BUILD_XPI_DIR}/chrome.manifest
149         ${Q}( cd ${BUILD_XPI_DIR} && ${ZIP} -r9 ${TOP}/${MOZXPI} ${XPI_FILES} )
150         @echo "SUCCESS: $@"
152 ${NIGHTLYXPI}: ${BUILD_XPI_SUBDIRS} ${XPI_FILES}
153         @echo "Building nightly XPI..."
154         ${Q}mkdir -p $(dir ${NIGHTLYXPI})
155         ${Q}for f in ${XPI_BIN_FILES} ; do \
156                 cp $$f ${BUILD_XPI_DIR}/$$f ; \
157             done
158         ${Q}for f in ${XPI_TXT_FILES} ; do \
159                 ${SED} -e "s,###VERSION###,${VERSION},g" \
160                        -e "s,###GIT_VERSION###,${GIT_VERSION},g" \
161                        -e "s,###DATE###,${BUILD_DATE},g" \
162                            -e "s,<em:version>\([0-9.]\+\)pre</em:version>,<em:version>\1pre${NIGHTLY_DATE}</em:version>,g" \
163                            -e "s,<em:updateURL>.*</em:updateURL>,<em:updateURL>http://beyondboredom.net/gfox/nightly.rdf</em:updateURL>,g" \
164                            -e "s,<em:updateKey>.*</em:updateKey>,<em:updateKey>MIGfMA0GCSqGSIb3DQEB\
165 AQUAA4GNADCBiQKBgQC7eAy22UWonorb/WB+eeDeE6eMDgRB9gjRt4LGzoOB+jgxc1ZkOMuLwbU599zu+GvW038T\
166 LCyUgpvEC6Nh5NoOryFCKbPNM/Hun+GPITbSl59ZqpRj9mFie5ASlPnU3xI+FG5czTJLsBSAZF6pfhnCNzfcVD9mH\
167 gvy+qXLl73fXQIDAQAB</em:updateKey>,g" \
168                        < $$f > ${BUILD_XPI_DIR}/$$f ; \
169                 ( diff -q $$f ${BUILD_XPI_DIR}/$$f 1>/dev/null ) || \
170                 ( echo "modified: $$f" ; \
171                   diff -u $$f ${BUILD_XPI_DIR}/$$f | grep '^[-+][^-+]' ) ; \
172             done
173         ${Q}${PERL} -pe 's,\s(skin|content|locale)/, jar:${JAR}!/\1/,' \
174                    < chrome.manifest > ${BUILD_XPI_DIR}/chrome.manifest
175         ${Q}( cd ${BUILD_XPI_DIR} && ${ZIP} -r9 ${TOP}/${NIGHTLYXPI} ${XPI_FILES} )
176         @echo "SUCCESS: $@"
179 #### jar
181 ${BUILD_JAR_SUBDIRS}:
182         ${Q}mkdir -p $@
184 ${JAR}: ${BUILD_JAR_SUBDIRS} ${JAR_FILES}
185         @echo "Building JAR..."
186         ${Q}mkdir -p $(dir ${JAR})
187         ${Q}for f in ${JAR_BIN_FILES} ; do \
188                 cp $$f ${BUILD_JAR_DIR}/$$f ; \
189             done
190         ${Q}for f in ${JAR_TXT_FILES} ; do \
191                 ${SED} -e "s,###VERSION###,${VERSION},g" \
192                        -e "s,###DATE###,${BUILD_DATE},g" \
193                        < $$f > ${BUILD_JAR_DIR}/$$f ; \
194                 ( diff -q $$f ${BUILD_JAR_DIR}/$$f 1>/dev/null ) || \
195                 ( echo "modified: $$f" ; \
196                   diff -u $$f ${BUILD_JAR_DIR}/$$f | grep '^[-+][^-+]' ) ; \
197             done
198         ${Q}( cd ${BUILD_JAR_DIR} && ${ZIP} -r0 ${TOP}/${JAR} ${JAR_FILES} )
199         @echo "SUCCESS: $@"