Makefile 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # ************************************************************************* #
  2. # Organizacion del Computador II #
  3. # #
  4. # Trabajo Practico 2 #
  5. # #
  6. # ************************************************************************* #
  7. ASM = nasm
  8. UNAME_S := $(shell uname -s)
  9. ifeq ($(UNAME_S),Linux)
  10. ASMFLAGS64 = -felf64 -g -F dwarf
  11. endif
  12. ifeq ($(UNAME_S),Darwin)
  13. ASMFLAGS64 = -fmacho64 -g -DDARWIN
  14. endif
  15. ASMFLAGS = $(ASMFLAGS64)
  16. CFLAGS64 ?=-Wall -Wextra -pedantic -O0 -ggdb
  17. CFLAGS=$(CFLAGS64)
  18. BUILD_DIR = ../build
  19. FILTROS = diff blur
  20. FILTROS_OBJ = $(addsuffix .o, $(FILTROS)) $(addsuffix _asm.o, $(FILTROS)) $(addsuffix _c.o, $(FILTROS))
  21. FILTROS_OBJ_CON_PATH = $(addprefix $(BUILD_DIR)/, $(FILTROS_OBJ))
  22. .PHONY: filtros clean
  23. filtros: $(FILTROS_OBJ_CON_PATH)
  24. $(BUILD_DIR)/%.o: %.c
  25. $(CC) $(CFLAGS) -c -o $@ $<
  26. $(BUILD_DIR)/%.o: %.asm
  27. $(ASM) $(ASMFLAGS) -o $@ $<
  28. clean:
  29. rm -f $(FILTROS_OBJ_CON_PATH)