Files
reddit/r2/Makefile
2009-05-29 12:04:00 -07:00

93 lines
2.8 KiB
Makefile

# The contents of this file are subject to the Common Public Attribution
# License Version 1.0. (the "License"); you may not use this file except in
# compliance with the License. You may obtain a copy of the License at
# http://code.reddit.com/LICENSE. The License is based on the Mozilla Public
# License Version 1.1, but Sections 14 and 15 have been added to cover use of
# software over a computer network and provide for limited attribution for the
# Original Developer. In addition, Exhibit A has been modified to be consistent
# with Exhibit B.
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
# the specific language governing rights and limitations under the License.
#
# The Original Code is Reddit.
#
# The Original Developer is the Initial Developer. The Initial Developer of the
# Original Code is CondeNet, Inc.
#
# All portions of the code written by CondeNet are Copyright (c) 2006-2009
# CondeNet, Inc. All Rights Reserved.
################################################################################
# Jacascript files to be compressified
js_targets = jquery.js jquery.json.js jquery.reddit.js reddit.js
# CSS targets
css_targets = reddit.css reddit-ie6-hax.css reddit-ie7-hax.css
SED=sed
package = r2
static_dir = $(package)/public/static
contrib = $(package)/lib/contrib
JSCOMPRESS = $(contrib)/jsmin.py
# If admin codebase is install, get its path so that we can build ini
# files against the primary production.ini
PRIVATEREPOS = $(shell python -c 'exec "try: import r2admin; print r2admin.__path__[0]\nexcept:pass"')
#------
JSTARGETS := $(foreach js, $(js_targets), $(static_dir)/$(js))
CSSTARGETS := $(foreach css, $(css_targets), $(static_dir)/$(css))
RTLCSS = $(CSSTARGETS:.css=-rtl.css)
MD5S = $(JSTARGETS:=.md5) $(CSSTARGETS:=.md5)
ifdef PRIVATEREPOS
INIUPDATE = $(wildcard *.update)
INIS = $(INIUPDATE:.update=.ini)
%.ini: %.update
ln -sf `pwd`/$< $(PRIVATEREPOS)/..
make -C $(PRIVATEREPOS)/.. $@
ln -sf $(PRIVATEREPOS)/../$@ .
endif
all: $(JSTARGETS) $(CSSTARGETS) $(MD5S) $(RTLCSS) $(INIS)
.PHONY: js css md5 rtl clean all
$(MD5S): %.md5 : %
cat $< | openssl md5 > $@
$(JSTARGETS): $(static_dir)/%.js : $(static_dir)/js/%.js
$(JSCOMPRESS) < $< > $@
$(CSSTARGETS): $(static_dir)/%.css : $(static_dir)/css/%.css
$(SED) -e 's/ \+/ /' \
-e 's/\/\*.*\*\///g' \
-e 's/: /:/' \
$< | grep -v "^ *$$" > $@
$(RTLCSS): %-rtl.css : %.css
$(SED) -e "s/left/>####</g" \
-e "s/right/left/g" \
-e "s/>####</right/g" \
-e "s/\(margin\|padding\):\s*\([^; ]\+\)\s\+\([^; ]\+\)\s\+\([^; ]\+\)\s\+\([^; ]\+\)/\1:\2 \5 \4 \3/g" $< > $@
js: $(JSTARGETS)
css: $(CSSTARGETS)
md5: $(MD5S)
rtl: $(RTLCSS)
clean:
rm $(JSTARGETS) $(CSSTARGETS) $(MD5S) $(INIS)