diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 265 |
1 files changed, 0 insertions, 265 deletions
diff --git a/Makefile b/Makefile deleted file mode 100644 index fda5b0c01..000000000 --- a/Makefile +++ /dev/null @@ -1,265 +0,0 @@ -TARGET_ARCH?=$(shell uname -p) -BUILD_TYPE?=Debug -CROSS_BUILD?=0 -HOST_OS?=linux -TARGET_OS?=linux -PARALLEL_BUILD?=1 -## TODO: fix obs build break -OBS_BUILD?=OFF -COVERAGE_BUILD?=0 -BENCHMARK_ACL_BUILD?=0 -OPTIONS?= -GENERATE_FILES?=1 - -# make TARGET and TYPE to lowercase -TARGET_ARCH_LC=$(shell echo $(TARGET_ARCH) | tr A-Z a-z) -BUILD_TYPE_LC=$(shell echo $(BUILD_TYPE) | tr A-Z a-z) -# we need base name 'arm` for all arm arch -TARGET_ARCH_BASE=$(TARGET_ARCH_LC) -ifneq (,$(findstring arm64,$(TARGET_ARCH_BASE))) - # arm64 as target-arch comes from Android - TARGET_ARCH_BASE=arm64 - ifdef ROOTFS_DIR - ROOTFS_ARM64=$(ROOTFS_DIR) - export ROOTFS_ARM64 - endif - # For now Android is the only option for arm64 - TARGET_OS:=android -else ifneq (,$(findstring arm,$(TARGET_ARCH_BASE))) - TARGET_ARCH_BASE=arm - ifdef ROOTFS_DIR - ROOTFS_ARM=$(ROOTFS_DIR) - export ROOTFS_ARM - endif -else ifneq (,$(findstring aarch64,$(TARGET_ARCH_BASE))) - # aarch64 as target-arch comes from all except for Android - TARGET_ARCH_BASE=aarch64 - ifdef ROOTFS_DIR - ROOTFS_ARM64=$(ROOTFS_DIR) - export ROOTFS_ARM64 - endif -endif -# Todo: we may set CROSS_BUILD=1 when ROOTFS_DIR is given -# the toolchain file, only for cross build -ifeq ($(CROSS_BUILD),1) - TOOLCHAIN_FILE=cmake/config/config_$(TARGET_ARCH_LC)-$(TARGET_OS).cmake - OPTION_TOOLCHAIN=-DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE) -else - OPTION_TOOLCHAIN= -endif - -ifeq ($(COVERAGE_BUILD),1) - OPTIONS+= -DCOVERAGE_BUILD=1 -else - OPTIONS+= -DCOVERAGE_BUILD=0 -endif - -ifeq ($(BENCHMARK_ACL_BUILD),1) - OPTIONS+= -DBUILD_BENCHMARK_ACL=1 -endif - -ifeq ($(PARALLEL_BUILD),1) - # Get number of processors (linux only for now) - ifeq ($(HOST_OS),linux) - NPROCS?=$(shell grep -c ^processor /proc/cpuinfo) - endif -endif - -NPROCS?=1 -WORKHOME=Product -WORKFOLDER=$(TARGET_ARCH_LC)-$(TARGET_OS).$(BUILD_TYPE_LC) -WORKDIR=$(WORKHOME)/$(WORKFOLDER) - -BUILD_ROOT=$(WORKDIR)/obj -INSTALL_ROOT=$(WORKDIR)/out - -BUILD_FOLDER=$(WORKFOLDER)/obj -INSTALL_FOLDER=$(WORKFOLDER)/out -BUILD_ALIAS=$(WORKHOME)/obj -INSTALL_ALIAS=$(WORKHOME)/out - -INSTALL_PATH?=$(CURDIR)/$(WORKDIR)/out - -TIMESTAMP_CONFIGURE=$(WORKDIR)/CONFIGURE -TIMESTAMP_BUILD=$(WORKDIR)/BUILD -TIMESTAMP_INSTALL=$(WORKDIR)/INSTALL - -# -# for Build Arm Compute Library with SCONS -# -ACL_FOLDER=externals/acl -ACL_COMMAND=scons -j${NPROCS} neon=1 opencl=1 examples=0 embed_kernels=1 os=$(TARGET_OS) -ifeq ($(TARGET_ARCH_LC),armv7l) - ACL_COMMAND+= arch=armv7a - ACL_BUILD_OUT=armv7a-$(TARGET_OS) -else ifeq ($(TARGET_ARCH_LC),aarch64) - ACL_COMMAND+= arch=arm64-v8a - ACL_BUILD_OUT=arm64-v8a-$(TARGET_OS) -else ifeq ($(TARGET_ARCH_BASE),arm64) - ACL_COMMAND+= arch=arm64-v8a - ACL_BUILD_OUT=arm64-v8a-$(TARGET_OS) -endif -ifeq ($(TARGET_OS),android) - ACL_COMMAND+= Werror=0 - ANDROID_GNUSTL_PATH=$(ROOTFS_ARM64)/bin:$(ROOTFS_ARM64)/aarch64-linux-android/bin:$$PATH -else - ACL_COMMAND+= Werror=1 -endif -ifeq ($(BUILD_TYPE_LC),debug) - ACL_COMMAND+= debug=1 asserts=1 -endif -ACL_FOLDER_NAME=$(ACL_BUILD_OUT).$(BUILD_TYPE_LC) -ACL_COMMAND+= build_dir=$(ACL_FOLDER_NAME) -ACL_FOLDER_BUILD=$(ACL_FOLDER)/build/$(ACL_FOLDER_NAME) -#ifneq ($(EXT_ACL_FOLDER),) -# ACL_FOLDER_BUILD=$(EXT_ACL_FOLDER) -#endif - -all: build - -### -### Command (public) -### -configure: configure_internal - -build: build_internal - -install: $(TIMESTAMP_INSTALL) - -clean: - rm -rf $(WORKDIR) - rm -rf externals/*.stamp - -acl: internal_acl_build internal_acl_install - -check: check_internal - -runtime: runtime_build_internal - -testbuild: test_build_internal - -tflite: tflite_build_internal - -### -### Command (internal) -### -configure_internal: -ifeq ($(GENERATE_FILES),1) - tests/nnapi/specs/generate_test.sh -endif - - mkdir -p $(BUILD_ROOT) - cmake -B$(CURDIR)/$(BUILD_ROOT) -H$(CURDIR) \ - -DCMAKE_INSTALL_PREFIX=$(INSTALL_PATH) \ - -DCMAKE_BUILD_TYPE=$(BUILD_TYPE_LC) -DTARGET_ARCH=$(TARGET_ARCH_LC) \ - -DHOST_OS=$(HOST_OS) \ - -DTARGET_OS=$(TARGET_OS) \ - -DOBS_BUILD=$(OBS_BUILD) \ - $(OPTION_TOOLCHAIN) \ - $(OPTIONS) - touch $(TIMESTAMP_CONFIGURE) - -build_internal: $(BUILD_ROOT) - cd $(BUILD_ROOT) && make -j $(NPROCS) all - rm -rf $(BUILD_ALIAS) - ln -s $(BUILD_FOLDER) $(BUILD_ALIAS) - touch $(TIMESTAMP_BUILD) - -install_internal: - cd $(BUILD_ROOT) && make install - rm -rf $(INSTALL_ALIAS) - ln -s $(INSTALL_FOLDER) $(INSTALL_ALIAS) - touch $(TIMESTAMP_INSTALL) - -internal_acl_build: configure_internal -#ifeq ($(EXT_ACL_FOLDER),) -ifeq ($(TARGET_OS),android) - cd $(ACL_FOLDER) && CXX=clang++ CC=clang PATH=$(ANDROID_GNUSTL_PATH) $(ACL_COMMAND) -else - cd $(ACL_FOLDER) && $(ACL_COMMAND) -endif -#endif - -internal_acl_install: - @echo $(ACL_FOLDER_BUILD) - @mkdir -vp $(INSTALL_PATH)/lib - @cp -v $(ACL_FOLDER_BUILD)/libarm_compute_core.so $(INSTALL_PATH)/lib/. - @cp -v $(ACL_FOLDER_BUILD)/libarm_compute_graph.so $(INSTALL_PATH)/lib/. - @cp -v $(ACL_FOLDER_BUILD)/libarm_compute.so $(INSTALL_PATH)/lib/. - -external_acl: -ifneq ($(EXT_ACL_FOLDER),) - @mkdir -vp $(INSTALL_PATH)/lib - @cp -v $(EXT_ACL_FOLDER)/libarm_compute_core.so $(INSTALL_PATH)/lib/. - @cp -v $(EXT_ACL_FOLDER)/libarm_compute_graph.so $(INSTALL_PATH)/lib/. - @cp -v $(EXT_ACL_FOLDER)/libarm_compute.so $(INSTALL_PATH)/lib/. -endif - -ifeq ($(CROSS_BUILD),1) -check_internal: test_internal_cross -else -check_internal: test_internal -endif - -# TODO: Enable tests on cross build -test_internal_cross: - @echo "Can't do tests on cross build" - -test_internal: - tests/scripts/test_driver.sh . - -build_test_suite: install_internal - @echo "packaging test suite" - @rm -rf $(INSTALL_ROOT)/test-suite.tar.gz - @tar -zcf test-suite.tar.gz tests/scripts tests/framework $(INSTALL_ALIAS) --dereference - @mv test-suite.tar.gz $(INSTALL_ROOT)/. - -build_coverage_suite: install_internal - @echo "packaging test-coverage suite" - @rm -rf $(INSTALL_ROOT)/coverage-suite.tar.gz - @find Product -name "*.gcno" > include_lists.txt - @pwd | grep -o '/' | wc -l > tests/scripts/build_path_depth.txt - @tar -zcf coverage-suite.tar.gz tests/scripts tests/framework $(INSTALL_ALIAS) --dereference -T include_lists.txt - @rm -rf include_lists.txt tests/scripts/build_path_depth.txt - @mv coverage-suite.tar.gz $(INSTALL_ROOT)/. - -runtime_build_internal: $(BUILD_ROOT) - cd $(BUILD_ROOT) && make -j $(NPROCS) nnapi_pure_arm_compute - rm -rf $(BUILD_ALIAS) - ln -s $(BUILD_FOLDER) $(BUILD_ALIAS) - touch $(TIMESTAMP_BUILD) - -test_build_internal: $(BUILD_ROOT) - # Build test - cd $(BUILD_ROOT) && make -j $(NPROCS) nnapi_test - cd $(BUILD_ROOT) && make -j $(NPROCS) tflite_benchmark - # Build unittest - cd $(BUILD_ROOT) && make -j $(NPROCS) nnapi_gtest - rm -rf $(BUILD_ALIAS) - ln -s $(BUILD_FOLDER) $(BUILD_ALIAS) - touch $(TIMESTAMP_BUILD) - -tflite_build_internal: $(BUILD_ROOT) - # Build test - cd $(BUILD_ROOT) && make -j $(NPROCS) tensorflow-lite gtest_main - rm -rf $(BUILD_ALIAS) - ln -s $(BUILD_FOLDER) $(BUILD_ALIAS) - touch $(TIMESTAMP_BUILD) - -### -### Timestamps -### -$(WORKDIR): - mkdir -p $@ - -$(BUILD_ROOT): $(WORKDIR) - make configure_internal - -$(TIMESTAMP_CONFIGURE): - make configure_internal - -$(TIMESTAMP_BUILD): $(TIMESTAMP_CONFIGURE) - make build_internal - -$(TIMESTAMP_INSTALL): $(TIMESTAMP_BUILD) - make install_internal |