#!/bin/sh set -e if [ $# != 3 ]; then echo Usage: make_unix_layout platform source destination exit 1 fi ISE_PLATFORM=$1 ISE_EIFFEL=$2 DST_DIR=$3 # If we have been called directly from the shell, we need to initialize # our environment using `package/config.sh', otherwise the environment # was set by the callers. if `echo $0 | grep make_unix_layout$ > /dev/null`; then set -- $ISE_PLATFORM $ISE_EIFFEL . ./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 LIB_TOOLS_BIN_DIR=$LIB_DIR/tools 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 TOOLS_BIN_DIR=$ISE_EIFFEL/tools/spec/$ISE_PLATFORM/bin TOOLS_BINS="compile_all eiffel wrap_c eiffel_echo eimgemb syntax_updater iron ace2ecf" MAIN_BINS="estudio ec ecb finish_freezing" LIB_BINS="ecdbgd prelink quick_finalize x2c make_precompiled_libraries" mkdir -p $BIN_DIR mkdir -p $INCLUDE_DIR mkdir -p $LIB_DIR mkdir -p $LIB_BIN_DIR mkdir -p $LIB_TOOLS_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 libraries cp -r $ISE_EIFFEL/library $LIB_DIR cp -r $ISE_EIFFEL/experimental $LIB_DIR cp -r $ISE_EIFFEL/contrib $LIB_DIR cp -r $ISE_EIFFEL/unstable $LIB_DIR cp -r $ISE_EIFFEL/C_library $LIB_DIR # Copy precompile without EIFGENs and remove WEL files mkdir -p $SHARE_DIR/precomp/spec/$UNIX_PLATFORM cp $ISE_EIFFEL/precomp/spec/$ISE_PLATFORM/*.ecf $SHARE_DIR/precomp/spec/$UNIX_PLATFORM/ rm -f $SHARE_DIR/precomp/spec/$UNIX_PLATFORM/wel* if test -d "$ISE_EIFFEL/experimental/precomp/spec/$ISE_PLATFORM"; then mkdir -p $SHARE_DIR/experimental/precomp/spec/$UNIX_PLATFORM cp $ISE_EIFFEL/experimental/precomp/spec/$ISE_PLATFORM/*.ecf $SHARE_DIR/experimental/precomp/spec/$UNIX_PLATFORM/ rm -f $SHARE_DIR/experimental/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 # 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 tools binaries for BIN in $TOOLS_BINS; do cp $TOOLS_BIN_DIR/$BIN $LIB_TOOLS_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 # Copy tools cp -r $ISE_EIFFEL/tools $SHARE_DIR/tools rm -r $SHARE_DIR/tools/spec # 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/new_projects/ewf/spec/$ISE_PLATFORM $LIB_BIN_DIR/wizards/new_projects/ewf/spec/unix mv $LIB_BIN_DIR/wizards/new_projects/library/spec/$ISE_PLATFORM $LIB_BIN_DIR/wizards/new_projects/library/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/cURL/spec/$ISE_PLATFORM $LIB_DIR/library/cURL/spec/unix mv $LIB_DIR/library/net/spec/$ISE_PLATFORM $LIB_DIR/library/net/spec/unix mv $LIB_DIR/unstable/library/persistency/database/sqlite3/spec/$ISE_PLATFORM $LIB_DIR/unstable/library/persistency/database/sqlite3/spec/unix mv $SHARE_DIR/studio/config/$ISE_PLATFORM $SHARE_DIR/studio/config/unix mv $SHARE_DIR/tools/iron/spec/$ISE_PLATFORM $SHARE_DIR/studio/config/unix fi cd $OLD_PWD