Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. DEBUG ?= 0
  2. WARNING ?= 1
  3. CC = cc
  4. CFLAGS = -std=gnu99 -march=native
  5. PFLAGS = -Ofast -flto
  6. DFLAGS = -O0 -DDebug -g
  7. PWARNINGS = -Werror -Wall -Wextra -Wpedantic
  8. DWARNINGS = -Wabi -Waggregate-return -Waggressive-loop-optimizations -Wall -Wattributes -Wbad-function-cast -Wbuiltin-macro-redefined \
  9. -Wc++-compat -Wcast-align -Wcast-qual -Wconversion -Wcoverage-mismatch -Wcpp \
  10. -Wdate-time -Wdeprecated -Wdeprecated-declarations -Wdesignated-init -Wdisabled-optimization \
  11. -Wdiscarded-array-qualifiers -Wdiscarded-qualifiers -Wdiv-by-zero -Wdouble-promotion -Wextra -Wfloat-equal -Wformat-signedness -Wframe-larger-than=32768 \
  12. -Wfree-nonheap-object -Wimport -Wincompatible-pointer-types -Winline -Wint-conversion -Wint-to-pointer-cast -Winvalid-memory-model \
  13. -Winvalid-pch -Wjump-misses-init -Wlogical-op -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar \
  14. -Wnested-externs -Wnormalized -Wodr -Wold-style-definition -Woverflow -Wpacked \
  15. -Wpacked-bitfield-compat -Wpadded -Wpedantic -Wpointer-to-int-cast -Wpragmas -Wredundant-decls \
  16. -Wreturn-local-addr -Wshadow -Wshift-count-negative -Wshift-count-overflow -Wsizeof-array-argument -Wstack-protector -Wstrict-aliasing \
  17. -Wstrict-overflow -Wstrict-prototypes -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=noreturn \
  18. -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wswitch-bool -Wswitch-default -Wswitch-enum -Wsync-nand \
  19. -Wtrampolines -Wundef -Wunreachable-code -Wunsafe-loop-optimizations \
  20. -Wunsuffixed-float-constants -Wunused-macros -Wunused-result -Wvarargs -Wvector-operation-performance -Wvla -Wwrite-strings
  21.  
  22. CPPWARNINGS = -Wabi-tag -Wassign-intercept -Wconditionally-supported -Wconversion-null -Wctor-dtor-privacy -Wdelete-incomplete -Weffc++ -Winherited-variadic-ctor \
  23. -Winvalid-offsetof -Wliteral-suffix -Wnoexcept -Wnon-template-friend -Wold-style-cast -Woverloaded-virtual -Wpmf-conversions -Wproperty-assign-default -Wprotocol \
  24. -Wselector -Wsign-promo -Wstrict-null-sentinel -Wstrict-selector-match -Wsuggest-override -Wsynth -Wundeclared-selector -Wuseless-cast -Wvirtual-move-assign \
  25. -Wzero-as-null-pointer-constant
  26.  
  27. LDLIBS = -lm
  28. TARGET = mandelbrot
  29.  
  30. ifeq ($(DEBUG), 1)
  31. CFLAGS += $(DFLAGS)
  32. else
  33. CFLAGS += $(PFLAGS)
  34. endif
  35.  
  36. ifeq ($(WARNING), 1)
  37. CFLAGS += $(DWARNINGS)
  38. else
  39. CFLAGS += $(PWARNINGS)
  40. endif
  41.  
  42. SRCDIR = ./src
  43. OBJDIR = ./obj
  44.  
  45. SRC = $(wildcard $(SRCDIR)/*.c)
  46. OBJ = $(addprefix $(OBJDIR)/,$(notdir $(SRC:.c=.o)))
  47.  
  48. .PHONY: all
  49. all: $(TARGET)
  50.  
  51. $(TARGET): $(OBJ)
  52. @$(CC) $(CFLAGS) -o $@ $^ $(LDLIBS)
  53. @echo "Linking complete!"
  54.  
  55. $(OBJDIR)/%.o: $(SRCDIR)/%.c
  56. @mkdir -p $(@D)
  57. @$(CC) -c $(CFLAGS) $< -o $@
  58. @echo "Compilation complete!"
  59.  
  60. .PHONY: clean
  61. clean:
  62. rm -f $(TARGET) $(OBJ)
  63. @echo "Cleanup complete!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement