Makefile (985B)
1 .SUFFIXES: .c .o .so 2 CC=clang 3 CFLAGS+=-std=c99 -pedantic -Wall -Werror -Wstrict-prototypes 4 CFLAGS+=-Wmissing-prototypes -Wmissing-declarations -Wshadow 5 CFLAGS+=-Wpointer-arith -Wcast-qual -Wsign-compare 6 CFLAGS+=-O2 -g 7 CFLAGS+=-fstack-protector-all -Wtype-limits -fno-common 8 CFLAGS+=-fno-builtin 9 CFLAGS+=-I/usr/local/include 10 11 CFLAGS+=-I$(HOME)/.local/include 12 LFLAGS+=-L$(HOME)/.local/lib -lsd 13 14 INSTALL_PATH=$(HOME)/.local 15 BUILD=build 16 17 TEST_SOURCE=test_stack_sd.c 18 HEADER=stack_sd.h 19 OBJS=stack_sd.o 20 SHARED=stack_sd.so 21 LIBSHARED=libstack_sd.so 22 23 all: build $(OBJS) $(SHARED) test 24 25 .c.o: 26 $(CC) $(CFLAGS) -c $< -o $(BUILD)/$@ 27 28 .o.so: 29 $(CC) -shared -fPIC $(BUILD)/$< -o $(BUILD)/$@ $(LFLAGS) 30 31 test: $(TEST_SOURCE) 32 $(CC) $(CFLAGS) -o $(BUILD)/test $(TEST_SOURCE) $(BUILD)/$(OBJS) $(LFLAGS) 33 34 build: 35 mkdir -p $(BUILD) 36 37 install: 38 cp $(BUILD)/$(SHARED) $(INSTALL_PATH)/lib/$(LIBSHARED) 39 chmod 644 $(INSTALL_PATH)/lib/$(LIBSHARED) 40 cp $(HEADER) $(INSTALL_PATH)/include/ 41 42 clean: 43 rm -rf $(BUILD)