fix: separate build and install steps and fix symlink
This commit is contained in:
parent
bfd61e3636
commit
bd367b97dc
1 changed files with 10 additions and 7 deletions
17
Makefile
17
Makefile
|
|
@ -2,6 +2,7 @@ LIB_NAME = icmp
|
|||
LIB_STATIC = lib$(LIB_NAME).a
|
||||
LIB_SHARED = lib$(LIB_NAME).so
|
||||
LIB_VERSION = 1.0.0
|
||||
LIB_SHARED_VERSIONED = $(LIB_SHARED).$(LIB_VERSION)
|
||||
TEST_BIN = test.out
|
||||
|
||||
# Build configuration
|
||||
|
|
@ -15,6 +16,7 @@ LIBDIR = $(PREFIX)/lib
|
|||
|
||||
.DEFAULT_GOAL := all
|
||||
MAKEFLAGS += --no-print-directory
|
||||
|
||||
include sources.mk
|
||||
|
||||
CC = clang
|
||||
|
|
@ -47,7 +49,7 @@ $(LIB_STATIC): $(OBJS_STATIC)
|
|||
$(AR) rcs $@ $^
|
||||
|
||||
$(LIB_SHARED): $(OBJS_SHARED)
|
||||
$(CC) -shared -Wl,-soname,$(LIB_SHARED).$(LIB_VERSION) -o $@ $^
|
||||
$(CC) -shared -Wl,-soname,$(LIB_SHARED_VERSIONED) -o $@ $^
|
||||
|
||||
$(OBJ_DIR_STATIC)/%.o: $(SRC_DIR)/%.c
|
||||
@mkdir -p $(dir $@)
|
||||
|
|
@ -68,17 +70,19 @@ $(TEST_BIN): $(TESTS) $(OBJS_STATIC)
|
|||
$(CC) $(CPPFLAGS) -I tests $(CFLAGS) $(TEST_LDFLAGS) $^ -o $@
|
||||
|
||||
.PHONY: install
|
||||
install: all
|
||||
install:
|
||||
@test -f $(LIB_STATIC) -o -f $(LIB_SHARED) || \
|
||||
(echo "Error: No libraries found. Run 'make' first." >&2 && false)
|
||||
install -d $(DESTDIR)$(INCLUDEDIR)
|
||||
install -d $(DESTDIR)$(LIBDIR)
|
||||
install -m 644 includes/icmp.h $(DESTDIR)$(INCLUDEDIR)
|
||||
install -m 644 includes/icmp_types.h $(DESTDIR)$(INCLUDEDIR)
|
||||
ifeq ($(BUILD_STATIC),yes)
|
||||
ifneq ($(wildcard $(LIB_STATIC)),)
|
||||
install -m 644 $(LIB_STATIC) $(DESTDIR)$(LIBDIR)
|
||||
endif
|
||||
ifeq ($(BUILD_SHARED),yes)
|
||||
install -m 755 $(LIB_SHARED) $(DESTDIR)$(LIBDIR)
|
||||
ln -sf $(LIB_SHARED) $(DESTDIR)$(LIBDIR)/$(LIB_SHARED).$(LIB_VERSION)
|
||||
ifneq ($(wildcard $(LIB_SHARED)),)
|
||||
install -m 755 $(LIB_SHARED) $(DESTDIR)$(LIBDIR)/$(LIB_SHARED_VERSIONED)
|
||||
ln -sf $(LIB_SHARED_VERSIONED) $(DESTDIR)$(LIBDIR)/$(LIB_SHARED)
|
||||
endif
|
||||
|
||||
.PHONY: uninstall
|
||||
|
|
@ -100,4 +104,3 @@ fclean: clean
|
|||
.PHONY: re
|
||||
re: fclean
|
||||
$(MAKE) all
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue