## -------------------------------------------
## This file is part of eCos, the Embedded Configurable Operating System.
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+## Copyright (C) 2008 eCosCentric Limited
##
## 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
display "POSIX compatibility layer"
description "This package enables the POSIX compatibility
layer that implements IEEE 1003.1."
+
doc ref/posix-compatibility.html
include_dir cyg/posix
requires CYGINT_ISO_ERRNO_CODES
requires CYGIMP_KERNEL_SCHED_SORTED_QUEUES
- implements CYGINT_ISO_SCHED_IMPL
implements CYGINT_ISO_POSIX_LIMITS
- implements CYGINT_ISO_PMUTEXTYPES
- implements CYGINT_ISO_PTHREAD_MUTEX
requires { CYGBLD_ISO_POSIX_LIMITS_HEADER == \
"<cyg/posix/limits.h>" }
requires { CYGBLD_ISO_PMUTEXTYPES_HEADER == \
requires { CYGBLD_ISO_PTHREAD_MUTEX_HEADER == \
"<cyg/posix/mutex.h>" }
- compile mqueue.cxx mutex.cxx misc.cxx
+ compile misc.cxx
compile -library=libextras.a startup.cxx
- cdl_option _POSIX_THREAD_PRIO_INHERIT {
- display "POSIX mutex priority inheritance feature test macro"
- flavor bool
- default_value 1
- requires CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT
- description "This option defines the POSIX feature test macro
- for supporting priority inheritance protocol in
- mutexes."
- }
+ cdl_component CYGPKG_POSIX_PTHREAD_MUTEX {
+
+ display "POSIX pthread mutexes"
+ flavor bool
+ default_value 1
+ implements CYGINT_ISO_PMUTEXTYPES
+ implements CYGINT_ISO_PTHREAD_MUTEX
+ description "
+ This component provides support for POSIX pthreads
+ mutexes."
+
+ compile mutex.cxx
+
+ cdl_option _POSIX_THREAD_PRIO_INHERIT {
+ display "POSIX mutex priority inheritance feature test macro"
+ flavor bool
+ default_value 1
+ requires CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT
+ description "
+ This option defines the POSIX feature test macro for
+ supporting priority inheritance protocol in mutexes."
+ }
- cdl_option _POSIX_THREAD_PRIO_PROTECT {
- display "POSIX mutex priority ceiling feature test macro"
- flavor bool
- default_value 1
- requires CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
- description "This option defines the POSIX feature test macro
- for supporting priority ceiling protocol in mutexes."
+ cdl_option _POSIX_THREAD_PRIO_PROTECT {
+ display "POSIX mutex priority ceiling feature test macro"
+ flavor bool
+ default_value 1
+ requires CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
+ description "
+ This option defines the POSIX feature test macro for
+ supporting priority ceiling protocol in mutexes."
+ }
}
# ----------------------------------------------------------------
display "POSIX scheduling configuration"
flavor bool
default_value 1
- description "This component provides controls over scheduling
- in POSIX."
+ implements CYGINT_ISO_SCHED_IMPL
requires CYGPKG_POSIX_CLOCKS
+
+ description "
+ This component provides controls over scheduling in POSIX."
+
compile sched.cxx
cdl_option _POSIX_PRIORITY_SCHEDULING {
flavor bool
calculated 1
requires CYGSEM_KERNEL_SCHED_MLQUEUE
- description "This option defines the POSIX feature test macro
- that indicates that priority scheduling is present.
- This should not be undefined."
+ description "
+ This option defines the POSIX feature test macro that
+ indicates that priority scheduling is present. This
+ should not be undefined."
}
}
display "POSIX pthread configuration"
flavor bool
default_value 1
- description "This component provides configuration controls for
- the POSIX pthreads package."
- compile pthread.cxx
+ description "
+ This component provides configuration controls for the
+ POSIX pthreads package."
+
script pthread.cdl
+ compile pthread.cxx
+
}
# ----------------------------------------------------------------
- # Timers component
+ # Clock component
cdl_option CYGPKG_POSIX_CLOCKS {
display "POSIX clocks"
"<cyg/posix/time.h>" }
requires { CYGBLD_ISO_POSIX_CLOCKS_HEADER == \
"<cyg/posix/time.h>" }
+ requires { CYGBLD_ISO_STRUCTTIMEVAL_HEADER == \
+ "<cyg/posix/sys/time.h>" }
requires CYGPKG_KERNEL
requires CYGVAR_KERNEL_COUNTERS_CLOCK
+
+ description "
+ This component provides configuration controls for
+ the POSIX clocks and the sleep(), nanosleep() and
+ gettimeofday() functions."
+
compile time.cxx
- description "This component provides configuration controls for
- the POSIX clocks."
+
}
# ----------------------------------------------------------------
requires CYGPKG_KERNEL
requires CYGVAR_KERNEL_COUNTERS_CLOCK
requires CYGPKG_POSIX_PTHREAD
- requires CYGPKG_POSIX_CLOCKS
requires CYGPKG_POSIX_SIGNALS
- description "This component provides configuration controls for
- the POSIX timers."
+ requires CYGINT_ISO_POSIX_CLOCKS
+ description "
+ This component provides configuration controls for
+ the POSIX timers."
}
# ----------------------------------------------------------------
display "POSIX message queues"
flavor bool
default_value 1
+ compile mqueue.cxx
implements CYGINT_ISO_MQUEUE
requires CYGPKG_KERNEL
requires CYGINT_ISO_MALLOC
requires CYGINT_ISO_ERRNO
requires CYGINT_ISO_STRING_STRFUNCS
+ requires CYGINT_ISO_PTHREAD_MUTEX
+ requires CYGPKG_POSIX_CLOCKS
description "This component provides configuration controls for
POSIX message queues."
"<cyg/posix/signal.h>" }
requires { CYGBLD_ISO_SIGNAL_IMPL_HEADER == \
"<cyg/posix/signal.h>" }
- description "This component provides configuration controls for
- the POSIX signals."
+ description "
+ This component provides configuration controls for
+ the POSIX signals."
+
compile signal.cxx except.cxx
}
default_value 1
requires { CYGBLD_ISO_UTSNAME_HEADER == \
"<cyg/posix/utsname.h>" }
- description "This component provides configuration controls for
- the POSIX utsname structure and the uname() function."
+ description "
+ This component provides configuration controls for
+ the POSIX utsname structure and the uname() function."
cdl_option CYG_POSIX_UTSNAME_LENGTH {
display "Length of name strings in utsname structure"
# ----------------------------------------------------------------
# Tests
- cdl_option CYGPKG_POSIX_TESTS {
- display "POSIX tests"
- flavor data
- no_define
- calculated {
- "tests/pthread1 tests/pthread2 tests/pthread3 tests/mutex3 tests/mqueue2"
- . ((CYGPKG_POSIX_SIGNALS) ? " tests/mqueue1 tests/signal1 tests/signal2 tests/signal3 tests/sigsetjmp tests/timer1 tests/tm_basic" : "")
+ cdl_option CYGPKG_POSIX_TESTS {
+ display "POSIX tests"
+ flavor data
+ no_define
+ calculated {
+ (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 "
+ : "") .
+ (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
+ (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
+ (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3 \
+ tests/sigsetjmp " : "") .
+ ((CYGPKG_POSIX_SIGNALS &&
+ CYGPKG_POSIX_TIMERS &&
+ CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
+ ((CYGPKG_POSIX_SIGNALS &&
+ CYGPKG_POSIX_TIMERS &&
+ CYGPKG_POSIX_PTHREAD &&
+ CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
}
description "
This option specifies the set of tests for the POSIX package."