# Makefile for building some powerpc tools, an nfs root directory and # some tools that run on the target. # Nearly all used variables in this Makefile have a prefix to prevent # interfering with variables from the environment. # # WARNING: THIS IS DANGEROUS, IF SOME VARIABLES ARE NOT SET CORRECTLY, # SEVERE DAMAGE OF THE HOST FILE SYSTEM IS POSSIBLE. BE WARNED. # # ONLY TRY THIS MAKEFILE IF YOU KNOW WHAT YOU'RE DOING! # .SUFFIXES: # Location of the different source packages, set this to # your archive directory TM_ARCHIVE_DIR := /rest/ftp/gnu TM_TARG := powerpc TM_HOST := i386 TM_TARG_ARCH := $(TM_TARG)-linux TM_HOST_ARCH := $(TM_HOST)-linux # The main directory, only /$(TM_OPT_DIR) is also needed # besides this tree. # BE WARNED, DON'T JUST SET THE DIRECTORY NAMES TO LOWERCASE, # THE MAKEFILES OF SOME PACKAGES WILL OVERWRITE YOUR HOST # FILE SYSTEM TM_MAIN_DIR := /$(TM_TARG_ARCH) # some directories that are used building the tools TM_BUILD_DIR := $(TM_MAIN_DIR)/usr/src TM_PATCH_DIR := $(TM_MAIN_DIR)/patches TM_TOOLS_DIR := $(TM_MAIN_DIR)/tools TM_NFSR_DIR := $(TM_MAIN_DIR)/nfsroot TM_KRNL_DIR := $(TM_NFSR_DIR)/images # some directory names, i don't want no standard names on the target, # so i can build everything on the target from scratch. # # DON'T CHANGE THESE NAMES TO UPPERCASE LETTERS WITHOUT CHECKING, # IT MAY RESULT IN OVERWRITING SOME FOLDER OF YOUR HOST FILE # SYSTEM!!!!! TM_LIB_DIR := LIB TM_LIBEXEC_DIR := LIBEXEC TM_OPT_DIR := OPT TM_BIN_DIR := BIN TM_SBIN_DIR := SBIN TM_ETC_DIR := ETC TM_USR_DIR := USR TM_VAR_DIR := VAR TM_USR_DIR := USR TM_SHARE_DIR := SHARE TM_INC_DIR := include TM_MAN_DIR := MAN TM_INF_DIR := INFO TM_TMP_DIR := tmp # some version numbers of tools used. TM_BIN_VER := 2.9.5.0.22 TM_GCC_VER := 2.95.2 TM_GLC_VER := 2.1.2 TM_LNX_VER := 2.4.4 # some options for "configure". TM_TARGET_OPT = --target=$(TM_TARG_ARCH) TM_DATADIR_OPT = --datadir=$(TM_NFSR_DIR)/$(TM_SHARE_DIR) TM_LOCALSTATEDIR_OPT = --localstatedir=$(TM_NFSR_DIR)/$(TM_VAR_DIR) TM_INCLUDEDIR_OPT = --includedir=$(TM_NFSR_DIR)/$(TM_INC_DIR) TM_INFODIR_OPT = --infodir=$(TM_NFSR_DIR)/$(TM_INF_DIR) TM_MANDIR_OPT = --mandir=$(TM_NFSR_DIR)/$(TM_MAN_DIR) TM_PREFIX_OPT = --prefix=$(TM_NFSR_DIR) TM_HOST_OPT = --host=$(TM_TARG_ARCH) TM_BINDIR_OPT = --bindir=$(TM_NFSR_DIR)/$(TM_BIN_DIR) TM_LIBDIR_OPT = --libdir=$(TM_NFSR_DIR)/$(TM_LIB_DIR) TM_LIBEXEC_OPT = --libexecdir=$(TM_NFSR_DIR)/$(TM_LIB_DIR) TM_SYSCONFDIR_OPT = --sysconfdir=$(TM_NFSR_DIR)/$(TM_ETC_DIR) # some "configure" options used for most packages. TM_UTIL_OPT = $(TM_PREFIX_OPT) \ $(TM_TARGET_OPT) \ $(TM_HOST_OPT) \ $(TM_BINDIR_OPT) \ $(TM_SYSCONFDIR_OPT) \ $(TM_LIBDIR_OPT) \ $(TM_LIBEXEC_OPT) \ $(TM_DATADIR_OPT) \ $(TM_LOCALSTATEDIR_OPT) \ $(TM_INCLUDEDIR_OPT) \ $(TM_INFODIR_OPT) \ $(TM_MANDIR_OPT) TM_NEW_UTIL_OPT = --target=$(TM_TARG_ARCH) \ --datadir=/$(TM_SHARE_DIR) \ --localstatedir=/$(TM_VAR_DIR) \ --includedir=/$(TM_INC_DIR) \ --infodir=/$(TM_INF_DIR) \ --mandir=/$(TM_MAN_DIR) --host=$(TM_TARG_ARCH) --bindir=/$(TM_BIN_DIR) --libdir=/$(TM_LIB_DIR) --libexecdir=/$(TM_LIB_DIR) --sysconfdir=/$(TM_ETC_DIR) #TM_PREFIX_OPT = --prefix=$(TM_NFSR_DIR) # set the path used for building everything PATH := /bin:/usr/bin:/sbin:/usr/local/bin:$(TM_TOOLS_DIR)/$(TM_BIN_DIR) # here are some package options. For the target "binutils" e.g. $@ is 'binutils' # and i can refer to its archive name with $($@-archive). # binutils binutils-archive = binutils-$(TM_BIN_VER).tar.bz2 binutils-dir = binutils-$(TM_BIN_VER) binutils-extract = bzip2 binutils-conf = ./configure \ --prefix=$(TM_TOOLS_DIR) \ --target=$(TM_TARG_ARCH) \ --libdir=$(TM_TOOLS_DIR)/$(TM_LIB_DIR) \ --sysconfdir=$(TM_TOOLS_DIR)/$(TM_ETC_DIR) \ --bindir=$(TM_TOOLS_DIR)/$(TM_BIN_DIR) \ --host=$(TM_HOST_ARCH) binutils-make = make binutils-install = make install # gcc-core gcc-core-archive = gcc-core-$(TM_GCC_VER).tar.bz2 gcc-core-dir = gcc-$(TM_GCC_VER) gcc-core-extract = bzip2 gcc-core-conf = ./configure --prefix=$(TM_TOOLS_DIR) \ --target=$(TM_TARG_ARCH) \ --with-gnu-as \ --with-gnu-ld \ --libdir=$(TM_TOOLS_DIR)/$(TM_LIB_DIR) \ --sysconfdir=$(TM_TOOLS_DIR)/$(TM_ETC_DIR) \ --bindir=$(TM_TOOLS_DIR)/$(TM_BIN_DIR) \ --with-newlib \ --without-libc \ --with-cpu=860 \ --nfp gcc-core-make = make gcc-core-install = make install ; set -e ; \ cd $(TM_TOOLS_DIR)/$(TM_LIB_DIR)/gcc-lib/$(TM_TARG_ARCH)/$(TM_GCC_VER) ; \ cat $(TM_PATCH_DIR)/specs.patch | $(TM_CMD_REPLACE) | patch -p0 # gdb gdb-archive = gdb-5.0.tar.gz gdb-dir = gdb-5.0 gdb-extract = gzip gdb-conf = set -e; \ ./configure \ --target=$(TM_TARG_ARCH) \ --prefix=$(TM_TOOLS_DIR) \ --libdir=$(TM_TOOLS_DIR)/$(TM_LIB_DIR) \ --sysconfdir=$(TM_TOOLS_DIR)/$(TM_ETC_DIR) \ --bindir=$(TM_TOOLS_DIR)/$(TM_BIN_DIR) gdb-make = make gdb-install = make install # linux linux-archive = linux-$(TM_LNX_VER)-2001-05-12.tar.bz2 linux-dir = linux-$(TM_LNX_VER)-2001-05-12 linux-extract = bzip2 linux-conf = set -e; \ cd $(TM_BUILD_DIR); \ ln -s $(linux-dir) linux; \ cd linux ; \ cp $(TM_MAIN_DIR)/config .config; \ make oldconfig linux-make = set -e ; \ export INSTALL_MOD_PATH=$(TM_NFSR_DIR) ; \ make dep ; \ make zImage linux-install = set -e; \ export INSTALL_MOD_PATH=$(TM_NFSR_DIR) ; \ mkdir -p $(TM_TOOLS_DIR)/include/asm ; \ mkdir -p $(TM_TOOLS_DIR)/include/linux ; \ cd $(TM_BUILD_DIR)/$(linux-dir)/include/asm ; \ tar cfp - . | \ (cd $(TM_TOOLS_DIR)/include/asm; tar xfp - ) ; \ cd $(TM_BUILD_DIR)/$(linux-dir)/include/linux ; \ tar cfp - . | \ (cd $(TM_TOOLS_DIR)/include/linux; tar xfp - ) ; \ $(TM_BUILD_DIR)/$(ppcboot-dir)/tools/mkimage \ -n "$(TM_LNX_VER) TQM823" \ -A ppc \ -O linux \ -T kernel \ -C gzip \ -a 00000000 \ -e 00000000 \ -d $(TM_BUILD_DIR)/$(linux-dir)/arch/ppc/coffboot/vmlinux.gz \ $(TM_KRNL_DIR)/ppckernel # modutils modutils-archive = modutils-2.4.3.tar.bz2 modutils-dir = modutils-2.4.3 modutils-extract = bzip2 modutils-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export BUILDCC=gcc ; \ export BUILDCFLAGS="-O2" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ --prefix=/$(TM_NFSR_DIR) \ --target=$(TM_TARG_ARCH) \ --sbindir=$(TM_NFSR_DIR)/$(TM_SBIN_DIR) \ --mandir=$(TM_NFSR_DIR)/$(TM_MAN_DIR) \ --disable-strip \ --build=$(TM_HOST_ARCH) modutils-make = make modutils-install = set -e ; \ make install # pcmcia pcmcia-archive = pcmcia-cs-3.1.22.tar.gz pcmcia-dir = pcmcia-cs-3.1.22 pcmcia-extract = gzip pcmcia-conf = set -e; \ ./Configure \ --noprompt \ --kernel=$(TM_BUILD_DIR)/$(linux-dir) \ --target=$(TM_NFSR_DIR)/$(TM_SBIN_DIR) \ --moddir=$(TM_NFSR_DIR)/$(TM_LIB_DIR) \ --cc=$(TM_TOOLS_DIR)/$(TM_BIN_DIR)/$(TM_TARG_ARCH)-gcc \ --ld=$(TM_TOOLS_DIR)/$(TM_BIN_DIR)/$(TM_TARG_ARCH)-ld \ --srctree \ --nocardbus \ --target=$(TM_TARG_ARCH) pcmcia-make = make all pcmcia-install = # make install # e2fsprogs e2fsprogs-archive = e2fsprogs-1.19.tar.gz e2fsprogs-dir = e2fsprogs-1.19 e2fsprogs-extract = gzip e2fsprogs-conf = set -e; \ ./configure \ --with-root-prefix=/$(TM_NFSR_DIR) \ --prefix=/$(TM_NFSR_DIR) \ --target=$(TM_TARG_ARCH) \ --build=$(TM_HOST_ARCH) \ --with-cc=$(TM_TARG_ARCH)-gcc \ --with-linker=$(TM_TARG_ARCH)-ld \ --sbindir=$(TM_NFSR_DIR)/$(TM_SBIN_DIR) \ --mandir=$(TM_NFSR_DIR)/$(TM_MAN_DIR) e2fsprogs-make = set -e ; \ make CC=gcc util ; \ make CC="$(TM_TARG_ARCH)-gcc -DSOFT_FLOAT -mcpu=860" e2fsprogs-install = # make install # export AR=$(TM_TARG_ARCH)-ar ; \ # export CC=$(TM_TARG_ARCH)-gcc ; \ # export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ # export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ # export BUILD_CC=$(TM_TARG_ARCH)-gcc ; \ # --with-ccopts="-msoft-float -D_SOFT_FLOAT -mcpu=860" \ # glibc glibc-threads = glibc-linuxthreads-$(TM_GLC_VER).tar.gz glibc-crypt = glibc-crypt-$(TM_GLC_VER).tar.gz glibc-archive = glibc-$(TM_GLC_VER).tar.gz glibc-dir = glibc-$(TM_GLC_VER) glibc-extract = gzip glibc-conf = set -e; \ cd $(TM_BUILD_DIR)/$($@-dir) ; \ gzip -dcf $(TM_ARCHIVE_DIR)/$(glibc-threads) | tar xf - ; \ gzip -dcf $(TM_ARCHIVE_DIR)/$(glibc-crypt) | tar xf - ; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ --host=$(TM_TARG_ARCH) \ --prefix=$(TM_TOOLS_DIR) \ --with-headers=$(TM_BUILD_DIR)/$(linux-dir)/include \ --libdir=$(TM_TOOLS_DIR)/$(TM_LIB_DIR) \ --enable-add-ons=crypt,linuxthreads \ --without-fp glibc-make = make glibc-install = make install # gcc gcc-archive = gcc-$(TM_GCC_VER).tar.bz2 gcc-dir = gcc-$(TM_GCC_VER) gcc-extract = bzip2 gcc-conf = set -e; \ cd $(TM_BUILD_DIR) ; \ [ -d buildgcc ] && rm -rf buildgcc ; \ mkdir buildgcc ; \ cd buildgcc ; \ ../$(gcc-dir)/configure \ --target=$(TM_TARG_ARCH) \ --prefix=$(TM_TOOLS_DIR) \ --libdir=$(TM_TOOLS_DIR)/$(TM_LIB_DIR) \ --sysconfdir=$(TM_TOOLS_DIR)/$(TM_ETC_DIR) \ --bindir=$(TM_TOOLS_DIR)/$(TM_BIN_DIR) \ --with-libs=$(TM_TOOLS_DIR)/$(TM_LIB_DIR) \ --with-headers=$(TM_TOOLS_DIR)/include \ --enable-languages="c,c++" \ --with-cpu=860 \ --nfp gcc-make = gcc-install = set -e ; \ cd ../buildgcc ; \ make cross LANGUAGES="c c++" install ; set -e ; \ cd $(TM_TOOLS_DIR)/$(TM_LIB_DIR)/gcc-lib/$(TM_TARG_ARCH)/$(TM_GCC_VER) ; \ cat $(TM_PATCH_DIR)/specs.patch | $(TM_CMD_REPLACE) | patch -p0 # zlibdyn zlibdyn-archive = zlib-1.1.3.tar.gz zlibdyn-dir = zlib-1.1.3 zlibdyn-extract = gzip zlibdyn-conf = zlibdyn-make = make libz.so.1.1.3 zlibdyn-install = make install # zlibstat zlibstat-archive = zlib-1.1.3.tar.gz zlibstat-dir = zlib-1.1.3 zlibstat-extract = gzip zlibstat-conf = zlibstat-make = make zlibstat-install = make install # sash sash-archive = sash-2.1.tar.gz sash-dir = sash-2.1 sash-extract = gzip sash-conf = sash-make = make sash-install = set -e; cp sash $(TM_NFSR_DIR)/$(TM_BIN_DIR) ; \ cd $(TM_NFSR_DIR) ; \ [ -d bin ] || mkdir bin ; \ cd bin ; \ ln -s ../$(TM_BIN_DIR)/sash sash # sh-utils sh-utils-archive = sh-utils-2.0.tar.gz sh-utils-dir = sh-utils-2.0 sh-utils-extract = gzip sh-utils-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) sh-utils-make = make sh-utils-install = make install # fileutils fileutils-archive = fileutils-4.0.tar.gz fileutils-dir = fileutils-4.0 fileutils-extract = gzip fileutils-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) fileutils-make = make fileutils-install = make install # textutils textutils-archive = textutils-2.0.tar.gz textutils-dir = textutils-2.0 textutils-extract = gzip textutils-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) textutils-make = make textutils-install = make install # findutils findutils-archive = findutils-4.1.tar.gz findutils-dir = findutils-4.1 findutils-extract = gzip findutils-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_PREFIX_OPT) \ $(TM_TARGET_OPT) \ $(TM_HOST_OPT) findutils-make = make \ bindir=$(TM_NFSR_DIR)/$(TM_BIN_DIR) \ libexecdir=$(TM_NFSR_DIR)/$(TM_LIBEXEC_DIR) \ datadir=$(TM_NFSR_DIR)/$(TM_SHARE_DIR) \ sysconfdir=$(TM_NFSR_DIR)/$(TM_ETC_DIR) \ localstatedir=$(TM_NFSR_DIR)/$(TM_VAR_DIR) \ libdir=$(TM_NFSR_DIR)/$(TM_LIB_DIR) \ infodir=$(TM_NFSR_DIR)/$(TM_INF_DIR) \ mandir=$(TM_NFSR_DIR)/$(TM_MAN_DIR) \ install findutils-install = # gawk gawk-archive = gawk-3.0.6.tar.gz gawk-dir = gawk-3.0.6 gawk-extract = gzip gawk-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) gawk-make = make gawk-install = make install # sed sed-archive = sed-3.02.tar.gz sed-dir = sed-3.02 sed-extract = gzip sed-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) sed-make = make sed-install = make install # bash bash-archive = bash-2.04.tar.gz bash-dir = bash-2.04 bash-extract = gzip bash-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC="$(TM_TARG_ARCH)-gcc -msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) bash-make = make bash-install = set -e; \ make install; \ cd $(TM_NFSR_DIR)/$(TM_BIN_DIR); \ ln -sf bash sh ; \ [ -d $(TM_NFSR_DIR)/bin ] || mkdir -p $(TM_NFSR_DIR)/bin ; \ cd $(TM_NFSR_DIR)/bin ; \ ln -sf ../$(TM_BIN_DIR)/bash sh # gmake gmake-archive = make-3.79.1.tar.gz gmake-dir = make-3.79.1 gmake-extract = gzip gmake-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) gmake-make = make \ datadir=$(TM_NFSR_DIR)/$(TM_SHARE_DIR) \ install # remove /powerpc-linux/nfsroot/share gmake-install = # grep grep-archive = grep-2.4.2.tar.gz grep-dir = grep-2.4.2 grep-extract = gzip grep-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) grep-make = make grep-install = make install # gzip gzip-archive = gzip-1.2.4a.tar.gz gzip-dir = gzip-1.2.4a gzip-extract = gzip gzip-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) gzip-make = make \ bindir=$(TM_NFSR_DIR)/$(TM_BIN_DIR) \ libdir=$(TM_NFSR_DIR)/$(TM_LIB_DIR) \ infodir=$(TM_NFSR_DIR)/$(TM_INF_DIR) \ mandir=$(TM_NFSR_DIR)/$(TM_MAN_DIR) \ install # remove man, lib gzip-install = # tar tar-archive = tar-1.13.tar.gz tar-dir = tar-1.13 tar-extract = gzip tar-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) tar-make = make tar-install = make install # m4 m4-archive = m4-1.4.tar.gz m4-dir = m4-1.4 m4-extract = gzip m4-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_PREFIX_OPT) \ $(TM_TARGET_OPT) \ $(TM_HOST_OPT) m4-make = make \ bindir=$(TM_NFSR_DIR)/$(TM_BIN_DIR) \ libexecdir=$(TM_NFSR_DIR)/$(TM_LIBEXEC_DIR) \ datadir=$(TM_NFSR_DIR)/$(TM_SHARE_DIR) \ sysconfdir=$(TM_NFSR_DIR)/$(TM_ETC_DIR) \ localstatedir=$(TM_NFSR_DIR)/$(TM_VAR_DIR) \ libdir=$(TM_NFSR_DIR)/$(TM_LIB_DIR) \ infodir=$(TM_NFSR_DIR)/$(TM_INF_DIR) \ mandir=$(TM_NFSR_DIR)/$(TM_MAN_DIR) \ install m4-install = # diffutils diffutils-archive = diffutils-2.7.tar.gz diffutils-dir = diffutils-2.7 diffutils-extract = gzip diffutils-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_PREFIX_OPT) \ $(TM_TARGET_OPT) \ $(TM_HOST_OPT) diffutils-make = make \ bindir=$(TM_NFSR_DIR)/$(TM_BIN_DIR) \ libexecdir=$(TM_NFSR_DIR)/$(TM_LIBEXEC_DIR) \ datadir=$(TM_NFSR_DIR)/$(TM_SHARE_DIR) \ sysconfdir=$(TM_NFSR_DIR)/$(TM_ETC_DIR) \ localstatedir=$(TM_NFSR_DIR)/$(TM_VAR_DIR) \ libdir=$(TM_NFSR_DIR)/$(TM_LIB_DIR) \ infodir=$(TM_NFSR_DIR)/$(TM_INF_DIR) \ mandir=$(TM_NFSR_DIR)/$(TM_MAN_DIR) \ install diffutils-install = # flex flex-archive = flex-2.5.4a.tar.gz flex-dir = flex-2.5.4 flex-extract = gzip flex-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_PREFIX_OPT) \ $(TM_TARGET_OPT) \ $(TM_HOST_OPT) flex-make = make \ bindir=$(TM_NFSR_DIR)/$(TM_BIN_DIR) \ libexecdir=$(TM_NFSR_DIR)/$(TM_LIBEXEC_DIR) \ datadir=$(TM_NFSR_DIR)/$(TM_SHARE_DIR) \ sysconfdir=$(TM_NFSR_DIR)/$(TM_ETC_DIR) \ localstatedir=$(TM_NFSR_DIR)/$(TM_VAR_DIR) \ libdir=$(TM_NFSR_DIR)/$(TM_LIB_DIR) \ infodir=$(TM_NFSR_DIR)/$(TM_INF_DIR) \ mandir=$(TM_NFSR_DIR)/$(TM_MAN_DIR) \ install flex-install = # bison bison-archive = bison-1.28.tar.gz bison-dir = bison-1.28 bison-extract = gzip bison-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ export DATADIRNAME=$(TM_SHARE_DIR) ; \ export datadir=$(TM_SHARE_DIR) ; \ export LIBDIRNAME=$(TM_LIB_DIR) ; \ ./configure \ $(TM_NEW_UTIL_OPT) \ $(TM_PREFIX_OPT) \ $(TM_LIBDIR_OPT) bison-make = \ make \ DESTDIR=$(TM_NFSR_DIR) \ bindir=/$(TM_BIN_DIR) \ libexecdir=/$(TM_LIBEXEC_DIR) \ datadir=/$(TM_NFSR_DIR)/$(TM_SHARE_DIR) \ DATADIRNAME=/$(TM_NFSR_DIR)/$(TM_SHARE_DIR) \ sysconfdir=/$(TM_ETC_DIR) \ localstatedir=/$(TM_VAR_DIR) \ libdir=/$(TM_LIB_DIR) \ infodir=/$(TM_INF_DIR) \ mandir=/$(TM_MAN_DIR) \ localedir=$(TM_NFSR_DIR)/$(TM_SHARE_DIR)/locale \ gnulocaledir=$(TM_NFSR_DIR)/$(TM_SHARE_DIR)/locale \ gettextsrcdir=$(TM_NFSR_DIR)/$(TM_SHARE_DIR)/gettext/po \ install bison-install = # nfs-utils nfs-utils-archive = nfs-utils-0.2.1.tar.gz nfs-utils-dir = nfs-utils-0.2.1 nfs-utils-extract = gzip nfs-utils-conf = set -e; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) nfs-utils-make = make nfs-utils-install = make install # file file-archive = file-3.20.1.tgz file-dir = file-3.20.1 file-extract = gzip file-conf = file-make = make file-install = make install ; \ mkdir -p $(TM_NFSR_DIR)/usr/bin ; \ cd $(TM_NFSR_DIR)/usr/bin ; \ ln -sf ../../$(TM_BIN_DIR)/file file; # nbinutils nbinutils-archive = binutils-$(TM_BIN_VER).tar.bz2 nbinutils-dir = binutils-$(TM_BIN_VER) nbinutils-extract = bzip2 nbinutils-conf = ./configure \ --prefix=/$(TM_OPT_DIR)/$(TM_TARG_ARCH) \ --target=$(TM_TARG_ARCH) \ --host=$(TM_TARG_ARCH) \ --build=$(TM_HOST_ARCH) \ --with-gnu-as \ --with-gnu-ld nbinutils-make = make nbinutils-install = make install # ngcc-core ngcc-core-archive = gcc-core-$(TM_GCC_VER).tar.bz2 ngcc-core-dir = gcc-$(TM_GCC_VER) ngcc-core-extract = bzip2 ngcc-core-conf = ./configure \ --prefix=/$(TM_OPT_DIR)/$(TM_TARG_ARCH) \ --target=$(TM_TARG_ARCH) \ --host=$(TM_TARG_ARCH) \ --build=$(TM_HOST_ARCH) \ --with-newlib --with-cpu=860 --nfp \ --with-gnu-as \ --with-gnu-ld ngcc-core-make = make ngcc-core-install = set -e ; \ make install ; \ cd /$(TM_OPT_DIR)/$(TM_TARG_ARCH)/lib/gcc-lib/$(TM_TARG_ARCH)/$(TM_GCC_VER) ; \ cat $(TM_PATCH_DIR)/specs.patch | $(TM_CMD_REPLACE) | patch -p0 # ngcc ngcc-archive = gcc-$(TM_GCC_VER).tar.bz2 ngcc-dir = gcc-$(TM_GCC_VER) ngcc-extract = bzip2 ngcc-conf = ./configure \ --prefix=/$(TM_OPT_DIR)/$(TM_TARG_ARCH) \ --target=$(TM_TARG_ARCH) \ --host=$(TM_TARG_ARCH) \ --build=$(TM_HOST_ARCH) \ --with-cpu=860 --nfp \ --enable-languages="c,c++" \ --with-gnu-as \ --with-gnu-ld ngcc-make = make ngcc-install = set -e ; \ make LANGUAGES="c c++" install ; \ cd /$(TM_OPT_DIR)/$(TM_TARG_ARCH)/lib/gcc-lib/$(TM_TARG_ARCH)/$(TM_GCC_VER) ; \ cat $(TM_PATCH_DIR)/specs.patch | $(TM_CMD_REPLACE) | patch -p0 # nlibgpp nlibgpp-archive = libg++-2.8.0.tar.gz nlibgpp-dir = libg++-2.8.0 nlibgpp-extract = gzip nlibgpp-conf = set -e ; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CXX=$(TM_TARG_ARCH)-g++ ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) nlibgpp-make = make nlibgpp-install = #make install # nlibstdcpp nlibstdcpp-archive = libstdc++-2.90.6.tar.gz nlibstdcpp-dir = libstdc++-2.90.6 nlibstdcpp-extract = gzip nlibstdcpp-conf = set -e ; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CXX=$(TM_TARG_ARCH)-g++ ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) nlibstdcpp-make = make nlibstdcpp-install = #make install # nk-rpc nk-rpc-archive = netkit-rpc-0.17.tar.gz nk-rpc-dir = netkit-rpc-0.17 nk-rpc-extract = gzip nk-rpc-conf = set -e ; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CXX=$(TM_TARG_ARCH)-g++ ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ --prefix=$(TM_NFSR_DIR) \ --with-c-compiler=$(TM_TARG_ARCH)-gcc nk-rpc-make = make nk-rpc-install = #make install # util-linux util-linux-archive = util-linux-2.10q.tar.gz util-linux-dir = util-linux-2.10q util-linux-extract = gzip util-linux-conf = set -e ; \ export AR=$(TM_TARG_ARCH)-ar ; \ export CC=$(TM_TARG_ARCH)-gcc ; \ export CXX=$(TM_TARG_ARCH)-g++ ; \ export CFLAGS="-msoft-float -D_SOFT_FLOAT -mcpu=860" ; \ export RANLIB=$(TM_TARG_ARCH)-ranlib ; \ ./configure \ $(TM_UTIL_OPT) util-linux-make = make util-linux-install = echo -e "\n\nPlease give root password to install several utilities.\n\n" ; \ su -c "make DESTDIR=$(TM_NFSR_DIR) install" # ppcboot ppcboot-archive = ppcboot-0.9.2.tar.bz2 ppcboot-dir = ppcboot-0.9.2 ppcboot-extract = bzip2 ppcboot-conf = make TQM823L_config ppcboot-make = make ppcboot-install = ################### xbinutils-archive = binutils-$(TM_BIN_VER).tar.bz2 xbinutils-extract = bzip2 xbinutils-patch = # some commands TM_CMD_INFO = set -e; \ echo -e "\n\n========== working on $@ ==========" TM_CMD_CDTMP = set -e; \ cd $(TM_NFSR_DIR)/$(TM_TMP_DIR) TM_CMD_CDSRC = set -e; \ cd $(TM_BUILD_DIR)/$($@-dir) TM_CMD_CLEAN = set -e; \ echo -e "\n\n========== cleaning ==========" ; \ cd $(TM_BUILD_DIR) ; \ rm -rf $($@-dir) TM_CMD_CDBUILD = set -e; \ echo -e "\n\n========== cd'ing to $(TM_BUILD_DIR) ==========" ; \ cd $(TM_BUILD_DIR) TM_CMD_EXTRACT = set -e; \ echo -e "\n\n========== extracting $($@-archive) ==========" ; \ $($@-extract) -dcf $(TM_ARCHIVE_DIR)/$($@-archive) | tar xfp - TM_CMD_REPLACE = sed -e 's!TM_TARG_ARCH!$(TM_TARG_ARCH)!g' | \ sed -e 's!TM_TOOLS_DIR!$(TM_TOOLS_DIR)!g' | \ sed -e 's!TM_NFSR_DIR!$(TM_NFSR_DIR)!g' | \ sed -e 's!TM_LIB_DIR!$(TM_LIB_DIR)!g' | \ sed -e 's!TM_OPT_DIR!$(TM_OPT_DIR)!g' | \ sed -e 's!TM_BIN_DIR!$(TM_BIN_DIR)!g' | \ sed -e 's!TM_MAN_DIR!$(TM_MAN_DIR)!g' | \ sed -e 's!TM_SBIN_DIR!$(TM_SBIN_DIR)!g' | \ sed -e 's!TM_ETC_DIR!$(TM_ETC_DIR)!g' | \ sed -e 's!TM_USR_DIR!$(TM_USR_DIR)!g' | \ sed -e 's!TM_GCC_VER!$(TM_GCC_VER)!g' | \ sed -e 's!TM_INC_DIR!$(TM_INC_DIR)!g' TM_CMD_PATCH = set -e; \ if [ -r $(TM_PATCH_DIR)/$@.patch ] ; then \ echo -e "\n\n========== patching ==========" ; \ cd $(TM_BUILD_DIR)/$($@-dir) ; \ cat $(TM_PATCH_DIR)/$@.patch | \ $(TM_CMD_REPLACE) | \ patch -p1 ; \ else \ echo -e "\n\n========== no patching ==========" ; \ fi ; TM_CMD_CONF = set -e; \ echo -e "\n\n========== configuring ==========" ; \ $(TM_CMD_CDSRC); \ $($@-conf) TM_CMD_MAKE = set -e; \ echo -e "\n\n========== making ==========" ; \ $(TM_CMD_CDSRC) ; \ $($@-make) TM_CMD_INSTALL = set -e; \ echo -e "\n\n========== installing ==========" ; \ $(TM_CMD_CDSRC) ; \ $($@-install) # All packages that need no special handling (can be extracted, patched, # configured, built and installed with their package related variables). TM_PACKAGE_NORMAL := binutils gcc-core gdb ppcboot linux glibc gcc \ \ zlibdyn zlibstat sash \ \ modutils pcmcia e2fsprogs util-linux \ \ sh-utils fileutils textutils findutils \ gawk sed bash gmake grep gzip tar m4 \ diffutils flex bison file \ \ nbinutils ngcc-core ngcc \ nfs-utils nk-rpc nlibstdcpp nlibgpp \ TM_PACKAGE_EXTRA := nfsroot ncopy zlibdyn zlibstat sash TM_EXTRACT_TARGET := xbinutils xgcc xglibc .PHONY: $(TM_PACKAGE_NORMAL) $(TM_PACKAGE_EXTRA) $(TM_EXTRACT_TARGET) all: @echo -e "\n\n Specify a target\n\n" TOOLS: devices binutils gcc-core gdb ppcboot linux glibc gcc zlibdyn \ zlibstat sash nfsroot # pcmcia e2fsprogs UTIL: modutils sh-utils fileutils textutils \ findutils gawk sed bash gmake grep gzip tar m4 diffutils \ flex bison file util-linux e2fsprogs #nfs-utils NATIVE: nbinutils ngcc-core ngcc ncopy NEXTRACT: xbinutils xgcc xglibc $(TM_PACKAGE_NORMAL): $(TM_CMD_INFO) $(TM_CMD_CLEAN) $(TM_CMD_CDBUILD) ; $(TM_CMD_EXTRACT) $(TM_CMD_PATCH) $(TM_CMD_CONF) $(TM_CMD_MAKE) $(TM_CMD_INSTALL) $(TM_EXTRACT_TARGET): $(TM_CMD_INFO) $(TM_CMD_CDTMP) ; $(TM_CMD_EXTRACT) $(TM_CMD_XPATCH) devices: echo "Please give root password to copy /dev for the NFS root file system." ; \ /bin/su -c "cd / && tar cfp - dev | (cd ${TM_NFSR_DIR} ; tar xfp - ) ;" nfsroot: set -e; \ cd $(TM_TOOLS_DIR); \ tar cfp - $(TM_LIB_DIR) | (cd $(TM_NFSR_DIR) ; tar xfp - ); \ cd $(TM_TOOLS_DIR); \ tar cfp - $(TM_INC_DIR) | (cd $(TM_NFSR_DIR) ; tar xfp - ); \ cd $(TM_NFSR_DIR); \ [ -d $(TM_BIN_DIR) ] || mkdir $(TM_BIN_DIR) ; \ [ -d $(TM_ETC_DIR) ] || mkdir $(TM_ETC_DIR) ; \ [ -d $(TM_MAN_DIR) ] || mkdir $(TM_MAN_DIR) ncopy: set -e; \ cd / ; \ tar cfp - $(TM_OPT_DIR) | (cd $(TM_NFSR_DIR) ; tar xfp - ) ; \ cd $(TM_TOOLS_DIR)/$(TM_INC_DIR); \ tar cfp - . | (cd $(TM_NFSR_DIR)/$(TM_OPT_DIR)/$(TM_TARG_ARCH)/include ; tar xfp - ) ; \ cd $(TM_NFSR_DIR)/$(TM_LIB_DIR) ; \ tar cfp - . | (cd $(TM_NFSR_DIR)/$(TM_OPT_DIR)/$(TM_TARG_ARCH)/$(TM_TARG_ARCH)/lib ; tar xfp - ); \ cd $(TM_NFSR_DIR)/$(TM_OPT_DIR)/$(TM_TARG_ARCH)/$(TM_TARG_ARCH)/lib ; \ cp libc.so libc.so.ORIG ; \ cat libc.so.ORIG | sed -e 's!$(TM_TOOLS_DIR)!!g' > libc.so ; \ cd $(TM_NFSR_DIR)/$(TM_OPT_DIR)/$(TM_TARG_ARCH)/bin ; \ ln -sf gcc cc ; \ dd if=/dev/zero of=$(TM_NFSR_DIR)/swapfile bs=1024k count=24