#!/bin/bash
#############################################################################
#				Emline.sh				    #
# e17 make in line script	 		 .                          #
#                                                                           #
# License: GPL licence                                                      #
# Coded by Jolidragon                                                       #
# Problems, ask jolidragon on #e.fr on irc.freenode.net                     #
#last_changes="2011-01-16"                                                  #
#version="alpha"                                                            #
#############################################################################



PREFIX="/opt/e17"


if [ $2 ] ; then CONFIG="$2" ;fi

RED='\e[1;31m' ; GREEN='\e[1;32m' ; CYAN='\e[1;36m' ; NC='\e[0m' ; STIME=`date +%s`
THREADS=2

print_help() {
echo "Usage:"
echo "$0 -i [config file] -- Build and install"
echo "$0 -c [config file] -- Make clean"
echo "$0 -p [config file] -- View environment used"
exit 0 ; }




if (set -u; : $CONFIG) && [ -f $CONFIG ] ; then echo -e ${CYAN}--Using config file $CONFIG $NC && source $CONFIG ; else

#Base Efls:
L_EINA=""					# Eina: library providing data structure utilities for EFL
L_EET=""					# Eet: library designed to write an arbitrary set of chunks of data to a file
L_EVAS="--disable-image-loader-svg"	# Evas: clean display canvas API
L_ECORE=""					# Ecore: Event loop library with many modules, to save time and effort
L_EMBRYO=""					# Embryo: API to load and control interpreted programs compiled into an abstract machine bytecode 
L_EDJE=""					# Edje: Edje is a graphical layout and animation library for animated resizable,compressed and scalable themes.
L_EFREET=""					# Efreet: An implementation of several specifications from freedesktop.org
L_EIO=""					# Eio: provide non blocking IO by using thread for all operation that may block
L_EEZE=""					# Eeze: manipulating devices through udev with a simple and fast api
L_E_DBUS=""					# E_dbus: wrappers around dbus to ease integrating dbus with EFL based applications.

#Enlightenment:
B_E17=""					# E17: Enlightenment windows manager

#Extra Efls:
L_IMLIB2=""					# Imlib2: Image file loading, saving, .. lib
L_ELEMENTARY=""					# Elementary: a basic widget set
L_EMOTION=""					# Emotion: Media player lib
L_ETHUMB=""					# Ethumb: Thumbnail creation lib.
L_LWEAT=""					# Libweather: Weather lib
L_ENLIL=""					# Enlil: library using the EFL which allows to manage a list of albums and photos.
L_LIBAST=""					# Libast: Library of Assorted Spiffy Things
L_SHELM=""					# Shellementary: Zenity replacement written in elementary and C.

#Other Stuff:
B_EXPEDITE=""					# Expedite: detailed and comprehensive benchmark suite for Evas
B_EXCHANGE=""					# Exchange: Get theme, wallpapers,... from http://exchange.enlightenment.org/
B_ELSA=""					# Elsa: Display manager
B_EXALT=""					# Exalt:Connection manager
B_EPDF=""					# Epdf: Pdf viewer
B_EMPRINT=""					# Emprint: utility for taking screenshots of the entire screen
#B_E_PHYS=""					# E_phys: EFL Physics Engine
B_EDITJE=""					# Editje: Edje editor oriented towards UI design, and not just being a GUI
B_EMOTE=""					# Emote: Irc CLient
B_EMPOWER=""					# Empower: A graphical sudo tool
#B_ENJOY=""					# Enjoy: Music Player
B_ENKI=""					# Enki: Photo Manager
#B_ENNA=""					# Enna: Media Center application , moved ,see "hg clone http://hg.geexbox.org/enna"
B_EPHOTO=""					# Ephoto: Photo viewer
B_ETERM=""					# Eterm: Terminal emulator
B_EXQUISITE=""					# Exquisite: This is a psplash replacement
B_EYELIGHT=""					# Eyelight: create a presentation from a simple ASCII file and get a beautiful presentation
#B_IMAGEV=""					# Image-viewer: A simple application for viewing images in a directory.
B_RAGE=""					# Rage: This is a media center
B_ENVISION=""					# Envision: Pdf viewer
#B_EVE=""					# Eve: WebKit-EFL demo application, ewebkit lib needed see http://trac.enlightenment.org/e/wiki/EWebKit
#B_ENTERMIN=""					# Enterminus: An EFL Based Terminal

#Extra Modules:
M_ALARM=""					# Extra Module: Alarm
M_CALENDAR=""					# Extra Module: Calendar
M_COMPSCALE=""					# Extra Module: Compscale
M_CPU=""					# Extra Module: Cpu
M_DESKSHOW=""					# Extra Module: Deskshow
M_DISKIO=""					# Extra Module: Disk io
M_DRAWER=""					# Extra Module: Drawer
M_EFMNAV=""					# Extra Module: Efm Nav
M_EFMPATH=""					# Extra Module: Efm path
M_EFMPATBAR=""					# Extra Module: Efm pathbar
M_EMPRIS=""					# Extra Module: Empris
M_EOOORG=""					# Extra Module: Eooorg
M_EVRMPRIS=""					# Extra Module: Evrything empris
M_EVRPIDGIN=""					# Extra Module: Evrything pidgin
M_EVRPLACES=""					# Extra Module: Evrything places
#M_EVRSKEL=""					# Extra Module: Evrything Skel
M_EVRTRACKER=""					# Extra Module: Evrything Tracker
M_EVRWALL=""					# Extra Module: Evrything Wallpaper
M_EVRWEBS=""					# Extra Module: Evrything Websearch
M_MWEATH=""					# Extra Module: Weather
M_EXACLI=""					# Extra Module: Ewa client
#M_EXEBUF=""					# Extra Module: Exebuf
M_EXECWATCH=""					# Extra Module: Execwatch
M_FLAME=""					# Extra Module: Flame
M_IIIRK=""					# Extra Module: Iiirk
M_LANGUAGE=""					# Extra Module: Language
M_MAIL=""					# Extra Module: Mail
M_XMEM=""					# Extra Module: Mem
M_MOON=""					# Extra Module: Moon
M_MPDULE=""					# Extra Module: Mpdule
M_XNET=""					# Extra Module: Net
M_XNEWS=""					# Extra Module: News
M_NOTIFICAT=""					# Extra Module: Notification
M_PENGUINS=""					# Extra Module: Penguins
M_XPHOTO=""					# Extra Module: Photo
M_XPLACES=""					# Extra Module: Places
#M_QUICKACC=""					# Extra Module: Quickaccess
M_RAIN=""					# Extra Module: Rain
M_SCREENSH=""					# Extra Module: Sreenshot
M_SKEL=""					# Extra Module: Skel
M_SLIDESH=""					# Extra Module: Slideshow
M_SNOW=""					# Extra Module: Snow
M_TASKBAR=""					# Extra Module: Taskbar
M_TCLOCK=""					# Extra Module: Tclock
M_TILING=""					# Extra Module: Tiling
M_UPTIME=""					# Extra Module: Uptime
M_XWEATH=""					# Extra Module: Weather
M_WINLIST=""					# Extra Module: Win List
M_WINSELECT=""					# Extra Module: Win selector
M_WLAN=""					# Extra Module: Wlan
M_FORECAST=""					# Extra Module: Forecast

#games
#G_ETYPE=""					# E-type: Xenon2 clone
#G_ESKISS=""					# Eskiss:physics based drawing games, need chipmunk, see http://code.google.com/p/chipmunk-physics/source/checkout


#Python bindings:
#P_EVAS=""					#
#P_ECORE=""					#
#P_EDBUS=""					#
#P_EDJE=""					#
#P_ETHUMB=""					#
#P_EMOT=""					#
#P_ELM=""					#

fi;

export WHOST=""
export CPPFLAGS="-I$PREFIX/include" 
export LDFLAGS="-L$PREFIX/lib -L/usr/lib"
export PATH="$PREFIX/bin:/sbin:$PATH"  # wpa_supplicant need sbin
export LD_LIBRARY_PATH="$PREFIX/lib:/usr/lib"
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig"
export PKG_CONFIG_LIBDIR="$PREFIX/lib/pkgconfig"

if ! (set -u; : $PREFIX) 2> /dev/null 	; then echo -e "${RED}-- ERROR: PREFIX is not set.$NC" ; exit 1 ;fi


if [ ! $1  ] ; then print_help ; fi
if [ $1 == "-h" ] ; then print_help ; fi

CDIR=$PWD
LOG="$CDIR/$0.all_config"
FLOG="$CDIR/$0.final_config"
STATUS="$CDIR/$0.status"
XSESSION="$CDIR/.xsession"
PARAMS="$CDIR/$0.params"




echo > $PARAMS
echo -----------Environment Configuration----------- >> $PARAMS
echo >> $PARAMS
echo export CPPFLAGS=\"$CPPFLAGS\" >> $PARAMS
echo export LDFLAGS=\"$LDFLAGS\" >> $PARAMS
echo export PATH=\"$PATH\" >> $PARAMS
echo export LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\" >> $PARAMS
echo export PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\" >> $PARAMS
echo export PKG_CONFIG_LIBDIR=\"$PKG_CONFIG_LIBDIR\" >> $PARAMS
echo "" >> $PARAMS
echo --------------------Params---------------------- >> $PARAMS
echo "" >> $PARAMS
echo ./autogen.sh --prefix=$PREFIX $WHOST>> $PARAMS
echo ./configure --prefix=$PREFIX $WHOST>> $PARAMS
echo "INSTALL PATH    : $PREFIX">> $PARAMS
echo "Config options  : $FLOG">> $PARAMS
echo "" >> $PARAMS
echo ------------------------------------------------ >> $PARAMS
echo >> $PARAMS

if [ $1 == "-p" ] ; then cat $PARAMS && exit 0 ;fi

if ( ! ls eet evas ecore &>/dev/null )  ; then echo -e "${RED}-- ERROR: Script must be run in trunk.$NC" ; exit 1 ;fi


#go(ACTION,DIR,CFOPTIONS,TAG)
go()
{


if [ $1 = "make" ] ; then
  if ( ! grep "$4" $STATUS > /dev/null ) ; then
      cd $CDIR$2 && echo -e "${CYAN}-- Autogen in $2 ${NC}"
    
      if ( ./autogen.sh --prefix=$PREFIX $WHOST $3 >>$LOG 2>&1 ) ;then
    
          echo -e "${CYAN}-- Building in $2 ${NC}"
          if ( make -j $THREADS && make install ) ;then echo $4 >>  $STATUS
	  else  echo -e "${RED}-- Make Fail in $2 $NC" && cat $PARAMS && exit 1; fi
	  
      else  echo -e "${RED}-- Autogen Fail in $2 $NC" && tail -n 35 $LOG && cat $PARAMS  && exit 1; fi
      
  else echo -e "${GREEN}-- $2 is OK $NC" ; fi    
fi

if [ $1 = "clean" ] ; then
  cd $CDIR$2 && echo -e "${GREEN}-- Cleaning $2 ${NC}" && make maintainer-clean > /dev/null 2>&1
fi

}

ACTION="make" 
if [ $1 == "-c" ] ; then ACTION="clean" ;fi 

#Base EFLS:

if (set -u; : $L_EVIL) 		2> /dev/null ; then go "$ACTION" "/PROTO/evil" 			"$L_EVIL" 	"EVIL_OK" 	; fi 
if (set -u; : $L_EINA) 		2> /dev/null ; then go "$ACTION" "/eina" 			"$L_EINA" 	"EINA_OK" 	; fi
if (set -u; : $L_EET)  		2> /dev/null ; then go "$ACTION" "/eet" 			"$L_EET" 	"LEET_OK" 	; fi
if (set -u; : $L_EVAS) 		2> /dev/null ; then go "$ACTION" "/evas" 			"$L_EVAS" 	"LEVAS_OK" 	; fi
if (set -u; : $L_ECORE)		2> /dev/null ; then go "$ACTION" "/ecore" 			"$L_ECORE" 	"LECORE_OK" 	; fi
if (set -u; : $L_EMBRYO) 	2> /dev/null ; then go "$ACTION" "/embryo" 			"$L_EMBRYO" 	"EMBRYO_OK" 	; fi
if (set -u; : $L_EDJE) 		2> /dev/null ; then go "$ACTION" "/edje" 			"$L_EDJE" 	"LEDJE_OK" 	; fi
if (set -u; : $L_EFREET) 	2> /dev/null ; then go "$ACTION" "/efreet" 			"$L_EFREET" 	"EFREET_OK" 	; fi
if (set -u; : $L_EIO) 		2> /dev/null ; then go "$ACTION" "/eio" 			"$L_EIO" 	"EIO_OK" 	; fi
if (set -u; : $L_EEZE) 		2> /dev/null ; then go "$ACTION" "/eeze" 			"$L_EEZE"	"EEZE_OK" 	; fi
if (set -u; : $L_E_DBUS) 	2> /dev/null ; then go "$ACTION" "/e_dbus" 			"$L_E_DBUS" 	"E_DBUS_OK" 	; fi

#E17:
if (set -u; : $B_E17)		2> /dev/null ; then go "$ACTION" "/e" 				"$B_E17" 	"E17_OK" 	; fi

#EXTRA EFLS:
if (set -u; : $L_IMLIB2) 	2> /dev/null ; then go "$ACTION" "/imlib2" 			"$L_IMLIB2" 	"IMLIB2_OK" 	; fi
if (set -u; : $L_ELEMENTARY)	2> /dev/null ; then go "$ACTION" "/elementary"			"$L_ELEMENTARY" "ELEMENTARY_OK" ; fi
if (set -u; : $L_EMOTION) 	2> /dev/null ; then go "$ACTION" "/emotion" 			"$L_EMOTION" 	"EMOTION_OK" 	; fi

#Ethumb dep
if (set -u; : $B_EPDF)		2> /dev/null ; then go "$ACTION" "/PROTO/epdf" 			"$B_EPDF" 	"EPDF_OK" 	; fi

if (set -u; : $L_ETHUMB) 	2> /dev/null ; then go "$ACTION" "/ethumb" 			"$L_ETHUMB" 	"LETHUMB_OK" 	; fi
if (set -u; : $L_LWEAT) 	2> /dev/null ; then go "$ACTION" "/PROTO/libeweather" 		"$L_LWEAT" 	"LWEAT_OK" 	; fi
if (set -u; : $L_ENLIL) 	2> /dev/null ; then go "$ACTION" "/enlil" 			"$L_ENLIL" 	"ENLIL_OK" 	; fi
if (set -u; : $L_LIBAST)  	2> /dev/null ; then go "$ACTION" "/eterm/libast" 		"$L_LIBAST" 	"LIBAST_OK" 	; fi
if (set -u; : $L_SHELM)  	2> /dev/null ; then go "$ACTION" "/PROTO/shellementary" 	"$L_SHELM" 	"SHELM_OK" 	; fi


#EXTRA BINS:
if (set -u; : $B_EXPEDITE)	2> /dev/null ; then go "$ACTION" "/expedite" 			"$B_EXPEDITE" 	"EXPEDITE_OK" 	; fi
if (set -u; : $B_ELSA) 		2> /dev/null ; then go "$ACTION" "/PROTO/elsa" 			"$B_ELSA" 	"ELSA_OK" 	; fi
if (set -u; : $B_EXALT)  	2> /dev/null ; then go "$ACTION" "/exalt" 			"$B_EXALT" 	"EXALT_OK" 	; fi
if (set -u; : $B_EPDF) 		2> /dev/null ; then go "$ACTION" "/PROTO/epdf" 			"$B_EPDF" 	"EPDF_OK" 	; fi
if (set -u; : $B_EMPRINT)  	2> /dev/null ; then go "$ACTION" "/emprint" 			"$B_EMPRINT" 	"EMPRINT_OK" 	; fi
if (set -u; : $B_EXCHANGE)  	2> /dev/null ; then go "$ACTION" "/PROTO/exchange" 		"$B_EXCHANGE" 	"EXCHANGE_OK" 	; fi
if (set -u; : $B_E_PHYS) 	2> /dev/null ; then go "$ACTION" "/PROTO/e_phys" 		"$B_E_PHYS" 	"E_PHYS_OK" 	; fi
if (set -u; : $B_EDITJE) 	2> /dev/null ; then go "$ACTION" "/editje" 			"$B_EDITJE" 	"EDITJE_OK" 	; fi
if (set -u; : $B_EMOTE)  	2> /dev/null ; then go "$ACTION" "/PROTO/emote" 		"$B_EMOTE" 	"EMOTE_OK" 	; fi
if (set -u; : $B_EMPOWER)  	2> /dev/null ; then go "$ACTION" "/empower" 			"$B_EMPOWER" 	"EMPOWER_OK" 	; fi
if (set -u; : $B_ENJOY)  	2> /dev/null ; then go "$ACTION" "/enjoy" 			"$B_ENJOY" 	"ENJOY_OK" 	; fi
if (set -u; : $B_ENKI) 		2> /dev/null ; then go "$ACTION" "/enki" 			"$B_ENKI" 	"ENKI_OK" 	; fi
if (set -u; : $B_ENNA) 		2> /dev/null ; then go "$ACTION" "/MISC/enna" 			"$B_ENNA" 	"ENNA_OK" 	; fi
if (set -u; : $B_EPHOTO)  	2> /dev/null ; then go "$ACTION" "/ephoto" 			"$B_EPHOTO" 	"EPHOTO_OK" 	; fi
if (set -u; : $B_ETERM)  	2> /dev/null ; then go "$ACTION" "/eterm/Eterm" 		"$B_ETERM" 	"ETERM_OK" 	; fi
if (set -u; : $B_EXQUISITE) 	2> /dev/null ; then go "$ACTION" "/exquisite" 			"$B_EXQUISITE" 	"EXQUISITE_OK" 	; fi
if (set -u; : $B_EYELIGHT)	2> /dev/null ; then go "$ACTION" "/PROTO/eyelight" 		"$B_EYELIGHT" 	"EYELIGHT_OK" 	; fi
if (set -u; : $B_IMAGEV)  	2> /dev/null ; then go "$ACTION" "/IMAGEV" 			"$B_IMAGEV" 	"IMAGEV_OK" 	; fi
if (set -u; : $B_RAGE)  	2> /dev/null ; then go "$ACTION" "/rage" 			"$B_RAGE" 	"RAGE_OK" 	; fi
if (set -u; : $B_ENVISION)  	2> /dev/null ; then go "$ACTION" "/envision" 			"$B_ENVISION" 	"ENVISION_OK" 	; fi
if (set -u; : $B_EVE) 		2> /dev/null ; then go "$ACTION" "/eve" 			"$B_EVE"	"EVE_OK" 	; fi
if (set -u; : $B_ENTERMIN) 	2> /dev/null ; then go "$ACTION" "/PROTO/enterminus" 		"$B_ENTERMIN" 	"ENTERMIN_OK" 	; fi

#EXTRA MODULES:

if (set -u; : $M_ALARM)		2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/alarm/" 			"$M_ALARM" 	"ALARM_OK" 	; fi 
if (set -u; : $M_CALENDAR)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/calendar/" 			"$M_CALENDAR" 	"CALENDAR_OK" 	; fi 
if (set -u; : $M_COMPSCALE) 	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/comp-scale/" 		"$M_COMPSCALE" 	"COMPSCALE_OK" 	; fi 
if (set -u; : $M_CPU)		2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/cpu/" 			"$M_CPU "	"CPU_OK" 	; fi 
if (set -u; : $M_DESKSHOW)	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/deskshow/" 			"$M_DESKSHOW" 	"DESKSHOW_OK" 	; fi 
if (set -u; : $M_DISKIO) 	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/diskio/" 			"$M_DISKIO" 	"DISKIO_OK" 	; fi 
if (set -u; : $M_DRAWER)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/drawer/" 			"$M_DRAWER" 	"DRAWER_OK" 	; fi 
if (set -u; : $M_EFMNAV) 	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/efm_nav/" 			"$M_EFMNAV" 	"EFMNAV_OK" 	; fi 
if (set -u; : $M_EFMPATH) 	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/efm_path/" 			"$M_EFMPATH" 	"EFMPATH_OK" 	; fi 
if (set -u; : $M_EFMPATBAR) 	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/efm_pathbar/" 		"$M_EFMPATBAR" 	"EFMPATBAR_OK" 	; fi 
if (set -u; : $M_EMPRIS)   	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/empris/" 			"$M_EMPRIS" 	"EMPRIS_OK" 	; fi 
if (set -u; : $M_EOOORG)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/eooorg/" 			"$M_EOOORG" 	"EOOORG_OK" 	; fi 
if (set -u; : $M_EVRMPRIS)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/everything-mpris" 		"$M_EVRMPRIS" 	"EVRMPRIS_OK" 	; fi 
if (set -u; : $M_EVRPIDGIN)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/everything-pidgin" 		"$M_EVRPIDGIN" 	"EVRPIDGIN_OK" 	; fi 
if (set -u; : $M_EVRPLACES)   	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/everything-places" 		"$M_EVRPLACES" 	"EVRPLACES_OK" 	; fi 
if (set -u; : $M_EVRSKEL)	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/everything-skel" 		"$M_EVRSKEL" 	"EVRSKEL_OK" 	; fi 
if (set -u; : $M_EVRTRACKER)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/everything-tracker" 		"$M_EVRTRACKER" "EVRTRACKER_OK" ; fi 
if (set -u; : $M_EVRWALL) 	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/everything-wallpaper" 	"$M_EVRWALL" 	"EVRWALL_OK" 	; fi 
if (set -u; : $M_EVRWEBS)   	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/everything-websearch" 	"$M_EVRWEBS" 	"EVRWEBS_OK" 	; fi 
if (set -u; : $M_MWEATH)   	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/eweather" 			"$M_MWEATH" 	"MWEATH_OK" 	; fi 
if (set -u; : $M_EXACLI)       	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/exalt-client" 		"$M_EXACLI" 	"EXACLI_OK" 	; fi 
if (set -u; : $M_EXEBUF)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/exebuf" 			"$M_EXEBUF" 	"EXEBUF_OK" 	; fi 
if (set -u; : $M_EXECWATCH)    	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/execwatch" 			"$M_EXECWATCH" 	"EXECWATCH_OK" 	; fi 
if (set -u; : $M_FLAME)       	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/flame" 			"$M_FLAME" 	"FLAME_OK" 	; fi 
if (set -u; : $M_IIIRK)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/iiirk" 			"$M_IIIRK" 	"IIIRK_OK" 	; fi 
if (set -u; : $M_ITASK)    	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/itask" 			"$M_ITASK" 	"ITASK_OK" 	; fi 
if (set -u; : $M_ITANG)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/itask-ng" 			"$M_ITANG" 	"ITANG_OK" 	; fi 
if (set -u; : $M_LANGUAGE)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/language" 			"$M_LANGUAGE" 	"LANGUAGE_OK" 	; fi 
if (set -u; : $M_MAIL) 		2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/mail" 			"$M_MAIL" 	"MAIL_OK" 	; fi 
if (set -u; : $M_XMEM)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/mem" 			"$M_XMEM" 	"XMEM_OK" 	; fi 
if (set -u; : $M_MOON) 		2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/moon" 			"$M_MOON" 	"MOON_OK" 	; fi 
if (set -u; : $M_MPDULE)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/mpdule" 			"$M_MPDULE" 	"MPDULE_OK" 	; fi 
if (set -u; : $M_XNET) 		2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/net" 			"$M_XNET" 	"XNET_OK" 	; fi 
if (set -u; : $M_XNEWS) 	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/news" 			"$M_XNEWS" 	"XNEWS_OK" 	; fi 
if (set -u; : $M_NOTIFICAT)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/notification" 		"$M_NOTIFICAT" 	"NOTIFICAT_OK" 	; fi 
if (set -u; : $M_PENGUINS)      2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/penguins" 			"$M_PENGUINS" 	"PENGUINS_OK" 	; fi 
if (set -u; : $M_XPHOTO)   	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/photo" 			"$M_XPHOTO" 	"XPHOTO_OK" 	; fi 
if (set -u; : $M_XPLACES)	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/places" 			"$M_XPLACES" 	"XPLACES_OK" 	; fi 
if (set -u; : $M_QUICKACC) 	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/quickaccess" 		"$M_QUICKACC" 	"QUICKACC_OK" 	; fi 
if (set -u; : $M_RAIN) 		2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/rain" 			"$M_RAIN" 	"RAIN_OK" 	; fi 
if (set -u; : $M_SCREENSH) 	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/screenshot" 			"$M_SCREENSH" 	"SCREENSH_OK" 	; fi 
if (set -u; : $M_SKEL)     	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/skel" 			"$M_SKEL" 	"XSKEL_OK" 	; fi 
if (set -u; : $M_SLIDESH)    	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/slideshow" 			"$M_SLIDESH" 	"SLIDESH_OK" 	; fi 
if (set -u; : $M_SNOW) 		2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/snow" 			"$M_SNOW" 	"SNOW_OK" 	; fi 
if (set -u; : $M_TASKBAR)  	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/taskbar" 			"$M_TASKBAR" 	"TASKBAR_OK" 	; fi 
if (set -u; : $M_TCLOCK)   	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/tclock" 			"$M_TCLOCK" 	"TCLOCK_OK" 	; fi 
if (set -u; : $M_TILING)    	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/tiling" 			"$M_TILING" 	"TILING_OK" 	; fi 
if (set -u; : $M_UPTIME)    	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/uptime" 			"$M_UPTIME" 	"UPTIME_OK" 	; fi 
if (set -u; : $M_XWEATH)     	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/weather" 			"$M_XWEATH" 	"XWEATH_OK" 	; fi 
if (set -u; : $M_WINLIST)     	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/winlist-ng" 			"$M_WINLIST" 	"WINLIST_OK"	; fi 
if (set -u; : $M_WINSELECT)   	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/winselector" 		"$M_WINSELECT" 	"WINSELECT_OK" 	; fi 
if (set -u; : $M_WLAN)   	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/wlan" 			"$M_WLAN" 	"WLAN_OK" 	; fi 
if (set -u; : $M_FORECAST) 	2> /dev/null ; then go "$ACTION" "/E-MODULES-EXTRA/forecasts" 			"$M_FORECAST" 	"FORECAST_OK" 	; fi

#games 
if (set -u; : $G_ETYPE) 	2> /dev/null ; then go "$ACTION" "/GAMES/e-type" 				"$G_ETYPE" 	"G_ETYPE_OK" 	; fi
if (set -u; : $G_ESKISS) 	2> /dev/null ; then go "$ACTION" "/GAMES/eskiss" 				"$G_ESKISS" 	"G_ESKISS_OK" 	; fi

#Python bindings:
if (set -u; : $P_EVAS) 		2> /dev/null ; then go "$ACTION" "/BINDINGS/python/python-evas" 		"$P_EVAS" 	"P_EVAS_OK" 	; fi
if (set -u; : $P_ECORE)  	2> /dev/null ; then go "$ACTION" "/BINDINGS/python/python-ecore" 		"$P_ECORE" 	"P_ECORE_OK" 	; fi
if (set -u; : $P_EDBUS)  	2> /dev/null ; then go "$ACTION" "/BINDINGS/python/python-e_dbus" 		"$P_EDBUS" 	"P_EDBUS_OK" 	; fi
if (set -u; : $P_EDJE)  	2> /dev/null ; then go "$ACTION" "/BINDINGS/python/python-edje" 		"$P_EDJE" 	"P_EDJE_OK" 	; fi
if (set -u; : $P_EMOT)  	2> /dev/null ; then go "$ACTION" "/BINDINGS/python/python-emotion" 		"$P_EMOT" 	"P_EMOT_OK" 	; fi
if (set -u; : $P_ELM) 		2> /dev/null ; then go "$ACTION" "/BINDINGS/python/python-elementary" 		"$P_ELM" 	"P_ELM_OK" 	; fi
if (set -u; : $P_ETHUMB) 	2> /dev/null ; then go "$ACTION" "/BINDINGS/python/python-ethumb" 		"$P_ETHUMB" 	"P_ETHUMB_OK" 	; fi


if [ $1 == "-c" ] ; then
  rm -f $LOG
  rm -f $FLOG
  rm -f $STATUS && touch $STATUS
  echo ""
  exit 0 
fi 

grep -vE ""config.status"|"checking"|"configure.ac:"|"configure:"|"libtoolize:"|"Makefile.am:"|"Copying\ file"|"Running"|"detected\ then\ cross"" $LOG > $FLOG
cat $PARAMS >> $FLOG
cp $FLOG $PREFIX

echo -e "#!/bin/sh" > $XSESSION
echo -e "exec $PREFIX/bin/enlightenment_start" >> $XSESSION
chmod +x $XSESSION

FTIME=`date +%s` ; CHRONO=`expr $FTIME - $STIME`

echo ""
echo -e "$GREEN********************$NC"
echo -e "$GREEN--FINISHED ($CHRONO Sec)$NC"
echo -e "$GREEN********************$NC"
echo ""

cat $PARAMS


if  (! grep $PREFIX/lib /etc/ld.so.conf > /dev/null )  ; then  echo -e "${RED}-- WARNING: $PREFIX/lib not found in /etc/ld.so.conf , may be you should adjust this ( echo -e \"\\\n$PREFIX/lib\" >> /etc/ld.so.conf ) and run ldconfig $NC";fi
if  (! grep $PREFIX/bin ~/.bashrc > /dev/null )  ; then  echo -e "${RED}-- WARNING: $PREFIX/bin not found in your ~/.bashrc , may be you should adjust this ( echo -e \"\\\nPATH="$PREFIX/bin:\\\$PATH"\" >> ~/.bashrc ) $NC";fi

if  (! ls ~/.xsession > /dev/null 2>&1 )  ; then  echo -e "${RED}-- WARNING: ~/.xsession not found ,if you want one you can try cp ./.xsession ~/ $NC"
else if  (! grep $PREFIX/bin/enlightenment_start ~/.xsession > /dev/null )  ; then echo -e "${RED}-- WARNING: exec $PREFIX/bin/enlightenment_start not found in your ~/.xsession $NC";fi;fi
