diff options
author | Paul Kocialkowski | 2016-11-21 22:13:39 +0100 |
---|---|---|
committer | Paul Kocialkowski | 2016-11-22 13:27:38 +0100 |
commit | 76bc9028e9585a06717bb051ec72612e57b88b52 (patch) | |
tree | 4e07e48590702f1208f69d8bc57e6ed857136a07 /examples/Makefile |
Canard include file and compiler initial commit
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'examples/Makefile')
-rw-r--r-- | examples/Makefile | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/examples/Makefile b/examples/Makefile new file mode 100644 index 0000000..57acf05 --- /dev/null +++ b/examples/Makefile @@ -0,0 +1,66 @@ +# Tools + +CC = canardcc + +# Project + +NAME = example + +# Directories + +BUILD = build +OUTPUT = . + +# Sources + +SOURCES = example.c +OBJECTS = $(SOURCES:.c=.o) +DEPS = $(SOURCES:.c=.d) + +# Compiler + +CFLAGS = +LDFLAGS = + +# Produced files + +BUILD_OBJECTS = $(addprefix $(BUILD)/,$(OBJECTS)) +BUILD_DEPS = $(addprefix $(BUILD)/,$(DEPS)) +BUILD_BINARY = $(BUILD)/$(NAME) +BUILD_DIRS = $(sort $(dir $(BUILD_BINARY) $(BUILD_OBJECTS))) + +OUTPUT_BINARY = $(OUTPUT)/$(NAME) +OUTPUT_DIRS = $(sort $(dir $(OUTPUT_BINARY))) + +all: $(OUTPUT_BINARY) + +$(BUILD_DIRS): + @mkdir -p $@ + +$(BUILD_OBJECTS): $(BUILD)/%.o: %.c | $(BUILD_DIRS) + @echo " CC $<" + @$(CC) $(CFLAGS) -MMD -MF $(BUILD)/$*.d -c $< -o $@ + +$(BUILD_BINARY): $(BUILD_OBJECTS) + @echo " LINK $@" + @$(CC) $(CFLAGS) -o $@ $(BUILD_OBJECTS) $(LDFLAGS) + +$(OUTPUT_DIRS): + @mkdir -p $@ + +$(OUTPUT_BINARY): $(BUILD_BINARY) | $(OUTPUT_DIRS) + @echo " BINARY $@" + @cp $< $@ + +.PHONY: clean +clean: + @echo " CLEAN" + @rm -rf $(foreach object,$(basename $(BUILD_OBJECTS)),$(object)*) $(basename $(BUILD_BINARY))* + @rm -rf $(OUTPUT_BINARY) + +.PHONY: distclean +distclean: clean + @echo " DISTCLEAN" + @rm -rf $(BUILD) + +-include $(BUILD_DEPS) |