Home | History | Annotate | Download | only in core
      1 # Copyright (C) 2010 The Android Open Source Project
      2 #
      3 # Licensed under the Apache License, Version 2.0 (the "License");
      4 # you may not use this file except in compliance with the License.
      5 # You may obtain a copy of the License at
      6 #
      7 #      http://www.apache.org/licenses/LICENSE-2.0
      8 #
      9 # Unless required by applicable law or agreed to in writing, software
     10 # distributed under the License is distributed on an "AS IS" BASIS,
     11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 # See the License for the specific language governing permissions and
     13 # limitations under the License.
     14 
     15 LOCAL_PATH := $(call my-dir)
     16 
     17 include $(CLEAR_VARS)
     18 # Module to compile protos for tradefed
     19 LOCAL_MODULE := tradefed-protos
     20 LOCAL_SRC_FILES := $(call all-proto-files-under, proto)
     21 LOCAL_JAVA_LIBRARIES := host-libprotobuf-java-full
     22 LOCAL_SOURCE_FILES_ALL_GENERATED := true
     23 LOCAL_MODULE_TAGS := optional
     24 
     25 include $(BUILD_HOST_JAVA_LIBRARY)
     26 
     27 include $(CLEAR_VARS)
     28 
     29 # Only compile source java files in this lib.
     30 LOCAL_SRC_FILES := $(call all-java-files-under, src)
     31 
     32 LOCAL_JAVA_RESOURCE_DIRS := res
     33 
     34 LOCAL_JAVACFLAGS += -g -Xlint
     35 -include tools/tradefederation/core/error_prone_rules.mk
     36 
     37 LOCAL_MODULE := tradefed
     38 
     39 LOCAL_MODULE_TAGS := optional
     40 LOCAL_STATIC_JAVA_LIBRARIES := junit-host kxml2-2.3.0 jline-1.0 tf-remote-client commons-compress-prebuilt host-libprotobuf-java-full tradefed-protos
     41 # emmalib is only a runtime dependency if generating code coverage reporters,
     42 # not a compile time dependency
     43 LOCAL_JAVA_LIBRARIES := emmalib jack-jacoco-reporter loganalysis tools-common-prebuilt
     44 
     45 LOCAL_JAR_MANIFEST := MANIFEST.mf
     46 
     47 include $(BUILD_HOST_JAVA_LIBRARY)
     48 
     49 # makefile rules to copy jars to HOST_OUT/tradefed
     50 # so tradefed.sh can automatically add to classpath
     51 DEST_JAR := $(HOST_OUT)/tradefed/$(LOCAL_MODULE).jar
     52 $(DEST_JAR): $(LOCAL_BUILT_MODULE)
     53 	$(copy-file-to-new-target)
     54 
     55 $(HOST_OUT)/tradefed/%.jar : $(HOST_OUT_JAVA_LIBRARIES)/%.jar
     56 	$(copy-file-to-new-target)
     57 
     58 # this dependency ensure the above rule will be executed if jar is built
     59 $(LOCAL_INSTALLED_MODULE) : $(DEST_JAR)
     60 $(LOCAL_INSTALLED_MODULE) : $(foreach m, $(LOCAL_JAVA_LIBRARIES), $(HOST_OUT)/tradefed/$(m).jar)
     61 
     62 #######################################################
     63 # intentionally skipping CLEAR_VARS
     64 # Enable the build process to generate javadoc
     65 # We need to reference symbols in the jar built above.
     66 
     67 # ==== docs for legacy sac app engine
     68 #LOCAL_MODULE = tradefed-sac-deprecated
     69 LOCAL_JAVA_LIBRARIES += tradefed
     70 LOCAL_IS_HOST_MODULE:=true
     71 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
     72 LOCAL_ADDITIONAL_DEPENDENCIES := tradefed
     73 LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sac
     74 LOCAL_DROIDDOC_OPTIONS:= \
     75         -package \
     76         -toroot / \
     77         -hdf android.whichdoc online \
     78         -hdf sac true \
     79         -hdf devices true \
     80         -showAnnotationOverridesVisibility \
     81         -showAnnotation com.android.tradefed.config.OptionClass \
     82         -showAnnotation com.android.tradefed.config.Option \
     83 
     84 include $(BUILD_DROIDDOC)
     85 
     86 # ==== docs for the web (on the devsite app engine server)
     87 LOCAL_MODULE = tradefed-ds
     88 LOCAL_JAVA_LIBRARIES += tradefed
     89 LOCAL_IS_HOST_MODULE := true
     90 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
     91 LOCAL_ADDITIONAL_DEPENDENCIES := tradefed
     92 LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR := external/doclava/res/assets/templates-sdk
     93 LOCAL_DROIDDOC_OPTIONS := \
     94         -hdf sac true \
     95         -hdf devices true \
     96         -hdf android.whichdoc online \
     97         -hdf css.path /reference/assets/css/doclava-devsite.css \
     98         -hdf book.root toc \
     99         -yaml _toc.yaml \
    100         -apidocsdir reference/tradefed/ \
    101         -werror \
    102         -package \
    103         -devsite \
    104 
    105 include $(BUILD_DROIDDOC)
    106 
    107 #######################################################
    108 include $(CLEAR_VARS)
    109 
    110 # Create a simple alias to build all the TF-related targets
    111 # Note that this is incompatible with `make dist`.  If you want to make
    112 # the distribution, you must run `tapas` with the individual target names.
    113 .PHONY: tradefed-all
    114 tradefed-all: tradefed tradefed-tests tf-prod-tests tf-prod-metatests tradefed_win script_help verify tradefed-contrib
    115 
    116 # ====================================
    117 include $(CLEAR_VARS)
    118 # copy tradefed.sh script to host dir
    119 
    120 LOCAL_MODULE_TAGS := optional
    121 
    122 LOCAL_PREBUILT_EXECUTABLES := tradefed.sh tradefed_win.bat script_help.sh verify.sh run_tf_cmd.sh
    123 include $(BUILD_HOST_PREBUILT)
    124 
    125 # Build all sub-directories
    126 include $(call all-makefiles-under,$(LOCAL_PATH))
    127 
    128 ########################################################
    129 # Zip up the built files and dist it as tradefed.zip
    130 ifneq (,$(filter tradefed tradefed-all, $(TARGET_BUILD_APPS)))
    131 
    132 tradefed_dist_host_jars := tradefed tradefed-tests tf-prod-tests emmalib jack-jacoco-reporter loganalysis loganalysis-tests tf-remote-client tradefed-contrib
    133 tradefed_dist_host_jar_files := $(foreach m, $(tradefed_dist_host_jars), $(HOST_OUT_JAVA_LIBRARIES)/$(m).jar)
    134 
    135 tradefed_dist_host_exes := tradefed.sh tradefed_win.bat script_help.sh verify.sh run_tf_cmd.sh
    136 tradefed_dist_host_exe_files := $(foreach m, $(tradefed_dist_host_exes), $(BUILD_OUT_EXECUTABLES)/$(m))
    137 
    138 tradefed_dist_test_apks := TradeFedUiTestApp TradeFedTestApp DeviceSetupUtil
    139 tradefed_dist_test_apk_files := $(foreach m, $(tradefed_dist_test_apks), $(TARGET_OUT_DATA_APPS)/$(m)/$(m).apk)
    140 
    141 tradefed_dist_files := \
    142     $(tradefed_dist_host_jar_files) \
    143     $(tradefed_dist_test_apk_files) \
    144     $(tradefed_dist_host_exe_files)
    145 
    146 tradefed_dist_intermediates := $(call intermediates-dir-for,PACKAGING,tradefed_dist,HOST,COMMON)
    147 tradefed_dist_zip := $(tradefed_dist_intermediates)/tradefed.zip
    148 $(tradefed_dist_zip) : $(tradefed_dist_files)
    149 	@echo "Package: $@"
    150 	$(hide) rm -rf $(dir $@) && mkdir -p $(dir $@)
    151 	$(hide) cp -f $^ $(dir $@)
    152 	$(hide) cd $(dir $@) && zip -q $(notdir $@) $(notdir $^)
    153 
    154 $(call dist-for-goals, apps_only, $(tradefed_dist_zip))
    155 
    156 endif  # tradefed in $(TARGET_BUILD_APPS)
    157