Makefile 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. .SUFFIXES:
  2. MAKEOPTS+=-r
  3. MAX_MAPS ?= 99
  4. ARGS ?= -n $(MAX_MAPS) -c hl2.cfg
  5. CFLAGS += -Wall -Wextra -D_GNU_SOURCE -Isrc/atto -fPIE
  6. BUILDDIR ?= build
  7. ifeq ($(DEBUG), 1)
  8. CONFIG = dbg
  9. CFLAGS += -O0 -g
  10. else
  11. CONFIG = rel
  12. CFLAGS += -O3
  13. endif
  14. ifeq ($(NOWERROR), 1)
  15. CONFIG := $(CONFIG)nowerror
  16. else
  17. CFLAGS += -Werror
  18. endif
  19. ifeq ($(RASPBERRY), 1)
  20. PLATFORM = pi
  21. RPI_ROOT ?= /opt/raspberry-pi
  22. ifeq ($(CROSS), 1)
  23. RPI_TOOLCHAIN ?= gcc-linaro-arm-linux-gnueabihf-raspbian-x64
  24. RPI_TOOLCHAINDIR ?= $(RPI_ROOT)/raspberry-tools/arm-bcm2708/$(RPI_TOOLCHAIN)
  25. RPI_VCDIR ?= $(RPI_ROOT)/raspberry-firmware/hardfp/opt/vc
  26. CC = $(RPI_TOOLCHAINDIR)/bin/arm-linux-gnueabihf-gcc
  27. COMPILER = gcc
  28. else
  29. RPI_VCDIR ?= /opt/vc
  30. CC ?= cc
  31. endif
  32. CFLAGS += -I$(RPI_VCDIR)/include -I$(RPI_VCDIR)/include/interface/vcos/pthreads
  33. CFLAGS += -I$(RPI_VCDIR)/include/interface/vmcs_host/linux -DATTO_PLATFORM_RPI
  34. LIBS += -lGLESv2 -lEGL -lbcm_host -lvcos -lvchiq_arm -L$(RPI_VCDIR)/lib -lrt -lm
  35. SOURCES += \
  36. src/etcpack.c \
  37. src/atto/src/app_linux.c \
  38. src/atto/src/app_rpi.c
  39. else
  40. PLATFORM = desktop
  41. CC ?= cc
  42. LIBS += -lX11 -lXfixes -lGL -lm -pthread
  43. SOURCES += \
  44. src/atto/src/app_linux.c \
  45. src/atto/src/app_x11.c
  46. endif
  47. COMPILER ?= $(CC)
  48. OBJDIR ?= $(BUILDDIR)/$(PLATFORM)-$(CONFIG)-$(COMPILER)
  49. DEPFLAGS = -MMD -MP
  50. COMPILE.c = $(CC) -std=gnu99 $(CFLAGS) $(DEPFLAGS) -MT $@ -MF $@.d
  51. $(OBJDIR)/%.c.o: %.c
  52. @mkdir -p $(dir $@)
  53. $(COMPILE.c) -c $< -o $@
  54. EXE = $(OBJDIR)/OpenSource
  55. all: $(EXE)
  56. SOURCES += \
  57. src/OpenSource.c \
  58. src/bsp.c \
  59. src/atlas.c \
  60. src/filemap.c \
  61. src/camera.c \
  62. src/collection.c \
  63. src/vmfparser.c \
  64. src/material.c \
  65. src/texture.c \
  66. src/cache.c \
  67. src/dxt.c \
  68. src/render.c \
  69. src/profiler.c \
  70. OBJECTS = $(SOURCES:%=$(OBJDIR)/%.o)
  71. DEPS = $(OBJECTS:%=%.d)
  72. -include $(DEPS)
  73. $(EXE): $(OBJECTS)
  74. $(CC) $^ $(LIBS) -o $@
  75. clean:
  76. rm -f $(OBJECTS) $(DEPS) $(EXE)
  77. run: $(EXE)
  78. $(EXE) $(ARGS)
  79. debug: $(EXE)
  80. gdb --args $(EXE) $(ARGS)
  81. .PHONY: all clean run_tool debug_tool