blob: d99ad901000fbe90e77568fa611fe1fb19e2d22b [file] [log] [blame]
The Android Open Source Project893912b2009-03-03 19:30:05 -08001LOCAL_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
6common_SRC_FILES := \
7 png.c \
8 pngerror.c \
The Android Open Source Project893912b2009-03-03 19:30:05 -08009 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 Project893912b2009-03-03 19:30:05 -080018 pngwio.c \
19 pngwrite.c \
20 pngwtran.c \
Chris Craikb50c2172013-07-29 15:28:30 -070021 pngwutil.c \
The Android Open Source Project893912b2009-03-03 19:30:05 -080022
sireesh282702a2014-06-18 14:16:48 +053023ifeq ($(ARCH_ARM_HAVE_NEON),true)
Riley Andrewsb4397412014-08-19 17:21:02 -070024my_cflags_arm := -DPNG_ARM_NEON_OPT=2
sireesh282702a2014-06-18 14:16:48 +053025endif
Stephen Hinesbdcf23a2014-04-17 16:25:53 -070026
Riley Andrewsb4397412014-08-19 17:21:02 -070027my_cflags_arm64 := -DPNG_ARM_NEON_OPT=2
sireesh43608cf2014-06-26 13:09:53 +053028
Stephen Hinesbdcf23a2014-04-17 16:25:53 -070029# BUG: http://llvm.org/PR19472 - SLP vectorization (on ARM at least) crashes
30# when we can't lower a vectorized bswap.
31my_cflags_arm += -fno-slp-vectorize
32
Ying Wang3446b932014-02-27 14:05:59 -080033my_src_files_arm := \
Sireesh Tripurarib478e662014-05-09 15:15:10 +053034 arm/arm_init.c \
35 arm/filter_neon.S \
36 arm/filter_neon_intrinsics.c
Chris Craikb50c2172013-07-29 15:28:30 -070037
38
39common_CFLAGS := -std=gnu89 #-fvisibility=hidden ## -fomit-frame-pointer
The Android Open Source Project893912b2009-03-03 19:30:05 -080040
Raphael Moll671f9cd2011-02-09 12:43:48 -080041ifeq ($(HOST_OS),windows)
Chris Craikb50c2172013-07-29 15:28:30 -070042 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 Wang3446b932014-02-27 14:05:59 -080046 common_CFLAGS :=
Chris Craikb50c2172013-07-29 15:28:30 -070047 endif
Raphael Moll671f9cd2011-02-09 12:43:48 -080048endif
49
The Android Open Source Project893912b2009-03-03 19:30:05 -080050# For the host
51# =====================================================
52
53include $(CLEAR_VARS)
The Android Open Source Project893912b2009-03-03 19:30:05 -080054LOCAL_SRC_FILES := $(common_SRC_FILES)
55LOCAL_CFLAGS += $(common_CFLAGS)
Tim Murray43d98c92014-04-23 15:34:05 -070056LOCAL_ASFLAGS += $(common_ASFLAGS)
Trevor Drakeb74a8012015-02-22 21:33:27 +000057LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
The Android Open Source Project893912b2009-03-03 19:30:05 -080058LOCAL_MODULE:= libpng
The Android Open Source Project893912b2009-03-03 19:30:05 -080059include $(BUILD_HOST_STATIC_LIBRARY)
60
61
Stephen Hinesb5e7fb42013-06-26 15:15:33 -070062# For the device (static)
63# =====================================================
64
65include $(CLEAR_VARS)
66LOCAL_CLANG := true
67LOCAL_SRC_FILES := $(common_SRC_FILES)
68LOCAL_CFLAGS += $(common_CFLAGS) -ftrapv
Ying Wang3446b932014-02-27 14:05:59 -080069LOCAL_CFLAGS_arm := $(my_cflags_arm)
Tim Murray43d98c92014-04-23 15:34:05 -070070LOCAL_ASFLAGS += $(common_ASFLAGS)
Ying Wang3446b932014-02-27 14:05:59 -080071LOCAL_SRC_FILES_arm := $(my_src_files_arm)
sireesh43608cf2014-06-26 13:09:53 +053072LOCAL_CFLAGS_arm64 := $(my_cflags_arm64)
73LOCAL_SRC_FILES_arm64 := $(my_src_files_arm)
Dan Albert1afb0702014-10-21 11:10:48 -070074LOCAL_ADDRESS_SANITIZER := false
Trevor Drakeb74a8012015-02-22 21:33:27 +000075LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
76LOCAL_SHARED_LIBRARIES := libz
Stephen Hinesb5e7fb42013-06-26 15:15:33 -070077LOCAL_MODULE:= libpng
Stephen Hinesb5e7fb42013-06-26 15:15:33 -070078include $(BUILD_STATIC_LIBRARY)
79
80# For the device (shared)
The Android Open Source Project893912b2009-03-03 19:30:05 -080081# =====================================================
82
83include $(CLEAR_VARS)
Stephen Hinesdeba48b2012-08-03 17:25:20 -070084LOCAL_CLANG := true
The Android Open Source Project893912b2009-03-03 19:30:05 -080085LOCAL_SRC_FILES := $(common_SRC_FILES)
Geremy Condra14cab862012-06-05 15:17:48 -070086LOCAL_CFLAGS += $(common_CFLAGS) -ftrapv
Ying Wang3446b932014-02-27 14:05:59 -080087LOCAL_CFLAGS_arm := $(my_cflags_arm)
Tim Murray43d98c92014-04-23 15:34:05 -070088LOCAL_ASFLAGS += $(common_ASFLAGS)
Ying Wang3446b932014-02-27 14:05:59 -080089LOCAL_SRC_FILES_arm := $(my_src_files_arm)
sireesh43608cf2014-06-26 13:09:53 +053090LOCAL_CFLAGS_arm64 := $(my_cflags_arm64)
91LOCAL_SRC_FILES_arm64 := $(my_src_files_arm)
Trevor Drakeb74a8012015-02-22 21:33:27 +000092LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
93LOCAL_SHARED_LIBRARIES := libz
The Android Open Source Project893912b2009-03-03 19:30:05 -080094LOCAL_MODULE:= libpng
Stephen Hinesb5e7fb42013-06-26 15:15:33 -070095include $(BUILD_SHARED_LIBRARY)
The Android Open Source Project893912b2009-03-03 19:30:05 -080096
Geremy Condra14cab862012-06-05 15:17:48 -070097# For testing
98# =====================================================
The Android Open Source Project893912b2009-03-03 19:30:05 -080099
Geremy Condra14cab862012-06-05 15:17:48 -0700100include $(CLEAR_VARS)
Stephen Hinesb5e7fb42013-06-26 15:15:33 -0700101LOCAL_CLANG := true
Stephen Hinesb5e7fb42013-06-26 15:15:33 -0700102LOCAL_SRC_FILES:= pngtest.c
Geremy Condra14cab862012-06-05 15:17:48 -0700103LOCAL_MODULE := pngtest
Stephen Hinesb5e7fb42013-06-26 15:15:33 -0700104LOCAL_SHARED_LIBRARIES:= libpng libz
Geremy Condra14cab862012-06-05 15:17:48 -0700105LOCAL_MODULE_TAGS := debug
106include $(BUILD_EXECUTABLE)