# Created for android-7.0.0_r13

CFLAGS := -O3 -fdata-sections -ffunction-sections -flto \
	-DFASTBOOT_REVISION='"$(VERSION)"' \
	-DADB_REVISION='"$(VERSION)"' \
	-DADB_HOST=1 \
	-DFAKE_LOG_DEVICE=1 \
	-I core/adb \
	-I core/base/include \
	-I core/include \
	-I core/libsparse/include \
	-I core/mkbootimg \
	-I extras/ext4_utils \
	-I extras/f2fs_utils \
	-I f2fs-tools/include \
	-I f2fs-tools/mkfs \
	-I libselinux/include \

CXXFLAGS := -std=gnu++14 -fpermissive \
	$(CFLAGS)

CFLAGS += $(MYCFLAGS)
CXXFLAGS += $(MYCXXFLAGS)

FASTBOOT_OBJECTS := \
	core/fastboot/bootimg_utils.o \
	core/fastboot/engine.o \
	core/fastboot/fastboot.o \
	core/fastboot/fs.o \
	core/fastboot/protocol.o \
	core/fastboot/socket.o \
	core/fastboot/tcp.o \
	core/fastboot/udp.o \
	core/fastboot/usb_linux.o \
	core/fastboot/util.o \
	core/fastboot/util_linux.o \
	core/adb/diagnose_usb.o \
	core/base/errors_unix.o \
	core/base/file.o \
	core/base/parsenetaddress.o \
	core/base/stringprintf.o \
	core/base/strings.o \
	core/libcutils/socket_inaddr_any_server_unix.o \
	core/libcutils/socket_local_client_unix.o \
	core/libcutils/socket_network_client_unix.o \
	core/libcutils/sockets.o \
	core/libcutils/sockets_unix.o \
	core/liblog/config_write.o \
	core/liblog/fake_log_device.o \
	core/liblog/fake_writer.o \
	core/liblog/log_event_list.o \
	core/liblog/logger_lock.o \
	core/liblog/logger_name.o \
	core/liblog/logger_write.o \
	core/libsparse/backed_block.o \
	core/libsparse/output_file.o \
	core/libsparse/sparse.o \
	core/libsparse/sparse_crc32.o \
	core/libsparse/sparse_err.o \
	core/libsparse/sparse_read.o \
	core/libutils/FileMap.o \
	core/libziparchive/zip_archive.o \
	extras/ext4_utils/allocate.o \
	extras/ext4_utils/contents.o \
	extras/ext4_utils/crc16.o \
	extras/ext4_utils/ext4_sb.o \
	extras/ext4_utils/ext4_utils.o \
	extras/ext4_utils/extent.o \
	extras/ext4_utils/indirect.o \
	extras/ext4_utils/make_ext4fs.o \
	extras/ext4_utils/sha1.o \
	extras/ext4_utils/wipe.o \
	extras/f2fs_utils/f2fs_dlutils.o \
	extras/f2fs_utils/f2fs_ioutils.o \
	libselinux/src/callbacks.o \
	libselinux/src/check_context.o \
	libselinux/src/freecon.o \
	libselinux/src/init.o \
	libselinux/src/label.o \
	libselinux/src/label_android_property.o \
	libselinux/src/label_file.o \
	libselinux/src/label_support.o

ADB_OBJECTS := \
	core/adb/adb.o \
	core/adb/adb_auth.o \
	core/adb/adb_auth_host.o \
	core/adb/adb_client.o \
	core/adb/adb_io.o \
	core/adb/adb_listeners.o \
	core/adb/adb_trace.o \
	core/adb/adb_utils.o \
	core/adb/bugreport.o \
	core/adb/client/main.o \
	core/adb/commandline.o \
	core/adb/console.o \
	core/adb/diagnose_usb.o \
	core/adb/fdevent.o \
	core/adb/file_sync_client.o \
	core/adb/get_my_path_linux.o \
	core/adb/line_printer.o \
	core/adb/services.o \
	core/adb/shell_service_protocol.o \
	core/adb/sockets.o \
	core/adb/sysdeps_unix.o \
	core/adb/transport.o \
	core/adb/transport_local.o \
	core/adb/transport_usb.o \
	core/adb/usb_linux.o \
	core/base/file.o \
	core/base/logging.o \
	core/base/parsenetaddress.o \
	core/base/stringprintf.o \
	core/base/strings.o \
	core/libcutils/load_file.o \
	core/libcutils/socket_inaddr_any_server_unix.o \
	core/libcutils/socket_local_client_unix.o \
	core/libcutils/socket_local_server_unix.o \
	core/libcutils/socket_loopback_client_unix.o \
	core/libcutils/socket_loopback_server_unix.o \
	core/libcutils/socket_network_client_unix.o \
	core/libcutils/threads.o \
	core/liblog/config_write.o \
	core/liblog/fake_log_device.o \
	core/liblog/fake_writer.o \
	core/liblog/log_event_list.o \
	core/liblog/logger_lock.o \
	core/liblog/logger_name.o \
	core/liblog/logger_write.o

.PHONY: all
all: fastboot adb

.PHONY: clean
clean:
	rm -f fastboot $(FASTBOOT_OBJECTS) adb $(ADB_OBJECTS)

fastboot: $(FASTBOOT_OBJECTS)
	$(LINK.o) $(OUTPUT_OPTION) -Wl,--gc-sections -flto -lstdc++ -lpthread -lz $^

adb: $(ADB_OBJECTS)
	$(LINK.o) $(OUTPUT_OPTION) -Wl,--gc-sections -flto -lstdc++ -lm -lpthread -lcrypto $^