+# ***************************************************************************
+### GLEW
+# ***************************************************************************
+glew-$(GLEW_VERSION)-src.tgz:
+ $(WGET) $(GLEW_URL)
+
+glew: glew-$(GLEW_VERSION)-src.tgz
+ $(EXTRACT_GZ)
+ (patch -p0 < Patches/glew-win32.patch)
+
+.glew: glew
+ (cd $<; $(HOSTCC) CFLAGS="$(CFLAGS) -DGLEW_STATIC" make && $(HOSTCC) GLEW_DEST=$(PREFIX) make install)
+ifdef HAVE_WIN32
+ rm -rf $(PREFIX)/lib/libglew32.dll*
+endif
+ touch $@
+
+CLEAN_FILE += .glew
+CLEAN_PKG += glew
+DISTCLEAN_PKG += glew-$(GLEW_VERSION)-src.tgz
+
+
+# ***************************************************************************
+# projectM
+# ***************************************************************************
+libprojectM-$(LIBPROJECTM_VERSION)-Source.tar.gz:
+ $(WGET) $(LIBPROJECTM_URL)
+
+libprojectM: libprojectM-$(LIBPROJECTM_VERSION)-Source.tar.gz
+ rm -rf $@ || true
+ gunzip -c $< | tar xf - --exclude='[*?:<>\|]'
+ mv projectM-$(LIBPROJECTM_VERSION)-Source $@ || true
+ patch -p0 < Patches/libprojectM-win32.patch
+ cd $@; rm CMakeCache.txt
+
+.libprojectM: libprojectM .glew
+ (cd $<; $(HOSTCC) CPPFLAGS="$(CPPFLAGS)" cmake . -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake -DINCLUDE-PROJECTM-LIBVISUAL:BOOL=OFF -DDISABLE_NATIVE_PRESETS:BOOL=ON -DUSE_FTGL:BOOL=OFF -DINCLUDE-PROJECTM-PULSEAUDIO:BOOL=OFF -DINCLUDE-PROJECTM-QT:BOOL=OFF -DBUILD_PROJECTM_STATIC:BOOL=ON -DCMAKE_INSTALL_PREFIX=$(PREFIX) && make install)
+ifdef HAVE_WIN32
+ (cd $<;cp Renderer/libRenderer.a MilkdropPresetFactory/libMilkdropPresetFactory.a $(PREFIX)/lib)
+endif
+ touch $@
+
+CLEAN_FILE += .libprojectM
+CLEAN_PKG += libprojectM
+DISTCLEAN_PKG += libprojectM-$(LIBPROJECTM_VERSION)-Source.tar.gz
+
+# ***************************************************************************
+# X11 C Bindings
+# ***************************************************************************
+
+libxcb-$(XCB_VERSION).tar.bz2:
+ $(WGET) $(XCB_URL)/$@
+
+libxcb: libxcb-$(XCB_VERSION).tar.bz2
+ -rm -rf $@
+ bzcat $< | tar xf -
+ mv libxcb-$(XCB_VERSION) $@
+ touch $@
+
+.xcb: libxcb
+ cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) \
+ --disable-composite \
+ --disable-damage \
+ --disable-dpms \
+ --disable-glx \
+ --enable-randr \
+ --disable-record \
+ --enable-render \
+ --disable-resource \
+ --disable-screensaver \
+ --disable-shape \
+ --enable-shm \
+ --disable-sync \
+ --disable-xevie \
+ --disable-xfixes \
+ --disable-xfree86-dri \
+ --disable-xinerama \
+ --disable-xinput \
+ --disable-xprint \
+ --disable-selinux \
+ --disable-xtest \
+ --enable-xv \
+ --disable-xvmc \
+ --disable-build-docs
+ cd $< && make install
+ touch $@
+
+xcb-util-$(XCB_UTIL_VERSION).tar.bz2:
+ $(WGET) $(XCB_UTIL_URL)/$@
+
+xcb-util: xcb-util-$(XCB_UTIL_VERSION).tar.bz2
+ -rm -rf $@
+ bzcat $< | tar xf -
+ mv xcb-util-$(XCB_UTIL_VERSION) $@
+ touch $@
+
+.xcb-util: xcb-util .xcb
+ cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)
+ cd $< && make install
+ touch $@
+
+CLEAN_FILE += .xcb-util .xcb
+CLEAN_PKG += xcb-util xcb
+DISTCLEAN_PKG += xcb-util-$(XCB_UTIL_VERSION).tar.bz2 libxcb-$(XCB_VERSION).tar.bz2
+
+# ***************************************************************************
+# Peflags utility (Windows only)
+# ***************************************************************************
+
+peflags/peflags.c:
+ mkdir -p peflags
+ cd peflags && $(WGET) $(PEFLAGS_URL)/peflags.c
+
+.peflags: peflags/peflags.c
+ cd peflags && gcc peflags.c -o peflags
+ install -d $(PREFIX)/bin
+ cd peflags && install ./peflags $(PREFIX)/bin
+ touch $@
+
+CLEAN_PKG += peflags
+CLEAN_FILE += .peflags
+
+# ***************************************************************************
+# Regex
+# ***************************************************************************
+regex-$(REGEX_VERSION).tar.gz:
+ $(WGET) $(REGEX_URL)
+
+regex: regex-$(REGEX_VERSION).tar.gz
+ $(EXTRACT_GZ)
+
+.regex: regex
+ (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make subirs= && $(AR) ru libregex.a regex.o && $(RANLIB) libregex.a && cp -v regex.h $(PREFIX)/include && cp -v libregex.a $(PREFIX)/lib )
+ touch $@
+
+CLEAN_FILE += .regex
+CLEAN_PKG += regex
+DISTCLEAN_PKG += regex-$(REGEX_VERSION).tar.gz
+
+# ***************************************************************************
+# SQLite
+# ***************************************************************************
+sqlite-amalgamation-$(SQLITE_VERSION).tar.gz:
+ $(WGET) $(SQLITE_URL)
+
+sqlite-$(SQLITE_VERSION): sqlite-amalgamation-$(SQLITE_VERSION).tar.gz
+ $(EXTRACT_GZ)
+
+.sqlite3: sqlite-$(SQLITE_VERSION)
+ (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install )
+ touch $@
+
+CLEAN_FILE += .sqlite3
+CLEAN_PKG += sqlite-$(SQLITE_VERSION)
+DISTCLEAN_PKG += sqlite-amalgamation-$(SQLITE_VERSION).tar.gz