BUILD ?= build all: $(BUILD)/rots-util CFLAGS += -Iinclude CFLAGS += -Wall -Wundef -Wextra -Wshadow -Wimplicit-function-declaration CFLAGS += -Wredundant-decls -Wmissing-prototypes -Wstrict-prototypes CFLAGS += -D_GNU_SOURCE LIBS = -lcrypto -lssl CC = gcc LD = gcc obj-y += source/file.o obj-y += source/image.o obj-y += source/info.o obj-y += source/main.o obj-y += source/option.o obj-y += source/pack.o obj-y += source/sign.o obj-y += source/unpack.o obj-y += source/verify.o obj-y += source/x509.o obj = $(addprefix $(BUILD)/, $(obj-y)) # Include the dependencies. -include $(obj:.o=.d) # Set up the toolchain. .SECONDARY: clean: @echo "CLEAN" @rm -rf $(BUILD) # Rule to compile C source code. $(BUILD)/%.o: %.c @echo "CC $<" @mkdir -p $(dir $@) @$(CC) -c $< -o $@ $(CFLAGS) -MT $@ -MMD -MP -MF $(@:.o=.d) $(BUILD)/rots-util: $(obj) $(LDSCRIPT) @echo "LD $@" @mkdir -p $(dir $@) @$(LD) -o $@ $(CFLAGS) $(LDFLAGS) $(obj) $(LIBS) .PHONY: clean