42 lines
1,012 B
Makefile
42 lines
1,012 B
Makefile
CC ?= gcc
|
|
CFLAGS ?= -Wall -fPIC -Ihash -O2
|
|
AR ?= ar
|
|
ARFLAGS ?= rcs
|
|
|
|
SRCS = djb2.c
|
|
OBJS = $(SRCS:.c=.o)
|
|
|
|
STATIC_LIB = libhash.a
|
|
SHARED_LIB = libhash.so
|
|
|
|
PREFIX ?= /usr/local
|
|
INCLUDEDIR = $(PREFIX)/include
|
|
LIBDIR = $(PREFIX)/lib
|
|
|
|
all: $(STATIC_LIB) $(SHARED_LIB)
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(STATIC_LIB): $(OBJS)
|
|
$(AR) $(ARFLAGS) $@ $^
|
|
|
|
$(SHARED_LIB): $(OBJS)
|
|
$(CC) -shared -o $@ $^
|
|
|
|
install: $(STATIC_LIB) $(SHARED_LIB)
|
|
mkdir -p $(DESTDIR)$(INCLUDEDIR)/hash
|
|
cp -r hash/*.h $(DESTDIR)$(INCLUDEDIR)/hash/
|
|
mkdir -p $(DESTDIR)$(LIBDIR)
|
|
cp $(STATIC_LIB) $(SHARED_LIB) $(DESTDIR)$(LIBDIR)/
|
|
@echo "Installed libraries to $(DESTDIR)$(LIBDIR) and headers to $(DESTDIR)$(INCLUDEDIR)/hash"
|
|
|
|
uninstall:
|
|
rm -f $(DESTDIR)$(LIBDIR)/$(STATIC_LIB) $(DESTDIR)$(LIBDIR)/$(SHARED_LIB)
|
|
rm -rf $(DESTDIR)$(INCLUDEDIR)/hash
|
|
@echo "Uninstalled libraries from $(DESTDIR)$(LIBDIR) and headers from $(DESTDIR)$(INCLUDEDIR)/hash"
|
|
|
|
clean:
|
|
rm -f $(OBJS) $(STATIC_LIB) $(SHARED_LIB)
|
|
|
|
.PHONY: all clean install uninstall
|