Advertisement
Guest User

Untitled

a guest
Oct 11th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 0.58 KB | None | 0 0
  1. UNAME=$(shell uname)
  2. ifeq ($(UNAME), Darwin)
  3.     CC=clang
  4.     UNIFLAGS=-pedantic -Wall -fsanitize=address -g
  5. endif
  6.  
  7. ifneq (,$(filter $(UNAME), Linux FreeBSD))
  8.     CC=gcc
  9.     UNIFLAGS=-pedantic -Wall -g
  10. endif
  11.  
  12. SRCDIR=src
  13. CFLAGS=-c
  14. BUILDDIR=build
  15. LNFLAGS=-o
  16. DISTDIR=dist
  17. EXECUTABLE=myshell
  18.  
  19. all: build
  20.     mkdir -p $(DISTDIR)
  21.     $(CC) $(BUILDDIR)/*.o $(UNIFLAGS) $(LNFLAGS) $(DISTDIR)/$(EXECUTABLE)
  22.  
  23. build: *.o
  24.     mkdir -p $(BUILDDIR)
  25.     mv *.o $(BUILDDIR)
  26.  
  27. *.o: $(SRCDIR)/*.c $(SRCDIR)/mystl/*.c
  28.     $(CC) $(CFLAGS) $(UNIFLAGS) $(SRCDIR)/*.c $(SRCDIR)/mystl/*.c
  29.  
  30. clean:
  31.     rm -rf $(BUILDDIR)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement