#!/bin/bash # Script to make the Galil gclib libraries. # Exit Codes found in /usr/include/sysexits.h #set -x # Function to configure, make and then install the Package - contains Package Specific build configuration func_configure_make_install () { cd ${WORK_DIR}/src export GCC=gcc export CFLAGS="-c -DBUILDING_GCLIB -DHAVE_VISIBILITY ${CFLAGS}" if [ ! -e ALREADY_BUILT ] ; then rsync -aq ../lib/* ${OUTPUT_DIR}/lib [ ! -e ${OUTPUT_DIR}/share/doc/gclib ] && mkdir -p ${OUTPUT_DIR}/share/doc/gclib && rsync -aq ../doc/* ${OUTPUT_DIR}/share/doc/gclib [ ! -e ${OUTPUT_DIR}/include/gclib ] && mkdir -p ${OUTPUT_DIR}/include/gclib && rsync -aq ../include/* ${OUTPUT_DIR}/include/gclib func_create_makeinc_Makefile func_print_compiler_linker_flags gmake -j ${ACC_SET_GMAKE_JOBS} -f makefile_gclibo gmake install -f makefile_gclibo export RETVAL=$? fi if [ "${ARGUMENTS[1]}" == "-test" ] ; then echo -e "\nBuilding tests for `echo ${PACKAGE_VERSION}`...\n" echo -e "\nPlease modify the GOpen() call in ${WORK_DIR}/examples/x_simple.c as necessary...\n" gmake check -f makefile_gclibo chmod 755 ${WORK_DIR}/examples/simple ${WORK_DIR}/examples/simple export RETVAL=$? fi } # Function that contains Package Specific files and directories to be removed func_remove_package () { rm -rf ${OUTPUT_DIR} rm -rf ${OUTPUT_DIR}/include/gclib rm -f ${OUTPUT_DIR}/lib/libgclib* rm -rf ${OUTPUT_DIR}/share/doc/gclib rm -rf ${BUILD_TYPE} } func_create_makeinc_Makefile () { # Create gclibo open source makefile cat <<\EOF > makefile_gclibo # LIBO_SONAME=libgclibo.so.0 LIBO_NAME=${LIBO_SONAME}.0 all: ${LIBO_NAME} ${LIBO_NAME}: @echo "Open source component, ${LIBO_NAME}" @echo " Compiling open source component." ${GCC} ${CFLAGS} -I${OUTPUT_DIR}/include/gclib *.c @echo " Linking open source component into shared library." ${GCC} -shared -o ${LIBO_NAME} *.o -I${OUTPUT_DIR}/include/gclib -L. -L${OUTPUT_DIR}/lib -lgclib strip --strip-unneeded ${LIBO_NAME} @echo " Cleaning up." -@rm -f *.o clean: @echo "Cleaning project..." -@rm -f *.o -@rm -f libgclibo*.so* install: ${LIBO_NAME} @echo "Installing ${LIBO_NAME}" install -m 755 ${LIBO_NAME} ${OUTPUT_DIR}/lib check: @echo "Building simple example." ( cd ${WORK_DIR}/examples ; ${GCC} ${CFLAGS} x_simple.c -o simple -I${OUTPUT_DIR}/include/gclib -L. -L${OUTPUT_DIR}/lib -lgclib -lgclib ) EOF chmod 755 makefile_gclibo }