#!/bin/sh set -e if `echo $0 | grep make_unix_layout$ > /dev/null`; then if [ $# != 1 ]; then echo Usage: $0 destination exit 1 fi DST_DIR=$1 . ./packaging/config.sh fi if test -d $DST_DIR; then echo $DST_DIR already exists, please remove it or choose a different directory fi mkdir -p $DST_DIR OLD_PWD=`pwd` cd $DST_DIR DST_DIR=`pwd` echo Creating unix layout in $DST_DIR # some helper variables UNIX_PLATFORM=unix UNIX_BASE_PATH=/usr BASE_PATH=$DST_DIR$UNIX_BASE_PATH BIN_DIR=$BASE_PATH/bin INCLUDE_DIR=$BASE_PATH/include/$PRODUCT LIB_DIR=$BASE_PATH/lib/$PRODUCT LIB_BIN_DIR=$LIB_DIR/studio SHARE_DIR=$BASE_PATH/share/$PRODUCT APPLICATIONS_DIR=$BASE_PATH/share/applications ICONS_DIR=$BASE_PATH/share/icons DOC_DIR=$BASE_PATH/share/doc/$PRODUCT SRC_BIN_DIR=$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin MAIN_BINS="estudio ec ecb finish_freezing" LIB_BINS="ecdbgd prelink quick_finalize x2c" mkdir -p $BIN_DIR mkdir -p $INCLUDE_DIR mkdir -p $LIB_DIR mkdir -p $LIB_BIN_DIR mkdir -p $SHARE_DIR mkdir -p $APPLICATIONS_DIR mkdir -p $ICONS_DIR mkdir -p $DOC_DIR # Copy runtime cp -r $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include/* $INCLUDE_DIR cp -r $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib/* $LIB_DIR # Copy library cp -r $ISE_EIFFEL/library $LIB_DIR if test -d "$ISE_EIFFEL/compatible/library"; then mkdir $LIB_DIR/compatible cp -r $ISE_EIFFEL/compatible/library $LIB_DIR/compatible fi # Copy precompile without EIFGENs and remove WEL files mkdir -p $LIB_DIR/precomp/spec/$UNIX_PLATFORM cp $ISE_EIFFEL/precomp/spec/$ISE_PLATFORM/*.ecf $LIB_DIR/precomp/spec/$UNIX_PLATFORM/ rm -f $LIB_DIR/precomp/spec/$UNIX_PLATFORM/wel* if test -d "$ISE_EIFFEL/compatible/precomp/spec/$ISE_PLATFORM"; then mkdir -p $LIB_DIR/compatible/precomp/spec/$UNIX_PLATFORM cp $ISE_EIFFEL/compatible/precomp/spec/$ISE_PLATFORM/*.ecf $LIB_DIR/compatible/precomp/spec/$UNIX_PLATFORM/ rm -f $LIB_DIR/compatible/precomp/spec/$UNIX_PLATFORM/wel* fi # Copy documentation cp $ISE_EIFFEL/VERSION $DOC_DIR cp $ISE_EIFFEL/INSTALL.readme $DOC_DIR cp -r $ISE_EIFFEL/examples $DOC_DIR if test -d "$ISE_EIFFEL/docs"; then cp -r $ISE_EIFFEL/docs $DOC_DIR else echo $ISE_EIFFEL/docs does not exist - new unix layout will not contain Eiffel documentation fi # Copy esbuilder cp $ISE_EIFFEL/esbuilder/spec/$ISE_PLATFORM/bin/esbuilder $BIN_DIR/esbuilder$VERSION_SUFFIX cp -r $ISE_EIFFEL/esbuilder $SHARE_DIR rm -r $SHARE_DIR/esbuilder/spec # Copy vision2_demo cp $ISE_EIFFEL/vision2_demo/spec/$ISE_PLATFORM/bin/vision2_demo $BIN_DIR/vision2_demo$VERSION_SUFFIX cp -r $ISE_EIFFEL/vision2_demo $SHARE_DIR cp $ISE_EIFFEL/vision2_demo/readme.html $DOC_DIR/readme-vision2_demo.html rm -r $SHARE_DIR/vision2_demo/spec rm -f $SHARE_DIR/vision2_demo/readme.html # Copy internal binaries for BIN in $LIB_BINS; do cp $SRC_BIN_DIR/$BIN $LIB_BIN_DIR/$BIN done # Copy main binaries for BIN in $MAIN_BINS; do cp $SRC_BIN_DIR/$BIN $BIN_DIR/$BIN$VERSION_SUFFIX done # Copy wizards cp -r $ISE_EIFFEL/studio/wizards $LIB_BIN_DIR # Copy studio cp -r $ISE_EIFFEL/studio $SHARE_DIR/studio rm -r $SHARE_DIR/studio/spec rm -r $SHARE_DIR/studio/wizards # Create make_install file and move it to share directory . $PACKAGING_DIR/make_install.sh mv $PACKAGING_DIR/make_install $SHARE_DIR/ # Copy application information . $PACKAGING_DIR/desktop.sh cp $PACKAGING_DIR/logo.png $ICONS_DIR/$PRODUCT.png # Create symlinks for binaries in /usr/bin cd $BIN_DIR for BIN in $MAIN_BINS esbuilder vision2_demo; do ln -s $BIN$VERSION_SUFFIX $BIN$RELEASE_SUFFIX ln -s $BIN$RELEASE_SUFFIX $BIN done if [ $ISE_PLATFORM != "unix" ]; then mv $LIB_BIN_DIR/wizards/new_projects/vision2/spec/$ISE_PLATFORM $LIB_BIN_DIR/wizards/new_projects/vision2/spec/unix mv $LIB_BIN_DIR/wizards/others/precompile/spec/$ISE_PLATFORM $LIB_BIN_DIR/wizards/others/precompile/spec/unix mv $LIB_DIR/library/gobo/spec/$ISE_PLATFORM $LIB_DIR/library/gobo/spec/unix mv $LIB_DIR/library/vision2/spec/$ISE_PLATFORM $LIB_DIR/library/vision2/spec/unix mv $LIB_DIR/library/net/spec/$ISE_PLATFORM $LIB_DIR/library/net/spec/unix mv $LIB_DIR/library/obsolete/net/spec/$ISE_PLATFORM $LIB_DIR/library/obsolete/net/spec/unix mv $SHARE_DIR/studio/config/$ISE_PLATFORM $SHARE_DIR/studio/config/unix fi cd $OLD_PWD