# compile and link parameters
#
CC := gcc
CXX := g++
SHARE_FLAG := -shared
#DEBUG_FLAG := -Ddebug
MICROS := \
-DCURL_STATICLIB \
-DCARES_STATICLIB \
-DUSE_ARES \
-DZLIB_WINAPI \
-DHAVE_LIBZ \
-DUSE_MBEDTLS \
-DUSE_OPENSSL
# -DANDROID_DEBUG\
CFLAGS := -Wall -O3 -std=c++0x -fpic $(SHARE_FLAG) $(MICROS) $(DEBUG_FLAG)
LDFLAGS := $(SHARE_FLAG) -fpic
# files & dirs
#
TARGET_NAME := your_target.so
DIR_OBJ = bin/centos/obj
DIR_BIN = bin/centos
# include path
#
INC_PATH = \
-I 3rd/openssl-1.0.2j/centos32/include \
-I 3rd/curl-7.52.1/centos32/include/curl \
-I 3rd/protobuf-2.6.1/centos32/include \
-I 3rd/zlib-1.2.8/centos32/include \
-I 3rd/c-ares-1.12.0/centos32/include \
-I 3rd/libuuid/centos32/include \
# libraries
#
LIBS = \
-L 3rd/curl-7.52.1/centos32/lib -lcurl \
-L 3rd/mbedtls-2.4.0/centos32/lib -lmbedtls \
-L 3rd/mbedtls-2.4.0/centos32/lib -lmbedcrypto \
-L 3rd/mbedtls-2.4.0/centos32/lib -lmbedx509 \
-L 3rd/openssl-1.0.2j/centos32/lib -lssl \
-L 3rd/openssl-1.0.2j/centos32/lib -lcrypto \
-L 3rd/zlib-1.2.8/centos32/lib -lz \
-L 3rd/c-ares-1.12.0/centos32/lib -lcares \
-L 3rd/protobuf-2.6.1/centos32/lib -lprotobuf \
-L 3rd/libuuid/centos32/lib -luuid \
-ldl \
-lrt \
# path for looking source (used in .o:.cpp dependents)
#
VPATH = \
3rd/MarkUp \
3rd/Base64 \
3rd/MD5 \
3rd/bplist \
# source files
#
SOURCE_WITH_DIRS = \
3rd/MarkUp/Markup.cpp \
\
3rd/Base64/AppleBase64.c \
3rd/Base64/base64.cpp \
\
3rd/MD5/AppleMD5.cpp \
src/1.cpp \
#$(warning $(SOURCE_WITH_DIRS))
SOURCES = $(notdir $(SOURCE_WITH_DIRS))
#$(warning $(SOURCES))
OBJS := $(patsubst %.c, $(DIR_OBJ)/%.o, $(patsubst %.cpp, $(DIR_OBJ)/%.o, $(patsubst %.cc, $(DIR_OBJ)/%.o, $(SOURCES))))
#$(warning $(OBJS))
$(DIR_OBJ)/%.o : %.c
$(CC) $(CFLAGS) -c $< -o $@ $(INC_PATH) $(LIB_PATH) $(LIBS)
$(DIR_OBJ)/%.o : %.cpp
$(CXX) $(CFLAGS) -c $< -o $@ $(INC_PATH) $(LIB_PATH) $(LIBS)
$(DIR_OBJ)/%.o : %.cc
$(CXX) $(CFLAGS) -c $< -o $@ $(INC_PATH) $(LIB_PATH) $(LIBS)
$(DIR_OBJ)/%.o : %.cxx
$(CXX) $(CFLAGS) -c $< -o $@ $(INC_PATH) $(LIB_PATH) $(LIBS)
$(TARGET_NAME) : $(OBJS)
$(CXX) $(OBJS) -o $(DIR_BIN)/$(TARGET_NAME) $(LDFLAGS) $(LIBS)
clean:
rm -rf $(DIR_OBJ)/*.o
rm -rf $(DIR_BIN)/$(TARGET_NAME)
#
CC := gcc
CXX := g++
SHARE_FLAG := -shared
#DEBUG_FLAG := -Ddebug
MICROS := \
-DCURL_STATICLIB \
-DCARES_STATICLIB \
-DUSE_ARES \
-DZLIB_WINAPI \
-DHAVE_LIBZ \
-DUSE_MBEDTLS \
-DUSE_OPENSSL
# -DANDROID_DEBUG\
CFLAGS := -Wall -O3 -std=c++0x -fpic $(SHARE_FLAG) $(MICROS) $(DEBUG_FLAG)
LDFLAGS := $(SHARE_FLAG) -fpic
# files & dirs
#
TARGET_NAME := your_target.so
DIR_OBJ = bin/centos/obj
DIR_BIN = bin/centos
# include path
#
INC_PATH = \
-I 3rd/openssl-1.0.2j/centos32/include \
-I 3rd/curl-7.52.1/centos32/include/curl \
-I 3rd/protobuf-2.6.1/centos32/include \
-I 3rd/zlib-1.2.8/centos32/include \
-I 3rd/c-ares-1.12.0/centos32/include \
-I 3rd/libuuid/centos32/include \
# libraries
#
LIBS = \
-L 3rd/curl-7.52.1/centos32/lib -lcurl \
-L 3rd/mbedtls-2.4.0/centos32/lib -lmbedtls \
-L 3rd/mbedtls-2.4.0/centos32/lib -lmbedcrypto \
-L 3rd/mbedtls-2.4.0/centos32/lib -lmbedx509 \
-L 3rd/openssl-1.0.2j/centos32/lib -lssl \
-L 3rd/openssl-1.0.2j/centos32/lib -lcrypto \
-L 3rd/zlib-1.2.8/centos32/lib -lz \
-L 3rd/c-ares-1.12.0/centos32/lib -lcares \
-L 3rd/protobuf-2.6.1/centos32/lib -lprotobuf \
-L 3rd/libuuid/centos32/lib -luuid \
-ldl \
-lrt \
# path for looking source (used in .o:.cpp dependents)
#
VPATH = \
3rd/MarkUp \
3rd/Base64 \
3rd/MD5 \
3rd/bplist \
# source files
#
SOURCE_WITH_DIRS = \
3rd/MarkUp/Markup.cpp \
\
3rd/Base64/AppleBase64.c \
3rd/Base64/base64.cpp \
\
3rd/MD5/AppleMD5.cpp \
src/1.cpp \
#$(warning $(SOURCE_WITH_DIRS))
SOURCES = $(notdir $(SOURCE_WITH_DIRS))
#$(warning $(SOURCES))
OBJS := $(patsubst %.c, $(DIR_OBJ)/%.o, $(patsubst %.cpp, $(DIR_OBJ)/%.o, $(patsubst %.cc, $(DIR_OBJ)/%.o, $(SOURCES))))
#$(warning $(OBJS))
$(DIR_OBJ)/%.o : %.c
$(CC) $(CFLAGS) -c $< -o $@ $(INC_PATH) $(LIB_PATH) $(LIBS)
$(DIR_OBJ)/%.o : %.cpp
$(CXX) $(CFLAGS) -c $< -o $@ $(INC_PATH) $(LIB_PATH) $(LIBS)
$(DIR_OBJ)/%.o : %.cc
$(CXX) $(CFLAGS) -c $< -o $@ $(INC_PATH) $(LIB_PATH) $(LIBS)
$(DIR_OBJ)/%.o : %.cxx
$(CXX) $(CFLAGS) -c $< -o $@ $(INC_PATH) $(LIB_PATH) $(LIBS)
$(TARGET_NAME) : $(OBJS)
$(CXX) $(OBJS) -o $(DIR_BIN)/$(TARGET_NAME) $(LDFLAGS) $(LIBS)
clean:
rm -rf $(DIR_OBJ)/*.o
rm -rf $(DIR_BIN)/$(TARGET_NAME)