#
|
# Makefile for common library.
|
#
|
ROOT=..
|
#LDLIBS+=-Wl,-rpath=$(ROOT)/lib
|
# 开源工具包路径
|
#LDDIR += -L$(ROOT)/lib
|
|
# 开源工具包
|
LDLIBS += -lusgcommon
|
|
MINCLUDE := -I./queue -I./queue/include -I./socket -I./socket/include -I./util -I./util/include
|
INCLUDE += $(MINCLUDE)
|
|
PLATFORM=$(shell $(ROOT)/systype.sh)
|
include $(ROOT)/Make.defines.$(PLATFORM)
|
|
LIBSQUEUE = libshm_queue.a
|
DLIBSQUEUE = libshm_queue.so
|
|
SOURCES := $(wildcard *.c ./queue/*.c ./socket/*.c ./util/*.c)
|
OBJS = $(patsubst %.c, %.o, $(SOURCES))
|
|
MYLIBS = $(LIBSQUEUE) $(DLIBSQUEUE)
|
|
PREFIX = $(ROOT)/build
|
|
ifeq ($(DEBUG),y)
|
MYLIBS = $(LIBSQUEUE)
|
else
|
MYLIBS = $(LIBSQUEUE) $(DLIBSQUEUE)
|
endif
|
|
all: install
|
|
|
build: $(MYLIBS)
|
|
#static lib
|
$(LIBSQUEUE): $(OBJS)
|
$(AR) rv $@ $?
|
$(RANLIB) $@
|
|
#dynamic lib
|
$(DLIBSQUEUE): $(SOURCES)
|
rm -f *.o
|
$(CC) -fPIC -shared $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS)
|
|
|
#PREFIX is environment variable, but if it is not set, then set default value
|
ifeq ($(PREFIX),)
|
PREFIX := /usr/local
|
endif
|
|
# 使用方式: g++ test1.c -lcommon
|
install: $(MYLIBS)
|
install -d $(PREFIX)/lib/
|
install -m 644 $^ $(PREFIX)/lib/
|
install -d $(PREFIX)/include/
|
install -m 644 ./*.h ./queue/include/* ./socket/include/* ./util/include/* $(PREFIX)/include/
|
|
clean:
|
rm -f $(TEMPFILES)
|
|
.PHONY: build clean install
|