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.
This commit is contained in:
parent
11cb109bae
commit
f6e75b0db2
|
@ -553,6 +553,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/abiword-black-drawing-with-gtk322.patch \
|
%D%/packages/patches/abiword-black-drawing-with-gtk322.patch \
|
||||||
%D%/packages/patches/acl-fix-perl-regex.patch \
|
%D%/packages/patches/acl-fix-perl-regex.patch \
|
||||||
%D%/packages/patches/acl-hurd-path-max.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-constness-error.patch \
|
||||||
%D%/packages/patches/aegis-perl-tempdir1.patch \
|
%D%/packages/patches/aegis-perl-tempdir1.patch \
|
||||||
%D%/packages/patches/aegis-perl-tempdir2.patch \
|
%D%/packages/patches/aegis-perl-tempdir2.patch \
|
||||||
|
|
|
@ -201,82 +201,33 @@ various Android core host applications.")
|
||||||
(inherit (android-platform-system-core version))
|
(inherit (android-platform-system-core version))
|
||||||
(patches
|
(patches
|
||||||
(search-patches "libbase-use-own-logging.patch"
|
(search-patches "libbase-use-own-logging.patch"
|
||||||
"libbase-fix-includes.patch"))))
|
"libbase-fix-includes.patch"
|
||||||
(build-system gnu-build-system)
|
"adb-add-libraries.patch"))))
|
||||||
|
(build-system android-ndk-build-system)
|
||||||
(arguments
|
(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
|
(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'enter-source
|
(add-after 'unpack 'enter-source
|
||||||
(lambda _ (chdir "adb") #t))
|
(lambda _ (chdir "adb") #t))
|
||||||
(add-before 'build 'fix-clang
|
(add-after 'enter-source 'make-libs-available
|
||||||
(lambda _
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
;; adb_client.h contains _Nonnull and _Nullable attributes, that
|
(substitute* "Android.mk"
|
||||||
;; are not understood by gcc.
|
(("libcrypto_static") "libcrypto"))
|
||||||
(substitute* "adb_client.h"
|
|
||||||
(("_Nonnull") "")
|
|
||||||
(("_Nullable") ""))
|
|
||||||
#t))
|
#t))
|
||||||
(add-before 'build 'fix-main
|
(add-after 'install 'install-headers
|
||||||
(lambda _
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
;; main.cpp used to be adb_main.cpp in the current directory
|
(install-file "diagnose_usb.h" (string-append (assoc-ref outputs "out") "/include"))
|
||||||
;; rather than in its own subdirectory, but it was not fixed.
|
#t)))))
|
||||||
;; This leads to some header files not being found anymore.
|
|
||||||
(copy-file "client/main.cpp" "adb_main.cpp")
|
|
||||||
#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))
|
|
||||||
(inputs
|
(inputs
|
||||||
`(("libbase" ,libbase)
|
`(("libbase" ,libbase)
|
||||||
("libcutils" ,libcutils)
|
("libcutils" ,libcutils)
|
||||||
|
("liblog" ,liblog)
|
||||||
("openssl" ,openssl)))
|
("openssl" ,openssl)))
|
||||||
(home-page "https://developer.android.com/studio/command-line/adb.html")
|
(home-page "https://developer.android.com/studio/command-line/adb.html")
|
||||||
(synopsis "Android Debug Bridge")
|
(synopsis "Android Debug Bridge")
|
||||||
|
|
|
@ -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 \
|
Loading…
Reference in New Issue