make Runtime._syscall() protected so it can be overridden from outside the package
[nestedvm.git] / upstream / Makefile
index b8eeca9..70e2519 100644 (file)
@@ -1,6 +1,6 @@
 # Inspired by XWT's Makefile.upstream
 
-sourceforge = http://softlayer.dl.sourceforge.net/sourceforge/
+sourceforge = http://download.sourceforge.net/
 
 tasks/everything: \
        tasks/build_newlib \
@@ -10,6 +10,9 @@ tasks/everything: \
        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 \
@@ -30,8 +33,10 @@ tasks/everything: \
        tasks/build_linpack \
 
 
-darcs_gcclass = http://darcs.brianweb.net/gcclass
-darcs_classgen = http://darcs.brianweb.net/classgen
+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
 
@@ -64,7 +69,7 @@ $(top_lev_stuff):
 tasks/download_%:
        if [ -z "$(url_$*)" ]; then echo "No url for $*" >&2; false; fi
        mkdir -p download
-       cd download && curl -O $(url_$*)
+       cd download && curl -LO $(url_$*)
        touch $@
 
 tasks/extract_%: tasks/download_%
@@ -83,8 +88,8 @@ tasks/extract_darcs_%:
        if [ -d "$(root)/_darcs" ]; then \
                cd build && darcs get --repo-name="$*" --verbose "$(darcs_$*)"; \
        else \
-               mkdir -p "build/$*" && cd "build/$*"; \
-               wget -nH -rl 16 -N -X _darcs $(darcs_$*); \
+               mkdir -p "build/" && cd "build/"; \
+               darcs get --repo-name=$* $(darcs_$*); \
        fi
        touch $@
 
@@ -92,7 +97,7 @@ update_darcs_%: tasks/extract_darcs_%
        if [ -d "build/$*/_darcs" ]; then \
                cd "build/$*" && darcs pull; \
        else \
-               cd "build/$*" && wget -np -nH --cut-dirs=1 -rl 16 -N -X _darcs $(darcs_$*); \
+               cd "build/$*" && darcs get $(darcs_$*); \
        fi
        rm -f "tasks/build_darcs_$*" # to force a rebuild
 
@@ -100,6 +105,30 @@ tasks/build_darcs_%: tasks/extract_darcs_%
        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_$*"
@@ -132,7 +161,7 @@ url_gcc-core = http://mirrors.kernel.org/gnu/gcc/gcc-$(version_gcc)/gcc-core-$(v
 url_gcc-c++ = http://mirrors.kernel.org/gnu/gcc/gcc-$(version_gcc)/gcc-g++-$(version_gcc).tar.gz
 url_gcc-g77 = http://mirrors.kernel.org/gnu/gcc/gcc-$(version_gcc)/gcc-g77-$(version_gcc).tar.gz
 
-patches_gcc = gcc-fixes.patch gcc-fdata-sections-bss.patch gcc-64bitclean.patch
+patches_gcc = gcc-fixes.patch gcc-fdata-sections-bss.patch gcc-64bitclean.patch gcc-with-newer-version.patch
 
 configure_gcc = --target=mips-unknown-elf --disable-threads --with-gnu-ld --with-gnu-as --with-newlib=yes --enable-sjlj-exceptions --enable-languages="c"
 configure_gcc_step2 = $(configure_gcc) --enable-languages="c,c++,f77"
@@ -211,7 +240,7 @@ tasks/build_newlib: tasks/build_gcc
 
 ## openbsdglob ##############################################################################
 
-url_openbsdglob = http://www.brianweb.net/xwt/openbsdglob.tar.gz
+url_openbsdglob = http://nestedvm.ibex.org/upstream/openbsdglob.tar.gz
 
 tasks/build_openbsdglob: tasks/download_openbsdglob tasks/build_newlib
        @mkdir -p $(usr)/mips-unknown-elf/{include,lib}
@@ -228,7 +257,7 @@ tasks/build_openbsdglob: tasks/download_openbsdglob tasks/build_newlib
 
 ## regex ##############################################################################
 
-url_regex = http://arglist.com/regex/regex3.8a.tar.gz
+url_regex = http://www.arglist.com/regex/files/regex3.8a.tar.gz
 
 tasks/build_regex: tasks/download_regex tasks/build_newlib
        @mkdir -p $(usr)/mips-unknown-elf/{include,lib}
@@ -249,13 +278,56 @@ url_linpack = http://www.math.iastate.edu/burkardt/f_src/linpack_bench/linpack_b
 
 ## 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 $@
@@ -312,7 +384,7 @@ tasks/build_linker: tasks/build_binutils $(root)/src/org/ibex/nestedvm/linker.ld
 
 ## libjpeg ##############################################################################
 
-version_libjpeg = 6b
+version_libjpeg = 7
 url_libjpeg = http://www.ijg.org/files/jpegsrc.v$(version_libjpeg).tar.gz
 
 tasks/extract_libjpeg: tasks/download_libjpeg
@@ -326,7 +398,7 @@ tasks/extract_libjpeg: tasks/download_libjpeg
 
 tasks/build_libjpeg: tasks/patch_libjpeg tasks/build_libc
        cd build/libjpeg-$(version_libjpeg) && \
-               ./configure && \
+               ./configure --host=mips && \
                make CC="mips-unknown-elf-gcc" \
                        AR="mips-unknown-elf-ar rc" \
                        AR2="mips-unknown-elf-ranlib" \
@@ -359,9 +431,9 @@ tasks/build_libmspack: tasks/patch_libmspack tasks/build_libc
 
 ## 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) && \
@@ -377,7 +449,7 @@ tasks/build_freetype: tasks/patch_freetype tasks/build_libc
 
 version_boehmgc = 6.3alpha2
 #url_boehmgc = http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc$(version_boehmgc).tar.gz
-url_boehmgc = http://www.brianweb.net/misc/gc$(version_boehmgc).tar.gz
+url_boehmgc = http://nestedvm.ibex.org/upstream/gc$(version_boehmgc).tar.gz
 patches_boehmgc = boehm-gc.patch
 
 tasks/extract_boehmgc: tasks/download_boehmgc
@@ -402,14 +474,14 @@ tasks/build_boehmgc: tasks/patch_boehmgc tasks/build_libc
 ## busybox ##############################################################################
 
 version_busybox = 1.00-pre9
-url_busybox = http://busybox.net/downloads/busybox-$(version_busybox).tar.gz
+url_busybox = http://www.busybox.net/downloads/legacy/busybox-$(version_busybox).tar.gz
 patches_busybox = busybox.patch
 
 tasks/build_busybox: tasks/patch_busybox tasks/build_libc
        cd build && \
                rm -f busybox && \
                ln -s busybox-$(version_busybox) busybox
-       cd build/busybox && $(MAKE) LDFLAGS="$(MIPS_LDFLAGS)" CFLAGS_EXTRA="$(MIPS_CFLAGS) -DNESTEDVM -g"
+       cd build/busybox && yes | $(MAKE) LDFLAGS="$(MIPS_LDFLAGS)" CFLAGS_EXTRA="$(MIPS_CFLAGS) -DNESTEDVM -g"
        touch $@
 
 ## tex ##############################################################################