| | |
| | | # |
| | | # 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) |
| | | |
| | | ROOT := .. |
| | | PLATFORM=$(shell $(ROOT)/systype.sh) |
| | | include $(ROOT)/Make.defines.$(PLATFORM) |
| | | |
| | | PREFIX = $(DEST) |
| | | |
| | | 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) |
| | | # 开源工具包 |
| | | LDLIBS += -lusgcommon |
| | | |
| | | PREFIX = $(ROOT)/build |
| | | INCLUDES += -I./queue -I./socket -I./util -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) $(DLIBSQUEUE) |
| | | 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 |
| | | |
| | | all: install |
| | | |
| | | |
| | | .PHONY: build |
| | | build: prebuild $(MYLIBS) |
| | | |
| | | .PHONY: prebuild |
| | | prebuild: |
| | | @test -d $(DEST) || mkdir $(DEST) |
| | | |
| | | #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/ |
| | | install -m 644 ./*.h ./queue/include/* ./socket/include/* ./util/include/* $(PREFIX)/include/ |
| | | install -d $(PREFIX)/include/shmqueue |
| | | install -m 644 ./*.h ./queue/*.h ./socket/*.h ./util/*.h $(PREFIX)/include/shmqueue |
| | | |
| | | |
| | | .PHONY: uninstall |
| | | uninstall: |
| | | @echo '>>>>>>' uninstalling ... |
| | | rm -rf $(PREFIX)/include/shmqueue |
| | | rm -f $(PREFIX)/lib/shmqueue.* |
| | | |
| | | |
| | | .PHONY: clean |
| | | clean: |
| | | rm -f $(TEMPFILES) |
| | | rm -f $(OBJS) $(MYLIBS) $(DEPENDENCES) $(TEMPFILES) |
| | | |
| | | .PHONY: build clean install |
| | | |
| | | -include $(DEPENDENCES) |
| | | include $(ROOT)/Make.common.inc |