| 1 | #Copyright (C) 2007 L. Donnie Smith |
|---|
| 2 | |
|---|
| 3 | LDCONFIG = @LDCONFIG@ |
|---|
| 4 | |
|---|
| 5 | HEADER = $(LIB_NAME).h |
|---|
| 6 | STATIC_LIB = lib$(LIB_NAME).a |
|---|
| 7 | LINK_NAME = lib$(LIB_NAME).so |
|---|
| 8 | SO_NAME = $(LINK_NAME).$(MAJOR_VER) |
|---|
| 9 | SHARED_LIB = $(SO_NAME).$(MINOR_VER) |
|---|
| 10 | DEST_INC_INST_DIR = $(DESTDIR)/$(INC_INST_DIR) |
|---|
| 11 | DEST_LIB_INST_DIR = $(DESTDIR)/$(LIB_INST_DIR) |
|---|
| 12 | |
|---|
| 13 | OBJECTS = $(SOURCES:.c=.o) |
|---|
| 14 | DEPS = $(SOURCES:.c=.d) |
|---|
| 15 | |
|---|
| 16 | CFLAGS += -fpic |
|---|
| 17 | |
|---|
| 18 | all: static shared |
|---|
| 19 | |
|---|
| 20 | static: $(STATIC_LIB) |
|---|
| 21 | |
|---|
| 22 | shared: $(SHARED_LIB) |
|---|
| 23 | |
|---|
| 24 | $(STATIC_LIB): $(OBJECTS) |
|---|
| 25 | ar rcs $(STATIC_LIB) $(OBJECTS) |
|---|
| 26 | |
|---|
| 27 | $(SHARED_LIB): $(OBJECTS) |
|---|
| 28 | $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) $(LDLIBS) \ |
|---|
| 29 | -o $(SHARED_LIB) $(OBJECTS) |
|---|
| 30 | |
|---|
| 31 | install: install_header install_static install_shared |
|---|
| 32 | |
|---|
| 33 | install_header: $(DEST_INC_INST_DIR) |
|---|
| 34 | install $(LIB_NAME).h $(DEST_INC_INST_DIR) |
|---|
| 35 | |
|---|
| 36 | $(DEST_INC_INST_DIR): |
|---|
| 37 | install -d $(DEST_INC_INST_DIR) |
|---|
| 38 | |
|---|
| 39 | install_static: static $(DEST_LIB_INST_DIR) |
|---|
| 40 | install $(STATIC_LIB) $(DEST_LIB_INST_DIR) |
|---|
| 41 | |
|---|
| 42 | install_shared: shared $(DEST_LIB_INST_DIR) |
|---|
| 43 | install $(SHARED_LIB) $(DEST_LIB_INST_DIR) |
|---|
| 44 | ln -sf $(SHARED_LIB) $(DEST_LIB_INST_DIR)/$(SO_NAME) |
|---|
| 45 | ln -sf $(SO_NAME) $(DEST_LIB_INST_DIR)/$(LINK_NAME) |
|---|
| 46 | $(LDCONFIG) |
|---|
| 47 | |
|---|
| 48 | $(DEST_LIB_INST_DIR): |
|---|
| 49 | install -d $(DEST_LIB_INST_DIR) |
|---|
| 50 | |
|---|
| 51 | clean: |
|---|
| 52 | rm -f $(STATIC_LIB) $(SHARED_LIB) $(OBJECTS) $(DEPS) |
|---|
| 53 | |
|---|
| 54 | uninstall: |
|---|
| 55 | rm -f $(DEST_INC_INST_DIR)/$(LIB_NAME).h \ |
|---|
| 56 | $(DEST_LIB_INST_DIR)/$(STATIC_LIB) \ |
|---|
| 57 | $(DEST_LIB_INST_DIR)/$(LINK_NAME)* |
|---|
| 58 | |
|---|
| 59 | ifneq ($(MAKECMDGOALS),clean) |
|---|
| 60 | ifneq ($(MAKECMDGOALS),distclean) |
|---|
| 61 | include $(COMMON)/include/dep.mak |
|---|
| 62 | -include $(DEPS) |
|---|
| 63 | endif |
|---|
| 64 | endif |
|---|
| 65 | |
|---|
| 66 | .PHONY: all static shared install install_header install_static install_shared clean uninstall |
|---|