# /!\ Warning /!\ # Parallel build doesn't work with w64devkit OUTNAME = flisp CFLAGS = -O0 -Wall -Wextra -g -pipe CC = gcc LDFLAGS_UNIX = -lm LDFLAGS_WIN = -lm # ===== End of what should be edited ===== OUTPUT = "${OUTNAME}.amd64" LDFLAGS = $(LDFLAGS_UNIX) BUILD_DIR = build SRC_DIR = src OBJS = $(patsubst $(SRC_DIR)/%.c,build-tmp/%.o,$(wildcard $(SRC_DIR)/*.c)) all: | builddir build builddir2 windef: $(eval OUTPUT = "$(OUTNAME).exe") $(eval BUILD_DIR = build-win) $(eval LDFLAGS = $(LDFLAGS_WIN)) builddir: - mkdir $(BUILD_DIR) - mkdir build-tmp - rm -rf $(wildcard build-tmp/*) - mv $(wildcard $(BUILD_DIR)/*.o) build-tmp/ build-tmp/%.o : $(SRC_DIR)/%.c ${CC} -c $< -o $@ ${CFLAGS} build: $(OBJS) ${CC} ${CFLAGS} -o ${OUTPUT} $(OBJS) ${LDFLAGS} builddir2: mv $(OBJS) $(BUILD_DIR) rm -rf build-tmp win: | windef all testwin: win ./$(OUTPUT) test: all @echo "===== Program output =====" @./${OUTPUT} clean: - rm -rf ${BUILD_DIR} - rm -rf build-win - rm -rf build-tmp - rm "$(OUTNAME).amd64" "$(OUTNAME).exe" .NOTPARALLEL: builddir builddir2 .PHONY: all test clean win windef builddir builddir2 testwin