diff options
Diffstat (limited to 'pcm-assembler/Makefile')
-rw-r--r-- | pcm-assembler/Makefile | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/pcm-assembler/Makefile b/pcm-assembler/Makefile new file mode 100644 index 0000000..e3405a7 --- /dev/null +++ b/pcm-assembler/Makefile @@ -0,0 +1,68 @@ +# Tools + +CC = gcc + +# Project + +NAME = pcm-assembler + +# Directories + +BUILD = build +OUTPUT = . + +# Sources + +SOURCES = pcm/pcm.c pcm-assembler.c +OBJECTS = $(SOURCES:.c=.o) +DEPS = $(SOURCES:.c=.d) + +# Compiler + +INCLUDES = . + +CFLAGS = $(foreach include,$(INCLUDES),-I$(include)) +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) |