-src = $(wildcard src/*.cc) $(wildcard src/machine/*.cc) $(wildcard src/blobs/*.cc)
-csrc = $(wildcard src/*.c) $(wildcard src/machine/*.c) $(wildcard src/blobs/*.c)
+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
dbg = -g
incpath = -Isrc -Isrc/machine -I/usr/local/include `pkg-config --cflags sdl2`
-libpath = -L/usr/local/lib
+#libpath = -L/usr/local/lib
warn = -pedantic -Wall
-CFLAGS = $(warn) $(opt) $(dbg) $(incpath)
-CXXFLAGS = -std=c++11 $(warn) $(opt) $(dbg) $(incpath)
-LDFLAGS = $(libpath) $(libgl_$(sys)) -lm -lgmath -lvmath -limago -lresman \
- -lpthread -lassimp -ltreestore -ldrawtext -loptcfg -lgoatvr `pkg-config --libs sdl2`
+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 -lassman \
+ `pkg-config --libs sdl2 freetype2` -lpng -ljpeg -lz -lvorbisfile -lgomp
-sys = $(shell uname -s | sed 's/MINGW.*/mingw/')
+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)
.PHONY: cross
cross:
- $(MAKE) CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++
+ $(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 $@
%.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)