separate build and config

This commit is contained in:
Lukas Wurzinger 2021-02-08 19:30:32 +01:00
parent 016ed8ff6c
commit 891b51b67f
2 changed files with 31 additions and 29 deletions

View file

@ -1,52 +1,37 @@
CC = cc
MACROS = -DNDEBUG
CFLAGS = $(MACROS) --std=c99 -O2 -g -Wall -Wextra -Wpedantic -fPIC
include config.mk
PREFIX = /usr/local/
LIB = $(PREFIX)/lib/
INCLUDE = $(PREFIX)/include/
SOURCE = readopt.c
OBJECT = readopt.o
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)
all: $(STATIC) $(SHARED)
%.o: %.c
$(CC) -c $(CFLAGS) $<
$(STATICTARGET): $(OBJECTS)
$(STATIC): $(OBJECT)
$(AR) $@ $^
$(SHAREDTARGET): $(OBJECTS)
$(SHARED): $(OBJECT)
$(CC) --shared $^ -o $@
install: staticinstall sharedinstall
staticinstall: $(STATICTARGET)
staticinstall: $(STATIC)
$(MKDIR) $(DESTDIR)$(LIB)
$(CP) $^ $(DESTDIR)$(LIB)
$(MKDIR) $(DESTDIR)$(INCLUDE)
$(CP) $(HEADERS) $(DESTDIR)$(INCLUDE)
$(MKDIR) $(DESTDIR)$(INCL)
$(CP) $(HEADER) $(DESTDIR)$(INCL)
sharedinstall: $(SHAREDTARGET)
sharedinstall: $(SHARED)
$(MKDIR) $(DESTDIR)$(LIB)
$(CP) $^ $(DESTDIR)$(LIB)
$(MKDIR) $(DESTDIR)$(INCLUDE)
$(CP) $(HEADERS) $(DESTDIR)$(INCLUDE)
$(MKDIR) $(DESTDIR)$(INCL)
$(CP) $(HEADER) $(DESTDIR)$(INCL)
clean:
$(RM) $(OBJECTS) $(STATICTARGET) $(SHAREDTARGET)
$(RM) $(OBJECT) $(STATIC) $(SHARED)
format:
clang-format -i -- $(SOURCES) $(HEADERS)
clang-format -i -- $(SOURCE) $(HEADER)
.PHONY: clean install staticinstall sharedinstall format

17
config.mk Normal file
View file

@ -0,0 +1,17 @@
DESTDIR =
PREFIX = /usr/local/
LIB = $(PREFIX)/lib/
INCL = $(PREFIX)/include/
CC = cc
MACROS = -D _POSIX_C_SOURCE=200809L -D NDEBUG
CFLAGS = --std=c99 -Wall -Wextra -Wpedantic -g $(MACROS) -O2
AR = ar -rcs --
RM = rm -f --
CP = cp --
MKDIR = mkdir -p --
HEADER = ./readopt.h
STATIC = ./libreadopt.a
SHARED = ./libreadopt.so