aboutsummaryrefslogtreecommitdiffstats
path: root/testing/android-tools/android-tools.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/android-tools/android-tools.patch')
-rw-r--r--testing/android-tools/android-tools.patch826
1 files changed, 826 insertions, 0 deletions
diff --git a/testing/android-tools/android-tools.patch b/testing/android-tools/android-tools.patch
new file mode 100644
index 0000000000..9052703861
--- /dev/null
+++ b/testing/android-tools/android-tools.patch
@@ -0,0 +1,826 @@
+This patch has been taken from the Void Linux distribution.
+
+https://github.com/voidlinux/void-packages/tree/master/srcpkgs/android-tools/patches/android-tools.patch
+
+diff --git a/Makefile b/Makefile
+new file mode 100644
+index 000000000000..4644fc0b62ad
+--- /dev/null
++++ Makefile
+@@ -0,0 +1,47 @@
++all:
++ $(MAKE) -C core/libcutils all
++ $(MAKE) -C libselinux all
++ $(MAKE) -C core/libziparchive all
++ $(MAKE) -C extras/ext4_utils all
++ $(MAKE) -C core/libsparse all
++ $(MAKE) -C core/libutils all
++ $(MAKE) -C core/liblog all
++ $(MAKE) -C core/base all
++ $(MAKE) -C gtest all
++ $(MAKE) -C extras/f2fs_utils all
++ $(MAKE) -C core/adb all
++ $(MAKE) -C core/fastboot all
++
++install: all
++ $(MAKE) -C core/adb install
++ $(MAKE) -C core/fastboot install
++
++clean:
++ $(MAKE) -C core/libcutils clean
++ $(MAKE) -C libselinux clean
++ $(MAKE) -C core/libziparchive clean
++ $(MAKE) -C extras/ext4_utils clean
++ $(MAKE) -C core/libsparse clean
++ $(MAKE) -C core/libutils clean
++ $(MAKE) -C core/liblog clean
++ $(MAKE) -C core/adb libdiagnose_usb
++ $(MAKE) -C core/base clean
++ $(MAKE) -C gtest clean
++ $(MAKE) -C extras/f2fs_utils clean
++ $(MAKE) -C core/adb clean
++ $(MAKE) -C core/fastboot clean
++
++mrproper:
++ $(MAKE) -C core/libcutils mrproper
++ $(MAKE) -C libselinux mrproper
++ $(MAKE) -C core/libziparchive mrproper
++ $(MAKE) -C extras/ext4_utils mrproper
++ $(MAKE) -C core/libsparse mrproper
++ $(MAKE) -C core/libutils mrproper
++ $(MAKE) -C core/liblog mrproper
++ $(MAKE) -C core/adb libdiagnose_usb
++ $(MAKE) -C core/base mrproper
++ $(MAKE) -C gtest mrproper
++ $(MAKE) -C extras/f2fs_utils mrproper
++ $(MAKE) -C core/adb mrproper
++ $(MAKE) -C core/fastboot mrproper
+diff --git core/adb/Makefile core/adb/Makefile
+new file mode 100644
+index 0000000..8ef539b
+--- /dev/null
++++ core/adb/Makefile
+@@ -0,0 +1,97 @@
++adb_version := $(shell git -C . rev-parse --short=12 HEAD 2>/dev/null)-android
++
++SRCS+= \
++ adb_client.cpp \
++ client/main.cpp \
++ console.cpp \
++ commandline.cpp \
++ file_sync_client.cpp \
++ line_printer.cpp \
++ services.cpp \
++ shell_service_protocol.cpp \
++
++LIBADB_SRCS= \
++ 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 \
++ adb_auth_host.cpp \
++ get_my_path_linux.cpp \
++ sysdeps_unix.cpp \
++ usb_linux.cpp \
++
++LIBDIAGNOSE_USB_SRCS= \
++ diagnose_usb.cpp
++
++
++override CXXFLAGS+= \
++ -I. \
++ -I../include \
++ -I../base/include \
++ -D_Nonnull="" \
++ -D_Nullable="" \
++ -D_GNU_SOURCE \
++ -Wall \
++ -Wextra \
++ -Wno-unused-parameter \
++ -Wno-missing-field-initializers \
++ -Wvla \
++ -DADB_REVISION='"$(adb_version)"' \
++ -std=gnu++14 \
++ -DADB_HOST=1 \
++ -fpermissive \
++ -fvisibility=hidden
++
++
++LIBS= \
++ ./libadb.a \
++ ./libdiagnose_usb.a \
++ ../base/libbase.a \
++ ../libcutils/libcutils.a \
++ ../liblog/liblog.a
++
++override LDFLAGS+= -lssl -lcrypto -lpthread
++
++OBJS= $(SRCS:.cpp=.o)
++LIBADB_OBJS= $(LIBADB_SRCS:.cpp=.o)
++LIBDIAGNOSE_USB_OBJS= $(LIBDIAGNOSE_USB_SRCS:.cpp=.o)
++
++BIN= adb
++
++all: $(BIN)
++
++adb: $(OBJS) libadb libdiagnose_usb
++ $(CXX) -o $@ $(OBJS) $(LIBS) $(LDFLAGS)
++
++
++libadb: libadb.a
++
++libadb.a: $(LIBADB_OBJS)
++ $(AR) rcs $@ $(LIBADB_OBJS)
++
++libdiagnose_usb: libdiagnose_usb.a
++
++libdiagnose_usb.a: $(LIBDIAGNOSE_USB_OBJS)
++ $(AR) rcs $@ $(LIBDIAGNOSE_USB_OBJS)
++
++%.o: %.cpp
++ $(CXX) -c $< $(CXXFLAGS) -o $@
++
++install: adb
++ install -Dm755 adb $(DESTDIR)$(PREFIX)/bin/adb
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(OBJS) $(LIBADB_OBJS) $(LIBDIAGNOSE_USB_OBJS)
++
++mrproper: clean
++ rm -rf $(BIN) *.a
++
+diff --git core/base/Makefile core/base/Makefile
+new file mode 100644
+index 0000000..d3e7436
+--- /dev/null
++++ core/base/Makefile
+@@ -0,0 +1,37 @@
++SRCS+= \
++ file.cpp \
++ logging.cpp \
++ parsenetaddress.cpp \
++ stringprintf.cpp \
++ strings.cpp \
++ test_utils.cpp \
++ errors_unix.cpp
++
++override CXXFLAGS+= \
++ -I./include \
++ -I../include \
++ -D__GLIBC__ \
++ -Wall \
++ -Wextra \
++ -Werror \
++ -std=gnu++14
++
++OBJS= $(SRCS:.cpp=.o)
++
++BIN= libbase.a
++
++all: $(BIN)
++
++$(BIN): $(OBJS)
++ $(AR) rcs $@ $(OBJS)
++
++%.o: %.cpp
++ $(CXX) -c $< $(CXXFLAGS) -o $@
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(OBJS)
++
++mrproper: clean
++ rm -rf $(BIN)
+diff --git core/base/errors_unix.cpp core/base/errors_unix.cpp
+index 296995e..3b983d3 100644
+--- core/base/errors_unix.cpp
++++ core/base/errors_unix.cpp
+@@ -17,6 +17,7 @@
+ #include "android-base/errors.h"
+
+ #include <errno.h>
++#include <cstring>
+
+ namespace android {
+ namespace base {
+diff --git core/base/logging.cpp core/base/logging.cpp
+index 1741871..0aaae2e 100644
+--- core/base/logging.cpp
++++ core/base/logging.cpp
+@@ -33,6 +33,7 @@
+ #include <limits>
+ #include <sstream>
+ #include <string>
++#include <cstring>
+ #include <utility>
+ #include <vector>
+
+diff --git core/fastboot/Makefile core/fastboot/Makefile
+new file mode 100644
+index 0000000..6d81f7c
+--- /dev/null
++++ core/fastboot/Makefile
+@@ -0,0 +1,70 @@
++fastboot_version := $(shell git -C . rev-parse --short=12 HEAD 2>/dev/null)-android
++
++SRCS+= \
++ bootimg_utils.cpp \
++ engine.cpp \
++ fastboot.cpp \
++ fs.cpp\
++ protocol.cpp \
++ socket.cpp \
++ tcp.cpp \
++ udp.cpp \
++ util.cpp \
++ usb_linux.cpp \
++ util_linux.cpp
++
++
++override CXXFLAGS+= \
++ -I../mkbootimg/ \
++ -I../base/include \
++ -I../libsparse/include \
++ -I../include \
++ -I../adb \
++ -I../../gtest/include \
++ -I../../extras/ext4_utils \
++ -I../../extras/f2fs_utils \
++ -Wall \
++ -Wextra \
++ -Werror \
++ -Wunreachable-code \
++ -DFASTBOOT_REVISION='"$(fastboot_version)"' \
++ -std=gnu++14
++
++LIBS= \
++ ../libziparchive/libziparchive.a \
++ ../../extras/ext4_utils/libext4_utils.a \
++ ../libsparse/libsparse.a \
++ ../libutils/libutils.a \
++ ../liblog/liblog.a \
++ ../adb/libdiagnose_usb.a \
++ ../base/libbase.a \
++ ../libcutils/libcutils.a \
++ ../../gtest/libgtest.a \
++ ../../extras/f2fs_utils/libf2fs.a \
++ ../libcutils/libcutils.a \
++ ../../libselinux/libselinux.a
++
++override LDFLAGS+= -lz -lpcre -lpthread
++
++OBJS= $(SRCS:.cpp=.o)
++
++BIN= fastboot
++
++all: $(BIN)
++
++$(BIN): $(OBJS)
++ $(CXX) -o $@ $(OBJS) $(LIBS) $(LDFLAGS)
++
++%.o: %.cpp
++ $(CXX) -c $< $(CXXFLAGS) -o $@
++
++install: fastboot
++ install -Dm755 fastboot $(DESTDIR)$(PREFIX)/bin/fastboot
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(OBJS)
++
++mrproper: clean
++ rm -rf $(BIN)
+diff --git core/include/cutils/atomic.h core/include/cutils/atomic.h
+index ded972a..2ff6fce 100644
+--- core/include/cutils/atomic.h
++++ core/include/cutils/atomic.h
+@@ -19,7 +19,12 @@
+
+ #include <stdint.h>
+ #include <sys/types.h>
++#ifdef __cplusplus
++#include <atomic>
++using namespace std;
++#else
+ #include <stdatomic.h>
++#endif
+
+ #ifndef ANDROID_ATOMIC_INLINE
+ #define ANDROID_ATOMIC_INLINE static inline
+@@ -114,6 +119,7 @@ int32_t android_atomic_or(int32_t value, volatile int32_t* addr)
+ return atomic_fetch_or_explicit(a, value, memory_order_release);
+ }
+
++#ifndef __cplusplus
+ /*
+ * Perform an atomic load with "acquire" or "release" ordering.
+ *
+@@ -208,6 +214,7 @@ int android_atomic_release_cas(int32_t oldvalue, int32_t newvalue,
+ memory_order_release,
+ memory_order_relaxed));
+ }
++#endif
+
+ /*
+ * Fence primitives.
+diff --git core/include/log/log.h core/include/log/log.h
+index e606a84..963347a 100644
+--- core/include/log/log.h
++++ core/include/log/log.h
+@@ -38,6 +38,7 @@
+ #include <log/uio.h>
+
+ #ifdef __cplusplus
++#include <cstring>
+ extern "C" {
+ #endif
+
+diff --git core/libcutils/Makefile core/libcutils/Makefile
+new file mode 100644
+index 0000000..ec9c573
+--- /dev/null
++++ core/libcutils/Makefile
+@@ -0,0 +1,59 @@
++CSRCS+= \
++ config_utils.c \
++ fs_config.c \
++ canned_fs_config.c \
++ hashmap.c \
++ iosched_policy.c \
++ load_file.c \
++ native_handle.c \
++ open_memstream.c \
++ process_name.c \
++ record_stream.c \
++ sched_policy.c \
++ strlcpy.c \
++ threads.c \
++ fs.c \
++ multiuser.c \
++ socket_inaddr_any_server_unix.c \
++ socket_local_client_unix.c \
++ socket_local_server_unix.c \
++ socket_loopback_client_unix.c \
++ socket_loopback_server_unix.c \
++ socket_network_client_unix.c \
++ str_parms.c \
++ ashmem-host.c \
++ trace-host.c \
++ dlmalloc_stubs.c
++
++CXXSRCS+= \
++ sockets_unix.cpp \
++ sockets.cpp \
++ strdup16to8.c \
++ strdup8to16.c
++
++override CFLAGS+= -I../include
++
++override CXXFLAGS+= -I../include
++
++COBJS= $(CSRCS:.c=.o)
++CXXOBJS= $(CXXSRCS:.cpp=.o)
++BIN= libcutils.a
++
++all: $(BIN)
++
++$(BIN): $(COBJS) $(CXXOBJS)
++ $(AR) rcs $@ $(COBJS) $(CXXOBJS)
++
++%.o: %.c
++ $(CC) -c $< $(CFLAGS) -o $@
++
++%.o: %.cpp
++ $(CXX) -c $< $(CXXFLAGS) -o $@
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(COBJS) $(CXXOBJS)
++
++mrproper: clean
++ rm -rf $(BIN)
+diff --git core/libcutils/fs.c core/libcutils/fs.c
+index 3f14de7..175df6a 100644
+--- core/libcutils/fs.c
++++ core/libcutils/fs.c
+@@ -79,7 +79,7 @@ static int fs_prepare_path_impl(const char* path, mode_t mode, uid_t uid, gid_t
+ create:
+ create_result = prepare_as_dir
+ ? TEMP_FAILURE_RETRY(mkdir(path, mode))
+- : TEMP_FAILURE_RETRY(open(path, O_CREAT | O_CLOEXEC | O_NOFOLLOW | O_RDONLY));
++ : TEMP_FAILURE_RETRY(open(path, O_CREAT | O_CLOEXEC | O_NOFOLLOW | O_RDONLY, mode));
+ if (create_result == -1) {
+ if (errno != EEXIST) {
+ ALOGE("Failed to %s(%s): %s",
+diff --git core/liblog/Makefile core/liblog/Makefile
+new file mode 100644
+index 0000000..75a0af3
+--- /dev/null
++++ core/liblog/Makefile
+@@ -0,0 +1,39 @@
++SRCS+= \
++ log_event_list.c \
++ log_event_write.c \
++ logger_write.c \
++ config_write.c \
++ logger_name.c \
++ logger_lock.c \
++ fake_log_device.c \
++ fake_writer.c \
++ event_tag_map.c
++
++
++override CFLAGS+= \
++ -I../include \
++ -DLIBLOG_LOG_TAG=1005 \
++ -DSNET_EVENT_LOG_TAG=1397638484 \
++ -DFAKE_LOG_DEVICE=1 \
++ -Werror \
++ -fvisibility=hidden
++
++OBJS= $(SRCS:.c=.o)
++
++BIN= liblog.a
++
++all: $(BIN)
++
++$(BIN): $(OBJS)
++ $(AR) rcs $@ $(OBJS)
++
++%.o: %.c
++ $(CC) -c $< $(CFLAGS) -o $@
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(OBJS)
++
++mrproper: clean
++ rm -rf $(BIN)
+diff --git core/libpackagelistparser/Makefile core/libpackagelistparser/Makefile
+new file mode 100644
+index 0000000..38a0158
+--- /dev/null
++++ core/libpackagelistparser/Makefile
+@@ -0,0 +1,20 @@
++SRCS+= \
++ packagelistparser.c
++
++override CFLAGS+= -I../include
++override CFLAGS+= -I./include
++
++OBJS= $(SRCS:.c=.o)
++
++BIN= libpackagelistparser.a
++
++all: $(BIN)
++
++$(BIN): $(OBJS)
++ $(AR) rcs $@ $(OBJS)
++
++%.o: %.c
++ $(CC) -c $< $(CFLAGS) -o $@
++
++clean:
++ rm -rf *.o
+diff --git core/libsparse/Makefile core/libsparse/Makefile
+new file mode 100644
+index 0000000..418c028
+--- /dev/null
++++ core/libsparse/Makefile
+@@ -0,0 +1,31 @@
++SRCS+= \
++ backed_block.c \
++ output_file.c \
++ sparse.c \
++ sparse_crc32.c \
++ sparse_err.c \
++ sparse_read.c
++
++override CFLAGS+= \
++ -I./include \
++ -Werror
++
++OBJS= $(SRCS:.c=.o)
++
++BIN= libsparse.a
++
++all: $(BIN)
++
++$(BIN): $(OBJS)
++ $(AR) rcs $@ $(OBJS)
++
++%.o: %.c
++ $(CC) -c $< $(CFLAGS) -o $@
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(OBJS)
++
++mrproper: clean
++ rm -rf $(BIN)
+diff --git core/libutils/Makefile core/libutils/Makefile
+new file mode 100644
+index 0000000..82a22b9
+--- /dev/null
++++ core/libutils/Makefile
+@@ -0,0 +1,50 @@
++SRCS+= \
++ CallStack.cpp \
++ FileMap.cpp \
++ JenkinsHash.cpp \
++ LinearTransform.cpp \
++ Log.cpp \
++ NativeHandle.cpp \
++ Printer.cpp \
++ PropertyMap.cpp \
++ RefBase.cpp \
++ SharedBuffer.cpp \
++ Static.cpp \
++ StopWatch.cpp \
++ String8.cpp \
++ String16.cpp \
++ SystemClock.cpp \
++ Threads.cpp \
++ Timers.cpp \
++ Tokenizer.cpp \
++ Unicode.cpp \
++ VectorImpl.cpp \
++ misc.cpp \
++ Looper.cpp \
++ ProcessCallStack.cpp
++
++override CXXFLAGS+= \
++ -I../include \
++ -I../../safe-iop/include \
++ -DLIBUTILS_NATIVE=1 \
++ -std=gnu++14
++
++OBJS= $(SRCS:.cpp=.o)
++
++BIN= libutils.a
++
++all: $(BIN)
++
++$(BIN): $(OBJS)
++ $(AR) rcs $@ $(OBJS)
++
++%.o: %.cpp
++ $(CXX) -c $< $(CXXFLAGS) -o $@
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(OBJS)
++
++mrproper: clean
++ rm -rf $(BIN)
+diff --git core/libziparchive/Makefile core/libziparchive/Makefile
+new file mode 100644
+index 0000000..4eef274
+--- /dev/null
++++ core/libziparchive/Makefile
+@@ -0,0 +1,34 @@
++SRCS+= \
++ zip_archive.cc \
++ zip_archive_stream_entry.cc \
++ zip_writer.cc \
++
++override CXXFLAGS+= \
++ -I./include \
++ -I../include \
++ -I../base/include \
++ -DZLIB_CONST \
++ -Werror \
++ -fno-strict-aliasing \
++ -std=gnu++14 \
++ -Wall
++
++OBJS= $(SRCS:.cc=.o)
++
++BIN= libziparchive.a
++
++all: $(BIN)
++
++$(BIN): $(OBJS)
++ $(AR) rcs $@ $(OBJS)
++
++%.o: %.c
++ $(CXX) -c $< $(CXXFLAGS) -o $@
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(OBJS)
++
++mrproper: clean
++ rm -rf $(BIN)
+diff --git core/libziparchive/zip_writer.cc core/libziparchive/zip_writer.cc
+index 1ebed30..5c622d0 100644
+--- core/libziparchive/zip_writer.cc
++++ core/libziparchive/zip_writer.cc
+@@ -24,6 +24,7 @@
+
+ #include <cassert>
+ #include <cstdio>
++#include <cstring>
+ #include <memory>
+ #include <vector>
+ #include <zlib.h>
+diff --git extras/ext4_utils/Makefile extras/ext4_utils/Makefile
+new file mode 100644
+index 0000000..000aaca
+--- /dev/null
++++ extras/ext4_utils/Makefile
+@@ -0,0 +1,38 @@
++SRCS+= \
++ make_ext4fs.c \
++ ext4fixup.c \
++ ext4_utils.c \
++ allocate.c \
++ contents.c \
++ extent.c \
++ indirect.c \
++ sha1.c \
++ wipe.c \
++ crc16.c \
++ ext4_sb.c
++
++override CFLAGS+= \
++ -I../../core/libsparse/include \
++ -I../../core/include \
++ -I../../libselinux/include \
++ -fno-strict-aliasing
++
++OBJS= $(SRCS:.c=.o)
++
++BIN= libext4_utils.a
++
++all: $(BIN)
++
++$(BIN): $(OBJS)
++ $(AR) rcs $@ $(OBJS)
++
++%.o: %.c
++ $(CC) -c $< $(CFLAGS) -o $@
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(OBJS)
++
++mrproper: clean
++ rm -rf $(BIN)
+diff --git extras/f2fs_utils/Makefile extras/f2fs_utils/Makefile
+new file mode 100644
+index 0000000..d81ac9a
+--- /dev/null
++++ extras/f2fs_utils/Makefile
+@@ -0,0 +1,34 @@
++SRCS+= \
++ f2fs_utils.c \
++ f2fs_ioutils.c \
++ f2fs_dlutils.c
++
++
++override CFLAGS+= \
++ -I../../f2fs-tools/include \
++ -I../../f2fs-tools/mkfs \
++ -I../../core/libsparse/include \
++ -I../../libselinux/include \
++ -Wno-unused-parameter
++
++OBJS= $(SRCS:.c=.o)
++
++BIN= libf2fs.a
++
++all: $(BIN)
++
++$(BIN): $(OBJS)
++ $(AR) rcs $@ $(OBJS)
++
++%.o: %.c
++ $(CC) -c $< $(CFLAGS) -o $@
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(OBJS)
++
++mrproper: clean
++ rm -rf $(BIN)
++
++
+diff --git extras/f2fs_utils/f2fs_utils.c extras/f2fs_utils/f2fs_utils.c
+index 6254c08..05ec599 100644
+--- extras/f2fs_utils/f2fs_utils.c
++++ extras/f2fs_utils/f2fs_utils.c
+@@ -53,7 +53,7 @@ static void reset_f2fs_info() {
+ config.fd = -1;
+ if (f2fs_sparse_file) {
+ sparse_file_destroy(f2fs_sparse_file);
+- f2fs_sparse_file = NULL;
++ f2fs_sparse_file = 0;
+ }
+ }
+
+@@ -73,6 +73,6 @@ int make_f2fs_sparse_fd(int fd, long long len,
+ sparse_file_write(f2fs_sparse_file, fd, /*gzip*/0, /*sparse*/1, /*crc*/0);
+ sparse_file_destroy(f2fs_sparse_file);
+ flush_sparse_buffs();
+- f2fs_sparse_file = NULL;
++ f2fs_sparse_file = 0;
+ return 0;
+ }
+diff --git libselinux/Makefile libselinux/Makefile
+new file mode 100644
+index 0000000..52ef5cc
+--- /dev/null
++++ libselinux/Makefile
+@@ -0,0 +1,31 @@
++SRCS+= \
++ src/callbacks.c \
++ src/check_context.c \
++ src/freecon.c \
++ src/init.c \
++ src/label.c \
++ src/label_file.c \
++ src/label_android_property.c \
++ src/label_support.c
++
++override CFLAGS+= -I./include
++
++OBJS= $(SRCS:.c=.o)
++
++BIN= libselinux.a
++
++all: $(BIN)
++
++$(BIN): $(OBJS)
++ $(AR) rcs $@ $(OBJS)
++
++%.o: %.c
++ $(CC) -c $< $(CFLAGS) -o $@
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(OBJS)
++
++mrproper: clean
++ rm -rf $(BIN)
+diff --git gtest/Makefile gtest/Makefile
+new file mode 100644
+index 0000000..49a50aa
+--- /dev/null
++++ gtest/Makefile
+@@ -0,0 +1,36 @@
++SRCS+= \
++ src/gtest-all.cc \
++ src/gtest-filepath.cc \
++ src/gtest-printers.cc \
++ src/gtest-typed-test.cc \
++ src/gtest_main.cc \
++ src/gtest-death-test.cc \
++ src/gtest-port.cc \
++ src/gtest-test-part.cc \
++ src/gtest.cc
++
++
++override CXXFLAGS+= \
++ -I./include \
++ -I.
++
++OBJS= $(SRCS:.cc=.o)
++
++BIN= libgtest.a
++
++all: $(BIN)
++
++$(BIN): $(OBJS)
++ $(AR) rcs $@ $(OBJS)
++
++%.o: %.cc
++ $(CXX) -c $< $(CXXFLAGS) -o $@
++
++.PHONY: clean mrproper
++
++clean:
++ rm -rf $(OBJS)
++
++mrproper: clean
++ rm -rf $(BIN)
++