13c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash# Copyright (C) 2014 The Android Open Source Project
23c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash#
33c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash# Licensed under the Apache License, Version 2.0 (the "License");
43c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash# you may not use this file except in compliance with the License.
53c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash# You may obtain a copy of the License at
63c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash#
73c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash#      http://www.apache.org/licenses/LICENSE-2.0
83c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash#
93c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash# Unless required by applicable law or agreed to in writing, software
103c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash# distributed under the License is distributed on an "AS IS" BASIS,
113c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
123c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash# See the License for the specific language governing permissions and
133c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash# limitations under the License.
143c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash#
153c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
163c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_PATH:= $(call my-dir)
173c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
183c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyashinclude $(CLEAR_VARS)
193c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
203c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_CFLAGS_32 += -DBITS_PER_LONG=32 -DCONFIG_64BIT
213c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_CFLAGS_64 += -DBITS_PER_LONG=64 -DCONFIG_32BIT
223c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
233c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyashmain_src_files := gettime.c fio.c ioengines.c init.c stat.c log.c time.c \
243c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                  filesetup.c eta.c verify.c memory.c io_u.c parse.c mutex.c options.c \
253c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                  smalloc.c filehash.c helpers.c profile.c debug.c backend.c \
263c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                  cconv.c client.c filelock.c flow.c gettime-thread.c idletime.c io_u_queue.c \
273c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                  iolog.c json.c libfio.c memalign.c profiles/act.c profiles/tiobench.c server.c \
283c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                  td_error.c diskutil.c blktrace.c trim.c fifo.c cgroup.c \
293c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
303c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyashlib_src_files := lib/rbtree.c lib/flist_sort.c lib/getrusage.c lib/hweight.c lib/ieee754.c lib/lfsr.c \
313c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                 lib/num2str.c lib/prio_tree.c lib/rand.c lib/zipf.c lib/inet_aton.c lib/axmap.c \
323c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
333c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyashcrc_src_files := crc/crc7.c crc/crc16.c crc/crc32.c crc/crc64.c crc/crc32c.c crc/crc32c-intel.c \
343c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                 crc/sha1.c crc/sha256.c crc/sha512.c crc/md5.c crc/test.c crc/xxhash.c \
353c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
366f4e805b805f1ab3025482e471147bb51efa99bdElliott Hughesengines_src_files := engines/binject.c engines/cpu.c engines/mmap.c engines/null.c engines/net.c \
376f4e805b805f1ab3025482e471147bb51efa99bdElliott Hughes                     engines/sg.c engines/sync.c \
386f4e805b805f1ab3025482e471147bb51efa99bdElliott Hughes
396f4e805b805f1ab3025482e471147bb51efa99bdElliott Hughesengines_src_files_64 := engines/splice.c
403c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
413c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_SRC_FILES := $(main_src_files) \
423c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                   $(lib_src_files) \
433c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                   $(crc_src_files) \
446f4e805b805f1ab3025482e471147bb51efa99bdElliott Hughes                   $(engines_src_files) \
456f4e805b805f1ab3025482e471147bb51efa99bdElliott Hughes
466f4e805b805f1ab3025482e471147bb51efa99bdElliott HughesLOCAL_SRC_FILES_64 += $(engines_src_files_64)
473c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
483c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_MODULE := fio
493c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
503c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_MODULE_TAGS := debug
513c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
523c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_SHARED_LIBRARIES := libdl
533c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_STATIC_LIBRARIES := libcutils libz
543c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
553c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_C_INCLUDES += external/zlib
563c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
573c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_LDLIBS += -ldl
583c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad AyyashLOCAL_CFLAGS += -DFIO_VERSION="\"fio-2.1.8-80-g890b\"" \
593c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_3ARG_AFFINITY \
603c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_CLOCK_GETTIME \
613c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_CLOCK_MONOTONIC \
623c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_FDATASYNC \
633c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_GETOPT_LONG_ONLY \
643c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_GETTIMEOFDAY \
653c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_IPV6 \
663c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_LINUX_FALLOCATE \
673c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_LITTLE_ENDIAN \
683c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_POSIX_FALLOCATE \
693c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_RLIMIT_MEMLOCK \
703c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_RUSAGE_THREAD \
713c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_SCHED_IDLE \
723c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_SETVBUF \
733c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_SFAA \
743c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_SOCKLEN_T \
753c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_STRCASESTR \
763c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_STRSEP \
773c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_TCP_NODELAY \
783c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_TLS_THREAD \
793c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DCONFIG_ZLIB \
803c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DFIO_HAVE_CGROUPS \
813c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DFIO_INC_DEBUG \
823c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DFIO_INTERNAL \
833c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DNO_GETMNTENT_R \
843c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -DNO_INET_NETWORK \
853c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -D_FILE_OFFSET_BITS=64 \
863c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -D_FORTIFY_SOURCE=2 \
873c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -D_GNU_SOURCE \
883c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -D_LARGEFILE_SOURCE \
893c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -D__ANDROID__ \
903c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -O3 \
913c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -Wall \
923c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -Wdeclaration-after-statement \
933c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -Wwrite-strings \
943c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -ffast-math \
953c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -fno-omit-frame-pointer \
963c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -g \
973c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -rdynamic \
983c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash                -std=gnu99 \
993c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyash
1006f4e805b805f1ab3025482e471147bb51efa99bdElliott HughesLOCAL_CFLAGSS_64 += \
1016f4e805b805f1ab3025482e471147bb51efa99bdElliott Hughes                -DCONFIG_LINUX_SPLICE \
1026f4e805b805f1ab3025482e471147bb51efa99bdElliott Hughes
1033c77c1316cdd85e5c6dbb3d506e5fab44e5407ecMohamad Ayyashinclude $(BUILD_EXECUTABLE)
104