X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=Makefile;h=cb47436f2ca972b407a6c9dadc0df39045917dc5;hb=705e8c2441e0362407960d48c6e3be0ff90ab680;hp=3b461fcab88dc19545b1ad0d011cad1ed720dc20;hpb=a9e3833a207eb0813acf7d85e15cfd0165aeb474;p=fedora-riscv.git diff --git a/Makefile b/Makefile index 3b461fc..cb47436 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,8 @@ LOCAL_LINUX_GIT_COPY = $(HOME)/d/linux # The root packages (plus their dependencies) that we want to # cross-compile into the stage 3 chroot. -STAGE3_PACKAGES = gcc rpm-build +# beecrypt-devel is required to build RPM. +STAGE3_PACKAGES = gcc rpm-build beecrypt-devel # Versions of cross-compiled packages. NCURSES_VERSION = 6.0-20160730 @@ -55,6 +56,10 @@ ZLIB_VERSION = 1.2.8 # "Cannot use the installed version of file (xx) to cross-compile file yy" FILE_VERSION = 5.25 POPT_VERSION = 1.16 +BEECRYPT_VERSION = 4.2.1 +RPM_COMMIT = 95712183458748ea6cafebac1bdd5daa097d9bee +RPM_SHORT_COMMIT = 9571218 +BDB_VERSION = 4.5.20 all: stage1 stage2 stage3 stage4 @@ -268,6 +273,8 @@ stage3: stage3-kernel/linux-$(KERNEL_VERSION)/vmlinux \ stage3-chroot/usr/lib64/libz.so \ stage3-chroot/usr/bin/file \ stage3-chroot/usr/lib64/libpopt.so \ + stage3-chroot/usr/lib64/libbeecrypt.so \ + stage3-chroot/usr/bin/rpm \ stage3-chroot/init \ stage3-disk.img @@ -383,7 +390,7 @@ coreutils-$(COREUTILS_VERSION).tar.xz: # Cross-compile binutils. stage3-chroot/usr/bin/as: binutils-$(BINUTILS_X_VERSION).tar.gz - rm -rf binutils-$(BINUTILS_X_VERSION) + rm -rf riscv-binutils-gdb-riscv-binutils-$(BINUTILS_X_VERSION) zcat $^ | tar xf - mkdir riscv-binutils-gdb-riscv-binutils-$(BINUTILS_X_VERSION)/build cd riscv-binutils-gdb-riscv-binutils-$(BINUTILS_X_VERSION)/build && \ @@ -427,6 +434,7 @@ stage3-chroot/usr/lib64/libmpfr.so.4: mpfr-$(MPFR_VERSION).tar.gz cd mpfr-$(MPFR_VERSION) && PATH=$(ROOT)/fixed-gcc:$$PATH make cd mpfr-$(MPFR_VERSION) && make install DESTDIR=$(ROOT)/stage3-chroot cd stage3-chroot/usr/lib && ln -s ../lib64/libmpfr.so + rm -f stage3-chroot/usr/lib64/*.la mpfr-$(MPFR_VERSION).tar.gz: rm -f $@ $@-t @@ -445,6 +453,7 @@ stage3-chroot/usr/lib64/libmpc.so.3: mpc-$(MPC_VERSION).tar.gz cd mpc-$(MPC_VERSION) && PATH=$(ROOT)/fixed-gcc:$$PATH make cd mpc-$(MPC_VERSION) && make install DESTDIR=$(ROOT)/stage3-chroot cd stage3-chroot/usr/lib && ln -s ../lib64/libmpc.so + rm -f stage3-chroot/usr/lib64/*.la mpc-$(MPC_VERSION).tar.gz: rm -f $@ $@-t @@ -495,8 +504,7 @@ stage3-chroot/usr/bin/mount: util-linux-$(UTIL_LINUX_VERSION).tar.xz --without-systemd \ --disable-makeinstall-chown cd util-linux-$(UTIL_LINUX_VERSION) && PATH=$(ROOT)/fixed-gcc:$$PATH make -# libtool fucks something up here, ignore the failure and continue. - -cd util-linux-$(UTIL_LINUX_VERSION) && make install DESTDIR=$(ROOT)/stage3-chroot -j1 -k V=1 + cd util-linux-$(UTIL_LINUX_VERSION) && PATH=$(ROOT)/fixed-gcc:$$PATH make install DESTDIR=$(ROOT)/stage3-chroot util-linux-$(UTIL_LINUX_VERSION).tar.xz: rm -f $@ $@-t @@ -544,7 +552,7 @@ stage3-chroot/usr/lib64/libz.so: zlib-$(ZLIB_VERSION).tar.gz cd zlib-$(ZLIB_VERSION) && \ PATH=$(ROOT)/fixed-gcc:$$PATH \ CC=riscv64-unknown-linux-gnu-gcc \ - CFLAGS="-I/home/rjones/d/fedora-riscv/stage3-chroot/usr/include -L/home/rjones/d/fedora-riscv/stage3-chroot/usr/lib" \ + CFLAGS="-I$(ROOT)/stage3-chroot/usr/include -L$(ROOT)/stage3-chroot/usr/lib" \ ./configure \ --prefix=/usr --libdir=/usr/lib64 cd zlib-$(ZLIB_VERSION) && PATH=$(ROOT)/fixed-gcc:$$PATH make shared @@ -561,13 +569,14 @@ stage3-chroot/usr/bin/file: file-$(FILE_VERSION).tar.gz tar -zxf $^ cd file-$(FILE_VERSION) && \ PATH=$(ROOT)/fixed-gcc:$$PATH \ - LDFLAGS=-L/home/rjones/d/fedora-riscv/stage3-chroot/usr/lib64 \ + LDFLAGS=-L$(ROOT)/stage3-chroot/usr/lib64 \ ./configure \ --host=riscv64-unknown-linux-gnu \ --prefix=/usr --libdir=/usr/lib64 \ --disable-static --enable-shared cd file-$(FILE_VERSION) && PATH=$(ROOT)/fixed-gcc:$$PATH make V=1 cd file-$(FILE_VERSION) && make install DESTDIR=$(ROOT)/stage3-chroot + rm -f stage3-chroot/usr/lib64/*.la file-$(FILE_VERSION).tar.gz: rm -f $@ $@-t @@ -580,19 +589,87 @@ stage3-chroot/usr/lib64/libpopt.so: popt-$(POPT_VERSION).tar.gz tar -zxf $^ cd popt-$(POPT_VERSION) && \ PATH=$(ROOT)/fixed-gcc:$$PATH \ - LDFLAGS=-L/home/rjones/d/fedora-riscv/stage3-chroot/usr/lib64 \ + LDFLAGS=-L$(ROOT)/stage3-chroot/usr/lib64 \ ./configure \ --host=riscv64-unknown-linux-gnu \ --prefix=/usr --libdir=/usr/lib64 \ --disable-static --enable-shared cd popt-$(POPT_VERSION) && PATH=$(ROOT)/fixed-gcc:$$PATH make V=1 cd popt-$(POPT_VERSION) && make install DESTDIR=$(ROOT)/stage3-chroot + rm -f stage3-chroot/usr/lib64/*.la popt-$(POPT_VERSION).tar.gz: rm -f $@ $@-t wget -O $@-t http://rpm5.org/files/popt/popt-$(POPT_VERSION).tar.gz mv $@-t $@ +# Cross-compile beecrypt. +stage3-chroot/usr/lib64/libbeecrypt.so: beecrypt-$(BEECRYPT_VERSION).tar.gz + rm -rf beecrypt-$(BEECRYPT_VERSION) + tar -zxf $^ + cd beecrypt-$(BEECRYPT_VERSION) && patch -p0 < ../beecrypt-disable-cplusplus.patch + cd beecrypt-$(BEECRYPT_VERSION) && autoreconf -i + cd beecrypt-$(BEECRYPT_VERSION) && \ + PATH=$(ROOT)/fixed-gcc:$$PATH \ + LDFLAGS=-L$(ROOT)/stage3-chroot/usr/lib64 \ + ./configure \ + --host=riscv64-unknown-linux-gnu \ + --prefix=/usr --libdir=/usr/lib64 \ + --without-cplusplus \ + --without-java \ + --disable-openmp \ + --disable-static \ + --enable-shared + cd beecrypt-$(BEECRYPT_VERSION) && PATH=$(ROOT)/fixed-gcc:$$PATH make V=1 + cd beecrypt-$(BEECRYPT_VERSION) && PATH=$(ROOT)/fixed-gcc:$$PATH make install DESTDIR=$(ROOT)/stage3-chroot V=1 + chrpath -d stage3-chroot/usr/lib64/libbeecrypt.so.* + rm -f stage3-chroot/usr/lib64/*.la + +beecrypt-$(BEECRYPT_VERSION).tar.gz: + rm -f $@ $@-t + wget -O $@-t http://downloads.sourceforge.net/sourceforge/beecrypt/beecrypt-$(BEECRYPT_VERSION).tar.gz + mv $@-t $@ + +# Cross-compile RPM / rpmbuild. +# We build this from a git commit, with a few hacks to the configure +# script. +stage3-chroot/usr/bin/rpm: rpm-$(RPM_SHORT_COMMIT).tar.gz db-$(BDB_VERSION).tar.gz + rm -rf rpm-$(RPM_SHORT_COMMIT) + tar -zxf rpm-$(RPM_SHORT_COMMIT).tar.gz + tar -zxf db-$(BDB_VERSION).tar.gz -C rpm-$(RPM_SHORT_COMMIT) + cd rpm-$(RPM_SHORT_COMMIT) && ln -s db-$(BDB_VERSION) db + cd rpm-$(RPM_SHORT_COMMIT) && patch -p1 < ../rpm-hacks.patch + cd rpm-$(RPM_SHORT_COMMIT) && autoreconf -i + cd rpm-$(RPM_SHORT_COMMIT) && \ + PATH=$(ROOT)/fixed-gcc:$$PATH \ + LDFLAGS=-L$(ROOT)/stage3-chroot/usr/lib64 \ + ./configure \ + --host=riscv64-unknown-linux-gnu \ + --prefix=/usr --libdir=/usr/lib64 \ + --disable-rpath \ + --without-libarchive \ + --without-lua \ + --with-beecrypt \ + --without-archive \ + --without-external-db \ + --enable-ndb \ + --disable-plugins + cd rpm-$(RPM_SHORT_COMMIT) && \ + sed -i 's|^sys_lib_dlsearch_path_spec="/lib64|sys_lib_dlsearch_path_spec="$(ROOT)/stage3-chroot/usr/lib64 /lib64|g' libtool + cd rpm-$(RPM_SHORT_COMMIT) && PATH=$(ROOT)/fixed-gcc:$$PATH make V=1 + cd rpm-$(RPM_SHORT_COMMIT) && PATH=$(ROOT)/fixed-gcc:$$PATH make install DESTDIR=$(ROOT)/stage3-chroot + rm -f stage3-chroot/usr/lib64/*.la + +rpm-$(RPM_SHORT_COMMIT).tar.gz: + rm -f $@ $@-t + wget -O $@-t 'http://rpm.org/gitweb?p=rpm.git;a=snapshot;h=$(RPM_COMMIT);sf=tgz' + mv $@-t $@ + +db-$(BDB_VERSION).tar.gz: + rm -f $@ $@-t + wget -O $@-t http://download.oracle.com/berkeley-db/db-$(BDB_VERSION).tar.gz + mv $@-t $@ + # Create an /init script. stage3-chroot/init: init.sh install -m 0755 $^ $@