# Inspired by XWT's Makefile.upstream
-sourceforge = http://softlayer.dl.sourceforge.net/sourceforge/
+sourceforge = http://download.sourceforge.net/
tasks/everything: \
tasks/build_newlib \
tasks/build_regex \
tasks/build_openbsdglob \
tasks/build_zlib \
+ tasks/build_libpng \
+ tasks/build_libiconv \
+ tasks/build_gd \
tasks/build_expat \
tasks/build_gmp \
tasks/build_expat \
darcs_gcclass = http://gcclass.ibex.org/
darcs_classgen = http://classgen.ibex.org/
+git_gcclass = http://gcclass.ibex.org/.git/
+git_classgen = http://classgen.ibex.org/.git/
cross_root := $(usr)/mips-unknown-elf
.SECONDARY: # This is broken in gmake < 3.79.1
cd "build/$*" && $(MAKE)
touch $@
+tasks/extract_git_%:
+ if [ -e $@ ]; then echo "Error: $@ exists. something isn't right"; false; else true; fi
+ mkdir -p build
+ if [ -z "$(git_$*)" ]; then echo "No git url for $*" >&2; false; fi
+ if [ -d "$(root)/.git" ]; then \
+ cd build && git clone "$(git_$*)" "$*"; \
+ else \
+ mkdir -p "build/" && cd "build/"; \
+ git clone $(darcs_$*) $*; \
+ fi
+ touch $@
+
+update_git_%: tasks/extract_git_%
+ if [ -d "build/$*/.git" ]; then \
+ cd "build/$*" && git fetch; \
+ else \
+ cd "build/$*" && git clone $(git_$*); \
+ fi
+ rm -f "tasks/build_git_$*" # to force a rebuild
+
+tasks/build_git_%: tasks/extract_git_%
+ cd "build/$*" && $(MAKE)
+ touch $@
+
clean_%:
rm -rf "build/$(*)"*
rm -f "tasks/build_$*" "tasks/patch_$*" "tasks/extract_$*"
## zlib ##############################################################################
-version_zlib = 1.2.3
+version_zlib = 1.2.7
url_zlib = http://www.zlib.net/zlib-$(version_zlib).tar.gz
+configure_zlib = --static
tasks/build_zlib: tasks/patch_zlib
mkdir -p $(usr)
cd build/zlib-$(version_zlib) && \
- AR="mips-unknown-elf-ar rc" CC=mips-unknown-elf-gcc ./configure --prefix=$(usr) $(configure_$*) && \
+ AR=mips-unknown-elf-ar CC=mips-unknown-elf-gcc ./configure --prefix=$(usr) $(configure_zlib) && \
+ $(MAKE) TARGET_CFLAGS="$(MIPS_CFLAGS)" && \
+ $(MAKE) install
+ touch $@
+
+## libpng ##############################################################################
+
+version_libpng = 1.5.10
+url_libpng = $(sourceforge)libpng/libpng-$(version_libpng).tar.gz
+configure_libpng = --disable-shared --host=mips-unknown-elf
+
+tasks/build_libpng: tasks/build_zlib tasks/patch_libpng tasks/build_libc
+ mkdir -p $(usr)
+ cd build/libpng-$(version_libpng) && \
+ CPPFLAGS=-I$(usr)/include LDFLAGS=-L$(usr)/lib ./configure --prefix=$(usr) $(configure_libpng) && \
+ $(MAKE) TARGET_CFLAGS="$(MIPS_CFLAGS)" && \
+ $(MAKE) install
+ touch $@
+
+## libiconv ##############################################################################
+
+version_libiconv = 1.14
+url_libiconv = http://ftp.gnu.org/gnu/libiconv/libiconv-$(version_libiconv).tar.gz
+configure_libiconv = --disable-shared --host=mips-unknown-elf
+
+tasks/build_libiconv: tasks/patch_libiconv tasks/build_libc
+ mkdir -p $(usr)
+ cd build/libiconv-$(version_libiconv) && \
+ ./configure --prefix=$(usr) $(configure_libiconv) && \
+ $(MAKE) TARGET_CFLAGS="$(MIPS_CFLAGS)" && \
+ $(MAKE) install
+ touch $@
+
+## gd ##############################################################################
+
+version_gd = 2.0.35
+url_gd = http://www.chipsnbytes.net/downloads/gd-$(version_gd).tar.gz
+configure_gd = --disable-shared --host=mips-unknown-elf
+
+tasks/build_gd: tasks/build_freetype tasks/patch_gd tasks/build_libc
+ mkdir -p $(usr)
+ cd build/gd-$(version_gd) && \
+ CPPFLAGS=-I$(usr)/include/freetype2 LDFLAGS=-L$(usr)/lib ./configure --prefix=$(usr) $(configure_gd) && \
$(MAKE) TARGET_CFLAGS="$(MIPS_CFLAGS)" && \
$(MAKE) install
touch $@
## freetype ##############################################################################
-version_freetype = 2.1.4
+version_freetype = 2.4.9
url_freetype = $(sourceforge)freetype/freetype-$(version_freetype).tar.gz
-patches_freetype = freetype.patch ft-nostdio.patch
+#patches_freetype = freetype.patch ft-nostdio.patch
tasks/build_freetype: tasks/patch_freetype tasks/build_libc
cd build/freetype-$(version_freetype) && \