-export BELIBRARIES = $(PREFIX)/lib:/boot/develop/lib/x86
-export C_INCLUDE_PATH = $(PREFIX)/include
-export CPLUS_INCLUDE_PATH = $(PREFIX)/include
-export LDFLAGS = -lnet
+else
+# Cross compiling from Linux
+export PATH = $(PREFIX)/bin:/opt/cross-tools/bin:/usr/bin:/bin
+endif
+endif
+
+export CPPFLAGS = -I$(PREFIX)/include $(EXTRA_CPPFLAGS)
+export CFLAGS = -I$(PREFIX)/include $(EXTRA_CPPFLAGS)
+export CXXFLAGS = -I$(PREFIX)/include $(EXTRA_CPPFLAGS)
+export LDFLAGS = -L$(PREFIX)/lib $(EXTRA_LDFLAGS)
+
+# ***************************************************************************
+# Cross compilation variables
+# We'll usually use --host=<platform>, except for a few libraries which
+# don't handle it (gotta set CC/CXX/etc), and obviously FFmpeg has its own
+# way of doing it... ;)
+# ***************************************************************************
+
+ifneq ($(BUILD),$(HOST))
+# We are cross compiling
+HOSTCONF=--host=$(HOST)
+HOSTCC=CC=$(HOST)-gcc CXX=$(HOST)-g++ AR=$(HOST)-ar RANLIB=$(HOST)-ranlib
+# For libebml/libmatroska. Grrr.
+HOSTCC2=CC=$(HOST)-gcc CXX=$(HOST)-g++ "AR=$(HOST)-ar rcvu" RANLIB=$(HOST)-ranlib
+FFMPEGCONF=--cross-prefix=$(HOST)-
+RANLIB=$(HOST)-ranlib
+else
+# Building natively
+RANLIB=ranlib