Advertisement
Guest User

Makefile

a guest
May 18th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 1.01 KB | None | 0 0
  1. TARGET = prog
  2. EXPR_COMPILER = exprc
  3.  
  4. PROG_OBJECTS = obj/main.o obj/func.o obj/methods.o
  5. COMPILER_OBJECTS = obj/exprc.o obj/expr_tree.o obj/make_asm.o obj/make_js.o
  6.  
  7. C_FLAGS = -std=c99 -Wall -m32 -c
  8. ASM_FLAGS = -f elf32
  9. LINK_FLAGS = -Wall -m32 -lm
  10.  
  11. all: $(TARGET) $(EXPR_COMPILER)
  12.  
  13. run: $(TARGET)
  14.     ./$(TARGET)
  15.  
  16. clean:
  17.     rm -rf obj/*
  18.     rm -rf ./$(TARGET)
  19.     rm -rf ./$(EXPR_COMPILER)
  20.  
  21. .PHONY: all clean run
  22.  
  23. $(TARGET): $(PROG_OBJECTS)
  24.     gcc $(PROG_OBJECTS) -o $@ $(LINK_FLAGS)
  25.  
  26. $(EXPR_COMPILER): $(COMPILER_OBJECTS)
  27.     gcc $(COMPILER_OBJECTS) -o $@ $(LINK_FLAGS)
  28.  
  29. obj/%.o: src/%.c
  30.     gcc $(C_FLAGS) $< -o $@
  31.  
  32. obj/%.o: src/%.nasm
  33.     nasm $(ASM_FLAGS) $< -o $@
  34.  
  35. src/%.nasm: src/%.expr $(EXPR_COMPILER)
  36.     ./$(EXPR_COMPILER) $< $@
  37.  
  38. src/main.c: src/func.h src/methods.h
  39. src/methods.c: src/methods.h src/constants.h
  40.  
  41. src/exprc.c: src/expr_tree.h src/make_js.h src/make_asm.h
  42. src/expr_tree.c: src/expr_tree.h
  43. src/make_asm.c: src/make_asm.h src/expr_tree.h src/constants.h
  44. src/make_js.c: src/make_js.h src/expr_tree.h
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement