Adding a makefile
[gc-dialer] / Makefile
1 PROJECT_NAME=gc_dialer
2 SOURCE_PATH=./gc_dialer
3 SOURCE=$(SOURCE_PATH)/gc_dialer.py $(SOURCE_PATH)/gcbackend.py $(SOURCE_PATH)/browser_emu.py
4 OBJ=$(SOURCE:.py=.pyc)
5 TEST_PATH=./tests
6 TAG_FILE=~/.ctags/$(PROJECT_NAME).tags
7
8 PLATFORM=desktop
9 ifeq ($(PLATFORM),os2007)
10         LEGACY_GLADE=1
11 else
12         LEGACY_GLADE=0
13 endif
14 PACKAGE_PATH=./pkg-$(PLATFORM)
15 BUILD_PATH=./build-$(PLATFORM)
16 BUILD_BIN=$(BUILD_PATH)/gc_dialer.py
17
18 UNIT_TEST=nosetests -w $(TEST_PATH)
19 STYLE_TEST=../../Python/tools/pep8.py --ignore=W191
20 LINT=pylint --rcfile=./support/pylint.rc
21 COVERAGE_TEST=figleaf
22 PROFILER=pyprofiler
23 CTAGS=ctags-exuberant
24
25 .PHONY: all test lint tags build package clean
26
27 all: test tags package
28
29 test: $(SOURCE)
30         cd $(SOURCE_PATH) ; ./gc_dialer.py -t
31
32 lint: $(SOURCE_PATH)
33         $(foreach file, $(SOURCE_PATH), $(LINT) $(file) ; )
34
35 tags: $(TAG_FILE) 
36
37 build: $(BUILD_BIN)
38         mkdir -p $(BUILD_PATH)
39
40         cp $(SOURCE_PATH)/gc_dialer_256.png $(BUILD_PATH)
41         cp $(SOURCE_PATH)/gc_dialer_64.png $(BUILD_PATH)
42         cp $(SOURCE_PATH)/gc_dialer_26.png $(BUILD_PATH)
43
44         cp $(SOURCE_PATH)/gc_dialer.desktop $(BUILD_PATH)
45
46         cp $(SOURCE_PATH)/gc_dialer.glade $(BUILD_PATH)
47
48 package: build
49         mkdir -p $(PACKAGE_PATH)/usr/share/icons/hicolor/scalable/hildon
50         mkdir -p $(PACKAGE_PATH)/usr/share/icons/hicolor/26x26/hildon
51         mkdir -p $(PACKAGE_PATH)/usr/share/icons/hicolor/64x64/hildon
52         mkdir -p $(PACKAGE_PATH)/usr/share/applications/hildon
53         mkdir -p $(PACKAGE_PATH)/usr/local/lib
54         mkdir -p $(PACKAGE_PATH)/usr/local/bin
55
56         cp $(BUILD_PATH)/gc_dialer_256.png $(PACKAGE_PATH)/usr/share/icons/hicolor/scalable/hildon/gc_dialer.png
57         cp $(BUILD_PATH)/gc_dialer_64.png $(PACKAGE_PATH)/usr/share/icons/hicolor/64x64/hildon/gc_dialer.png
58         cp $(BUILD_PATH)/gc_dialer_26.png $(PACKAGE_PATH)/usr/share/icons/hicolor/26x26/hildon/gc_dialer.png
59
60         cp $(BUILD_PATH)/gc_dialer.desktop $(PACKAGE_PATH)/usr/share/applications/hildon
61
62         cp $(BUILD_PATH)/gc_dialer.glade $(PACKAGE_PATH)/usr/local/lib
63         
64         cp $(BUILD_BIN) $(PACKAGE_PATH)/usr/local/bin
65
66 clean:
67         rm -Rf $(PACKAGE_PATH) $(BUILD_PATH)
68         rm -Rf $(OBJ)
69
70 $(BUILD_BIN): $(SOURCE)
71         mkdir -p $(dir $(BUILD_BIN))
72
73         #Construct the program by cat-ing all the python files together
74         echo "#!/usr/bin/python2.5" > $(BUILD_BIN)
75         #echo "from __future__ import with_statement" >> $(PACKAGE_PATH)/usr/local/bin/gc_dialer.py
76         cat gc_dialer/gc_dialer.py gc_dialer/gcbackend.py gc_dialer/browser_emu.py | grep -e '^import ' | sort -u >> $(BUILD_BIN)
77         cat gc_dialer/browser_emu.py gc_dialer/gcbackend.py gc_dialer/gc_dialer.py | grep -v 'browser_emu' | grep -v 'gcbackend' | grep -v "#!" >> $(BUILD_BIN)
78         chmod 755 $(BUILD_BIN)
79
80 $(TAG_FILE): $(SOURCE)
81         mkdir -p $(dir $(TAG_FILE))
82         $(CTAGS) -o $(TAG_FILE) $(SOURCE)
83