aboutsummaryrefslogtreecommitdiff
CC ?= clang

BUILD = build

TARGET = $(BUILD)/ihex
PREFIX = /usr

SRC =\
	src/main.c\
	src/ihex.c\
	src/util.c\
	src/array.c

INCLUDE = -Iinclude

OBJ = $(patsubst src/%.c,$(BUILD)/%.o,$(SRC))
DEPS = $(patsubst %.o,%.d,$(OBJ))

DEPFLAGS = -MP -MMD

CFLAGS = $(DEPFLAGS) $(INCLUDE) -Wall -pedantic
LDFLAGS =

all : $(TARGET)

$(BUILD)/%.o : src/%.c
	$(CC) $(CFLAGS) -c -o $@ $<

$(TARGET) : $(OBJ)
	$(CC) $(LDFLAGS) -o $@ $+

$(OBJ) : | $(BUILD)

$(BUILD) :
	mkdir -p $@

install :
	mkdir -p $(PREFIX)/bin
	install -m 755 $(TARGET) $(PREFIX)/bin

uninstall :
	rm -f $(PREFIX)/bin/ihex

clean :
	rm -rf build

.PHONY : clean install

-include $(DEPS)