# # 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