mirror of
https://github.com/gozfree/gear-lib.git
synced 2026-02-06 11:13:01 +08:00
refine folder as follow:
├── src ├── include ├── gear-lib ├── build.sh └── Makefile
This commit is contained in:
118
Makefile
Normal file
118
Makefile
Normal file
@@ -0,0 +1,118 @@
|
||||
###############################################################################
|
||||
# common
|
||||
###############################################################################
|
||||
#ARCH: linux/pi/android/ios/
|
||||
ARCH ?= linux
|
||||
CROSS_PREFIX ?=
|
||||
OUTPUT ?= /usr/local
|
||||
BUILD_DIR := $(shell pwd)/../build/
|
||||
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
|
||||
COLOR_INC := $(BUILD_DIR)/color.inc
|
||||
|
||||
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
|
||||
include $(ARCH_INC)
|
||||
endif
|
||||
|
||||
|
||||
CC = $(CROSS_PREFIX)gcc
|
||||
CXX = $(CROSS_PREFIX)g++
|
||||
LD = $(CROSS_PREFIX)ld
|
||||
AR = $(CROSS_PREFIX)ar
|
||||
STRIP = $(CROSS_PREFIX)strip
|
||||
|
||||
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
|
||||
include $(COLOR_INC)
|
||||
else
|
||||
CC_V = $(CC)
|
||||
CXX_V = $(CXX)
|
||||
LD_V = $(LD)
|
||||
AR_V = $(AR)
|
||||
CP_V = $(CP)
|
||||
RM_V = $(RM)
|
||||
endif
|
||||
|
||||
###############################################################################
|
||||
# target and object
|
||||
###############################################################################
|
||||
LIBNAME = libgear
|
||||
VERSION_SH = $(shell pwd)/src/version.sh $(LIBNAME)
|
||||
VER = $(shell $(VERSION_SH); awk '/define\ $(LIBNAME)_version/{print $$3}' version.h)
|
||||
TGT_LIB_H = $(LIBNAME).h
|
||||
TGT_LIB_A = $(LIBNAME).a
|
||||
TGT_LIB_SO = $(LIBNAME).so
|
||||
TGT_LIB_SO_VER = $(TGT_LIB_SO).${VER}
|
||||
|
||||
OBJS_LIB := $(patsubst %.c,%.o,$(wildcard src/*.c))
|
||||
|
||||
|
||||
###############################################################################
|
||||
# cflags and ldflags
|
||||
###############################################################################
|
||||
|
||||
ifeq ($(MODE), release)
|
||||
CFLAGS := -O2 -Wall -Werror -fPIC
|
||||
LTYPE := release
|
||||
else
|
||||
CFLAGS := -g -Wall -Werror -fPIC
|
||||
LTYPE := debug
|
||||
endif
|
||||
ifeq ($(OUTPUT),/usr/local)
|
||||
OUTLIBPATH := /usr/local
|
||||
else
|
||||
OUTLIBPATH := $(OUTPUT)/$(LTYPE)
|
||||
endif
|
||||
CFLAGS += $($(ARCH)_CFLAGS)
|
||||
CFLAGS += -Iinclude
|
||||
CFLAGS += -I$(OUTPUT)/include
|
||||
|
||||
CFLAGS += -DNO_CRYPTO
|
||||
|
||||
SHARED := -shared
|
||||
|
||||
LDFLAGS := $($(ARCH)_LDFLAGS)
|
||||
LDFLAGS += -pthread
|
||||
|
||||
###############################################################################
|
||||
# target
|
||||
###############################################################################
|
||||
.PHONY : all clean
|
||||
|
||||
TGT := $(TGT_LIB_A)
|
||||
TGT += $(TGT_LIB_SO)
|
||||
|
||||
OBJS := $(OBJS_LIB)
|
||||
|
||||
all: $(TGT)
|
||||
|
||||
%.o:%.c
|
||||
$(CC_V) -c $(CFLAGS) $< -o $@
|
||||
|
||||
$(TGT_LIB_A): $(OBJS_LIB)
|
||||
$(AR_V) rcs $@ $^
|
||||
|
||||
$(TGT_LIB_SO): $(OBJS_LIB)
|
||||
$(LD_V) -o $@ $^ $(SHARED)
|
||||
@mv $(TGT_LIB_SO) $(TGT_LIB_SO_VER)
|
||||
@ln -sf $(TGT_LIB_SO_VER) $(TGT_LIB_SO)
|
||||
|
||||
|
||||
clean:
|
||||
$(RM_V) -f $(OBJS)
|
||||
$(RM_V) -f $(TGT)
|
||||
$(RM_V) -f version.h
|
||||
$(RM_V) -f $(TGT_LIB_SO)*
|
||||
$(RM_V) -f $(TGT_LIB_SO_VER)
|
||||
|
||||
install:
|
||||
$(MAKEDIR_OUTPUT)
|
||||
if [ "$(MODE)" = "release" ];then $(STRIP) $(TGT); fi
|
||||
$(CP_V) -r $(TGT_LIB_H) $(OUTPUT)/include
|
||||
$(CP_V) -r $(TGT_LIB_A) $(OUTLIBPATH)/lib
|
||||
$(CP_V) -r $(TGT_LIB_SO) $(OUTLIBPATH)/lib
|
||||
$(CP_V) -r $(TGT_LIB_SO_VER) $(OUTLIBPATH)/lib
|
||||
|
||||
uninstall:
|
||||
cd $(OUTPUT)/include/ && rm -f $(TGT_LIB_H)
|
||||
$(RM_V) -f $(OUTLIBPATH)/lib/$(TGT_LIB_A)
|
||||
$(RM_V) -f $(OUTLIBPATH)/lib/$(TGT_LIB_SO)
|
||||
$(RM_V) -f $(OUTLIBPATH)/lib/$(TGT_LIB_SO_VER)
|
||||
3
build.sh
3
build.sh
@@ -79,7 +79,7 @@ config_ios()
|
||||
config_common()
|
||||
{
|
||||
STRIP=${CROSS_PREFIX}strip
|
||||
LIBS_DIR=`pwd`
|
||||
LIBS_DIR=`pwd`/gear-lib
|
||||
OUTPUT=${LIBS_DIR}/output/${ARCH}/
|
||||
}
|
||||
|
||||
@@ -122,6 +122,7 @@ build_module()
|
||||
return
|
||||
fi
|
||||
cd ${LIBS_DIR}/${MODULE}/
|
||||
echo "cd ${LIBS_DIR}/${MODULE}/"
|
||||
|
||||
case $ACTION in
|
||||
"clean")
|
||||
|
||||
@@ -31,8 +31,8 @@ usage()
|
||||
|
||||
mkdir_libfoo()
|
||||
{
|
||||
mkdir ${MODULE}
|
||||
cd ${MODULE}
|
||||
mkdir gear-lib/${MODULE}
|
||||
cd gear-lib/${MODULE}
|
||||
}
|
||||
|
||||
autogen_libfoo_h()
|
||||
@@ -328,6 +328,14 @@ autogen_version_h
|
||||
chmod a+x ${VERSION_SH}
|
||||
}
|
||||
|
||||
link_libfoo()
|
||||
{
|
||||
cd ../../include/
|
||||
ln -s ../gear-lib/${LIBFOO_H} .
|
||||
cd ../src/
|
||||
ln -s ../gear-lib/${LIBFOO_C} .
|
||||
}
|
||||
|
||||
case $# in
|
||||
0)
|
||||
usage;
|
||||
@@ -345,4 +353,5 @@ autogen_makefile_nmake
|
||||
autogen_version_sh
|
||||
autogen_android_mk
|
||||
autogen_readme_md
|
||||
link_libfoo
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
ARCH ?= linux
|
||||
CROSS_PREFIX ?=
|
||||
OUTPUT ?= /usr/local
|
||||
BUILD_DIR := $(shell pwd)/../build/
|
||||
BUILD_DIR := $(shell pwd)/../../build/
|
||||
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
|
||||
COLOR_INC := $(BUILD_DIR)/color.inc
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
ARCH ?= linux
|
||||
CROSS_PREFIX ?=
|
||||
OUTPUT ?= /usr/local
|
||||
BUILD_DIR := $(shell pwd)/../build/
|
||||
BUILD_DIR := $(shell pwd)/../../build/
|
||||
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
|
||||
COLOR_INC := $(BUILD_DIR)/color.inc
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
ARCH ?= linux
|
||||
CROSS_PREFIX ?=
|
||||
OUTPUT ?= /usr/local
|
||||
BUILD_DIR := $(shell pwd)/../build/
|
||||
BUILD_DIR := $(shell pwd)/../../build/
|
||||
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
|
||||
COLOR_INC := $(BUILD_DIR)/color.inc
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user