Home | History | Annotate | Download | only in libpng
      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 \
      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 \
     18 	pngwio.c \
     19 	pngwrite.c \
     20 	pngwtran.c \
     21 	pngwutil.c \
     22 
     23 ifeq ($(ARCH_ARM_HAVE_NEON),true)
     24 my_cflags_arm := -DPNG_ARM_NEON_OPT=2
     25 endif
     26 
     27 my_cflags_arm64 := -DPNG_ARM_NEON_OPT=2
     28 
     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 
     33 my_src_files_arm := \
     34 			arm/arm_init.c \
     35 			arm/filter_neon.S \
     36 			arm/filter_neon_intrinsics.c
     37 
     38 
     39 common_CFLAGS := -std=gnu89 #-fvisibility=hidden ## -fomit-frame-pointer
     40 
     41 ifeq ($(HOST_OS),windows)
     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)
     46 	common_CFLAGS :=
     47 	endif
     48 endif
     49 
     50 ifeq ($(HOST_OS),darwin)
     51 common_CFLAGS += -no-integrated-as
     52 common_ASFLAGS += -no-integrated-as
     53 endif
     54 
     55 common_C_INCLUDES +=
     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)
     67 LOCAL_ASFLAGS += $(common_ASFLAGS)
     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 
     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
     85 LOCAL_CFLAGS_arm := $(my_cflags_arm)
     86 LOCAL_ASFLAGS += $(common_ASFLAGS)
     87 LOCAL_SRC_FILES_arm := $(my_src_files_arm)
     88 LOCAL_CFLAGS_arm64 := $(my_cflags_arm64)
     89 LOCAL_SRC_FILES_arm64 := $(my_src_files_arm)
     90 
     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)
    101 # =====================================================
    102 
    103 include $(CLEAR_VARS)
    104 LOCAL_CLANG := true
    105 LOCAL_SRC_FILES := $(common_SRC_FILES)
    106 LOCAL_CFLAGS += $(common_CFLAGS) -ftrapv
    107 LOCAL_CFLAGS_arm := $(my_cflags_arm)
    108 LOCAL_ASFLAGS += $(common_ASFLAGS)
    109 LOCAL_SRC_FILES_arm := $(my_src_files_arm)
    110 LOCAL_CFLAGS_arm64 := $(my_cflags_arm64)
    111 LOCAL_SRC_FILES_arm64 := $(my_src_files_arm)
    112 
    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 
    123 include $(BUILD_SHARED_LIBRARY)
    124 
    125 # For testing
    126 # =====================================================
    127 
    128 include $(CLEAR_VARS)
    129 LOCAL_CLANG := true
    130 LOCAL_C_INCLUDES:= $(common_C_INCLUDES) external/zlib
    131 LOCAL_SRC_FILES:= pngtest.c
    132 LOCAL_MODULE := pngtest
    133 LOCAL_SHARED_LIBRARIES:= libpng libz
    134 LOCAL_MODULE_TAGS := debug
    135 include $(BUILD_EXECUTABLE)
    136