The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 1 | LOCAL_PATH:= $(call my-dir) |
| 2 | |
| 3 | # We need to build this for both the device (as a shared library) |
| 4 | # and the host (as a static library for tools to use). |
| 5 | |
| 6 | common_SRC_FILES := \ |
| 7 | png.c \ |
| 8 | pngerror.c \ |
The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 9 | pngget.c \ |
| 10 | pngmem.c \ |
| 11 | pngpread.c \ |
| 12 | pngread.c \ |
| 13 | pngrio.c \ |
| 14 | pngrtran.c \ |
| 15 | pngrutil.c \ |
| 16 | pngset.c \ |
| 17 | pngtrans.c \ |
The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 18 | pngwio.c \ |
| 19 | pngwrite.c \ |
| 20 | pngwtran.c \ |
Chris Craik | b50c217 | 2013-07-29 15:28:30 -0700 | [diff] [blame] | 21 | pngwutil.c \ |
The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 22 | |
sireesh | 282702a | 2014-06-18 14:16:48 +0530 | [diff] [blame] | 23 | ifeq ($(ARCH_ARM_HAVE_NEON),true) |
| 24 | my_cflags_arm := -DPNG_ARM_NEON_OPT=2 -DPNG_ARM_NEON_CHECK_SUPPORTED |
| 25 | endif |
Stephen Hines | bdcf23a | 2014-04-17 16:25:53 -0700 | [diff] [blame] | 26 | |
sireesh | 43608cf | 2014-06-26 13:09:53 +0530 | [diff] [blame^] | 27 | my_cflags_arm64 := -DPNG_ARM_NEON_OPT=2 -DPNG_ARM_NEON_CHECK_SUPPORTED |
| 28 | |
Stephen Hines | bdcf23a | 2014-04-17 16:25:53 -0700 | [diff] [blame] | 29 | # BUG: http://llvm.org/PR19472 - SLP vectorization (on ARM at least) crashes |
| 30 | # when we can't lower a vectorized bswap. |
| 31 | my_cflags_arm += -fno-slp-vectorize |
| 32 | |
Ying Wang | 3446b93 | 2014-02-27 14:05:59 -0800 | [diff] [blame] | 33 | my_src_files_arm := \ |
Sireesh Tripurari | b478e66 | 2014-05-09 15:15:10 +0530 | [diff] [blame] | 34 | arm/arm_init.c \ |
| 35 | arm/filter_neon.S \ |
| 36 | arm/filter_neon_intrinsics.c |
Chris Craik | b50c217 | 2013-07-29 15:28:30 -0700 | [diff] [blame] | 37 | |
| 38 | |
| 39 | common_CFLAGS := -std=gnu89 #-fvisibility=hidden ## -fomit-frame-pointer |
The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 40 | |
Raphael Moll | 671f9cd | 2011-02-09 12:43:48 -0800 | [diff] [blame] | 41 | ifeq ($(HOST_OS),windows) |
Chris Craik | b50c217 | 2013-07-29 15:28:30 -0700 | [diff] [blame] | 42 | ifeq ($(USE_MINGW),) |
| 43 | # Case where we're building windows but not under linux (so it must be cygwin) |
| 44 | # In this case, gcc cygwin doesn't recognize -fvisibility=hidden |
| 45 | $(info libpng: Ignoring gcc flag $(common_CFLAGS) on Cygwin) |
Ying Wang | 3446b93 | 2014-02-27 14:05:59 -0800 | [diff] [blame] | 46 | common_CFLAGS := |
Chris Craik | b50c217 | 2013-07-29 15:28:30 -0700 | [diff] [blame] | 47 | endif |
Raphael Moll | 671f9cd | 2011-02-09 12:43:48 -0800 | [diff] [blame] | 48 | endif |
| 49 | |
Tim Murray | 43d98c9 | 2014-04-23 15:34:05 -0700 | [diff] [blame] | 50 | ifeq ($(HOST_OS),darwin) |
| 51 | common_CFLAGS += -no-integrated-as |
| 52 | common_ASFLAGS += -no-integrated-as |
| 53 | endif |
| 54 | |
Ying Wang | 3446b93 | 2014-02-27 14:05:59 -0800 | [diff] [blame] | 55 | common_C_INCLUDES += |
The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 56 | |
| 57 | common_COPY_HEADERS_TO := libpng |
| 58 | common_COPY_HEADERS := png.h pngconf.h pngusr.h |
| 59 | |
| 60 | # For the host |
| 61 | # ===================================================== |
| 62 | |
| 63 | include $(CLEAR_VARS) |
| 64 | |
| 65 | LOCAL_SRC_FILES := $(common_SRC_FILES) |
| 66 | LOCAL_CFLAGS += $(common_CFLAGS) |
Tim Murray | 43d98c9 | 2014-04-23 15:34:05 -0700 | [diff] [blame] | 67 | LOCAL_ASFLAGS += $(common_ASFLAGS) |
The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 68 | LOCAL_C_INCLUDES += $(common_C_INCLUDES) external/zlib |
| 69 | |
| 70 | LOCAL_MODULE:= libpng |
| 71 | |
| 72 | LOCAL_COPY_HEADERS_TO := $(common_COPY_HEADERS_TO) |
| 73 | LOCAL_COPY_HEADERS := $(common_COPY_HEADERS) |
| 74 | |
| 75 | include $(BUILD_HOST_STATIC_LIBRARY) |
| 76 | |
| 77 | |
Stephen Hines | b5e7fb4 | 2013-06-26 15:15:33 -0700 | [diff] [blame] | 78 | # For the device (static) |
| 79 | # ===================================================== |
| 80 | |
| 81 | include $(CLEAR_VARS) |
| 82 | LOCAL_CLANG := true |
| 83 | LOCAL_SRC_FILES := $(common_SRC_FILES) |
| 84 | LOCAL_CFLAGS += $(common_CFLAGS) -ftrapv |
Ying Wang | 3446b93 | 2014-02-27 14:05:59 -0800 | [diff] [blame] | 85 | LOCAL_CFLAGS_arm := $(my_cflags_arm) |
Tim Murray | 43d98c9 | 2014-04-23 15:34:05 -0700 | [diff] [blame] | 86 | LOCAL_ASFLAGS += $(common_ASFLAGS) |
Ying Wang | 3446b93 | 2014-02-27 14:05:59 -0800 | [diff] [blame] | 87 | LOCAL_SRC_FILES_arm := $(my_src_files_arm) |
sireesh | 43608cf | 2014-06-26 13:09:53 +0530 | [diff] [blame^] | 88 | LOCAL_CFLAGS_arm64 := $(my_cflags_arm64) |
| 89 | LOCAL_SRC_FILES_arm64 := $(my_src_files_arm) |
Ying Wang | 3446b93 | 2014-02-27 14:05:59 -0800 | [diff] [blame] | 90 | |
Stephen Hines | b5e7fb4 | 2013-06-26 15:15:33 -0700 | [diff] [blame] | 91 | LOCAL_C_INCLUDES += $(common_C_INCLUDES) \ |
| 92 | external/zlib |
| 93 | LOCAL_SHARED_LIBRARIES := \ |
| 94 | libz |
| 95 | |
| 96 | LOCAL_MODULE:= libpng |
| 97 | |
| 98 | include $(BUILD_STATIC_LIBRARY) |
| 99 | |
| 100 | # For the device (shared) |
The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 101 | # ===================================================== |
| 102 | |
| 103 | include $(CLEAR_VARS) |
Stephen Hines | deba48b | 2012-08-03 17:25:20 -0700 | [diff] [blame] | 104 | LOCAL_CLANG := true |
The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 105 | LOCAL_SRC_FILES := $(common_SRC_FILES) |
Geremy Condra | 14cab86 | 2012-06-05 15:17:48 -0700 | [diff] [blame] | 106 | LOCAL_CFLAGS += $(common_CFLAGS) -ftrapv |
Ying Wang | 3446b93 | 2014-02-27 14:05:59 -0800 | [diff] [blame] | 107 | LOCAL_CFLAGS_arm := $(my_cflags_arm) |
Tim Murray | 43d98c9 | 2014-04-23 15:34:05 -0700 | [diff] [blame] | 108 | LOCAL_ASFLAGS += $(common_ASFLAGS) |
Ying Wang | 3446b93 | 2014-02-27 14:05:59 -0800 | [diff] [blame] | 109 | LOCAL_SRC_FILES_arm := $(my_src_files_arm) |
sireesh | 43608cf | 2014-06-26 13:09:53 +0530 | [diff] [blame^] | 110 | LOCAL_CFLAGS_arm64 := $(my_cflags_arm64) |
| 111 | LOCAL_SRC_FILES_arm64 := $(my_src_files_arm) |
Ying Wang | 3446b93 | 2014-02-27 14:05:59 -0800 | [diff] [blame] | 112 | |
The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 113 | LOCAL_C_INCLUDES += $(common_C_INCLUDES) \ |
| 114 | external/zlib |
| 115 | LOCAL_SHARED_LIBRARIES := \ |
| 116 | libz |
| 117 | |
| 118 | LOCAL_MODULE:= libpng |
| 119 | |
| 120 | LOCAL_COPY_HEADERS_TO := $(common_COPY_HEADERS_TO) |
| 121 | LOCAL_COPY_HEADERS := $(common_COPY_HEADERS) |
| 122 | |
Stephen Hines | b5e7fb4 | 2013-06-26 15:15:33 -0700 | [diff] [blame] | 123 | include $(BUILD_SHARED_LIBRARY) |
The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 124 | |
Geremy Condra | 14cab86 | 2012-06-05 15:17:48 -0700 | [diff] [blame] | 125 | # For testing |
| 126 | # ===================================================== |
The Android Open Source Project | 893912b | 2009-03-03 19:30:05 -0800 | [diff] [blame] | 127 | |
Geremy Condra | 14cab86 | 2012-06-05 15:17:48 -0700 | [diff] [blame] | 128 | include $(CLEAR_VARS) |
Stephen Hines | b5e7fb4 | 2013-06-26 15:15:33 -0700 | [diff] [blame] | 129 | LOCAL_CLANG := true |
Geremy Condra | 14cab86 | 2012-06-05 15:17:48 -0700 | [diff] [blame] | 130 | LOCAL_C_INCLUDES:= $(common_C_INCLUDES) external/zlib |
Stephen Hines | b5e7fb4 | 2013-06-26 15:15:33 -0700 | [diff] [blame] | 131 | LOCAL_SRC_FILES:= pngtest.c |
Geremy Condra | 14cab86 | 2012-06-05 15:17:48 -0700 | [diff] [blame] | 132 | LOCAL_MODULE := pngtest |
Stephen Hines | b5e7fb4 | 2013-06-26 15:15:33 -0700 | [diff] [blame] | 133 | LOCAL_SHARED_LIBRARIES:= libpng libz |
Geremy Condra | 14cab86 | 2012-06-05 15:17:48 -0700 | [diff] [blame] | 134 | LOCAL_MODULE_TAGS := debug |
| 135 | include $(BUILD_EXECUTABLE) |