12345678910111213141516171819202122232425262728293031323334353637 |
- CC = clang
- CFLAGS = -Wall -Wextra -Werror -Iextern/BearSSL/inc -Iextern/libuv/include
- SRC = $(wildcard src/*.c)
- OBJ = $(patsubst src/%.c, obj/%.o, $(SRC))
- LIBRARIES = lib/libbearssl.a lib/libuv.a
- ifneq "$(findstring debug, $(MAKECMDGOALS))" ""
- CFLAGS += -g -fno-omit-frame-pointer -fsanitize=address
- else
- CFLAGS += -O3
- endif
- soulmate: $(LIBRARIES) $(OBJ)
- $(CC) -o $@ $^ $(CFLAGS) -Llib -luv -lbearssl
- obj/%.o: src/%.c
- @mkdir -p obj
- $(CC) -c -o $@ $< $(CFLAGS)
- debug: soulmate
- lib/libbearssl.a:
- mkdir -p lib
- $(MAKE) -C extern/BearSSL
- cp extern/BearSSL/build/libbearssl.a lib/
- lib/libuv.a:
- mkdir -p lib
- cd extern/libuv && sh autogen.sh && ./configure
- $(MAKE) -C extern/libuv
- cp extern/libuv/.libs/libuv.so.1.0.0 lib/libuv.a
- .PHONY: clean
- clean:
- rm -rf obj lib
- rm -f soulmate
|