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_STATIC = lib$(LIB_NAME).a
|
||||||
LIB_SHARED = lib$(LIB_NAME).so
|
LIB_SHARED = lib$(LIB_NAME).so
|
||||||
LIB_VERSION = 1.0.0
|
LIB_VERSION = 1.0.0
|
||||||
|
LIB_SHARED_VERSIONED = $(LIB_SHARED).$(LIB_VERSION)
|
||||||
TEST_BIN = test.out
|
TEST_BIN = test.out
|
||||||
|
|
||||||
# Build configuration
|
# Build configuration
|
||||||
|
|
@ -15,6 +16,7 @@ LIBDIR = $(PREFIX)/lib
|
||||||
|
|
||||||
.DEFAULT_GOAL := all
|
.DEFAULT_GOAL := all
|
||||||
MAKEFLAGS += --no-print-directory
|
MAKEFLAGS += --no-print-directory
|
||||||
|
|
||||||
include sources.mk
|
include sources.mk
|
||||||
|
|
||||||
CC = clang
|
CC = clang
|
||||||
|
|
@ -47,7 +49,7 @@ $(LIB_STATIC): $(OBJS_STATIC)
|
||||||
$(AR) rcs $@ $^
|
$(AR) rcs $@ $^
|
||||||
|
|
||||||
$(LIB_SHARED): $(OBJS_SHARED)
|
$(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
|
$(OBJ_DIR_STATIC)/%.o: $(SRC_DIR)/%.c
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
|
|
@ -68,17 +70,19 @@ $(TEST_BIN): $(TESTS) $(OBJS_STATIC)
|
||||||
$(CC) $(CPPFLAGS) -I tests $(CFLAGS) $(TEST_LDFLAGS) $^ -o $@
|
$(CC) $(CPPFLAGS) -I tests $(CFLAGS) $(TEST_LDFLAGS) $^ -o $@
|
||||||
|
|
||||||
.PHONY: install
|
.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)$(INCLUDEDIR)
|
||||||
install -d $(DESTDIR)$(LIBDIR)
|
install -d $(DESTDIR)$(LIBDIR)
|
||||||
install -m 644 includes/icmp.h $(DESTDIR)$(INCLUDEDIR)
|
install -m 644 includes/icmp.h $(DESTDIR)$(INCLUDEDIR)
|
||||||
install -m 644 includes/icmp_types.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)
|
install -m 644 $(LIB_STATIC) $(DESTDIR)$(LIBDIR)
|
||||||
endif
|
endif
|
||||||
ifeq ($(BUILD_SHARED),yes)
|
ifneq ($(wildcard $(LIB_SHARED)),)
|
||||||
install -m 755 $(LIB_SHARED) $(DESTDIR)$(LIBDIR)
|
install -m 755 $(LIB_SHARED) $(DESTDIR)$(LIBDIR)/$(LIB_SHARED_VERSIONED)
|
||||||
ln -sf $(LIB_SHARED) $(DESTDIR)$(LIBDIR)/$(LIB_SHARED).$(LIB_VERSION)
|
ln -sf $(LIB_SHARED_VERSIONED) $(DESTDIR)$(LIBDIR)/$(LIB_SHARED)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: uninstall
|
.PHONY: uninstall
|
||||||
|
|
@ -100,4 +104,3 @@ fclean: clean
|
||||||
.PHONY: re
|
.PHONY: re
|
||||||
re: fclean
|
re: fclean
|
||||||
$(MAKE) all
|
$(MAKE) all
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue