Makefile 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. CC=gcc
  2. AR=ar
  3. SRC = $(wildcard src/*.c) $(wildcard src/*/*.c)
  4. OBJ = $(addprefix obj/,$(notdir $(SRC:.c=.o)))
  5. CFLAGS = -I ./include -std=gnu99 -Wall -Werror -Wno-unused -O3 -g
  6. LFLAGS = -lSDL2 -lSDL2_mixer -lSDL2_net -shared -g
  7. PLATFORM = $(shell uname)
  8. ifeq ($(findstring Linux,$(PLATFORM)),Linux)
  9. DYNAMIC = libcorange.so
  10. STATIC = libcorange.a
  11. CFLAGS += -fPIC
  12. LFLAGS += -lGL
  13. endif
  14. ifeq ($(findstring Darwin,$(PLATFORM)),Darwin)
  15. DYNAMIC = libcorange.so
  16. STATIC = libcorange.a
  17. CFLAGS += -fPIC
  18. LFLAGS += -framework OpenGL
  19. endif
  20. ifeq ($(findstring MINGW,$(PLATFORM)),MINGW)
  21. DYNAMIC = corange.dll
  22. STATIC = libcorange.a
  23. LFLAGS = -lmingw32 -lopengl32 -lSDL2main -lSDL2 -lSDL2_mixer -lSDL2_net -shared -g
  24. OBJ += corange.res
  25. endif
  26. all: $(DYNAMIC) $(STATIC)
  27. $(DYNAMIC): $(OBJ)
  28. $(CC) $(OBJ) $(LFLAGS) -o $@
  29. $(STATIC): $(OBJ)
  30. $(AR) rcs $@ $(OBJ)
  31. obj/%.o: src/%.c | obj
  32. $(CC) $< -c $(CFLAGS) -o $@
  33. obj/%.o: src/*/%.c | obj
  34. $(CC) $< -c $(CFLAGS) -o $@
  35. obj:
  36. mkdir obj
  37. corange.res: corange.rc
  38. windres $< -O coff -o $@
  39. clean:
  40. rm $(OBJ) $(STATIC) $(DYNAMIC)
  41. install_unix: $(STATIC)
  42. cp $(STATIC) /usr/local/lib/$(STATIC)
  43. install_win32: $(STATIC)
  44. cp $(STATIC) C:/MinGW/lib/$(STATIC)
  45. install_win64: $(STATIC) $(DYNAMIC)
  46. cp $(STATIC) C:/MinGW64/x86_64-w64-mingw32/lib/$(STATIC)
  47. cp $(DYNAMIC) C:/MinGW64/x86_64-w64-mingw32/bin/$(DYNAMIC)