Internet radio browser GUI for music/video streams from various directory services.

โŒˆโŒ‹ โŽ‡ branch:  streamtuner2


Check-in [ff249e30f0]

Overview
Comment:Document Makefile requirements (version, xpm/fpm), prepare manual `install` target.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: ff249e30f0c6b04710ccb7383de0b9ee1afdd670
User & Date: mario on 2015-04-05 14:04:48
Other Links: manifest | tags
Context
2015-04-05
14:06
Mention `make glade`, as gtk3.xml is now compressed per gzip after all. check-in: 57e4b7c323 user: mario tags: trunk
14:04
Document Makefile requirements (version, xpm/fpm), prepare manual `install` target. check-in: ff249e30f0 user: mario tags: trunk
2015-04-04
10:01
Spread out #pack: specifiers into doc files. check-in: 31995cd149 user: mario tags: trunk
Changes

Modified Makefile from [4a807d2d9d] to [cf2c20dc2e].





1
2
3


4
5
6

7



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39




40
41
42
43
44
45
46
47
48
49
50





















SHELL   := /bin/bash #(for brace expansion)
NAME    := streamtuner2
VERSION := $(shell version get:plugin st2.py)


PACK    := xpm
DEPS    := -n $(NAME) -d python-pyquery -d python-gtk2 -d python-requests -d python-keybinder
OPTS    := -s src -u man,fixperms -f --prefix=/usr/share/streamtuner2 --deb-compression xz --rpm-compression xz --exe-autoextract

all: gtk3 #(most used)




# Convert between internal GtkBuilder-zlib file and uncompressed xml
# (workaround because Python2 has no working gzip support)
gtk3:
	zlib-flate -compress < gtk3.xml > gtk3.xml.zlib
glade:
	zlib-flate -uncompress < gtk3.xml.zlib > gtk3.xml
	glade gtk3.xml 2>/dev/null
	zlib-flate -compress < gtk3.xml > gtk3.xml.zlib

# Package up using fpm/xpm
pack:	gtk3, ver, docs, xpm, src

docs:	# update static files
	gzip -9c NEWS > NEWS.gz
ver:	# copy `version:` info
	version get:plugin st2.py write:control PKG-INFO
clean:
	rm *.pyc */*.pyc
	rm -r __pycache__ */__pycache__

#-- bundles
xpm: deb, pyz#, bin, rpm, exe
deb:
	$(PACK) $(OPTS) $(DEPS) -t deb -p "$(NAME)-VERSION.deb" st2.py
rpm:
	$(PACK) $(OPTS) $(DEPS) -t rpm -p "$(NAME)-VERSION.rpm" st2.py
bin:
	$(PACK) $(OPTS) $(DEPS) -t tar -p "$(NAME)-VERSION.bin.txz" st2.py
zip:pyz
pyz:
	$(PACK) -s src -t zip -p "$(NAME)-VERSION.pyz" --prefix=./ --verbose -f .zip.py st2.py




src:
	cd .. && pax -wvJf streamtuner2/streamtuner2-$(VERSION).src.txz \
		streamtuner2/*.{py,png,svg,desktop} streamtuner2/channels/*.{py,png} \
		streamtuner2/{bundle/,help/,gtk,NEWS,READ,PACK,PKG,CRED,Make,bin,.zip}*

# test .deb contents
check:
	dpkg-deb -c streamtuner2*deb
	dpkg-deb -I streamtuner2*deb
	rpm -qpil *rpm


















>
>
>
>


|
>
>


|
>
|
>
>
>

|
<
|
|

|

|

<
<
|









|






<

|
>
>
>
>











>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

20
21
22
23
24
25
26


27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# Requires 
# ยท http://fossil.include-once.org/versionnum/
# ยท http://fossil.include-once.org/xpm/

SHELL   := /bin/bash #(for brace expansion)
NAME    := streamtuner2
VERSION := $(shell version get:plugin st2.py || echo 2.1dev)
DEST    := /usr/share/streamtuner2
INST    := install -v
PACK    := xpm
DEPS    := -n $(NAME) -d python-pyquery -d python-gtk2 -d python-requests -d python-keybinder
OPTS    := -s src -u man,fixperms -f --prefix=$(DEST) --deb-compression xz --rpm-compression xz --exe-autoextract
.PHONY:  bin
all:  gtk3 #(most used)
pack: all ver docs xpm src
gtk3: gtk3.xml.gz
zip:  pyz

# Convert between internal GtkBuilder-gzipped file and uncompressed xml

gtk3.xml.gz: gtk3.xml
	gzip -c9 < gtk3.xml > gtk3.xml.gz
glade:
	gzip -dc > gtk3.xml < gtk3.xml.gz
	glade gtk3.xml 2>/dev/null
	gzip -c9 < gtk3.xml > gtk3.xml.gz



# Prepare packaging
docs:	# update static files
	gzip -9c NEWS > NEWS.gz
ver:	# copy `version:` info
	version get:plugin st2.py write:control PKG-INFO
clean:
	rm *.pyc */*.pyc
	rm -r __pycache__ */__pycache__

#-- bundles
xpm: deb pyz bin rpm exe
deb:
	$(PACK) $(OPTS) $(DEPS) -t deb -p "$(NAME)-VERSION.deb" st2.py
rpm:
	$(PACK) $(OPTS) $(DEPS) -t rpm -p "$(NAME)-VERSION.rpm" st2.py
bin:
	$(PACK) $(OPTS) $(DEPS) -t tar -p "$(NAME)-VERSION.bin.txz" st2.py

pyz:
	$(PACK) -s src -t zip -p ".pyz" --prefix=./ --verbose -f .zip.py st2.py
	echo "#!/usr/bin/env python" | cat - ".pyz" > "$(NAME)-$(VERSION).pyz"
	chmod +x "$(NAME)-$(VERSION).pyz" ; rm ".pyz"
exe:
	$(PACK) $(OPTS) $(DEPS) -t exe -p "$(NAME)-VERSION.exe" st2.py
src:
	cd .. && pax -wvJf streamtuner2/streamtuner2-$(VERSION).src.txz \
		streamtuner2/*.{py,png,svg,desktop} streamtuner2/channels/*.{py,png} \
		streamtuner2/{bundle/,help/,gtk,NEWS,READ,PACK,PKG,CRED,Make,bin,.zip}*

# test .deb contents
check:
	dpkg-deb -c streamtuner2*deb
	dpkg-deb -I streamtuner2*deb
	rpm -qpil *rpm

# manual installation
install:
	$(INST)		bin		/usr/bin/streamtuner2
	$(INST)		*.py		-d -t $(DEST)
	$(INST)		channels/	-d -t $(DEST)
	$(INST)		CREDITS		-d -t $(DEST)
	$(INST)		gtk3.*		-d -t $(DEST)
	$(INST)		help/		-d -t /usr/share/doc/streamtuner2/
	$(INST)		*.desktop	-t /usr/share/applications/
	$(INST)		help/str*2.1	-t /usr/share/man/man1/
	$(INST)		icon.png	-t /usr/share/pixmaps/streamtuner2.png
	$(INST)		README		-d -t /usr/share/doc/streamtuner2/

# start locally
st2: run
run:
	./st2.py