]>
Commit | Line | Data |
---|---|---|
1 | PACKAGE_TARNAME := @PACKAGE_TARNAME@ | |
2 | ||
3 | CY_ATTACH_GROUP := @CY_ATTACH_GROUP@ | |
4 | ||
5 | ifneq ($(git),) | |
6 | version := $(shell $(git) describe --always --tags --dirty="+" --match="v*" | $(sed) -e 's@-\([^-]*\)-\([^-]*\)$$@+\1.\2@;s@^v@@') | |
7 | else | |
8 | version := @PACKAGE_VERSION@ | |
9 | endif | |
10 | ||
11 | lib := lib | |
12 | dll := @SO@ | |
13 | depends ?= | |
14 | ||
15 | ifdef arch | |
16 | deb := $(shell grep ^Package: $(srcdir)/control.in | cut -d ' ' -f 2-)_$(shell grep ^Version: $(srcdir)/control.in | cut -d ' ' -f 2 | $(sed) -e 's/\#/$(version)/')_$(arch).deb | |
17 | ||
18 | ifeq ($(depends)$(dll),dylib) | |
19 | control.tmp: control.in .libs/cycript .libs/$(lib)cycript.dylib | |
20 | $(sed) -e 's/&/'"$$(dpkg-query -S $$(otool -lah .libs/cycript .libs/*.dylib | grep dylib | grep -v ':$$' | $(sed) -e 's/^ *name //;s/ (offset [0-9]*)$$//' | sort -u) 2>/dev/null | $(sed) -e 's/:.*//; /^cycript$$/ d; s/$$/,/' | sort -u | tr '\n' ' ')"'/;s/, $$//;s/#/$(version)/;s/%/$(arch)/' $< >$@ | |
21 | else | |
22 | ifeq ($(depends)$(dll),so) | |
23 | control.tmp: control.in .libs/cycript .libs/$(lib)cycript.so | |
24 | $(sed) -e 's/&/'"$$(dpkg-query -S $$(ldd cycript $(lib)cycript.so | $(sed) -e '/:$$/ d; s/^[ \t]*\([^ ]* => \)\?\([^ ]*\) .*/\2/' | sort -u) 2>/dev/null | $(sed) -e 's/:.*//; /^cycript$$/ d; s/$$/,/' | sort -u | tr '\n' ' ')"'/;s/, $$//;s/#/$(version)/;s/%/$(arch)/' $< >$@ | |
25 | else | |
26 | control.tmp: control.in | |
27 | $(sed) -e 's/&/$(depends)/;s/,$$//;s/#/$(version)/;s/%/$(arch)/' $< >$@ | |
28 | endif | |
29 | endif | |
30 | ||
31 | control: control.tmp | |
32 | [[ -e control ]] && diff control control.tmp &>/dev/null || cp -pRf control.tmp control | |
33 | ||
34 | $(deb): $(all) control | |
35 | rm -rf package | |
36 | mkdir -p package/DEBIAN | |
37 | cp -pR control package/DEBIAN | |
38 | mkdir -p package/usr/{bin,lib,sbin} | |
39 | cp -pR .libs/$(lib)cycript.0.$(dll) package/usr/lib | |
40 | cp -pR .libs/$(lib)cycript.$(dll) package/usr/lib | |
41 | cp -pR .libs/cycript package/usr/bin | |
42 | dpkg-deb -b package $(deb) | |
43 | endif | |
44 | ||
45 | clean:: | |
46 | rm -rf control | |
47 | ||
48 | libcycript.la: $(code) | |
49 | $(ldid) .libs/$(lib)cycript.$(dll) | |
50 | ||
51 | cycript: Console.lo libcycript.la $(inject) | |
52 | $(entitle) .libs/cycript | |
53 | ||
54 | package: $(deb) | |
55 | ||
56 | install: cycript libcycript.la | |
57 | ifneq ($(CY_ATTACH_GROUP),) | |
58 | chgrp $(CY_ATTACH_GROUP) $(DESTDIR)$(bindir)/cycript | |
59 | chmod g+s $(DESTDIR)$(bindir)/cycript | |
60 | endif |