src = $(wildcard src/*.cc) \ $(wildcard src/audio/*.cc) \ $(wildcard src/machine/*.cc) \ $(wildcard src/blobs/*.cc) \ $(wildcard src/imgui/*.cc) csrc = $(wildcard src/*.c) \ $(wildcard src/machine/*.c) \ $(wildcard src/blobs/*.c) obj = $(src:.cc=.o) $(csrc:.c=.o) dep = $(obj:.o=.d) bin = demo opt = -O3 -ffast-math dbg = -g incpath = -Isrc -Isrc/machine -I/usr/local/include `pkg-config --cflags sdl2` #libpath = -L/usr/local/lib warn = -pedantic -Wall CFLAGS = $(warn) $(opt) $(dbg) $(incpath) -fopenmp CXXFLAGS = -std=c++11 $(warn) $(opt) $(dbg) $(incpath) -fopenmp LDFLAGS = $(libpath) -ldrawtext $(libgl_$(sys)) $(libal_$(sys)) -lm -lgmath -lvmath \ -limago -lresman -lpthread -lassimp -ltreestore -lgoatvr \ `pkg-config --libs sdl2 freetype2` -lpng -ljpeg -lz -lvorbisfile -lgomp sys ?= $(shell uname -s | sed 's/MINGW.*/mingw/') libgl_Linux = -lGL -lGLU -lGLEW libgl_Darwin = -framework OpenGL -lGLEW libgl_mingw = -lopengl32 -lglu32 -lglew32 #libgl_mingw = -lglu32 -Wl,-Bstatic -lglew32 -Wl,-Bdynamic -lopengl32 libal_Linux = -lopenal libal_Darwin = -framework OpenAL libal_mingw = -lopenal ifeq ($(sys), mingw) obj = $(src:.cc=.w32.o) $(csrc:.c=.w32.o) dep = $(obj:.o=.d) bin = demo.exe LDFLAGS += -lmingw32 -lSDL2main -lSDL2 -lwinmm -mwindows #CFLAGS += -DGLEW_STATIC #CXXFLAGS += -DGLEW_STATIC endif $(bin): .clang_complete $(obj) $(CXX) -o $@ $(obj) $(LDFLAGS) .PHONY: cross cross: $(MAKE) CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ sys=mingw .PHONY: cross-clean cross-clean: $(MAKE) CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ sys=mingw clean .PHONY: instalien instalien: demo.exe cp $< /alien/demo/$< mkdir -p /alien/demo/sdr && cp sdr/* /alien/demo/sdr/ for i in `tools/dlldepends | grep -v '++'`; do echo $$i; rsync $$i /alien/demo; done .clang_complete: Makefile rm -f $@ for i in $(CXXFLAGS); do echo $$i >>$@; done -include $(dep) %.d: %.c @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@ %.d: %.cc @$(CPP) $(CXXFLAGS) $< -MM -MT $(@:.d=.o) >$@ %.w32.o: %.c $(CC) -o $@ $(CFLAGS) -c $< %.w32.o: %.cc $(CC) -o $@ $(CXXFLAGS) -c $< .PHONY: clean clean: rm -f $(obj) $(bin) .PHONY: cleandep cleandep: rm -f $(dep) .PHONY: data data: tools/prepare_data