-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmakefile
189 lines (137 loc) · 5.88 KB
/
makefile
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
all: install-libpam androidpico
.NOTPARALLEL:
.PHONY: install clean
GIT = git
DEBUILD = debuild
DEBUILD_FLAGS = -us -uc -b --lintian-opts -X changes-file
CP = cp
CP_FLAGS = -u
RSYNC = rsync
RSYNC_FLAGS = -r -u --delete
DEBSUFFIX = ubuntu16.04
GITROOT = https://github.com/mypico
LIBPICO_RUN = libpico1_*_amd64.deb
LIBPICO_DEV = libpico1-dev_*_amd64.deb
LIBPICOBT_RUN = libpicobt_*_amd64-run.deb
LIBPICOBT_DEV = libpicobt_*_amd64-dev.deb
LIBPAM_RUN = libpam-pico_*_amd64.deb
ANDROIDPICO_APK = android-pico-debug.apk
clean:
rm -rf working built; \
############### install-libpicobt
.PHONY: install-libpicobt
install-libpicobt: /usr/include/picobt/bt.h update-libpicobt
/usr/include/picobt/bt.h: built/$(LIBPICOBT_RUN) built/$(LIBPICOBT_DEV)
sudo dpkg -i built/$(LIBPICOBT_RUN); \
sudo dpkg -i built/$(LIBPICOBT_DEV); \
sudo touch /usr/include/picobt/bt.h
############### install-libpico
.PHONY: install-libpico
install-libpico: /usr/include/pico/pico.h update-libpico install-libpicobt
/usr/include/pico/pico.h: built/$(LIBPICO_RUN) built/$(LIBPICO_DEV)
sudo dpkg -i built/$(LIBPICO_RUN); \
sudo dpkg -i built/$(LIBPICO_DEV); \
sudo touch /usr/include/pico/pico.h
############### install-libpam
.PHONY: install-libpam
install-libpam: /usr/bin/pico-continuous update-libpam install-libpico install-libpicobt
/usr/bin/pico-continuous: built/$(LIBPAM_RUN)
sudo dpkg -i built/$(LIBPAM_RUN); \
sudo touch /usr/bin/pico-continuous
############### libpicobt
.PHONY: libpicobt-deb update-libpicobt
libpicobt-deb: update-libpicobt built/$(LIBPICOBT_RUN) built/$(LIBPICOBT_DEV)
built/$(LIBPICOBT_RUN) built/$(LIBPICOBT_DEV): working/libpicobt/build/packages/$(LIBPICOBT_RUN) working/libpicobt/build/packages/$(LIBPICOBT_DEV)
mkdir built; \
$(CP) $(CP_FLAGS) working/libpicobt/build/packages/$(LIBPICOBT_RUN) built/; \
$(CP) $(CP_FLAGS) working/libpicobt/build/packages/$(LIBPICOBT_DEV) built/
update-libpicobt: working/libpicobt
cd working/libpicobt; \
$(GIT) pull; \
cd ../..
working/libpicobt/build/packages/$(LIBPICOBT_RUN) working/libpicobt/build/packages/$(LIBPICOBT_DEV): working/libpicobt
cd working/libpicobt; \
sudo apt install openssh-client git libbluetooth-dev cmake dh-exec gcovr check pkg-config doxygen graphviz; \
mkdir build; \
cd build; \
cmake ..;\
make package; \
cd ../../..
working/libpicobt:
$(GIT) clone $(GITROOT)/libpicobt.git working/libpicobt
############### libpico
.PHONY: libpico-deb update-libpico
libpico-deb: update-libpico built/$(LIBPICO_RUN) built/$(LIBPICO_DEV)
built/$(LIBPICO_RUN) built/$(LIBPICO_DEV): working/$(LIBPICO_RUN) working/$(LIBPICO_DEV)
mkdir built; \
$(CP) $(CP_FLAGS) working/$(LIBPICO_RUN) built/; \
$(CP) $(CP_FLAGS) working/$(LIBPICO_DEV) built/
update-libpico: working/libpico
cd working/libpico; \
$(GIT) pull; \
git checkout debian/changelog; \
dch -l~`git rev-list master --count`~$(DEBSUFFIX). Auto build.; \
dch -r .; \
cd ../..
working/$(LIBPICO_RUN) working/$(LIBPICO_DEV): /usr/include/picobt/bt.h working/libpico
cd working/libpico; \
sudo apt install libssl-dev libcurl4-openssl-dev libqrencode-dev libbluetooth-dev liburl-dispatcher1-dev libc6 autoconf pkg-config autotools-dev automake devscripts debhelper dh-systemd dh-exec build-essential git gcc make check openssh-client doxygen graphviz; \
./configure; \
$(DEBUILD) $(DEBUILD_FLAGS); \
cd ../..
working/libpico:
$(GIT) clone $(GITROOT)/libpico.git working/libpico
############### libpam
.PHONY: libpam-deb update-libpam
libpam-deb: update-libpam built/$(LIBPAM_RUN)
built/$(LIBPAM_RUN): working/$(LIBPAM_RUN)
mkdir built; \
$(CP) $(CP_FLAGS) working/$(LIBPAM_RUN) built/
update-libpam: working/pam_pico
cd working/pam_pico; \
$(GIT) pull; \
git checkout debian/changelog; \
dch -l~`git rev-list master --count`~$(DEBSUFFIX). Auto build.; \
dch -r .; \
cd ../..
working/$(LIBPAM_RUN): /usr/include/pico/pico.h working/pam_pico
cd working/pam_pico; \
sudo apt install libssl-dev libcurl4-openssl-dev libqrencode-dev libbluetooth-dev liburl-dispatcher1-dev libc6 libsoup2.4-dev libglib2.0-dev libdbus-glib-1-dev libgtk-3-dev libpam0g-dev gksu autoconf pkg-config autotools-dev automake devscripts debhelper dh-systemd dh-exec build-essential git gcc make check openssh-client libtool doxygen graphviz; \
./configure; \
$(DEBUILD) $(DEBUILD_FLAGS); \
cd ../..
working/pam_pico:
$(GIT) clone $(GITROOT)/pam_pico.git working/pam_pico
############### androidpico
.PHONY: androidpico update-androidpico
androidpico: update-androidpico built/$(ANDROIDPICO_APK)
built/$(ANDROIDPICO_APK): working/android-pico/android-pico/build/outputs/apk/$(ANDROIDPICO_APK)
$(CP) $(CP_FLAGS) working/android-pico/android-pico/build/outputs/apk/$(ANDROIDPICO_APK) built/
update-androidpico: working/android-pico
cd working/android-pico; \
$(GIT) pull; \
cd ../..
working/android-pico/android-pico/build/outputs/apk/$(ANDROIDPICO_APK): working/android-pico working/android-pico/android-sdk-linux
cd working/android-pico; \
sudo apt install openjdk-8-jdk git ant wget android-tools-adb lib32stdc++6 lib32z1; \
git submodule init; \
git submodule update; \
export ANDROID_HOME=$(CURDIR)/working/android-pico/android-sdk-linux; \
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8; \
./gradlew assembleDebug; \
./gradlew javadoc; \
cd ../..
working/android-pico/android-sdk.tgz:
cd working/android-pico; \
sudo apt install wget; \
wget --output-document=android-sdk.tgz https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz; \
cd ../..
working/android-pico/android-sdk-linux: working/android-pico/android-sdk.tgz
cd working/android-pico; \
sudo apt install openjdk-8-jdk git ant; \
tar --extract --gzip --file=android-sdk.tgz; \
android-sdk-linux/tools/android update sdk --no-ui --all --filter platform-tools,tools,build-tools-25.0.2,android-23,extra-android-m2repository,extra-google-m2repository; \
cd ../..
working/android-pico:
mkdir built; \
$(GIT) clone $(GITROOT)/android-pico.git working/android-pico