aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@scratchpost.org>2018-04-26 02:15:59 +0200
committerDanny Milosavljevic <dannym@scratchpost.org>2018-05-09 19:16:36 +0200
commitf6e75b0db28bf3ba0e402069b0fc173411d414af (patch)
tree5a36788151a3b9bd332817ea06267ad5bc0b84f5
parent11cb109baeda4ef7d7038ade3503e2041ea25c13 (diff)
downloadgnu-guix-f6e75b0db28bf3ba0e402069b0fc173411d414af.tar
gnu-guix-f6e75b0db28bf3ba0e402069b0fc173411d414af.tar.gz
gnu: adb: Use android-ndk-build-system.
* gnu/packages/android.scm (adb)[build-system]: Switch to android-ndk-build-system. [arguments]<#:tests?>: Disable. [arguments]<#:phases>[create-Makefile]: Delete phase. [arguments]<#:phases>[fix-clang]: Delete phase. [arguments]<#:phases>[fix-main]: Delete phase. [arguments]<#:phases>[make-libs-available]: New phase. [arguments]<#:phases>[install-headers]: New phase. [arguments]<#:make-flags]: Add CFLAGS, CXXFLAGS. [inputs]: Add liblog. [source]: Add patch "adb-add-libraries.patch". * gnu/packages/patches/adb-add-libraries.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/android.scm87
-rw-r--r--gnu/packages/patches/adb-add-libraries.patch19
3 files changed, 39 insertions, 68 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index cacc146e4a..0e1d686a6c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -553,6 +553,7 @@ dist_patch_DATA = \
%D%/packages/patches/abiword-black-drawing-with-gtk322.patch \
%D%/packages/patches/acl-fix-perl-regex.patch \
%D%/packages/patches/acl-hurd-path-max.patch \
+ %D%/packages/patches/adb-add-libraries.patch \
%D%/packages/patches/aegis-constness-error.patch \
%D%/packages/patches/aegis-perl-tempdir1.patch \
%D%/packages/patches/aegis-perl-tempdir2.patch \
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 09426058e4..085bf41aeb 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -201,82 +201,33 @@ various Android core host applications.")
(inherit (android-platform-system-core version))
(patches
(search-patches "libbase-use-own-logging.patch"
- "libbase-fix-includes.patch"))))
- (build-system gnu-build-system)
+ "libbase-fix-includes.patch"
+ "adb-add-libraries.patch"))))
+ (build-system android-ndk-build-system)
(arguments
- `(#:phases
+ `(#:tests? #f ; TODO.
+ #:make-flags
+ (list "CFLAGS=-Wno-error"
+ "CXXFLAGS=-fpermissive -Wno-error -std=gnu++14 -D_Nonnull= -D_Nullable= -I ."
+ (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib "
+ "-Wl,-rpath=" (assoc-ref %build-inputs "openssl") "/lib -L ."))
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "adb") #t))
- (add-before 'build 'fix-clang
- (lambda _
- ;; adb_client.h contains _Nonnull and _Nullable attributes, that
- ;; are not understood by gcc.
- (substitute* "adb_client.h"
- (("_Nonnull") "")
- (("_Nullable") ""))
- #t))
- (add-before 'build 'fix-main
- (lambda _
- ;; main.cpp used to be adb_main.cpp in the current directory
- ;; rather than in its own subdirectory, but it was not fixed.
- ;; This leads to some header files not being found anymore.
- (copy-file "client/main.cpp" "adb_main.cpp")
+ (add-after 'enter-source 'make-libs-available
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "Android.mk"
+ (("libcrypto_static") "libcrypto"))
#t))
- (add-after 'enter-source 'create-Makefile
- (lambda* (#:key outputs #:allow-other-keys)
- ;; No useful makefile is shipped, so we create one.
- (with-output-to-file "Makefile"
- (lambda _
- (display
- (string-append
- ;; Common for all components.
- "CXXFLAGS += -std=gnu++14 -fpermissive\n"
- "CPPFLAGS += -I../include -I../base/include -I. -DADB_HOST=1 "
- "-DADB_REVISION='\"" ,version "\"' -fPIC\n"
- "LDFLAGS += -lcrypto -lpthread -lbase -lcutils -L. -ladb\n"
-
- ;; Libadb specifics.
- "LIBADB_SOURCES = adb.cpp adb_auth.cpp adb_io.cpp "
- "adb_listeners.cpp adb_trace.cpp adb_utils.cpp fdevent.cpp "
- "sockets.cpp transport.cpp transport_local.cpp transport_usb.cpp "
- "get_my_path_linux.cpp sysdeps_unix.cpp usb_linux.cpp "
- "adb_auth_host.cpp diagnose_usb.cpp services.cpp "
- "shell_service_protocol.cpp bugreport.cpp line_printer.cpp\n"
-
- "LIBADB_LDFLAGS += -shared -Wl,-soname,libadb.so.0 "
- "-lcrypto -lpthread -lbase\n"
-
- ;; Adb specifics.
- "ADB_SOURCES = adb_main.cpp console.cpp commandline.cpp "
- "adb_client.cpp file_sync_client.cpp\n"
- "ADB_LDFLAGS += -Wl,-rpath=" (assoc-ref outputs "out") "/lib\n"
-
- "build: libadb $(ADB_SOURCES)\n"
- " $(CXX) $(ADB_SOURCES) -o adb $(CXXFLAGS) $(CPPFLAGS) "
- "$(ADB_LDFLAGS) $(LDFLAGS)\n"
-
- "libadb: $(LIBADB_SOURCES)\n"
- " $(CXX) $^ -o libadb.so.0 $(CXXFLAGS) $(CPPFLAGS) "
- "$(LIBADB_LDFLAGS)\n"
- " ln -sv libadb.so.0 libadb.so\n"))
- #t))))
- (delete 'configure)
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib"))
- (bin (string-append out "/bin")))
- (install-file "libadb.so.0" lib)
- (install-file "adb" bin)
- (with-directory-excursion lib
- (symlink "libadb.so.0" "libadb.so"))
- #t))))
- ;; Test suite must be run with attached devices
- #:tests? #f))
+ (add-after 'install 'install-headers
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (install-file "diagnose_usb.h" (string-append (assoc-ref outputs "out") "/include"))
+ #t)))))
(inputs
`(("libbase" ,libbase)
("libcutils" ,libcutils)
+ ("liblog" ,liblog)
("openssl" ,openssl)))
(home-page "https://developer.android.com/studio/command-line/adb.html")
(synopsis "Android Debug Bridge")
diff --git a/gnu/packages/patches/adb-add-libraries.patch b/gnu/packages/patches/adb-add-libraries.patch
new file mode 100644
index 0000000000..06b3ec3764
--- /dev/null
+++ b/gnu/packages/patches/adb-add-libraries.patch
@@ -0,0 +1,19 @@
+--- a/adb/Android.mk 2018-04-25 23:23:29.527198350 +0200
++++ b/adb/Android.mk 2018-04-25 23:24:25.558632573 +0200
+@@ -226,7 +226,7 @@
+ LOCAL_SRC_FILES := test_track_devices.cpp
+ LOCAL_SANITIZE := $(adb_host_sanitize)
+ LOCAL_SHARED_LIBRARIES := libbase
+-LOCAL_STATIC_LIBRARIES := libadb libcrypto_static libcutils
++LOCAL_STATIC_LIBRARIES := libadb libbase libcrypto_static libcutils
+ LOCAL_LDLIBS += -lrt -ldl -lpthread
+ include $(BUILD_HOST_EXECUTABLE)
+ endif
+@@ -278,6 +278,7 @@
+ LOCAL_SANITIZE := $(adb_host_sanitize)
+ LOCAL_STATIC_LIBRARIES := \
+ libadb \
++ libcutils \
+ libbase \
+ libcrypto_static \
+ libdiagnose_usb \