#
|
# Makefile for common library.
|
#
|
ROOT := ..
|
PLATFORM=$(shell $(ROOT)/systype.sh)
|
include $(ROOT)/Make.defines.$(PLATFORM)
|
|
PREFIX = $(DEST)
|
|
LIBSQUEUE = $(DEST)/lib/libshm_queue.a
|
DLIBSQUEUE = $(DEST)/lib/libshm_queue.so
|
|
|
# 开源工具包
|
LDLIBS += -lusgcommon
|
|
#-I$(ROOT)/include/usgcommon
|
|
INCLUDES += -I./queue -I./socket -I$(ROOT)/include/usgcommon
|
|
SOURCES := $(wildcard *.c ./**/*.c)
|
OBJS = $(patsubst %.c, $(DEST)/%.o, $(SOURCES))
|
DEPENDENCES = $(patsubst %.c, $(DEST)/%.d, $(SOURCES))
|
|
# MYLIBS = $(LIBCOMMON) $(DLIBCOMMON)
|
|
ifeq ($(DEBUG),y)
|
MYLIBS = $(LIBSQUEUE)
|
else
|
MYLIBS = $(LIBSQUEUE) $(DLIBSQUEUE)
|
endif
|
|
#PREFIX is environment variable, but if it is not set, then set default value
|
ifeq ($(PREFIX),)
|
PREFIX := /usr/local
|
endif
|
|
all: build
|
|
|
.PHONY: build
|
build: prebuild $(MYLIBS)
|
cp $(ROOT)/.gdbinit $(DEST)
|
# mkdir -p $(DEST)/lib
|
# cp $(MYLIBS) $(DEST)/lib
|
# mkdir -p $(DEST)/include/shmqueue
|
# cp ./*.h ./queue/*.h ./socket/*.h $(DEST)/include/shmqueue
|
# cp $(ROOT)/lib/* $(DEST)/lib
|
|
.PHONY: prebuild
|
prebuild:
|
@test -d $(DEST)/lib || mkdir -p $(DEST)/lib
|
|
#static lib
|
$(LIBSQUEUE): $(OBJS)
|
@echo '>>>>>>' generating $@ ...
|
@$(AR) rv $@ $?
|
@$(RANLIB) $@
|
|
#dynamic lib
|
$(DLIBSQUEUE): $(SOURCES)
|
@echo '>>>>>>' generating $@ ...
|
$(CC) -fPIC -shared $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $^ -o $@
|
|
|
|
# 使用方式: g++ test1.c -lcommon
|
.PHONY: install
|
install: $(MYLIBS)
|
@echo '>>>>>>' installing $^ ...
|
install -d $(PREFIX)/lib/
|
install -m 644 $^ $(PREFIX)/lib/
|
install -d $(PREFIX)/include/shmqueue
|
install -m 644 ./*.h ./queue/*.h ./socket/*.h $(PREFIX)/include/shmqueue
|
|
|
.PHONY: uninstall
|
uninstall:
|
@echo '>>>>>>' uninstalling ...
|
rm -rf $(PREFIX)/include/shmqueue
|
rm -f $(PREFIX)/lib/shmqueue.*
|
|
|
.PHONY: clean
|
clean:
|
rm -f $(OBJS) $(MYLIBS) $(DEPENDENCES) $(TEMPFILES)
|
rm -rf $(DEST)/*
|
|
|
-include $(DEPENDENCES)
|
include $(ROOT)/Make.common.inc
|