diff --git a/.gitignore b/.gitignore index 7b2e2e2..6f1695e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,10 @@ +# exclude project binary +f8prog + +# exclude project dirs build/ firmware/ +.ccls-cache/ # ---> C # Prerequisites diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a64b886 --- /dev/null +++ b/Makefile @@ -0,0 +1,37 @@ +## Compiler settings +CC = cc +CFLAGS = -Wall +LDFLAGS = + +## Project settings +TARGET = f8prog ## name of the application + +## Paths +SRC = $(wildcard src/*.c) +OFILES = $(patsubst src%, build%, $(patsubst src/%.c, build/%.o, $(SRC))) + + +$(TARGET): ./build $(OFILES) + $(CC) $(CFLAGS) $(OFILES) -o $(TARGET) $(LDFLAGS) + +%.o: ../src/%.c + $(CC) $(CFLAGS) -c $^ -o $@ + +./build: + mkdir -p $@ + +clean: + rm -rf $(OFILES) + rm -f $(TARGET) + rm -rf ./build + +test: $(TARGET) + ./$(TARGET) + +options: + @echo $(TARGET) build options: + @echo "CFLAGS = ${CFLAGS}" + @echo "LDFLAGS = ${LDFLAGS}" + @echo "CC = ${CC}" + +.PHONY: options clean test