Makefile (912B)
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 INSTALL_PATH=$(HOME)/.local 12 BUILD=build 13 14 TEST_SOURCE=test_set_u64.c 15 HEADER=set_u64.h 16 OBJS=set_u64.o 17 SHARED=set_u64.so 18 LIBSHARED=libset_u64.so 19 20 all: build $(OBJS) $(SHARED) test 21 22 .c.o: 23 $(CC) $(CFLAGS) -c $< -o $(BUILD)/$@ 24 25 .o.so: 26 $(CC) -shared -fPIC $(BUILD)/$< -o $(BUILD)/$@ $(LFLAGS) 27 28 test: $(TEST_SOURCE) 29 $(CC) $(CFLAGS) -o $(BUILD)/test $(TEST_SOURCE) $(BUILD)/$(OBJS) $(LFLAGS) 30 31 build: 32 mkdir -p $(BUILD) 33 34 install: 35 cp $(BUILD)/$(SHARED) $(INSTALL_PATH)/lib/$(LIBSHARED) 36 chmod 644 $(INSTALL_PATH)/lib/$(LIBSHARED) 37 cp $(HEADER) $(INSTALL_PATH)/include/ 38 39 clean: 40 rm -rf $(BUILD)