1、静态链接库:
########################################################################
#
# makefile of libIVHS_Commonfunc.a debug building
#
########################################################################
CC = gcc
CXX = g++ -std=c++11
SOURCE_IVHSCLIENT_DIR= ../../src
OBJ_IVHSCLIENT_DIR= ./lib
LIB_DIR= ../../lib/linux
C_FLAGS=-O3 -W -fPIC -fno-exceptions -fno-rtti -fno-short-enums -D_LINUX_ -I../../../../input/inc/common -I../../../../input/inc/component -I../../../../input/inc/fundamental -I../../../../input/inc_inner/common -I../../../../input/inc_inner/component -I../../../../input/inc_inner/fundamental -I../../src
LDFLAGS+=
DEPEND_A=
SOAPCLIENT_LIB=$(LIB_DIR)/libimagequality.a
OBJ=$(OBJ_IVHSCLIENT_DIR)/imagequality.o
all: prepare ${SOAPCLIENT_LIB}
prepare:
mkdir -p $(OBJ_IVHSCLIENT_DIR)
${SOAPCLIENT_LIB}:${OBJ}
rm -f $@
ar -r $@ ${OBJ}
#################################################################
#
# COMMON SOURCE FILES
#
#################################################################
$(OBJ_IVHSCLIENT_DIR)/imagequality.o: $(SOURCE_IVHSCLIENT_DIR)/imagequality.cpp
rm -f $@
${CXX} -c ${C_FLAGS} $< $(DEPEND_A) -o $@ $(LDFLAGS)
clean :
rm -f $(OBJ_IVHSCLIENT_DIR)/*.o
rm -f $(SOAPCLIENT_LIB)
2、动态链接库:
OUTDIR := ../output
NDK_BASE :=
COMPILER_PATH := $(NDK_BASE)
NDK_INCLUDE_PATH := $(NDK_BASE)
NDK_LIB_PATH := $(NDK_BASE)
NDK_STL_PATH := $(NDK_BASE)
NDK_STL_LIB_PATH := $(NDK_BASE)
CC := $(COMPILER_PATH)gcc
CXX := $(COMPILER_PATH)g++ -std=c++11
AR := $(COMPILER_PATH)ar
LD := $(COMPILER_PATH)gcc
RANLIB := $(COMPILER_PATH)ranlib
INC_BASE := -I$(NDK_INCLUDE_PATH)/usr
LIB_BASE := -L$(NDK_STL_LIB_PATH) -L$(NDK_LIB_PATH)
EXTRA_OBJS =
#.PHONY: debug_base
#debug_base:
# @echo "NDK_BASE:" $(NDK_BASE)
# @echo "CC:" $(CC)
# @echo "CXX:" $(CXX)
# @echo "AR:" $(AR)
# @echo "LD:" $(LD)
# @echo "RANLIB:" $(RANLIB)
# @echo "CFLAGS:" $(CFLAGS)
# @echo "CXXFLAGS:" $(CXXFLAGS)
# @echo "INC_BASE:" $(INC_BASE)
# @echo "MACROS_BASE:" $(MACROS_BASE)
# @echo "MAKE:" $(MAKE)
CFLAGS := -O2 -fno-exceptions -fno-rtti -fno-short-enums -fPIC
CXXFLAGS := -O2 -fno-exceptions -fno-rtti -fno-short-enums -fPIC
MACROS_BASE = -O2 -fno-exceptions -fno-rtti -fno-short-enums -fPIC -D_LINUX_ -D_OS_64_BIT_ -D_REGISTER_GAMCM_ -D_CODEC_UNSUPPORT_DRM_ -DM_OVERLOAD_OPERATOR_NEW_KGL -D_AJL_SUPPORTED_ATTACHE_STREAM_ -D_TEST_C_CODE_ -D_UNSUPPORT_SVG_QBBDECODE_ -D_UNSUPPORT_WEBP_ENCODE_
SRCS:=$(wildcard ./*.c)
CXXSRCS:=$(wildcard ./imagequalitylinktest.cpp)
OBJS := ${SRCS:.c=.o}
CXXOBJS := ${CXXSRCS:.cpp=.o}
SO_NAME := libimagequality.so
OUTPUT :=../../output/linux/x64/$(SO_NAME)
INC := $(INC_BASE)
LIB := $(LIB_BASE)
MACROS := $(MACROS_BASE)
MACROS += -D_REGISTER_GAMCM_
INC += -I../../../../input/inc/common \
-I../../../../input/inc/fundamental \
-I../../../../input/inc/component \
-I../../../../input/inc/inc_inner/common \
-I../../../../input/inc/inc_inner/fundamental \
-I../../../../input/inc/inc_inner/component \
-I../../../../input/inc/inc_inner/other \
-I../../src \
LIBS := -lc -lm -ldl -lgcc -lstdc++
LIBS += -L../../../../output/linux/x64 \
-L../../../../input/lib/linux/x64 \
-limagequality -lfundamental -lopenblas\
-lbtplatform -lc -lm -lstdc++ -lrt -lpthread -ldl -lgcc_s \
.PHONY: all
all: sharedlib
sharedlib: $(OBJS) $(CXXOBJS)
$(CC) -nostdlib -Wl,-soname,$(SO_NAME) -Wl,-shared,-Bsymbolic $^ $(LIB) $(LIBS) -o $(OUTPUT) -Wl,--no-undefined $(ALIB)
%.o: %.c
$(CC) -fpic -Os $(INC) $(MACROS) -c -o $@ $<
%.o: %.cpp
$(CXX) -fpic -Os $(INC) $(MACROS) -c -o $@ $<
.PHONY: clean
clean:
rm -f $(OBJS) $(CXXOBJS) $(OUTPUT)
.PHONY: debug
debug: #debug_base
@echo "INC:" $(INC)
@echo "LIB:" $(LIB)
@echo "MACROS:" $(MACROS)
@echo "OUTPUT:" $(OUTPUT)