1 # This file is under GNU General Public License 3.0
4 #------------------------------------------------------------------------------#
5 # Makefile to build libEtpan GPGME, GnuPG and deps for use with pEpEngine
6 # based on pEpJNIAdapter/android/external/Makefile
7 #------------------------------------------------------------------------------#
11 build: libetpan-install gnupg-install gpgme-install
18 #------------------------------------------------------------------------------#
21 EXTERNAL_GIT_REPOS += libgpg-error|git://git.gnupg.org/libgpg-error.git?libgpg-error-1.20
23 libgpg-error/configure: libgpg-error.src.stamp libgpg-error/configure.ac
24 cd libgpg-error && ./autogen.sh
26 libgpg-error/Makefile: libgpg-error/configure
30 LDFLAGS="$(LDFLAGS)" \
34 ls -l libgpg-error/libtool
36 libgpg-error/src/.libs/libgpg-error.so: libgpg-error/Makefile
37 $(MAKE) -C libgpg-error
39 libgpg-error-build: libgpg-error/src/.libs/libgpg-error.so
41 $(PREFIX)/lib/libgpg-error.so: libgpg-error/src/.libs/libgpg-error.so
42 $(MAKE) -C libgpg-error prefix=$(PREFIX) install
43 ls -l $(PREFIX)/lib/libgpg-error.so*
45 libgpg-error-install: $(PREFIX)/lib/libgpg-error.so
47 #------------------------------------------------------------------------------#
50 EXTERNAL_GIT_REPOS += libgcrypt|git://git.gnupg.org/libgcrypt.git?libgcrypt-1.6.4
52 libgcrypt/configure: libgcrypt.src.stamp libgcrypt/configure.ac
53 cd libgcrypt && ./autogen.sh
55 libgcrypt/Makefile: libgcrypt/configure
57 CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
59 --enable-maintainer-mode \
60 --with-gpg-error-prefix=$(PREFIX) \
63 libgcrypt/src/.libs/libgcrypt.so: $(PREFIX)/lib/libgpg-error.so libgcrypt/Makefile
66 $(PREFIX)/lib/libgcrypt.so: libgcrypt/src/.libs/libgcrypt.so
67 $(MAKE) -C libgcrypt prefix=$(PREFIX) install
68 ls -l $(PREFIX)/lib/libgcrypt.so
70 libgcrypt-build: libgcrypt/src/.libs/libgcrypt.so
72 libgcrypt-install: $(PREFIX)/lib/libgcrypt.so
74 #------------------------------------------------------------------------------#
77 EXTERNAL_GIT_REPOS += libassuan|git://git.gnupg.org/libassuan.git?libassuan-2.3.0
79 libassuan/configure: libassuan.src.stamp libassuan/configure.ac
80 cd libassuan && ./autogen.sh && autoreconf --install --force --verbose
82 libassuan/Makefile: libassuan/configure
84 CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
86 --enable-maintainer-mode \
87 --with-gpg-error-prefix=$(PREFIX) \
90 libassuan/src/.libs/libassuan.so: $(PREFIX)/lib/libgpg-error.so libassuan/Makefile
93 $(PREFIX)/lib/libassuan.so: libassuan/src/.libs/libassuan.so
94 $(MAKE) -C libassuan prefix=$(PREFIX) install
95 ls -l $(PREFIX)/lib/libassuan.so
97 libassuan-build: libassuan/src/.libs/libassuan.so
99 libassuan-install: $(PREFIX)/lib/libassuan.so
101 #------------------------------------------------------------------------------#
104 EXTERNAL_GIT_REPOS += libksba|git://git.gnupg.org/libksba.git?libksba-1.3.3
106 libksba/configure: libksba.src.stamp libksba/configure.ac
107 cd libksba && ./autogen.sh
109 libksba/Makefile: $(PREFIX)/lib/libgpg-error.so libksba/configure
111 CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
113 --enable-maintainer-mode \
114 --with-gpg-error-prefix=$(PREFIX) \
117 libksba/src/.libs/libksba.so: libksba/Makefile
120 $(PREFIX)/lib/libksba.so: libksba/src/.libs/libksba.so
121 $(MAKE) -C libksba prefix=$(PREFIX) install
122 ls -l $(PREFIX)/lib/libksba.so
124 libksba-build: libksba/src/.libs/libksba.so
126 libksba-install: $(PREFIX)/lib/libksba.so
128 #------------------------------------------------------------------------------#
131 EXTERNAL_GIT_REPOS += curl|https://github.com/bagder/curl?curl-7_45_0
133 curl/configure: curl.src.stamp curl/configure.ac
134 cd curl && ./buildconf
136 curl/Makefile: curl/configure
138 CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
148 curl/lib/.libs/libcurl.so: curl/Makefile
151 $(PREFIX)/lib/libcurl.so: curl/lib/.libs/libcurl.so
152 $(MAKE) -C curl prefix=$(PREFIX) install
153 ls -l $(PREFIX)/lib/libcurl.so
155 curl-build: curl/lib/.libs/libcurl.so
157 curl-install: $(PREFIX)/lib/libcurl.so
160 #------------------------------------------------------------------------------#
163 EXTERNAL_GIT_REPOS += gnupg|git://git.gnupg.org/gnupg.git?gnupg-2.0.29
165 gnupg/configure: gnupg.src.stamp gnupg/configure.ac
166 -sed -i '/^tests/d' gnupg/configure.ac
167 -sed -i 's/tests = tests/tests =/' gnupg/Makefile.am
168 cd gnupg && ./autogen.sh
170 gnupg/Makefile: gnupg/configure
172 CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
174 --enable-maintainer-mode \
175 --with-gpg-error-prefix=$(PREFIX) \
176 --with-libgcrypt-prefix=$(PREFIX) \
177 --with-libassuan-prefix=$(PREFIX) \
178 --with-ksba-prefix=$(PREFIX) \
179 --with-libcurl=$(PREFIX) \
187 gnupg/g10/gpg2: $(PREFIX)/lib/libgpg-error.so $(PREFIX)/lib/libgcrypt.so $(PREFIX)/lib/libksba.so $(PREFIX)/lib/libassuan.so $(PREFIX)/lib/libcurl.so gnupg/Makefile
190 $(PREFIX)/bin/gpg2: gnupg/g10/gpg2 gnupg/configure
191 $(MAKE) -C gnupg prefix=$(PREFIX) install
192 ls -l $(PREFIX)/bin/gpg2
194 gnupg-build: gnupg/g10/gpg2
196 gnupg-install: $(PREFIX)/bin/gpg2
198 #------------------------------------------------------------------------------#
201 EXTERNAL_GIT_REPOS += gpgme|git://git.gnupg.org/gpgme.git?gpgme-1.6.0
203 gpgme/configure: gpgme.src.stamp gpgme/configure.ac
204 cd gpgme && ./autogen.sh
206 gpgme/Makefile: gpgme/configure
208 CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
210 --enable-maintainer-mode \
211 --with-gpg-error-prefix=$(PREFIX) \
212 --with-libassuan-prefix=$(PREFIX) \
213 --enable-fixed-path=$(PREFIX)/bin \
217 --disable-gpgsm-test \
218 --disable-gpgconf-test \
219 --disable-parallel-test \
224 gpgme/src/.libs/libgpgme.so: gpgme/Makefile
227 $(PREFIX)/lib/libgpgme.so: gpgme/src/.libs/libgpgme.so
228 $(MAKE) -C gpgme prefix=$(PREFIX) install
230 gpgme-build: gpgme/src/.libs/libgpgme.so
232 gpgme-install: $(PREFIX)/bin/gpg2 $(PREFIX)/lib/libgpgme.so
234 #------------------------------------------------------------------------------#
237 EXTERNAL_GIT_REPOS += libetpan|https://github.com/fdik/libetpan.git?HEAD
239 libetpan/configure: libetpan.src.stamp
240 cd libetpan && ./autogen.sh
242 libetpan/Makefile: libetpan/configure
244 CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
248 libetpan/src/.libs/libetpan.so: libetpan/Makefile
251 $(PREFIX)/lib/libetpan.so: libetpan/src/.libs/libetpan.so
252 $(MAKE) -C libetpan install
254 libetpan-build: libetpan/src/.libs/libetpan.so
256 libetpan-install: $(PREFIX)/lib/libetpan.so
258 #------------------------------------------------------------------------------#
259 # Clone update and archive external projects GIT repos
260 # Local clone is in external/$project.git while
261 # selected commit is archived in external/$project
263 define per_repo_targets
265 git clone $(2) $(1).git
268 $(1).git_update: $(1).git.stamp
269 cd $(1).git; git pull
272 $(1).src.stamp: $(1).git.stamp
275 (cd $(1).git; git archive --format=tar $(3)) | tar -C $(1) -x
278 $(1)-src: $(1).src.stamp
284 EXTERNAL_LOCAL_GITS += $(1).git.stamp
285 EXTERNAL_LOCAL_GITS_UPDATE += $(1).git_update
286 EXTERNAL_SRCS += $(1)-src
287 EXTERNAL_SRCS_CLEAN += $(1)-clean
291 $(call per_repo_targets,\
293 $(word 1,$(subst ?, ,$(2))),\
294 $(word 2,$(subst ?, ,$(2))))
297 $(foreach repo, $(EXTERNAL_GIT_REPOS), $(eval $(call per_repo,\
298 $(word 1,$(subst |, ,$(repo))),\
299 $(word 2,$(subst |, ,$(repo))))))
301 git_clones: $(EXTERNAL_LOCAL_GITS)
303 git_update: $(EXTERNAL_LOCAL_GITS_UPDATE)
305 #------------------------------------------------------------------------------#
308 clean: $(EXTERNAL_SRCS_CLEAN) clean-install libetpan-cleanzip
310 #------------------------------------------------------------------------------#
312 .PHONY = clean clean-install libetpan-cleanzip\
313 libgpg-error-build libgpg-error-install \
314 libgcrypt-build libgcrypt-install \
315 libassuan-build libassuan-install \
316 libksba-build libksba-install \
317 gnupg-build gnupg-install\
318 gpgme-build gpgme-install\
319 curl-build curl-install \
321 $(EXTERNAL_LOCAL_GITS_UPDATE) $(EXTERNAL_SRCS) $(EXTERNAL_SRCS_CLEAN) \