#! /bin/sh # # Script to help build RTEMS Graphics Toolkit # BASEDIR=`dirname $0` vfile=`dirname $0`/VERSIONS if [ ! -r ${vfile} ] ; then echo VERSIONS file not found exit 1 fi . ./${vfile} if [ X${LIBJPEG} = X ] ; then echo VERSION FILE NOT CORRECT exit 1 fi ######################## Set defaults ############################# # Do we clean after build and install do_clean="no" # Do we build jpeg support? do_jpeg="no" # Do we build png support? do_png="no" # Do we build tiff support? do_tiff="no" # Do we build Adobe Type 1 Font support? do_t1="no" # Do we build Truetype Font support? do_ttf="no" # Do we build Microwindows/Nano-X support? do_nanox="no" # Do we build Microwindows/Nano-X NXLib support? do_nxlib="no" # Do we build FLTK support? do_fltk="no" # Do we need sudo to install? use_sudo="no" # Are we noisy when running? verbose="no" # Do we install what we built? do_install=true ######################## Parse arguments ########################### usage() { cat <&2 exit 1 fi } toggle() { case $1 in no) echo "yes" ;; yes) echo "no" ;; *) fatal "Unknown value to toggle ($1)" ;; esac } while getopts Aajpt1Tnxfbcsv OPT do case "$OPT" in A) do_jpeg="yes" do_png="yes" do_tiff="yes" do_t1="yes" do_ttf="yes" do_nanox="yes" do_nxlib="yes" do_fltk="yes" ;; a) do_jpeg="yes" do_png="yes" do_tiff="yes" do_t1="yes" do_ttf="yes" do_nanox="yes" do_nxlib="yes" do_fltk="yes" do_install=false ;; j) do_jpeg=`toggle ${do_jpeg}` ;; p) do_png=`toggle ${do_png}` ;; t) do_tiff=`toggle ${do_tiff}` ;; 1) do_t1=`toggle ${do_t1}` ;; T) do_ttf=`toggle ${do_ttf}` ;; n) do_nanox=`toggle ${do_nanox}` ;; x) do_nxlib=`toggle ${do_nxlib}` ;; f) do_fltk=`toggle ${do_fltk}` ;; b) do_install=false ;; c) do_clean=`toggle ${do_clean}` ;; s) use_sudo=`toggle ${use_sudo}` ;; v) verbose=`toggle ${verbose}` ;; *) fatal;; esac done shiftcount=`expr $OPTIND - 1` shift $shiftcount if [ ${verbose} = yes ] ; then echo "JPEG Library : " ${LIBJPEG} echo "Build JPEG Library : " ${do_jpeg} echo "PNG Library : " ${LIBPNG} echo "Build PNG Library : " ${do_png} echo "TIFF Library : " ${TIFFLIB} echo "Build TIFF Library : " ${do_tiff} echo "" echo "Build TrueType Font Library : " ${do_ttf} echo "TrueType Font Library : " ${FREETYPE} echo "Build Adobe Type 1 Font Library : " ${do_t1} echo "Adobe Type 1 Font Library : " ${T1LIB} echo "" echo "Build Microwindows/Nano-X : " ${do_nanox} echo "Microwindows/Nano-X Source : " ${NANOX} echo "" echo "Build NXLib : " ${do_nxlib} echo "NXLib Source : " ${NXLIB} echo "" echo "Build FLTK : " ${do_fltk} echo "FLTK Source : " ${FLTK} echo "" echo "Clean after install : " ${do_clean} echo "Install : " ${do_install} echo "" fi if [ ${use_sudo} = yes ] ; then sudo_cmd="sudo -E " else sudo_cmd="" fi ######### START OF Consistency checks if [ X${RTEMS_MAKEFILE_PATH} = X ] ; then echo RTEMS_MAKEFILE_PATH not set exit 1 fi # Check if enabled before checking if present if [ ${do_jpeg} = "yes" ] ; then test -d ${LIBJPEG} check_status $? "${LIBJPEG} not present" fi if [ ${do_ttf} = "yes" ] ; then test -d ${FREETYPE} check_status $? "${FREETYPE} not present" fi if [ ${do_png} = "yes" ] ; then test -d ${LIBPNG} check_status $? "${LIBPNG} not present" fi if [ ${do_t1} = "yes" ] ; then test -d ${T1LIB} check_status $? "${T1LIB} not present" fi if [ ${do_tiff} = "yes" ] ; then test -d ${TIFFLIB} check_status $? "${TIFFLIB} not present" fi if [ ${do_nanox} = "yes" ] ; then test -d ${NANOX} check_status $? "${NANOX} not present" fi test -d ${RTEMS_MAKEFILE_PATH} check_status $? "${RTEMS_MAKEFILE_PATH} not present" ######### END OF Consistency checks echo "Generating RTEMS_SETTINGS file..." make -f Makefile.settings clean all check_status $? Could not generate RTEMS_SETTINGS . ./RTEMS_SETTINGS PREFIX=${BSPTOP} if [ ${verbose} = yes ] && $do_install ; then echo "USING ${PREFIX} for install point!!!" fi case ${BSP} in pc386) ;; # can be used to turn on detect svgalib supportable on this BSP *) esac ######### Log Directory LOGDIR=${BASEDIR}/log if [ ! -d ${LOGDIR} ] ; then mkdir ${LOGDIR} fi ######### ######### Build Directory BUILDDIR=${BASEDIR}/build if [ ! -d ${BUILDDIR} ] ; then mkdir ${BUILDDIR} fi ######### ######### Build and install JPEG j_jpeg() { if [ ! -d ${BUILDDIR}/${LIBJPEG} ] ; then mkdir ${BUILDDIR}/${LIBJPEG} fi cd ${BUILDDIR}/${LIBJPEG} make distclean CFLAGS="${CPU_CFLAGS}" \ ../../${LIBJPEG}/configure --host=${TARGET} --prefix=${PREFIX} \ --includedir=${PREFIX}/lib/include \ --disable-shared \ --disable-programs check_status $? Could not configure ${LIBJPEG} make check_status $? Could not make ${LIBJPEG} if ${do_install} ; then ${sudo_cmd} make install check_status $? Could not make install ${LIBJPEG} fi if [ ${do_clean} = yes ] ; then make distclean check_status $? Could not make distclean ${LIBJPEG} fi cd ../.. } if [ ${do_jpeg} = yes ] ; then echo "Building ${LIBJPEG} ..." j_jpeg # >${LOGDIR}/${TARGET}-${LIBJPEG}.log 2>&1 fi ######### Build and install PNG support j_png() { if [ ! -d ${BUILDDIR}/${LIBPNG} ] ; then mkdir ${BUILDDIR}/${LIBPNG} fi cd ${BUILDDIR}/${LIBPNG} make distclean CFLAGS="${BSP_CFLAGS} ${CPU_CFLAGS}" \ ../../${LIBPNG}/configure --host=${TARGET} --prefix=${PREFIX} \ --includedir=${PREFIX}/lib/include \ --libdir=${PREFIX}/lib \ --disable-shared check_status $? Could not configure ${LIBPNG} make check_status $? Could not make ${LIBPNG} if ${do_install} ; then ${sudo_cmd} make install check_status $? Could not make install ${LIBPNG} fi if [ ${do_clean} = yes ] ; then make distclean check_status $? Could not make distclean ${LIBPNG} fi cd ../.. } if [ ${do_png} = yes ] ; then echo "Building ${LIBPNG} ..." j_png # >${LOGDIR}/${TARGET}-${LIBPNG}.log 2>&1 fi ######### Build and install TIFF support j_tiff() { if [ ! -d ${BUILDDIR}/${TIFFLIB} ] ; then mkdir ${BUILDDIR}/${TIFFLIB} fi cd ${BUILDDIR}/${TIFFLIB} make distclean CFLAGS="${CPU_CFLAGS}" \ ../../${TIFFLIB}/configure --host=${TARGET} --prefix=${PREFIX} \ --includedir=${PREFIX}/lib/include \ --disable-shared check_status $? Could not configure ${TIFFLIB} make check_status $? Could not make ${TIFFLIB} if ${do_install} ; then ${sudo_cmd} make install check_status $? Could not make install ${TIFFLIB} fi if [ ${do_clean} = yes ] ; then make distclean check_status $? Could not make distclean ${TIFFLIB} fi cd ../.. } if [ ${do_tiff} = yes ] ; then echo "Building ${TIFFLIB} ..." j_tiff # >${LOGDIR}/${TARGET}-${TIFFLIB}.log 2>&1 fi ######### Build and install Adobe Type 1 Font support j_t1() { if [ ! -d ${BUILDDIR}/${T1LIB} ] ; then mkdir ${BUILDDIR}/${T1LIB} else rm -r ${BUILDDIR}/${T1LIB} mkdir ${BUILDDIR}/${T1LIB} fi cd ${BUILDDIR}/${T1LIB} cp -r ../../${T1LIB}/* . CFLAGS="${BSP_CFLAGS} ${CPU_CFLAGS}" \ ../../${T1LIB}/configure --host=${TARGET} --prefix=${PREFIX} \ --includedir=${PREFIX}/lib/include \ --datadir=${PREFIX}/share \ --disable-shared \ --without-athena --without-x check_status $? Could not configure ${T1LIB} make without_doc check_status $? Could not make ${T1LIB} if ${do_install} ; then ${sudo_cmd} make install check_status $? Could not make install ${T1LIB} fi if [ ${do_clean} = yes ] ; then make distclean check_status $? Could not make distclean ${T1LIB} fi cd ../.. } if [ ${do_t1} = yes ] ; then echo "Building ${T1LIB}..." j_t1 # >${LOGDIR}/${TARGET}-${T1LIB}.log 2>&1 fi ######### Build and install Truetype Font support j_ttf() { if [ ! -d ${BUILDDIR}/${FREETYPE} ] ; then mkdir ${BUILDDIR}/${FREETYPE} fi cd ${BUILDDIR}/${FREETYPE} make distclean CFLAGS="${BSP_CFLAGS} ${CPU_CFLAGS}" \ ../../${FREETYPE}/configure --host=${TARGET} --prefix=${PREFIX} \ --includedir=${PREFIX}/lib/include \ --disable-shared check_status $? Could not configure ${FREETYPE} make check_status $? Could not make ${FREETYPE} if ${do_install} ; then ${sudo_cmd} make install check_status $? Could not make install ${FREETYPE} fi if [ ${do_clean} = yes ] ; then make distclean check_status $? Could not make distclean ${FREETYPE} fi cd ../.. } if [ ${do_ttf} = yes ] ; then echo "Building ${FREETYPE} ..." j_ttf # >${LOGDIR}/${TARGET}-${FREETYPE}.log 2>&1 fi ######### Build and install Nano-X support j_nanox() { if [ ! -d ${BUILDDIR}/${NANOX}/src ] ; then mkdir -p ${BUILDDIR}/${NANOX}/src else rm -r ${BUILDDIR}/${NANOX}/src mkdir -p ${BUILDDIR}/${NANOX}/src fi cd ${BUILDDIR}/${NANOX}/src cp -r ../../../${NANOX}/src/* . # RTEMS_MAKEFILE_PATH inherited export RTEMS_MAKEFILE_PATH make -f Makefile.rtems CONFIG=`pwd`/Configs/config.rtems -k all check_status $? Could not make ${NANOX} if ${do_install} ; then ${sudo_cmd} make -f Makefile.rtems CONFIG=`pwd`/Configs/config.rtems install check_status $? Could not make install ${NANOX} fi if [ ${do_clean} = yes ] ; then make -f Makefile.rtems CONFIG=`pwd`/Configs/config.rtems clean check_status $? Could not make distclean ${NANOX} fi cd ../../.. } if [ ${do_nanox} = yes ] ; then echo "Building ${NANOX} ..." j_nanox # >${LOGDIR}/${TARGET}-${NANOX}.log 2>&1 fi ######### Build and install NXLIB support j_nxlib() { if [ ! -d ${BUILDDIR}/${NXLIB} ] ; then mkdir ${BUILDDIR}/${NXLIB} else rm -r ${BUILDDIR}/${NXLIB} mkdir ${BUILDDIR}/${NXLIB} fi cd ${BUILDDIR}/${NXLIB} cp -r ../../${NXLIB}/* . # RTEMS_MAKEFILE_PATH inherited export RTEMS_MAKEFILE_PATH make -f Makefile.rtems distclean make -f Makefile.rtems check_status $? Could not make ${NXLIB} if ${do_install} ; then ${sudo_cmd} make -f Makefile.rtems install check_status $? Could not make install ${NXLIB} fi if [ ${do_clean} = yes ] ; then make -f Makefile.rtems distclean check_status $? Could not make distclean ${NXLIB} fi cd ../.. } if [ ${do_nxlib} = yes ] ; then echo "Building ${NXLIB} ..." j_nxlib # >${LOGDIR}/${TARGET}-${NXLIB}.log 2>&1 fi ######### Build and install FLTK support j_fltk() { if [ ! -d ${BUILDDIR}/${FLTK} ] ; then mkdir ${BUILDDIR}/${FLTK} else rm -r ${BUILDDIR}/${FLTK} mkdir ${BUILDDIR}/${FLTK} fi cd ${BUILDDIR}/${FLTK} cp -r ../../${FLTK}/* . make distclean CFLAGS="${BSP_CFLAGS} ${CPU_CFLAGS}" \ ../../${FLTK}/configure --host=${TARGET} --prefix=${PREFIX} \ --includedir="${BSPTOP}/lib/include" --libdir="${BSPTOP}/lib"\ --x-includes="${BSPTOP}/lib/include" --x-libraries="${BSPTOP}/lib" \ --disable-xft --disable-xinerama --disable-xdbe \ --disable-shared --disable-gl check_status $? Could not configure ${FLTK} make -k check_status $? Could not make ${FLTK} if ${do_install} ; then ${sudo_cmd} make install check_status $? Could not make install ${FLTK} fi if [ ${do_clean} = yes ] ; then make distclean check_status $? Could not make distclean ${FLTK} fi cd .. } if [ ${do_fltk} = yes ] ; then echo "Building ${FLTK} ..." j_fltk # >${LOGDIR}/${TARGET}-${FLTK}.log 2>&1 fi exit 0