53 lines
1 KiB
Makefile
53 lines
1 KiB
Makefile
|
CC = cc
|
||
|
MACROS = -DNDEBUG
|
||
|
CFLAGS = $(MACROS) --std=c99 -O2 -g -Wall -Wextra -Wpedantic -fPIC
|
||
|
|
||
|
PREFIX = /usr/local/
|
||
|
LIB = $(PREFIX)/lib/
|
||
|
INCLUDE = $(PREFIX)/include/
|
||
|
|
||
|
SOURCES = $(wildcard ./*.c)
|
||
|
OBJECTS = $(SOURCES:.c=.o)
|
||
|
HEADERS = $(wildcard ./*.h)
|
||
|
|
||
|
STATICTARGET = libreadopt.a
|
||
|
SHAREDTARGET = libreadopt.so
|
||
|
|
||
|
AR = ar -rcs --
|
||
|
RM = rm -f --
|
||
|
CP = cp --
|
||
|
MKDIR = mkdir -p --
|
||
|
|
||
|
all: $(STATICTARGET) $(SHAREDTARGET)
|
||
|
|
||
|
%.o: %.c
|
||
|
$(CC) -c $(CFLAGS) $<
|
||
|
|
||
|
$(STATICTARGET): $(OBJECTS)
|
||
|
$(AR) $@ $^
|
||
|
|
||
|
$(SHAREDTARGET): $(OBJECTS)
|
||
|
$(CC) --shared $^ -o $@
|
||
|
|
||
|
install: staticinstall sharedinstall
|
||
|
|
||
|
staticinstall: $(STATICTARGET)
|
||
|
$(MKDIR) $(DESTDIR)$(LIB)
|
||
|
$(CP) $^ $(DESTDIR)$(LIB)
|
||
|
$(MKDIR) $(DESTDIR)$(INCLUDE)
|
||
|
$(CP) $(HEADERS) $(DESTDIR)$(INCLUDE)
|
||
|
|
||
|
sharedinstall: $(SHAREDTARGET)
|
||
|
$(MKDIR) $(DESTDIR)$(LIB)
|
||
|
$(CP) $^ $(DESTDIR)$(LIB)
|
||
|
$(MKDIR) $(DESTDIR)$(INCLUDE)
|
||
|
$(CP) $(HEADERS) $(DESTDIR)$(INCLUDE)
|
||
|
|
||
|
clean:
|
||
|
$(RM) $(OBJECTS) $(STATICTARGET) $(SHAREDTARGET)
|
||
|
|
||
|
format:
|
||
|
clang-format -i -- $(SOURCES) $(HEADERS)
|
||
|
|
||
|
.PHONY: clean install staticinstall sharedinstall format
|