# ====================================================================
#
#      syntheth.cdl
#
#      Synthetic target ethernet package.
#
# ====================================================================
#####ECOSGPLCOPYRIGHTBEGIN####
## -------------------------------------------
## This file is part of eCos, the Embedded Configurable Operating System.
## Copyright (C) 2002 Bart Veer
##
## eCos is free software; you can redistribute it and/or modify it under
## the terms of the GNU General Public License as published by the Free
## Software Foundation; either version 2 or (at your option) any later version.
##
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
## for more details.
##
## You should have received a copy of the GNU General Public License along
## with eCos; if not, write to the Free Software Foundation, Inc.,
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
##
## As a special exception, if other files instantiate templates or use macros
## or inline functions from this file, or you compile this file and link it
## with other works to produce a work based on this file, this file does not
## by itself cause the resulting work to be covered by the GNU General Public
## License. However the source code for this file must still be made available
## in accordance with section (3) of the GNU General Public License.
##
## This exception does not invalidate any other reasons why a work based on
## this file might be covered by the GNU General Public License.
##
## Alternative licenses for eCos may be arranged by contacting the
## copyright holder(s).
## -------------------------------------------
#####ECOSGPLCOPYRIGHTEND####
# ====================================================================
######DESCRIPTIONBEGIN####
#
# Author(s):      bartv
# Original data:  bartv
# Contributors:
# Date:           2002-08-07
#
#####DESCRIPTIONEND####
# ====================================================================

cdl_package CYGPKG_DEVS_ETH_ECOSYNTH {
    display     "Synthetic target ethernet driver"
    description "
        The ethernet driver for the eCos synthetic target allows applications
        and other packages such as a TCP/IP stack to perform ethernet I/O.
        This can involve either an unused ethernet device, or an emulated
        ethernet device as provided by the Linux kernel's tunnel/tap
        support. The eCos code interacts with a suitable Linux application
        through the I/O auxiliary. Up to four ethernet devices are
        supported, and the host-side target definition file controls how
        each device will perform its I/O."
    
    parent      CYGPKG_IO_ETH_DRIVERS
    active_if   CYGPKG_IO_ETH_DRIVERS
    active_if   CYGPKG_HAL_SYNTH

    cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 {
	display         "Provide eth0 device"
	description     "
	    The synthetic target can provide up to four ethernet devices,
	    eth0 to eth3. By default eth0 is enabled when a TCP/IP stack
            is part of the configuration, disabled otherwise."
	default_value   CYGPKG_NET_STACK
	implements      CYGHWR_NET_DRIVERS
	implements      CYGHWR_NET_DRIVER_ETH0
    }
    
    cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 {
	display        "Provide eth1 device"
	description     "
	    The synthetic target can provide up to four ethernet devices,
	    eth0 to eth3. By default eth1 is always disabled, but can
	    be enabled if the eCos application needs more than one ethernet
	    device."
	default_value 0
	implements      CYGHWR_NET_DRIVERS
	implements      CYGHWR_NET_DRIVER_ETH1
    }

    cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 {
	display        "Provide eth2 device"
	description     "
	    The synthetic target can provide up to four ethernet devices,
	    eth0 to eth3. By default eth2 is always disabled, but can
	    be enabled if the eCos application needs more than two ethernet
	    devices."
	default_value 0
	implements      CYGHWR_NET_DRIVERS
    }

    cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 {
	display        "Provide eth3 device"
	description     "
	    The synthetic target can provide up to four ethernet devices,
	    eth0 to eth3. By default eth3 is always disabled, but can
	    be enabled if the eCos application needs more than three ethernet
	    devices."
	default_value 0
	implements      CYGHWR_NET_DRIVERS
    }

    cdl_component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS {
	display     "Build options"
	active_if   { CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 }
	flavor      none
	compile     -library=libextras.a syntheth.c
	description "
	    Package-specific build options including control over compiler
	    flags used only in building this package."

	cdl_option CYGPKG_DEVS_ETH_ECOSYNTH_CFLAGS_ADD {
            display "Additional compiler flags"
            flavor  data
            no_define
            default_value { "" }
            description   "
                This option modifies the set of compiler flags for
                building this package. These flags are used in addition
                to the set of global flags."
	}
        cdl_option CYGPKG_DEVS_ETH_ECOSYNTH_CFLAGS_REMOVE {
            display "Suppressed compiler flags"
            flavor  data
            no_define
            default_value { "" }
            description   "
                This option modifies the set of compiler flags for
                building this package. These flags are removed from
                the set of global flags if present."
        }
    }
}

